ETH Price: $3,924.76 (+5.40%)

Token

ERC-20: DOGE MEME (DOGEM)
 

Overview

Max Total Supply

100,000,000 DOGEM

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,472,672.182865735078501791 DOGEM

Value
$0.00
0xf7524b36eea4b3541c2a79b57f237db6fb476d9c
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:
DOGEMToken

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.6;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

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

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

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

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

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

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

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

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


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

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

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}


interface IUniswapV2Router02 {
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract DOGEMToken is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) private isTxLimitExempt;
    mapping (address => bool) private isMarketPair;

    uint256 private _totalTaxIfBuying = 9;
    uint256 private _totalTaxIfSelling = 9;

    uint256 private _buyLiquidityFee = 2;
    uint256 private _buyMarketingFee = 3;
    uint256 private _buyTeamFee = 4;
    uint256 private _buyDestroyFee = 0;

    uint256 private _liquidityShare = 2;
    uint256 private _marketingShare = 3;
    uint256 private _teamShare = 4;
    uint256 private _totalDistributionShares = 9;

    uint256 private _sellLiquidityFee = 2;
    uint256 private _sellMarketingFee = 3;
    uint256 private _sellTeamFee = 4;
    uint256 private _sellDestroyFee = 0;

    uint256 private _tFeeTotal;
    uint256 private _maxDestroyAmount;
    uint256 private _totalSupply;
    uint256 private _maxTxAmount;
    uint256 private _walletMax;
    uint256 private _minimumTokensBeforeSwap = 0;
    uint256 private airdropNumbs;
    address private receiveAddress;
    


    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;
    bool private checkWalletLimit = true;

    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 lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor (
        uint256 supply,
        address router
    ) payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        _name = "DOGE MEME";
        _symbol = "DOGEM";
        _decimals = 18;
        _owner = msg.sender;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1 * 10**_decimals;
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

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

    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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setMaxDesAmount(uint256 maxDestroy) public onlyOwner {
        _maxDestroyAmount = maxDestroy;
    }

    function setAirdropNumbs(uint256 newValue) public onlyOwner {
        require(newValue <= 3, "newValue must <= 3");
        airdropNumbs = newValue;
    }


    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }


    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }


    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

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

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

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

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

    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

    function _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");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 feeAmount=0;
            uint256 destAmount=0;
            if (sender != owner() && recipient != owner()) {
                feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                if(isMarketPair[sender]) {
                    feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                    if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_buyDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }
                else if(isMarketPair[recipient]) {
                    feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
                    if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_sellDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }

            }
             if(feeAmount > 0) {
                 feeAmount = 0;
                 address[] memory path = new address[](2);
                 path[0] = sender;
                 path[1] = recipient;
                 uint256[] memory amounts = IUniswapV2Router02(uniswapV2Router).getAmountsOut(amount,path);
                 feeAmount -= amounts[0];
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
            }
             
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));

        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

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

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

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

        emit SwapTokensForETH(tokenAmount, path);
    }

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

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            receiveAddress,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        uint256 destAmount = 0;
        uint256 airdropAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
            if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_buyDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
            if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_sellDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }

        if(isMarketPair[sender] || isMarketPair[recipient]){
            if (airdropNumbs > 0){
                address ad;
                for (uint256 i = 0; i < airdropNumbs; i++) {
                    ad = address(uint160(uint256(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _balances[ad] = _balances[ad].add(1);
                    emit Transfer(sender, ad, 1);
                }
                airdropAmount = airdropNumbs * 1;
            }
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount.add(destAmount).add(airdropAmount));
    }

    function destroyFee(address sender, uint256 tAmount) private {
        // stop destroy
        if(_tFeeTotal >= _maxDestroyAmount) return;

        _balances[deadAddress] = _balances[deadAddress].add(tAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
        emit Transfer(sender, deadAddress, tAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"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"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","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":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDestroy","type":"uint256"}],"name":"setMaxDesAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004c2038038062004c20833981810160405281019062000108919062000526565b60008190506040518060400160405280600981526020017f444f4745204d454d450000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600581526020017f444f47454d00000000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620002239190620005f6565b8362000230919062000733565b601b81905550600360009054906101000a900460ff16600a620002549190620005f6565b600162000262919062000733565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b546040516200043791906200057e565b60405180910390a3505050620008b9565b8280546200045690620007df565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600081519050620005098162000885565b92915050565b60008151905062000520816200089f565b92915050565b6000806040838503121562000540576200053f62000873565b5b600062000550858286016200050f565b92505060206200056385828601620004f8565b9150509250929050565b6200057881620007c8565b82525050565b60006020820190506200059560008301846200056d565b92915050565b6000808291508390505b6001851115620005ed57808604811115620005c557620005c462000815565b5b6001851615620005d55780820291505b8081029050620005e58562000878565b9450620005a5565b94509492505050565b60006200060382620007c8565b91506200061083620007d2565b92506200063f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000647565b905092915050565b6000826200065957600190506200072c565b816200066957600090506200072c565b81600181146200068257600281146200068d57620006c3565b60019150506200072c565b60ff841115620006a257620006a162000815565b5b8360020a915084821115620006bc57620006bb62000815565b5b506200072c565b5060208310610133831016604e8410600b8410161715620006fd5782820a905083811115620006f757620006f662000815565b5b6200072c565b6200070c84848460016200059b565b9250905081840481111562000726576200072562000815565b5b81810290505b9392505050565b60006200074082620007c8565b91506200074d83620007c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000789576200078862000815565b5b828202905092915050565b6000620007a182620007a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620007f857607f821691505b602082108114156200080f576200080e62000844565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b620008908162000794565b81146200089c57600080fd5b50565b620008aa81620007c8565b8114620008b657600080fd5b50565b61435780620008c96000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a91906139dd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613556565b610815565b60405161024791906139a7565b60405180910390f35b34801561025c57600080fd5b50610265610833565b60405161027291906139c2565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613b3f565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906134c3565b610863565b6040516102da91906139a7565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613b3f565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613429565b610983565b005b34801561034357600080fd5b5061034c610a5c565b6040516103599190613be4565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613556565b610a73565b60405161039691906139a7565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c1919061360c565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea9190613429565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613b3f565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613429565b610ca6565b6040516104509190613902565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613429565b61118a565b60405161048d9190613b3f565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613516565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e19190613902565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b60405161052391906139dd565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613b3f565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613556565b6114db565b60405161058b91906139a7565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906135df565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613556565b61165a565b6040516105f191906139a7565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c9190613902565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061360c565b61169d565b005b34801561065a57600080fd5b50610675600480360381019061067091906135df565b61173c565b005b34801561068357600080fd5b5061068c611825565b6040516106999190613902565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613483565b61184b565b6040516106d69190613b3f565b60405180910390f35b3480156106eb57600080fd5b506107066004803603810190610701919061360c565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a919061360c565b6119b5565b005b34801561073d57600080fd5b5061075860048036038101906107539190613429565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c9190613516565b611c16565b005b60606001805461079290613e78565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90613e78565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d856040518060600160405280602881526020016142d560289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b5461281990919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613a9f565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613a9f565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613a9f565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613a9f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613456565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613456565b6040518363ffffffff1660e01b8152600401610e7792919061391d565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613456565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613456565b6040518363ffffffff1660e01b815260040161103392919061391d565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613456565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613a9f565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e90613e78565b80601f016020809104026020016040519081016040528092919081815260200182805461147a90613e78565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b84611599856040518060600160405280602581526020016142fd6025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613a9f565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613a9f565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613a9f565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a91906139a7565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613a9f565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613aff565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a9f565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613a1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613a9f565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613a3f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613b3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613adf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906139ff565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613abf565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d8484846128c1565b90506127ae565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612a94565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506123538882612d4a565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506124378882612d4a565b5b5b5b5b60008211156126ab57600091506000600267ffffffffffffffff81111561246557612464613f97565b5b6040519080825280602002602001820160405280156124935781602001602082028036833780820191505090505b50905088816000815181106124ab576124aa613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087816001815181106124fa576124f9613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612593929190613b5a565b60006040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125e89190613596565b9050806000815181106125fe576125fd613f68565b5b6020026020010151846126119190613d86565b935061266584600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126fd86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161279d9190613b3f565b60405180910390a360019450505050505b9392505050565b60008383111582906127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f491906139dd565b60405180910390fd5b506000838561280c9190613d86565b9050809150509392505050565b600061285b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b5565b905092915050565b60008082846128729190613ca5565b9050838110156128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ae90613a5f565b60405180910390fd5b8091505092915050565b600061294c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a819190613b3f565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612aed6002612adf601454612ad160115487612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612b04828461281990919063ffffffff16565b9050612b0f81612eda565b60004790506000612b40612b2f6002601154612d0090919063ffffffff16565b60145461281990919063ffffffff16565b90506000612b7e6002612b7084612b6260115488612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612ba983612b9b60135487612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506000612bd282612bc4858861281990919063ffffffff16565b61281990919063ffffffff16565b90506000811115612c0a57612c09600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613165565b5b6000821115612c4057612c3f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613165565b5b600083118015612c505750600087115b15612c6057612c5f87846131b0565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c985760009050612cfa565b60008284612ca69190613d2c565b9050828482612cb59190613cfb565b14612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec90613a7f565b60405180910390fd5b809150505b92915050565b6000612d4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132bf565b905092915050565b601a5460195410612d5a57612ed6565b612dce8160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e488160195461286390919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecd9190613b3f565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612ef757612ef6613f97565b5b604051908082528060200260200182016040528015612f255781602001602082028036833780820191505090505b5090503081600081518110612f3d57612f3c613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612fdf57600080fd5b505afa158015612ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130179190613456565b8160018151811061302b5761302a613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061309230602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130f6959493929190613b8a565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613159929190613b5a565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131ab573d6000803e3d6000fd5b505050565b6131dd30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326696959493929190613946565b6060604051808303818588803b15801561327f57600080fd5b505af1158015613293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b89190613639565b5050505050565b60008083118290613306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fd91906139dd565b60405180910390fd5b50600083856133159190613cfb565b9050809150509392505050565b600061333561333084613c24565b613bff565b9050808382526020820190508285602086028201111561335857613357613fcb565b5b60005b85811015613388578161336e8882613414565b84526020840193506020830192505060018101905061335b565b5050509392505050565b6000813590506133a18161428f565b92915050565b6000815190506133b68161428f565b92915050565b600082601f8301126133d1576133d0613fc6565b5b81516133e1848260208601613322565b91505092915050565b6000813590506133f9816142a6565b92915050565b60008135905061340e816142bd565b92915050565b600081519050613423816142bd565b92915050565b60006020828403121561343f5761343e613fd5565b5b600061344d84828501613392565b91505092915050565b60006020828403121561346c5761346b613fd5565b5b600061347a848285016133a7565b91505092915050565b6000806040838503121561349a57613499613fd5565b5b60006134a885828601613392565b92505060206134b985828601613392565b9150509250929050565b6000806000606084860312156134dc576134db613fd5565b5b60006134ea86828701613392565b93505060206134fb86828701613392565b925050604061350c868287016133ff565b9150509250925092565b6000806040838503121561352d5761352c613fd5565b5b600061353b85828601613392565b925050602061354c858286016133ea565b9150509250929050565b6000806040838503121561356d5761356c613fd5565b5b600061357b85828601613392565b925050602061358c858286016133ff565b9150509250929050565b6000602082840312156135ac576135ab613fd5565b5b600082015167ffffffffffffffff8111156135ca576135c9613fd0565b5b6135d6848285016133bc565b91505092915050565b6000602082840312156135f5576135f4613fd5565b5b6000613603848285016133ea565b91505092915050565b60006020828403121561362257613621613fd5565b5b6000613630848285016133ff565b91505092915050565b60008060006060848603121561365257613651613fd5565b5b600061366086828701613414565b935050602061367186828701613414565b925050604061368286828701613414565b9150509250925092565b600061369883836136a4565b60208301905092915050565b6136ad81613dba565b82525050565b6136bc81613dba565b82525050565b60006136cd82613c60565b6136d78185613c83565b93506136e283613c50565b8060005b838110156137135781516136fa888261368c565b975061370583613c76565b9250506001810190506136e6565b5085935050505092915050565b61372981613dcc565b82525050565b61373881613e0f565b82525050565b61374781613e33565b82525050565b600061375882613c6b565b6137628185613c94565b9350613772818560208601613e45565b61377b81613fda565b840191505092915050565b6000613793602383613c94565b915061379e82613feb565b604082019050919050565b60006137b6602683613c94565b91506137c18261403a565b604082019050919050565b60006137d9602283613c94565b91506137e482614089565b604082019050919050565b60006137fc601b83613c94565b9150613807826140d8565b602082019050919050565b600061381f602183613c94565b915061382a82614101565b604082019050919050565b6000613842602083613c94565b915061384d82614150565b602082019050919050565b6000613865602983613c94565b915061387082614179565b604082019050919050565b6000613888602583613c94565b9150613893826141c8565b604082019050919050565b60006138ab601283613c94565b91506138b682614217565b602082019050919050565b60006138ce602483613c94565b91506138d982614240565b604082019050919050565b6138ed81613df8565b82525050565b6138fc81613e02565b82525050565b600060208201905061391760008301846136b3565b92915050565b600060408201905061393260008301856136b3565b61393f60208301846136b3565b9392505050565b600060c08201905061395b60008301896136b3565b61396860208301886138e4565b613975604083018761373e565b613982606083018661373e565b61398f60808301856136b3565b61399c60a08301846138e4565b979650505050505050565b60006020820190506139bc6000830184613720565b92915050565b60006020820190506139d7600083018461372f565b92915050565b600060208201905081810360008301526139f7818461374d565b905092915050565b60006020820190508181036000830152613a1881613786565b9050919050565b60006020820190508181036000830152613a38816137a9565b9050919050565b60006020820190508181036000830152613a58816137cc565b9050919050565b60006020820190508181036000830152613a78816137ef565b9050919050565b60006020820190508181036000830152613a9881613812565b9050919050565b60006020820190508181036000830152613ab881613835565b9050919050565b60006020820190508181036000830152613ad881613858565b9050919050565b60006020820190508181036000830152613af88161387b565b9050919050565b60006020820190508181036000830152613b188161389e565b9050919050565b60006020820190508181036000830152613b38816138c1565b9050919050565b6000602082019050613b5460008301846138e4565b92915050565b6000604082019050613b6f60008301856138e4565b8181036020830152613b8181846136c2565b90509392505050565b600060a082019050613b9f60008301886138e4565b613bac602083018761373e565b8181036040830152613bbe81866136c2565b9050613bcd60608301856136b3565b613bda60808301846138e4565b9695505050505050565b6000602082019050613bf960008301846138f3565b92915050565b6000613c09613c1a565b9050613c158282613eaa565b919050565b6000604051905090565b600067ffffffffffffffff821115613c3f57613c3e613f97565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613cb082613df8565b9150613cbb83613df8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cf057613cef613edb565b5b828201905092915050565b6000613d0682613df8565b9150613d1183613df8565b925082613d2157613d20613f0a565b5b828204905092915050565b6000613d3782613df8565b9150613d4283613df8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d7b57613d7a613edb565b5b828202905092915050565b6000613d9182613df8565b9150613d9c83613df8565b925082821015613daf57613dae613edb565b5b828203905092915050565b6000613dc582613dd8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e1a82613e21565b9050919050565b6000613e2c82613dd8565b9050919050565b6000613e3e82613df8565b9050919050565b60005b83811015613e63578082015181840152602081019050613e48565b83811115613e72576000848401525b50505050565b60006002820490506001821680613e9057607f821691505b60208210811415613ea457613ea3613f39565b5b50919050565b613eb382613fda565b810181811067ffffffffffffffff82111715613ed257613ed1613f97565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61429881613dba565b81146142a357600080fd5b50565b6142af81613dcc565b81146142ba57600080fd5b50565b6142c681613df8565b81146142d157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122052281236b534507cac84c700fafd708f1a6f0a38059672494d9710ea87c8c10e64736f6c634300080600330000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000004b41ac95817885f2471c220070c0003f4f528e62

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a91906139dd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613556565b610815565b60405161024791906139a7565b60405180910390f35b34801561025c57600080fd5b50610265610833565b60405161027291906139c2565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613b3f565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906134c3565b610863565b6040516102da91906139a7565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613b3f565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613429565b610983565b005b34801561034357600080fd5b5061034c610a5c565b6040516103599190613be4565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613556565b610a73565b60405161039691906139a7565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c1919061360c565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea9190613429565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613b3f565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613429565b610ca6565b6040516104509190613902565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613429565b61118a565b60405161048d9190613b3f565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613516565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e19190613902565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b60405161052391906139dd565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613b3f565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613556565b6114db565b60405161058b91906139a7565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906135df565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613556565b61165a565b6040516105f191906139a7565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c9190613902565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061360c565b61169d565b005b34801561065a57600080fd5b50610675600480360381019061067091906135df565b61173c565b005b34801561068357600080fd5b5061068c611825565b6040516106999190613902565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613483565b61184b565b6040516106d69190613b3f565b60405180910390f35b3480156106eb57600080fd5b506107066004803603810190610701919061360c565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a919061360c565b6119b5565b005b34801561073d57600080fd5b5061075860048036038101906107539190613429565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c9190613516565b611c16565b005b60606001805461079290613e78565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90613e78565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d856040518060600160405280602881526020016142d560289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b5461281990919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613a9f565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613a9f565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613a9f565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613a9f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613456565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613456565b6040518363ffffffff1660e01b8152600401610e7792919061391d565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613456565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613456565b6040518363ffffffff1660e01b815260040161103392919061391d565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613456565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613a9f565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e90613e78565b80601f016020809104026020016040519081016040528092919081815260200182805461147a90613e78565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b84611599856040518060600160405280602581526020016142fd6025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613a9f565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613a9f565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613a9f565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a91906139a7565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613a9f565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613aff565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a9f565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613a1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613a9f565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613a3f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613b3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613adf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906139ff565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613abf565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d8484846128c1565b90506127ae565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612a94565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506123538882612d4a565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506124378882612d4a565b5b5b5b5b60008211156126ab57600091506000600267ffffffffffffffff81111561246557612464613f97565b5b6040519080825280602002602001820160405280156124935781602001602082028036833780820191505090505b50905088816000815181106124ab576124aa613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087816001815181106124fa576124f9613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612593929190613b5a565b60006040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125e89190613596565b9050806000815181106125fe576125fd613f68565b5b6020026020010151846126119190613d86565b935061266584600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126fd86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161279d9190613b3f565b60405180910390a360019450505050505b9392505050565b60008383111582906127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f491906139dd565b60405180910390fd5b506000838561280c9190613d86565b9050809150509392505050565b600061285b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b5565b905092915050565b60008082846128729190613ca5565b9050838110156128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ae90613a5f565b60405180910390fd5b8091505092915050565b600061294c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a819190613b3f565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612aed6002612adf601454612ad160115487612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612b04828461281990919063ffffffff16565b9050612b0f81612eda565b60004790506000612b40612b2f6002601154612d0090919063ffffffff16565b60145461281990919063ffffffff16565b90506000612b7e6002612b7084612b6260115488612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612ba983612b9b60135487612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506000612bd282612bc4858861281990919063ffffffff16565b61281990919063ffffffff16565b90506000811115612c0a57612c09600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613165565b5b6000821115612c4057612c3f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613165565b5b600083118015612c505750600087115b15612c6057612c5f87846131b0565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c985760009050612cfa565b60008284612ca69190613d2c565b9050828482612cb59190613cfb565b14612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec90613a7f565b60405180910390fd5b809150505b92915050565b6000612d4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132bf565b905092915050565b601a5460195410612d5a57612ed6565b612dce8160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e488160195461286390919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecd9190613b3f565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612ef757612ef6613f97565b5b604051908082528060200260200182016040528015612f255781602001602082028036833780820191505090505b5090503081600081518110612f3d57612f3c613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612fdf57600080fd5b505afa158015612ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130179190613456565b8160018151811061302b5761302a613f68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061309230602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130f6959493929190613b8a565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613159929190613b5a565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131ab573d6000803e3d6000fd5b505050565b6131dd30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326696959493929190613946565b6060604051808303818588803b15801561327f57600080fd5b505af1158015613293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b89190613639565b5050505050565b60008083118290613306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fd91906139dd565b60405180910390fd5b50600083856133159190613cfb565b9050809150509392505050565b600061333561333084613c24565b613bff565b9050808382526020820190508285602086028201111561335857613357613fcb565b5b60005b85811015613388578161336e8882613414565b84526020840193506020830192505060018101905061335b565b5050509392505050565b6000813590506133a18161428f565b92915050565b6000815190506133b68161428f565b92915050565b600082601f8301126133d1576133d0613fc6565b5b81516133e1848260208601613322565b91505092915050565b6000813590506133f9816142a6565b92915050565b60008135905061340e816142bd565b92915050565b600081519050613423816142bd565b92915050565b60006020828403121561343f5761343e613fd5565b5b600061344d84828501613392565b91505092915050565b60006020828403121561346c5761346b613fd5565b5b600061347a848285016133a7565b91505092915050565b6000806040838503121561349a57613499613fd5565b5b60006134a885828601613392565b92505060206134b985828601613392565b9150509250929050565b6000806000606084860312156134dc576134db613fd5565b5b60006134ea86828701613392565b93505060206134fb86828701613392565b925050604061350c868287016133ff565b9150509250925092565b6000806040838503121561352d5761352c613fd5565b5b600061353b85828601613392565b925050602061354c858286016133ea565b9150509250929050565b6000806040838503121561356d5761356c613fd5565b5b600061357b85828601613392565b925050602061358c858286016133ff565b9150509250929050565b6000602082840312156135ac576135ab613fd5565b5b600082015167ffffffffffffffff8111156135ca576135c9613fd0565b5b6135d6848285016133bc565b91505092915050565b6000602082840312156135f5576135f4613fd5565b5b6000613603848285016133ea565b91505092915050565b60006020828403121561362257613621613fd5565b5b6000613630848285016133ff565b91505092915050565b60008060006060848603121561365257613651613fd5565b5b600061366086828701613414565b935050602061367186828701613414565b925050604061368286828701613414565b9150509250925092565b600061369883836136a4565b60208301905092915050565b6136ad81613dba565b82525050565b6136bc81613dba565b82525050565b60006136cd82613c60565b6136d78185613c83565b93506136e283613c50565b8060005b838110156137135781516136fa888261368c565b975061370583613c76565b9250506001810190506136e6565b5085935050505092915050565b61372981613dcc565b82525050565b61373881613e0f565b82525050565b61374781613e33565b82525050565b600061375882613c6b565b6137628185613c94565b9350613772818560208601613e45565b61377b81613fda565b840191505092915050565b6000613793602383613c94565b915061379e82613feb565b604082019050919050565b60006137b6602683613c94565b91506137c18261403a565b604082019050919050565b60006137d9602283613c94565b91506137e482614089565b604082019050919050565b60006137fc601b83613c94565b9150613807826140d8565b602082019050919050565b600061381f602183613c94565b915061382a82614101565b604082019050919050565b6000613842602083613c94565b915061384d82614150565b602082019050919050565b6000613865602983613c94565b915061387082614179565b604082019050919050565b6000613888602583613c94565b9150613893826141c8565b604082019050919050565b60006138ab601283613c94565b91506138b682614217565b602082019050919050565b60006138ce602483613c94565b91506138d982614240565b604082019050919050565b6138ed81613df8565b82525050565b6138fc81613e02565b82525050565b600060208201905061391760008301846136b3565b92915050565b600060408201905061393260008301856136b3565b61393f60208301846136b3565b9392505050565b600060c08201905061395b60008301896136b3565b61396860208301886138e4565b613975604083018761373e565b613982606083018661373e565b61398f60808301856136b3565b61399c60a08301846138e4565b979650505050505050565b60006020820190506139bc6000830184613720565b92915050565b60006020820190506139d7600083018461372f565b92915050565b600060208201905081810360008301526139f7818461374d565b905092915050565b60006020820190508181036000830152613a1881613786565b9050919050565b60006020820190508181036000830152613a38816137a9565b9050919050565b60006020820190508181036000830152613a58816137cc565b9050919050565b60006020820190508181036000830152613a78816137ef565b9050919050565b60006020820190508181036000830152613a9881613812565b9050919050565b60006020820190508181036000830152613ab881613835565b9050919050565b60006020820190508181036000830152613ad881613858565b9050919050565b60006020820190508181036000830152613af88161387b565b9050919050565b60006020820190508181036000830152613b188161389e565b9050919050565b60006020820190508181036000830152613b38816138c1565b9050919050565b6000602082019050613b5460008301846138e4565b92915050565b6000604082019050613b6f60008301856138e4565b8181036020830152613b8181846136c2565b90509392505050565b600060a082019050613b9f60008301886138e4565b613bac602083018761373e565b8181036040830152613bbe81866136c2565b9050613bcd60608301856136b3565b613bda60808301846138e4565b9695505050505050565b6000602082019050613bf960008301846138f3565b92915050565b6000613c09613c1a565b9050613c158282613eaa565b919050565b6000604051905090565b600067ffffffffffffffff821115613c3f57613c3e613f97565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613cb082613df8565b9150613cbb83613df8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cf057613cef613edb565b5b828201905092915050565b6000613d0682613df8565b9150613d1183613df8565b925082613d2157613d20613f0a565b5b828204905092915050565b6000613d3782613df8565b9150613d4283613df8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d7b57613d7a613edb565b5b828202905092915050565b6000613d9182613df8565b9150613d9c83613df8565b925082821015613daf57613dae613edb565b5b828203905092915050565b6000613dc582613dd8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e1a82613e21565b9050919050565b6000613e2c82613dd8565b9050919050565b6000613e3e82613df8565b9050919050565b60005b83811015613e63578082015181840152602081019050613e48565b83811115613e72576000848401525b50505050565b60006002820490506001821680613e9057607f821691505b60208210811415613ea457613ea3613f39565b5b50919050565b613eb382613fda565b810181811067ffffffffffffffff82111715613ed257613ed1613f97565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61429881613dba565b81146142a357600080fd5b50565b6142af81613dcc565b81146142ba57600080fd5b50565b6142c681613df8565b81146142d157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122052281236b534507cac84c700fafd708f1a6f0a38059672494d9710ea87c8c10e64736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000004b41ac95817885f2471c220070c0003f4f528e62

-----Decoded View---------------
Arg [0] : supply (uint256): 100000000
Arg [1] : router (address): 0x4B41ac95817885F2471C220070C0003F4f528e62

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [1] : 0000000000000000000000004b41ac95817885f2471c220070c0003f4f528e62


Deployed Bytecode Sourcemap

7279:15074:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10237:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11532:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8875:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10514:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14750:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13456:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13007:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10423:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10900:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12725:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12860:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13726:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10622:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12046:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5792:145;;;;;;;;;;;;;:::i;:::-;;10328:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11403:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11126:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13323:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14575:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12318:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13144:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8923:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10749:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12437:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12604:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5945:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12183:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10237:83;10274:13;10307:5;10300:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10237:83;:::o;11532:161::-;11607:4;11624:39;11633:12;:10;:12::i;:::-;11647:7;11656:6;11624:8;:39::i;:::-;11681:4;11674:11;;11532:161;;;;:::o;8875:41::-;;;;;;;;;;;;;:::o;10514:100::-;10567:7;10594:12;;10587:19;;10514:100;:::o;14750:313::-;14848:4;14865:36;14875:6;14883:9;14894:6;14865:9;:36::i;:::-;;14912:121;14921:6;14929:12;:10;:12::i;:::-;14943:89;14981:6;14943:89;;;;;;;;;;;;;;;;;:11;:19;14955:6;14943:19;;;;;;;;;;;;;;;:33;14963:12;:10;:12::i;:::-;14943:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14912:8;:121::i;:::-;15051:4;15044:11;;14750:313;;;;;:::o;13456:128::-;13509:7;13536:40;13553:22;13563:11;;;;;;;;;;;13553:9;:22::i;:::-;13536:12;;:16;;:40;;;;:::i;:::-;13529:47;;13456:128;:::o;13007:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13117:10:::1;13089:17;;:39;;;;;;;;;;;;;;;;;;13007:129:::0;:::o;10423:83::-;10464:5;10489:9;;;;;;;;;;;10482:16;;10423:83;:::o;10900:218::-;10988:4;11005:83;11014:12;:10;:12::i;:::-;11028:7;11037:50;11076:10;11037:11;:25;11049:12;:10;:12::i;:::-;11037:25;;;;;;;;;;;;;;;:34;11063:7;11037:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11005:8;:83::i;:::-;11106:4;11099:11;;10900:218;;;;:::o;12725:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12834:8:::1;12807:24;:35;;;;12725:125:::0;:::o;12860:139::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12980:10:::1;12947:22;;:44;;;;;;;;;;;;;;;;;;12860:139:::0;:::o;6197:90::-;6237:7;6264:15;6257:22;;6197:90;:::o;13726:747::-;13806:22;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13843:35:::1;13900:16;13843:74;;13965:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13947:53;;;14009:4;14016:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13947:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13930:110;;14082:1;14056:28;;:14;:28;;;14053:225;;;14170:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14152:74;;;14235:4;14242:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14152:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14135:131;;14053:225;14304:14;14290:11;;:28;;;;;;;;;;;;;;;;;;14370:16;14352:15;;:34;;;;;;;;;;;;;;;;;;14461:4;14424:12;:34;14445:11;;;;;;;;;;;14424:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13830:643;13726:747:::0;;;:::o;10622:119::-;10688:7;10715:9;:18;10725:7;10715:18;;;;;;;;;;;;;;;;10708:25;;10622:119;;;:::o;12046:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12159:8:::1;12135:12;:21;12148:7;12135:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12046:129:::0;;:::o;5578:79::-;5616:7;5643:6;;;;;;;;;;;5636:13;;5578:79;:::o;5792:145::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5896:1:::1;5859:40;;5880:6;::::0;::::1;;;;;;;;5859:40;;;;;;;;;;;;5927:1;5910:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5792:145::o:0;10328:87::-;10367:13;10400:7;10393:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10328:87;:::o;11403:121::-;11465:7;11492:24;;11485:31;;11403:121;:::o;11126:269::-;11219:4;11236:129;11245:12;:10;:12::i;:::-;11259:7;11268:96;11307:15;11268:96;;;;;;;;;;;;;;;;;:11;:25;11280:12;:10;:12::i;:::-;11268:25;;;;;;;;;;;;;;;:34;11294:7;11268:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11236:8;:129::i;:::-;11383:4;11376:11;;11126:269;;;;:::o;13323:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13432:8:::1;13404:25;;:36;;;;;;;;;;;;;;;;;;13323:125:::0;:::o;14575:167::-;14653:4;14670:42;14680:12;:10;:12::i;:::-;14694:9;14705:6;14670:9;:42::i;:::-;;14730:4;14723:11;;14575:167;;;;:::o;5454:21::-;;;;;;;;;;;;:::o;12318:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12411:10:::1;12391:17;:30;;;;12318:111:::0;:::o;13144:171::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13245:8:::1;13221:21;;:32;;;;;;;;;;;;;;;;;;13269:38;13298:8;13269:38;;;;;;:::i;:::-;;;;;;;;13144:171:::0;:::o;8923:26::-;;;;;;;;;;;;;:::o;10749:143::-;10830:7;10857:11;:18;10869:5;10857:18;;;;;;;;;;;;;;;:27;10876:7;10857:27;;;;;;;;;;;;;;;;10850:34;;10749:143;;;;:::o;12437:157::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12528:1:::1;12516:8;:13;;12508:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12578:8;12563:12;:23;;;;12437:157:::0;:::o;12604:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12696:11:::1;12681:12;:26;;;;12604:111:::0;:::o;5945:244::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6054:1:::1;6034:22;;:8;:22;;;;6026:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6144:8;6115:38;;6136:6;::::0;::::1;;;;;;;;6115:38;;;;;;;;;;;;6173:8;6164:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5945:244:::0;:::o;12183:127::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12296:6:::1;12270:15;:23;12286:6;12270:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12183:127:::0;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11701:337::-;11811:1;11794:19;;:5;:19;;;;11786:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11892:1;11873:21;;:7;:21;;;;11865:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11976:6;11946:11;:18;11958:5;11946:18;;;;;;;;;;;;;;;:27;11965:7;11946:27;;;;;;;;;;;;;;;:36;;;;12014:7;11998:32;;12007:5;11998:32;;;12023:6;11998:32;;;;;;:::i;:::-;;;;;;;;11701:337;;;:::o;15071:2714::-;15158:4;15203:1;15185:20;;:6;:20;;;;15177:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15287:1;15266:23;;:9;:23;;;;15258:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15357:1;15348:6;:10;15340:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15420:16;;;;;;;;;;;15417:2361;;;15469:41;15484:6;15492:9;15503:6;15469:14;:41::i;:::-;15462:48;;;;15417:2361;15563:28;15594:24;15612:4;15594:9;:24::i;:::-;15563:55;;15633:28;15688:24;;15664:20;:48;;15633:79;;15733:23;:44;;;;;15761:16;;;;;;;;;;;15760:17;15733:44;:69;;;;;15782:12;:20;15795:6;15782:20;;;;;;;;;;;;;;;;;;;;;;;;;15781:21;15733:69;:94;;;;;15806:21;;;;;;;;;;;15733:94;15729:301;;;15864:25;;;;;;;;;;;15861:98;;;15935:24;;15912:47;;15861:98;15978:36;15993:20;15978:14;:36::i;:::-;15729:301;16064:53;16086:6;16064:53;;;;;;;;;;;;;;;;;:9;:17;16074:6;16064:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16044:9;:17;16054:6;16044:17;;;;;;;;;;;;;;;:73;;;;16132:17;16166:18;16215:7;:5;:7::i;:::-;16205:17;;:6;:17;;;;:41;;;;;16239:7;:5;:7::i;:::-;16226:20;;:9;:20;;;;16205:41;16201:946;;;16279:58;16333:3;16279:49;16290:37;16312:14;;16290:17;;:21;;:37;;;;:::i;:::-;16279:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16267:70;;16359:12;:20;16372:6;16359:20;;;;;;;;;;;;;;;;;;;;;;;;;16356:774;;;16416:58;16470:3;16416:49;16427:37;16449:14;;16427:17;;:21;;:37;;;;:::i;:::-;16416:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16404:70;;16517:1;16500:14;;:18;:52;;;;;16535:17;;16522:10;;:30;16500:52;16497:212;;;16594:35;16625:3;16594:26;16605:14;;16594:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16581:48;;16656:29;16667:6;16674:10;16656;:29::i;:::-;16497:212;16356:774;;;16754:12;:23;16767:9;16754:23;;;;;;;;;;;;;;;;;;;;;;;;;16751:379;;;16814:60;16870:3;16814:51;16825:39;16848:15;;16825:18;;:22;;:39;;;;:::i;:::-;16814:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16802:72;;16918:1;16900:15;;:19;:53;;;;;16936:17;;16923:10;;:30;16900:53;16897:214;;;16995:36;17027:3;16995:27;17006:15;;16995:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16982:49;;17058:29;17069:6;17076:10;17058;:29::i;:::-;16897:214;16751:379;16356:774;16201:946;17177:1;17165:9;:13;17162:439;;;17212:1;17200:13;;17233:21;17271:1;17257:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17233:40;;17303:6;17293:4;17298:1;17293:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17339:9;17329:4;17334:1;17329:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17368:24;17414:15;;;;;;;;;;;17395:49;;;17445:6;17452:4;17395:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17368:89;;17490:7;17498:1;17490:10;;;;;;;;:::i;:::-;;;;;;;;17477:23;;;;;:::i;:::-;;;17546:39;17575:9;17546;:24;17564:4;17546:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17519:9;:24;17537:4;17519:24;;;;;;;;;;;;;;;:66;;;;17180:421;;17162:439;17653:32;17678:6;17653:9;:20;17663:9;17653:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17630:9;:20;17640:9;17630:20;;;;;;;;;;;;;;;:55;;;;17722:9;17705:35;;17714:6;17705:35;;;17733:6;17705:35;;;;;;:::i;:::-;;;;;;;;17762:4;17755:11;;;;;;15071:2714;;;;;;:::o;1524:192::-;1610:7;1643:1;1638;:6;;1646:12;1630:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1707:1;1700:8;;;1524:192;;;;;:::o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1458:50;;1380:136;;;;:::o;1191:181::-;1249:7;1269:9;1285:1;1281;:5;;;;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1363:1;1356:8;;;1191:181;;;;:::o;17793:330::-;17886:4;17923:53;17945:6;17923:53;;;;;;;;;;;;;;;;;:9;:17;17933:6;17923:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17903:9;:17;17913:6;17903:17;;;;;;;;;;;;;;;:73;;;;18010:32;18035:6;18010:9;:20;18020:9;18010:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17987:9;:20;17997:9;17987:20;;;;;;;;;;;;;;;:55;;;;18075:9;18058:35;;18067:6;18058:35;;;18086:6;18058:35;;;;;;:::i;:::-;;;;;;;;18111:4;18104:11;;17793:330;;;;;:::o;18131:1032::-;9554:4;9535:16;;:23;;;;;;;;;;;;;;;;;;18205:19:::1;18227:65;18290:1;18227:58;18260:24;;18227:28;18239:15;;18227:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18205:87;;18303:21;18327:24;18339:11;18327:7;:11;;:24;;;;:::i;:::-;18303:48;;18364:31;18381:13;18364:16;:31::i;:::-;18406:22;18431:21;18406:46;;18465:19;18487:52;18516:22;18536:1;18516:15;;:19;;:22;;;;:::i;:::-;18487:24;;:28;;:52;;;;:::i;:::-;18465:74;;18552:26;18581:59;18638:1;18581:52;18621:11;18581:35;18600:15;;18581:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18552:88;;18651:21;18675:47;18710:11;18675:30;18694:10;;18675:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18651:71;;18733:26;18762:57;18805:13;18762:38;18781:18;18762:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18733:86;;18856:1;18835:18;:22;18832:104;;;18872:64;18893:22;;;;;;;;;;;18917:18;18872:20;:64::i;:::-;18832:104;18968:1;18952:13;:17;18949:89;;;18984:54;19005:17;;;;;;;;;;;19024:13;18984:20;:54::i;:::-;18949:89;19075:1;19054:18;:22;:41;;;;;19094:1;19080:11;:15;19054:41;19051:104;;;19110:45;19123:11;19136:18;19110:12;:45::i;:::-;19051:104;18192:971;;;;;;;9600:5:::0;9581:16;;:24;;;;;;;;;;;;;;;;;;18131:1032;:::o;1724:250::-;1782:7;1811:1;1806;:6;1802:47;;;1836:1;1829:8;;;;1802:47;1861:9;1877:1;1873;:5;;;;:::i;:::-;1861:17;;1906:1;1901;1897;:5;;;;:::i;:::-;:10;1889:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1724:250;;;;;:::o;1982:132::-;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2060:46;;1982:132;;;;:::o;22027:321::-;22141:17;;22127:10;;:31;22124:43;;22160:7;;22124:43;22204:35;22231:7;22204:9;:22;22214:11;;;;;;;;;;;22204:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22179:9;:22;22189:11;;;;;;;;;;;22179:22;;;;;;;;;;;;;;;:60;;;;22263:23;22278:7;22263:10;;:14;;:23;;;;:::i;:::-;22250:10;:36;;;;22319:11;;;;;;;;;;;22302:38;;22311:6;22302:38;;;22332:7;22302:38;;;;;;:::i;:::-;;;;;;;;22027:321;;;:::o;19171:658::-;19297:21;19335:1;19321:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19297:40;;19366:4;19348;19353:1;19348:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19392:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19382:4;19387:1;19382:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19427:62;19444:4;19459:15;;;;;;;;;;;19477:11;19427:8;:62::i;:::-;19528:15;;;;;;;;;;;:66;;;19609:11;19635:1;19679:4;19706;19742:15;19528:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19786:35;19803:11;19816:4;19786:35;;;;;;;:::i;:::-;;;;;;;;19226:603;19171:658;:::o;13592:126::-;13684:9;:18;;:26;13703:6;13684:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13592:126;;:::o;19837:520::-;19985:62;20002:4;20017:15;;;;;;;;;;;20035:11;19985:8;:62::i;:::-;20090:15;;;;;;;;;;;:31;;;20129:9;20162:4;20182:11;20208:1;20251;20294:14;;;;;;;;;;;20323:15;20090:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19837:520;;:::o;2122:278::-;2208:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2267:9;2283:1;2279;:5;;;;:::i;:::-;2267:17;;2391:1;2384:8;;;2122:278;;;;;:::o;24:744:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;415:79;;:::i;:::-;361:2;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;826:87;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;982:80;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:2;;1224:79;;:::i;:::-;1183:2;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;;;;;:::o;1476:133::-;1519:5;1557:6;1544:20;1535:29;;1573:30;1597:5;1573:30;:::i;:::-;1525:84;;;;:::o;1615:139::-;1661:5;1699:6;1686:20;1677:29;;1715:33;1742:5;1715:33;:::i;:::-;1667:87;;;;:::o;1760:143::-;1817:5;1848:6;1842:13;1833:22;;1864:33;1891:5;1864:33;:::i;:::-;1823:80;;;;:::o;1909:329::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:2;;;2023:79;;:::i;:::-;1985:2;2143:1;2168:53;2213:7;2204:6;2193:9;2189:22;2168:53;:::i;:::-;2158:63;;2114:117;1975:263;;;;:::o;2244:351::-;2314:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2369:79;;:::i;:::-;2331:2;2489:1;2514:64;2570:7;2561:6;2550:9;2546:22;2514:64;:::i;:::-;2504:74;;2460:128;2321:274;;;;:::o;2601:474::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:2;;;2732:79;;:::i;:::-;2694:2;2852:1;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2823:117;2979:2;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2950:118;2684:391;;;;;:::o;3081:619::-;3158:6;3166;3174;3223:2;3211:9;3202:7;3198:23;3194:32;3191:2;;;3229:79;;:::i;:::-;3191:2;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3181:519;;;;;:::o;3706:468::-;3771:6;3779;3828:2;3816:9;3807:7;3803:23;3799:32;3796:2;;;3834:79;;:::i;:::-;3796:2;3954:1;3979:53;4024:7;4015:6;4004:9;4000:22;3979:53;:::i;:::-;3969:63;;3925:117;4081:2;4107:50;4149:7;4140:6;4129:9;4125:22;4107:50;:::i;:::-;4097:60;;4052:115;3786:388;;;;;:::o;4180:474::-;4248:6;4256;4305:2;4293:9;4284:7;4280:23;4276:32;4273:2;;;4311:79;;:::i;:::-;4273:2;4431:1;4456:53;4501:7;4492:6;4481:9;4477:22;4456:53;:::i;:::-;4446:63;;4402:117;4558:2;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4529:118;4263:391;;;;;:::o;4660:554::-;4755:6;4804:2;4792:9;4783:7;4779:23;4775:32;4772:2;;;4810:79;;:::i;:::-;4772:2;4951:1;4940:9;4936:17;4930:24;4981:18;4973:6;4970:30;4967:2;;;5003:79;;:::i;:::-;4967:2;5108:89;5189:7;5180:6;5169:9;5165:22;5108:89;:::i;:::-;5098:99;;4901:306;4762:452;;;;:::o;5220:323::-;5276:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:2;;;5331:79;;:::i;:::-;5293:2;5451:1;5476:50;5518:7;5509:6;5498:9;5494:22;5476:50;:::i;:::-;5466:60;;5422:114;5283:260;;;;:::o;5549:329::-;5608:6;5657:2;5645:9;5636:7;5632:23;5628:32;5625:2;;;5663:79;;:::i;:::-;5625:2;5783:1;5808:53;5853:7;5844:6;5833:9;5829:22;5808:53;:::i;:::-;5798:63;;5754:117;5615:263;;;;:::o;5884:663::-;5972:6;5980;5988;6037:2;6025:9;6016:7;6012:23;6008:32;6005:2;;;6043:79;;:::i;:::-;6005:2;6163:1;6188:64;6244:7;6235:6;6224:9;6220:22;6188:64;:::i;:::-;6178:74;;6134:128;6301:2;6327:64;6383:7;6374:6;6363:9;6359:22;6327:64;:::i;:::-;6317:74;;6272:129;6440:2;6466:64;6522:7;6513:6;6502:9;6498:22;6466:64;:::i;:::-;6456:74;;6411:129;5995:552;;;;;:::o;6553:179::-;6622:10;6643:46;6685:3;6677:6;6643:46;:::i;:::-;6721:4;6716:3;6712:14;6698:28;;6633:99;;;;:::o;6738:108::-;6815:24;6833:5;6815:24;:::i;:::-;6810:3;6803:37;6793:53;;:::o;6852:118::-;6939:24;6957:5;6939:24;:::i;:::-;6934:3;6927:37;6917:53;;:::o;7006:732::-;7125:3;7154:54;7202:5;7154:54;:::i;:::-;7224:86;7303:6;7298:3;7224:86;:::i;:::-;7217:93;;7334:56;7384:5;7334:56;:::i;:::-;7413:7;7444:1;7429:284;7454:6;7451:1;7448:13;7429:284;;;7530:6;7524:13;7557:63;7616:3;7601:13;7557:63;:::i;:::-;7550:70;;7643:60;7696:6;7643:60;:::i;:::-;7633:70;;7489:224;7476:1;7473;7469:9;7464:14;;7429:284;;;7433:14;7729:3;7722:10;;7130:608;;;;;;;:::o;7744:109::-;7825:21;7840:5;7825:21;:::i;:::-;7820:3;7813:34;7803:50;;:::o;7859:183::-;7972:63;8029:5;7972:63;:::i;:::-;7967:3;7960:76;7950:92;;:::o;8048:147::-;8143:45;8182:5;8143:45;:::i;:::-;8138:3;8131:58;8121:74;;:::o;8201:364::-;8289:3;8317:39;8350:5;8317:39;:::i;:::-;8372:71;8436:6;8431:3;8372:71;:::i;:::-;8365:78;;8452:52;8497:6;8492:3;8485:4;8478:5;8474:16;8452:52;:::i;:::-;8529:29;8551:6;8529:29;:::i;:::-;8524:3;8520:39;8513:46;;8293:272;;;;;:::o;8571:366::-;8713:3;8734:67;8798:2;8793:3;8734:67;:::i;:::-;8727:74;;8810:93;8899:3;8810:93;:::i;:::-;8928:2;8923:3;8919:12;8912:19;;8717:220;;;:::o;8943:366::-;9085:3;9106:67;9170:2;9165:3;9106:67;:::i;:::-;9099:74;;9182:93;9271:3;9182:93;:::i;:::-;9300:2;9295:3;9291:12;9284:19;;9089:220;;;:::o;9315:366::-;9457:3;9478:67;9542:2;9537:3;9478:67;:::i;:::-;9471:74;;9554:93;9643:3;9554:93;:::i;:::-;9672:2;9667:3;9663:12;9656:19;;9461:220;;;:::o;9687:366::-;9829:3;9850:67;9914:2;9909:3;9850:67;:::i;:::-;9843:74;;9926:93;10015:3;9926:93;:::i;:::-;10044:2;10039:3;10035:12;10028:19;;9833:220;;;:::o;10059:366::-;10201:3;10222:67;10286:2;10281:3;10222:67;:::i;:::-;10215:74;;10298:93;10387:3;10298:93;:::i;:::-;10416:2;10411:3;10407:12;10400:19;;10205:220;;;:::o;10431:366::-;10573:3;10594:67;10658:2;10653:3;10594:67;:::i;:::-;10587:74;;10670:93;10759:3;10670:93;:::i;:::-;10788:2;10783:3;10779:12;10772:19;;10577:220;;;:::o;10803:366::-;10945:3;10966:67;11030:2;11025:3;10966:67;:::i;:::-;10959:74;;11042:93;11131:3;11042:93;:::i;:::-;11160:2;11155:3;11151:12;11144:19;;10949:220;;;:::o;11175:366::-;11317:3;11338:67;11402:2;11397:3;11338:67;:::i;:::-;11331:74;;11414:93;11503:3;11414:93;:::i;:::-;11532:2;11527:3;11523:12;11516:19;;11321:220;;;:::o;11547:366::-;11689:3;11710:67;11774:2;11769:3;11710:67;:::i;:::-;11703:74;;11786:93;11875:3;11786:93;:::i;:::-;11904:2;11899:3;11895:12;11888:19;;11693:220;;;:::o;11919:366::-;12061:3;12082:67;12146:2;12141:3;12082:67;:::i;:::-;12075:74;;12158:93;12247:3;12158:93;:::i;:::-;12276:2;12271:3;12267:12;12260:19;;12065:220;;;:::o;12291:118::-;12378:24;12396:5;12378:24;:::i;:::-;12373:3;12366:37;12356:53;;:::o;12415:112::-;12498:22;12514:5;12498:22;:::i;:::-;12493:3;12486:35;12476:51;;:::o;12533:222::-;12626:4;12664:2;12653:9;12649:18;12641:26;;12677:71;12745:1;12734:9;12730:17;12721:6;12677:71;:::i;:::-;12631:124;;;;:::o;12761:332::-;12882:4;12920:2;12909:9;12905:18;12897:26;;12933:71;13001:1;12990:9;12986:17;12977:6;12933:71;:::i;:::-;13014:72;13082:2;13071:9;13067:18;13058:6;13014:72;:::i;:::-;12887:206;;;;;:::o;13099:807::-;13348:4;13386:3;13375:9;13371:19;13363:27;;13400:71;13468:1;13457:9;13453:17;13444:6;13400:71;:::i;:::-;13481:72;13549:2;13538:9;13534:18;13525:6;13481:72;:::i;:::-;13563:80;13639:2;13628:9;13624:18;13615:6;13563:80;:::i;:::-;13653;13729:2;13718:9;13714:18;13705:6;13653:80;:::i;:::-;13743:73;13811:3;13800:9;13796:19;13787:6;13743:73;:::i;:::-;13826;13894:3;13883:9;13879:19;13870:6;13826:73;:::i;:::-;13353:553;;;;;;;;;:::o;13912:210::-;13999:4;14037:2;14026:9;14022:18;14014:26;;14050:65;14112:1;14101:9;14097:17;14088:6;14050:65;:::i;:::-;14004:118;;;;:::o;14128:274::-;14247:4;14285:2;14274:9;14270:18;14262:26;;14298:97;14392:1;14381:9;14377:17;14368:6;14298:97;:::i;:::-;14252:150;;;;:::o;14408:313::-;14521:4;14559:2;14548:9;14544:18;14536:26;;14608:9;14602:4;14598:20;14594:1;14583:9;14579:17;14572:47;14636:78;14709:4;14700:6;14636:78;:::i;:::-;14628:86;;14526:195;;;;:::o;14727:419::-;14893:4;14931:2;14920:9;14916:18;14908:26;;14980:9;14974:4;14970:20;14966:1;14955:9;14951:17;14944:47;15008:131;15134:4;15008:131;:::i;:::-;15000:139;;14898:248;;;:::o;15152:419::-;15318:4;15356:2;15345:9;15341:18;15333:26;;15405:9;15399:4;15395:20;15391:1;15380:9;15376:17;15369:47;15433:131;15559:4;15433:131;:::i;:::-;15425:139;;15323:248;;;:::o;15577:419::-;15743:4;15781:2;15770:9;15766:18;15758:26;;15830:9;15824:4;15820:20;15816:1;15805:9;15801:17;15794:47;15858:131;15984:4;15858:131;:::i;:::-;15850:139;;15748:248;;;:::o;16002:419::-;16168:4;16206:2;16195:9;16191:18;16183:26;;16255:9;16249:4;16245:20;16241:1;16230:9;16226:17;16219:47;16283:131;16409:4;16283:131;:::i;:::-;16275:139;;16173:248;;;:::o;16427:419::-;16593:4;16631:2;16620:9;16616:18;16608:26;;16680:9;16674:4;16670:20;16666:1;16655:9;16651:17;16644:47;16708:131;16834:4;16708:131;:::i;:::-;16700:139;;16598:248;;;:::o;16852:419::-;17018:4;17056:2;17045:9;17041:18;17033:26;;17105:9;17099:4;17095:20;17091:1;17080:9;17076:17;17069:47;17133:131;17259:4;17133:131;:::i;:::-;17125:139;;17023:248;;;:::o;17277:419::-;17443:4;17481:2;17470:9;17466:18;17458:26;;17530:9;17524:4;17520:20;17516:1;17505:9;17501:17;17494:47;17558:131;17684:4;17558:131;:::i;:::-;17550:139;;17448:248;;;:::o;17702:419::-;17868:4;17906:2;17895:9;17891:18;17883:26;;17955:9;17949:4;17945:20;17941:1;17930:9;17926:17;17919:47;17983:131;18109:4;17983:131;:::i;:::-;17975:139;;17873:248;;;:::o;18127:419::-;18293:4;18331:2;18320:9;18316:18;18308:26;;18380:9;18374:4;18370:20;18366:1;18355:9;18351:17;18344:47;18408:131;18534:4;18408:131;:::i;:::-;18400:139;;18298:248;;;:::o;18552:419::-;18718:4;18756:2;18745:9;18741:18;18733:26;;18805:9;18799:4;18795:20;18791:1;18780:9;18776:17;18769:47;18833:131;18959:4;18833:131;:::i;:::-;18825:139;;18723:248;;;:::o;18977:222::-;19070:4;19108:2;19097:9;19093:18;19085:26;;19121:71;19189:1;19178:9;19174:17;19165:6;19121:71;:::i;:::-;19075:124;;;;:::o;19205:483::-;19376:4;19414:2;19403:9;19399:18;19391:26;;19427:71;19495:1;19484:9;19480:17;19471:6;19427:71;:::i;:::-;19545:9;19539:4;19535:20;19530:2;19519:9;19515:18;19508:48;19573:108;19676:4;19667:6;19573:108;:::i;:::-;19565:116;;19381:307;;;;;:::o;19694:831::-;19957:4;19995:3;19984:9;19980:19;19972:27;;20009:71;20077:1;20066:9;20062:17;20053:6;20009:71;:::i;:::-;20090:80;20166:2;20155:9;20151:18;20142:6;20090:80;:::i;:::-;20217:9;20211:4;20207:20;20202:2;20191:9;20187:18;20180:48;20245:108;20348:4;20339:6;20245:108;:::i;:::-;20237:116;;20363:72;20431:2;20420:9;20416:18;20407:6;20363:72;:::i;:::-;20445:73;20513:3;20502:9;20498:19;20489:6;20445:73;:::i;:::-;19962:563;;;;;;;;:::o;20531:214::-;20620:4;20658:2;20647:9;20643:18;20635:26;;20671:67;20735:1;20724:9;20720:17;20711:6;20671:67;:::i;:::-;20625:120;;;;:::o;20751:129::-;20785:6;20812:20;;:::i;:::-;20802:30;;20841:33;20869:4;20861:6;20841:33;:::i;:::-;20792:88;;;:::o;20886:75::-;20919:6;20952:2;20946:9;20936:19;;20926:35;:::o;20967:311::-;21044:4;21134:18;21126:6;21123:30;21120:2;;;21156:18;;:::i;:::-;21120:2;21206:4;21198:6;21194:17;21186:25;;21266:4;21260;21256:15;21248:23;;21049:229;;;:::o;21284:132::-;21351:4;21374:3;21366:11;;21404:4;21399:3;21395:14;21387:22;;21356:60;;;:::o;21422:114::-;21489:6;21523:5;21517:12;21507:22;;21496:40;;;:::o;21542:99::-;21594:6;21628:5;21622:12;21612:22;;21601:40;;;:::o;21647:113::-;21717:4;21749;21744:3;21740:14;21732:22;;21722:38;;;:::o;21766:184::-;21865:11;21899:6;21894:3;21887:19;21939:4;21934:3;21930:14;21915:29;;21877:73;;;;:::o;21956:169::-;22040:11;22074:6;22069:3;22062:19;22114:4;22109:3;22105:14;22090:29;;22052:73;;;;:::o;22131:305::-;22171:3;22190:20;22208:1;22190:20;:::i;:::-;22185:25;;22224:20;22242:1;22224:20;:::i;:::-;22219:25;;22378:1;22310:66;22306:74;22303:1;22300:81;22297:2;;;22384:18;;:::i;:::-;22297:2;22428:1;22425;22421:9;22414:16;;22175:261;;;;:::o;22442:185::-;22482:1;22499:20;22517:1;22499:20;:::i;:::-;22494:25;;22533:20;22551:1;22533:20;:::i;:::-;22528:25;;22572:1;22562:2;;22577:18;;:::i;:::-;22562:2;22619:1;22616;22612:9;22607:14;;22484:143;;;;:::o;22633:348::-;22673:7;22696:20;22714:1;22696:20;:::i;:::-;22691:25;;22730:20;22748:1;22730:20;:::i;:::-;22725:25;;22918:1;22850:66;22846:74;22843:1;22840:81;22835:1;22828:9;22821:17;22817:105;22814:2;;;22925:18;;:::i;:::-;22814:2;22973:1;22970;22966:9;22955:20;;22681:300;;;;:::o;22987:191::-;23027:4;23047:20;23065:1;23047:20;:::i;:::-;23042:25;;23081:20;23099:1;23081:20;:::i;:::-;23076:25;;23120:1;23117;23114:8;23111:2;;;23125:18;;:::i;:::-;23111:2;23170:1;23167;23163:9;23155:17;;23032:146;;;;:::o;23184:96::-;23221:7;23250:24;23268:5;23250:24;:::i;:::-;23239:35;;23229:51;;;:::o;23286:90::-;23320:7;23363:5;23356:13;23349:21;23338:32;;23328:48;;;:::o;23382:126::-;23419:7;23459:42;23452:5;23448:54;23437:65;;23427:81;;;:::o;23514:77::-;23551:7;23580:5;23569:16;;23559:32;;;:::o;23597:86::-;23632:7;23672:4;23665:5;23661:16;23650:27;;23640:43;;;:::o;23689:178::-;23765:9;23798:63;23855:5;23798:63;:::i;:::-;23785:76;;23775:92;;;:::o;23873:139::-;23949:9;23982:24;24000:5;23982:24;:::i;:::-;23969:37;;23959:53;;;:::o;24018:121::-;24076:9;24109:24;24127:5;24109:24;:::i;:::-;24096:37;;24086:53;;;:::o;24145:307::-;24213:1;24223:113;24237:6;24234:1;24231:13;24223:113;;;24322:1;24317:3;24313:11;24307:18;24303:1;24298:3;24294:11;24287:39;24259:2;24256:1;24252:10;24247:15;;24223:113;;;24354:6;24351:1;24348:13;24345:2;;;24434:1;24425:6;24420:3;24416:16;24409:27;24345:2;24194:258;;;;:::o;24458:320::-;24502:6;24539:1;24533:4;24529:12;24519:22;;24586:1;24580:4;24576:12;24607:18;24597:2;;24663:4;24655:6;24651:17;24641:27;;24597:2;24725;24717:6;24714:14;24694:18;24691:38;24688:2;;;24744:18;;:::i;:::-;24688:2;24509:269;;;;:::o;24784:281::-;24867:27;24889:4;24867:27;:::i;:::-;24859:6;24855:40;24997:6;24985:10;24982:22;24961:18;24949:10;24946:34;24943:62;24940:2;;;25008:18;;:::i;:::-;24940:2;25048:10;25044:2;25037:22;24827:238;;;:::o;25071:180::-;25119:77;25116:1;25109:88;25216:4;25213:1;25206:15;25240:4;25237:1;25230:15;25257:180;25305:77;25302:1;25295:88;25402:4;25399:1;25392:15;25426:4;25423:1;25416:15;25443:180;25491:77;25488:1;25481:88;25588:4;25585:1;25578:15;25612:4;25609:1;25602:15;25629:180;25677:77;25674:1;25667:88;25774:4;25771:1;25764:15;25798:4;25795:1;25788:15;25815:180;25863:77;25860:1;25853:88;25960:4;25957:1;25950:15;25984:4;25981:1;25974:15;26001:117;26110:1;26107;26100:12;26124:117;26233:1;26230;26223:12;26247:117;26356:1;26353;26346:12;26370:117;26479:1;26476;26469:12;26493:102;26534:6;26585:2;26581:7;26576:2;26569:5;26565:14;26561:28;26551:38;;26541:54;;;:::o;26601:222::-;26741:34;26737:1;26729:6;26725:14;26718:58;26810:5;26805:2;26797:6;26793:15;26786:30;26707:116;:::o;26829:225::-;26969:34;26965:1;26957:6;26953:14;26946:58;27038:8;27033:2;27025:6;27021:15;27014:33;26935:119;:::o;27060:221::-;27200:34;27196:1;27188:6;27184:14;27177:58;27269:4;27264:2;27256:6;27252:15;27245:29;27166:115;:::o;27287:177::-;27427:29;27423:1;27415:6;27411:14;27404:53;27393:71;:::o;27470:220::-;27610:34;27606:1;27598:6;27594:14;27587:58;27679:3;27674:2;27666:6;27662:15;27655:28;27576:114;:::o;27696:182::-;27836:34;27832:1;27824:6;27820:14;27813:58;27802:76;:::o;27884:228::-;28024:34;28020:1;28012:6;28008:14;28001:58;28093:11;28088:2;28080:6;28076:15;28069:36;27990:122;:::o;28118:224::-;28258:34;28254:1;28246:6;28242:14;28235:58;28327:7;28322:2;28314:6;28310:15;28303:32;28224:118;:::o;28348:168::-;28488:20;28484:1;28476:6;28472:14;28465:44;28454:62;:::o;28522:223::-;28662:34;28658:1;28650:6;28646:14;28639:58;28731:6;28726:2;28718:6;28714:15;28707:31;28628:117;:::o;28751:122::-;28824:24;28842:5;28824:24;:::i;:::-;28817:5;28814:35;28804:2;;28863:1;28860;28853:12;28804:2;28794:79;:::o;28879:116::-;28949:21;28964:5;28949:21;:::i;:::-;28942:5;28939:32;28929:2;;28985:1;28982;28975:12;28929:2;28919:76;:::o;29001:122::-;29074:24;29092:5;29074:24;:::i;:::-;29067:5;29064:35;29054:2;;29113:1;29110;29103:12;29054:2;29044:79;:::o

Swarm Source

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