ETH Price: $2,511.27 (+0.13%)

Token

SuperPEPE (SPEPE)
 

Overview

Max Total Supply

42,000,000 SPEPE

Holders

498

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.16616404024026003 SPEPE

Value
$0.00
0x45e4517ba10992373c527452e88537b41237038d
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:
SPEPEToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-04
*/

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

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 SPEPEToken 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 = "SuperPEPE";
        _symbol = "SPEPE";
        _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"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004c5f38038062004c5f83398181016040528101906200010891906200059d565b60008190506040518060400160405280600981526020017f5375706572504550450000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600581526020017f535045504500000000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a62000223919062000774565b83620002309190620007c5565b601b81905550600360009054906101000a900460ff16600a62000254919062000774565b6001620002629190620007c5565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000437919062000837565b60405180910390a3505050620008b9565b828054620004569062000883565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600080fd5b6000819050919050565b6200051281620004fd565b81146200051e57600080fd5b50565b600081519050620005328162000507565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005658262000538565b9050919050565b620005778162000558565b81146200058357600080fd5b50565b60008151905062000597816200056c565b92915050565b60008060408385031215620005b757620005b6620004f8565b5b6000620005c78582860162000521565b9250506020620005da8582860162000586565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000672578086048111156200064a5762000649620005e4565b5b60018516156200065a5780820291505b80810290506200066a8562000613565b94506200062a565b94509492505050565b6000826200068d576001905062000760565b816200069d576000905062000760565b8160018114620006b65760028114620006c157620006f7565b600191505062000760565b60ff841115620006d657620006d5620005e4565b5b8360020a915084821115620006f057620006ef620005e4565b5b5062000760565b5060208310610133831016604e8410600b8410161715620007315782820a9050838111156200072b576200072a620005e4565b5b62000760565b62000740848484600162000620565b925090508184048111156200075a5762000759620005e4565b5b81810290505b9392505050565b600060ff82169050919050565b60006200078182620004fd565b91506200078e8362000767565b9250620007bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200067b565b905092915050565b6000620007d282620004fd565b9150620007df83620004fd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200081b576200081a620005e4565b5b828202905092915050565b6200083181620004fd565b82525050565b60006020820190506200084e600083018462000826565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089c57607f821691505b60208210811415620008b357620008b262000854565b5b50919050565b61439680620008c96000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a91906133bb565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613485565b610815565b60405161024791906134e0565b60405180910390f35b34801561025c57600080fd5b50610265610833565b604051610272919061355a565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613584565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c8919061359f565b610863565b6040516102da91906134e0565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613584565b60405180910390f35b34801561031a57600080fd5b50610335600480360381019061033091906135f2565b610983565b005b34801561034357600080fd5b5061034c610a5c565b604051610359919061363b565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613485565b610a73565b60405161039691906134e0565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613656565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea91906135f2565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613584565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e91906135f2565b610ca6565b6040516104509190613692565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b91906135f2565b61118a565b60405161048d9190613584565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906136d9565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e19190613692565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b60405161052391906133bb565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613584565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613485565b6114db565b60405161058b91906134e0565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b69190613719565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613485565b61165a565b6040516105f191906134e0565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c9190613692565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613656565b61169d565b005b34801561065a57600080fd5b5061067560048036038101906106709190613719565b61173c565b005b34801561068357600080fd5b5061068c611825565b6040516106999190613692565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613746565b61184b565b6040516106d69190613584565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190613656565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a9190613656565b6119b5565b005b34801561073d57600080fd5b50610758600480360381019061075391906135f2565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c91906136d9565b611c16565b005b606060018054610792906137b5565b80601f01602080910402602001604051908101604052809291908181526020018280546107be906137b5565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d8560405180606001604052806028815260200161431460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b5461281990919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613833565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613833565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613833565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613833565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613868565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613868565b6040518363ffffffff1660e01b8152600401610e77929190613895565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613868565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613868565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613868565b6040518363ffffffff1660e01b8152600401611033929190613895565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613868565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613833565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613833565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e906137b5565b80601f016020809104026020016040519081016040528092919081815260200182805461147a906137b5565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b846115998560405180606001604052806025815260200161433c6025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613833565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613833565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613833565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a91906134e0565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613833565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a29061390a565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613833565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613833565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b509061399c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613833565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613a2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613ac0565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613584565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613b52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb190613be4565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613c76565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d8484846128c1565b90506127ae565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612a94565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506123538882612d4a565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506124378882612d4a565b5b5b5b5b60008211156126ab57600091506000600267ffffffffffffffff81111561246557612464613c96565b5b6040519080825280602002602001820160405280156124935781602001602082028036833780820191505090505b50905088816000815181106124ab576124aa613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087816001815181106124fa576124f9613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612593929190613db2565b60006040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125e89190613f10565b9050806000815181106125fe576125fd613cc5565b5b6020026020010151846126119190613f88565b935061266584600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126fd86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161279d9190613584565b60405180910390a360019450505050505b9392505050565b60008383111582906127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f491906133bb565b60405180910390fd5b506000838561280c9190613f88565b9050809150509392505050565b600061285b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b5565b905092915050565b60008082846128729190613fbc565b9050838110156128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ae9061405e565b60405180910390fd5b8091505092915050565b600061294c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a819190613584565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612aed6002612adf601454612ad160115487612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612b04828461281990919063ffffffff16565b9050612b0f81612eda565b60004790506000612b40612b2f6002601154612d0090919063ffffffff16565b60145461281990919063ffffffff16565b90506000612b7e6002612b7084612b6260115488612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612ba983612b9b60135487612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506000612bd282612bc4858861281990919063ffffffff16565b61281990919063ffffffff16565b90506000811115612c0a57612c09600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613165565b5b6000821115612c4057612c3f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613165565b5b600083118015612c505750600087115b15612c6057612c5f87846131b0565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c985760009050612cfa565b60008284612ca6919061407e565b9050828482612cb59190614107565b14612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec906141aa565b60405180910390fd5b809150505b92915050565b6000612d4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132bf565b905092915050565b601a5460195410612d5a57612ed6565b612dce8160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e488160195461286390919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecd9190613584565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612ef757612ef6613c96565b5b604051908082528060200260200182016040528015612f255781602001602082028036833780820191505090505b5090503081600081518110612f3d57612f3c613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612fdf57600080fd5b505afa158015612ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130179190613868565b8160018151811061302b5761302a613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061309230602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130f6959493929190614205565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613159929190613db2565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131ab573d6000803e3d6000fd5b505050565b6131dd30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132669695949392919061425f565b6060604051808303818588803b15801561327f57600080fd5b505af1158015613293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b891906142c0565b5050505050565b60008083118290613306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fd91906133bb565b60405180910390fd5b50600083856133159190614107565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561335c578082015181840152602081019050613341565b8381111561336b576000848401525b50505050565b6000601f19601f8301169050919050565b600061338d82613322565b613397818561332d565b93506133a781856020860161333e565b6133b081613371565b840191505092915050565b600060208201905081810360008301526133d58184613382565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061341c826133f1565b9050919050565b61342c81613411565b811461343757600080fd5b50565b60008135905061344981613423565b92915050565b6000819050919050565b6134628161344f565b811461346d57600080fd5b50565b60008135905061347f81613459565b92915050565b6000806040838503121561349c5761349b6133e7565b5b60006134aa8582860161343a565b92505060206134bb85828601613470565b9150509250929050565b60008115159050919050565b6134da816134c5565b82525050565b60006020820190506134f560008301846134d1565b92915050565b6000819050919050565b600061352061351b613516846133f1565b6134fb565b6133f1565b9050919050565b600061353282613505565b9050919050565b600061354482613527565b9050919050565b61355481613539565b82525050565b600060208201905061356f600083018461354b565b92915050565b61357e8161344f565b82525050565b60006020820190506135996000830184613575565b92915050565b6000806000606084860312156135b8576135b76133e7565b5b60006135c68682870161343a565b93505060206135d78682870161343a565b92505060406135e886828701613470565b9150509250925092565b600060208284031215613608576136076133e7565b5b60006136168482850161343a565b91505092915050565b600060ff82169050919050565b6136358161361f565b82525050565b6000602082019050613650600083018461362c565b92915050565b60006020828403121561366c5761366b6133e7565b5b600061367a84828501613470565b91505092915050565b61368c81613411565b82525050565b60006020820190506136a76000830184613683565b92915050565b6136b6816134c5565b81146136c157600080fd5b50565b6000813590506136d3816136ad565b92915050565b600080604083850312156136f0576136ef6133e7565b5b60006136fe8582860161343a565b925050602061370f858286016136c4565b9150509250929050565b60006020828403121561372f5761372e6133e7565b5b600061373d848285016136c4565b91505092915050565b6000806040838503121561375d5761375c6133e7565b5b600061376b8582860161343a565b925050602061377c8582860161343a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137cd57607f821691505b602082108114156137e1576137e0613786565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061381d60208361332d565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b60008151905061386281613423565b92915050565b60006020828403121561387e5761387d6133e7565b5b600061388c84828501613853565b91505092915050565b60006040820190506138aa6000830185613683565b6138b76020830184613683565b9392505050565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b60006138f460128361332d565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061398660268361332d565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a1860248361332d565b9150613a23826139bc565b604082019050919050565b60006020820190508181036000830152613a4781613a0b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aaa60228361332d565b9150613ab582613a4e565b604082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b3c60258361332d565b9150613b4782613ae0565b604082019050919050565b60006020820190508181036000830152613b6b81613b2f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613bce60238361332d565b9150613bd982613b72565b604082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c6060298361332d565b9150613c6b82613c04565b604082019050919050565b60006020820190508181036000830152613c8f81613c53565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d2981613411565b82525050565b6000613d3b8383613d20565b60208301905092915050565b6000602082019050919050565b6000613d5f82613cf4565b613d698185613cff565b9350613d7483613d10565b8060005b83811015613da5578151613d8c8882613d2f565b9750613d9783613d47565b925050600181019050613d78565b5085935050505092915050565b6000604082019050613dc76000830185613575565b8181036020830152613dd98184613d54565b90509392505050565b600080fd5b613df082613371565b810181811067ffffffffffffffff82111715613e0f57613e0e613c96565b5b80604052505050565b6000613e226133dd565b9050613e2e8282613de7565b919050565b600067ffffffffffffffff821115613e4e57613e4d613c96565b5b602082029050602081019050919050565b600080fd5b600081519050613e7381613459565b92915050565b6000613e8c613e8784613e33565b613e18565b90508083825260208201905060208402830185811115613eaf57613eae613e5f565b5b835b81811015613ed85780613ec48882613e64565b845260208401935050602081019050613eb1565b5050509392505050565b600082601f830112613ef757613ef6613de2565b5b8151613f07848260208601613e79565b91505092915050565b600060208284031215613f2657613f256133e7565b5b600082015167ffffffffffffffff811115613f4457613f436133ec565b5b613f5084828501613ee2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f938261344f565b9150613f9e8361344f565b925082821015613fb157613fb0613f59565b5b828203905092915050565b6000613fc78261344f565b9150613fd28361344f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561400757614006613f59565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614048601b8361332d565b915061405382614012565b602082019050919050565b600060208201905081810360008301526140778161403b565b9050919050565b60006140898261344f565b91506140948361344f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140cd576140cc613f59565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141128261344f565b915061411d8361344f565b92508261412d5761412c6140d8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061419460218361332d565b915061419f82614138565b604082019050919050565b600060208201905081810360008301526141c381614187565b9050919050565b6000819050919050565b60006141ef6141ea6141e5846141ca565b6134fb565b61344f565b9050919050565b6141ff816141d4565b82525050565b600060a08201905061421a6000830188613575565b61422760208301876141f6565b81810360408301526142398186613d54565b90506142486060830185613683565b6142556080830184613575565b9695505050505050565b600060c0820190506142746000830189613683565b6142816020830188613575565b61428e60408301876141f6565b61429b60608301866141f6565b6142a86080830185613683565b6142b560a0830184613575565b979650505050505050565b6000806000606084860312156142d9576142d86133e7565b5b60006142e786828701613e64565b93505060206142f886828701613e64565b925050604061430986828701613e64565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220beffcf18045b35f36b00993094ec523a1c6f120301718c5d208687f2acdbed4f64736f6c63430008090033000000000000000000000000000000000000000000000000000000000280de800000000000000000000000009a7e8e1c0301ded372c37cb7c153e21af114f249

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a91906133bb565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613485565b610815565b60405161024791906134e0565b60405180910390f35b34801561025c57600080fd5b50610265610833565b604051610272919061355a565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613584565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c8919061359f565b610863565b6040516102da91906134e0565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613584565b60405180910390f35b34801561031a57600080fd5b50610335600480360381019061033091906135f2565b610983565b005b34801561034357600080fd5b5061034c610a5c565b604051610359919061363b565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613485565b610a73565b60405161039691906134e0565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613656565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea91906135f2565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613584565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e91906135f2565b610ca6565b6040516104509190613692565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b91906135f2565b61118a565b60405161048d9190613584565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906136d9565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e19190613692565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b60405161052391906133bb565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613584565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613485565b6114db565b60405161058b91906134e0565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b69190613719565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613485565b61165a565b6040516105f191906134e0565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c9190613692565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613656565b61169d565b005b34801561065a57600080fd5b5061067560048036038101906106709190613719565b61173c565b005b34801561068357600080fd5b5061068c611825565b6040516106999190613692565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613746565b61184b565b6040516106d69190613584565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190613656565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a9190613656565b6119b5565b005b34801561073d57600080fd5b50610758600480360381019061075391906135f2565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c91906136d9565b611c16565b005b606060018054610792906137b5565b80601f01602080910402602001604051908101604052809291908181526020018280546107be906137b5565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d8560405180606001604052806028815260200161431460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b5461281990919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613833565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613833565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613833565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613833565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613868565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613868565b6040518363ffffffff1660e01b8152600401610e77929190613895565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613868565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613868565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613868565b6040518363ffffffff1660e01b8152600401611033929190613895565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613868565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613833565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613833565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e906137b5565b80601f016020809104026020016040519081016040528092919081815260200182805461147a906137b5565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b846115998560405180606001604052806025815260200161433c6025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613833565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613833565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613833565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a91906134e0565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613833565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a29061390a565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613833565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613833565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b509061399c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613833565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613a2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613ac0565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613584565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613b52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb190613be4565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613c76565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d8484846128c1565b90506127ae565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612a94565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506123538882612d4a565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506124378882612d4a565b5b5b5b5b60008211156126ab57600091506000600267ffffffffffffffff81111561246557612464613c96565b5b6040519080825280602002602001820160405280156124935781602001602082028036833780820191505090505b50905088816000815181106124ab576124aa613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087816001815181106124fa576124f9613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612593929190613db2565b60006040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125e89190613f10565b9050806000815181106125fe576125fd613cc5565b5b6020026020010151846126119190613f88565b935061266584600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126fd86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161279d9190613584565b60405180910390a360019450505050505b9392505050565b60008383111582906127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f491906133bb565b60405180910390fd5b506000838561280c9190613f88565b9050809150509392505050565b600061285b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b5565b905092915050565b60008082846128729190613fbc565b9050838110156128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ae9061405e565b60405180910390fd5b8091505092915050565b600061294c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a819190613584565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612aed6002612adf601454612ad160115487612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612b04828461281990919063ffffffff16565b9050612b0f81612eda565b60004790506000612b40612b2f6002601154612d0090919063ffffffff16565b60145461281990919063ffffffff16565b90506000612b7e6002612b7084612b6260115488612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612ba983612b9b60135487612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506000612bd282612bc4858861281990919063ffffffff16565b61281990919063ffffffff16565b90506000811115612c0a57612c09600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613165565b5b6000821115612c4057612c3f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613165565b5b600083118015612c505750600087115b15612c6057612c5f87846131b0565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c985760009050612cfa565b60008284612ca6919061407e565b9050828482612cb59190614107565b14612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec906141aa565b60405180910390fd5b809150505b92915050565b6000612d4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132bf565b905092915050565b601a5460195410612d5a57612ed6565b612dce8160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e488160195461286390919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecd9190613584565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612ef757612ef6613c96565b5b604051908082528060200260200182016040528015612f255781602001602082028036833780820191505090505b5090503081600081518110612f3d57612f3c613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612fdf57600080fd5b505afa158015612ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130179190613868565b8160018151811061302b5761302a613cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061309230602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130f6959493929190614205565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613159929190613db2565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131ab573d6000803e3d6000fd5b505050565b6131dd30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132669695949392919061425f565b6060604051808303818588803b15801561327f57600080fd5b505af1158015613293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b891906142c0565b5050505050565b60008083118290613306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fd91906133bb565b60405180910390fd5b50600083856133159190614107565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561335c578082015181840152602081019050613341565b8381111561336b576000848401525b50505050565b6000601f19601f8301169050919050565b600061338d82613322565b613397818561332d565b93506133a781856020860161333e565b6133b081613371565b840191505092915050565b600060208201905081810360008301526133d58184613382565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061341c826133f1565b9050919050565b61342c81613411565b811461343757600080fd5b50565b60008135905061344981613423565b92915050565b6000819050919050565b6134628161344f565b811461346d57600080fd5b50565b60008135905061347f81613459565b92915050565b6000806040838503121561349c5761349b6133e7565b5b60006134aa8582860161343a565b92505060206134bb85828601613470565b9150509250929050565b60008115159050919050565b6134da816134c5565b82525050565b60006020820190506134f560008301846134d1565b92915050565b6000819050919050565b600061352061351b613516846133f1565b6134fb565b6133f1565b9050919050565b600061353282613505565b9050919050565b600061354482613527565b9050919050565b61355481613539565b82525050565b600060208201905061356f600083018461354b565b92915050565b61357e8161344f565b82525050565b60006020820190506135996000830184613575565b92915050565b6000806000606084860312156135b8576135b76133e7565b5b60006135c68682870161343a565b93505060206135d78682870161343a565b92505060406135e886828701613470565b9150509250925092565b600060208284031215613608576136076133e7565b5b60006136168482850161343a565b91505092915050565b600060ff82169050919050565b6136358161361f565b82525050565b6000602082019050613650600083018461362c565b92915050565b60006020828403121561366c5761366b6133e7565b5b600061367a84828501613470565b91505092915050565b61368c81613411565b82525050565b60006020820190506136a76000830184613683565b92915050565b6136b6816134c5565b81146136c157600080fd5b50565b6000813590506136d3816136ad565b92915050565b600080604083850312156136f0576136ef6133e7565b5b60006136fe8582860161343a565b925050602061370f858286016136c4565b9150509250929050565b60006020828403121561372f5761372e6133e7565b5b600061373d848285016136c4565b91505092915050565b6000806040838503121561375d5761375c6133e7565b5b600061376b8582860161343a565b925050602061377c8582860161343a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137cd57607f821691505b602082108114156137e1576137e0613786565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061381d60208361332d565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b60008151905061386281613423565b92915050565b60006020828403121561387e5761387d6133e7565b5b600061388c84828501613853565b91505092915050565b60006040820190506138aa6000830185613683565b6138b76020830184613683565b9392505050565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b60006138f460128361332d565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061398660268361332d565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a1860248361332d565b9150613a23826139bc565b604082019050919050565b60006020820190508181036000830152613a4781613a0b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aaa60228361332d565b9150613ab582613a4e565b604082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b3c60258361332d565b9150613b4782613ae0565b604082019050919050565b60006020820190508181036000830152613b6b81613b2f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613bce60238361332d565b9150613bd982613b72565b604082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c6060298361332d565b9150613c6b82613c04565b604082019050919050565b60006020820190508181036000830152613c8f81613c53565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d2981613411565b82525050565b6000613d3b8383613d20565b60208301905092915050565b6000602082019050919050565b6000613d5f82613cf4565b613d698185613cff565b9350613d7483613d10565b8060005b83811015613da5578151613d8c8882613d2f565b9750613d9783613d47565b925050600181019050613d78565b5085935050505092915050565b6000604082019050613dc76000830185613575565b8181036020830152613dd98184613d54565b90509392505050565b600080fd5b613df082613371565b810181811067ffffffffffffffff82111715613e0f57613e0e613c96565b5b80604052505050565b6000613e226133dd565b9050613e2e8282613de7565b919050565b600067ffffffffffffffff821115613e4e57613e4d613c96565b5b602082029050602081019050919050565b600080fd5b600081519050613e7381613459565b92915050565b6000613e8c613e8784613e33565b613e18565b90508083825260208201905060208402830185811115613eaf57613eae613e5f565b5b835b81811015613ed85780613ec48882613e64565b845260208401935050602081019050613eb1565b5050509392505050565b600082601f830112613ef757613ef6613de2565b5b8151613f07848260208601613e79565b91505092915050565b600060208284031215613f2657613f256133e7565b5b600082015167ffffffffffffffff811115613f4457613f436133ec565b5b613f5084828501613ee2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f938261344f565b9150613f9e8361344f565b925082821015613fb157613fb0613f59565b5b828203905092915050565b6000613fc78261344f565b9150613fd28361344f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561400757614006613f59565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614048601b8361332d565b915061405382614012565b602082019050919050565b600060208201905081810360008301526140778161403b565b9050919050565b60006140898261344f565b91506140948361344f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140cd576140cc613f59565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141128261344f565b915061411d8361344f565b92508261412d5761412c6140d8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061419460218361332d565b915061419f82614138565b604082019050919050565b600060208201905081810360008301526141c381614187565b9050919050565b6000819050919050565b60006141ef6141ea6141e5846141ca565b6134fb565b61344f565b9050919050565b6141ff816141d4565b82525050565b600060a08201905061421a6000830188613575565b61422760208301876141f6565b81810360408301526142398186613d54565b90506142486060830185613683565b6142556080830184613575565b9695505050505050565b600060c0820190506142746000830189613683565b6142816020830188613575565b61428e60408301876141f6565b61429b60608301866141f6565b6142a86080830185613683565b6142b560a0830184613575565b979650505050505050565b6000806000606084860312156142d9576142d86133e7565b5b60006142e786828701613e64565b93505060206142f886828701613e64565b925050604061430986828701613e64565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220beffcf18045b35f36b00993094ec523a1c6f120301718c5d208687f2acdbed4f64736f6c63430008090033

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

000000000000000000000000000000000000000000000000000000000280de800000000000000000000000009a7e8e1c0301ded372c37cb7c153e21af114f249

-----Decoded View---------------
Arg [0] : supply (uint256): 42000000
Arg [1] : router (address): 0x9a7e8E1C0301dED372c37CB7C153e21Af114f249

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000280de80
Arg [1] : 0000000000000000000000009a7e8e1c0301ded372c37cb7c153e21af114f249


Deployed Bytecode Sourcemap

7278:15074:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10236:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11531:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8874:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10513:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14749:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13455:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13006:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10422:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10899:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12724:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12859:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6198:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13725:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10621:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12045:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5579:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:145;;;;;;;;;;;;;:::i;:::-;;10327:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11402:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11125:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14574:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5455:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12317:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13143:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8922:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10748:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12436:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12603:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5946:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12182:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10236:83;10273:13;10306:5;10299:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10236:83;:::o;11531:161::-;11606:4;11623:39;11632:12;:10;:12::i;:::-;11646:7;11655:6;11623:8;:39::i;:::-;11680:4;11673:11;;11531:161;;;;:::o;8874:41::-;;;;;;;;;;;;;:::o;10513:100::-;10566:7;10593:12;;10586:19;;10513:100;:::o;14749:313::-;14847:4;14864:36;14874:6;14882:9;14893:6;14864:9;:36::i;:::-;;14911:121;14920:6;14928:12;:10;:12::i;:::-;14942:89;14980:6;14942:89;;;;;;;;;;;;;;;;;:11;:19;14954:6;14942:19;;;;;;;;;;;;;;;:33;14962:12;:10;:12::i;:::-;14942:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14911:8;:121::i;:::-;15050:4;15043:11;;14749:313;;;;;:::o;13455:128::-;13508:7;13535:40;13552:22;13562:11;;;;;;;;;;;13552:9;:22::i;:::-;13535:12;;:16;;:40;;;;:::i;:::-;13528:47;;13455:128;:::o;13006:129::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13116:10:::1;13088:17;;:39;;;;;;;;;;;;;;;;;;13006:129:::0;:::o;10422:83::-;10463:5;10488:9;;;;;;;;;;;10481:16;;10422:83;:::o;10899:218::-;10987:4;11004:83;11013:12;:10;:12::i;:::-;11027:7;11036:50;11075:10;11036:11;:25;11048:12;:10;:12::i;:::-;11036:25;;;;;;;;;;;;;;;:34;11062:7;11036:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11004:8;:83::i;:::-;11105:4;11098:11;;10899:218;;;;:::o;12724:125::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12833:8:::1;12806:24;:35;;;;12724:125:::0;:::o;12859:139::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12979:10:::1;12946:22;;:44;;;;;;;;;;;;;;;;;;12859:139:::0;:::o;6198:90::-;6238:7;6265:15;6258:22;;6198:90;:::o;13725:747::-;13805:22;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13842:35:::1;13899:16;13842:74;;13964:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13946:53;;;14008:4;14015:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13946:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13929:110;;14081:1;14055:28;;:14;:28;;;14052:225;;;14169:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14151:74;;;14234:4;14241:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14151:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14134:131;;14052:225;14303:14;14289:11;;:28;;;;;;;;;;;;;;;;;;14369:16;14351:15;;:34;;;;;;;;;;;;;;;;;;14460:4;14423:12;:34;14444:11;;;;;;;;;;;14423:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13829:643;13725:747:::0;;;:::o;10621:119::-;10687:7;10714:9;:18;10724:7;10714:18;;;;;;;;;;;;;;;;10707:25;;10621:119;;;:::o;12045:129::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12158:8:::1;12134:12;:21;12147:7;12134:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12045:129:::0;;:::o;5579:79::-;5617:7;5644:6;;;;;;;;;;;5637:13;;5579:79;:::o;5793:145::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5897:1:::1;5860:40;;5881:6;::::0;::::1;;;;;;;;5860:40;;;;;;;;;;;;5928:1;5911:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5793:145::o:0;10327:87::-;10366:13;10399:7;10392:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10327:87;:::o;11402:121::-;11464:7;11491:24;;11484:31;;11402:121;:::o;11125:269::-;11218:4;11235:129;11244:12;:10;:12::i;:::-;11258:7;11267:96;11306:15;11267:96;;;;;;;;;;;;;;;;;:11;:25;11279:12;:10;:12::i;:::-;11267:25;;;;;;;;;;;;;;;:34;11293:7;11267:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11235:8;:129::i;:::-;11382:4;11375:11;;11125:269;;;;:::o;13322:125::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13431:8:::1;13403:25;;:36;;;;;;;;;;;;;;;;;;13322:125:::0;:::o;14574:167::-;14652:4;14669:42;14679:12;:10;:12::i;:::-;14693:9;14704:6;14669:9;:42::i;:::-;;14729:4;14722:11;;14574:167;;;;:::o;5455:21::-;;;;;;;;;;;;:::o;12317:111::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12410:10:::1;12390:17;:30;;;;12317:111:::0;:::o;13143:171::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13244:8:::1;13220:21;;:32;;;;;;;;;;;;;;;;;;13268:38;13297:8;13268:38;;;;;;:::i;:::-;;;;;;;;13143:171:::0;:::o;8922:26::-;;;;;;;;;;;;;:::o;10748:143::-;10829:7;10856:11;:18;10868:5;10856:18;;;;;;;;;;;;;;;:27;10875:7;10856:27;;;;;;;;;;;;;;;;10849:34;;10748:143;;;;:::o;12436:157::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12527:1:::1;12515:8;:13;;12507:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12577:8;12562:12;:23;;;;12436:157:::0;:::o;12603:111::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12695:11:::1;12680:12;:26;;;;12603:111:::0;:::o;5946:244::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6055:1:::1;6035:22;;:8;:22;;;;6027:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6145:8;6116:38;;6137:6;::::0;::::1;;;;;;;;6116:38;;;;;;;;;;;;6174:8;6165:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5946:244:::0;:::o;12182:127::-;5716:12;:10;:12::i;:::-;5706:22;;:6;;;;;;;;;;:22;;;5698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12295:6:::1;12269:15;:23;12285:6;12269:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12182:127:::0;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11700:337::-;11810:1;11793:19;;:5;:19;;;;11785:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11891:1;11872:21;;:7;:21;;;;11864:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11975:6;11945:11;:18;11957:5;11945:18;;;;;;;;;;;;;;;:27;11964:7;11945:27;;;;;;;;;;;;;;;:36;;;;12013:7;11997:32;;12006:5;11997:32;;;12022:6;11997:32;;;;;;:::i;:::-;;;;;;;;11700:337;;;:::o;15070:2714::-;15157:4;15202:1;15184:20;;:6;:20;;;;15176:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15286:1;15265:23;;:9;:23;;;;15257:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15356:1;15347:6;:10;15339:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15419:16;;;;;;;;;;;15416:2361;;;15468:41;15483:6;15491:9;15502:6;15468:14;:41::i;:::-;15461:48;;;;15416:2361;15562:28;15593:24;15611:4;15593:9;:24::i;:::-;15562:55;;15632:28;15687:24;;15663:20;:48;;15632:79;;15732:23;:44;;;;;15760:16;;;;;;;;;;;15759:17;15732:44;:69;;;;;15781:12;:20;15794:6;15781:20;;;;;;;;;;;;;;;;;;;;;;;;;15780:21;15732:69;:94;;;;;15805:21;;;;;;;;;;;15732:94;15728:301;;;15863:25;;;;;;;;;;;15860:98;;;15934:24;;15911:47;;15860:98;15977:36;15992:20;15977:14;:36::i;:::-;15728:301;16063:53;16085:6;16063:53;;;;;;;;;;;;;;;;;:9;:17;16073:6;16063:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16043:9;:17;16053:6;16043:17;;;;;;;;;;;;;;;:73;;;;16131:17;16165:18;16214:7;:5;:7::i;:::-;16204:17;;:6;:17;;;;:41;;;;;16238:7;:5;:7::i;:::-;16225:20;;:9;:20;;;;16204:41;16200:946;;;16278:58;16332:3;16278:49;16289:37;16311:14;;16289:17;;:21;;:37;;;;:::i;:::-;16278:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16266:70;;16358:12;:20;16371:6;16358:20;;;;;;;;;;;;;;;;;;;;;;;;;16355:774;;;16415:58;16469:3;16415:49;16426:37;16448:14;;16426:17;;:21;;:37;;;;:::i;:::-;16415:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16403:70;;16516:1;16499:14;;:18;:52;;;;;16534:17;;16521:10;;:30;16499:52;16496:212;;;16593:35;16624:3;16593:26;16604:14;;16593:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16580:48;;16655:29;16666:6;16673:10;16655;:29::i;:::-;16496:212;16355:774;;;16753:12;:23;16766:9;16753:23;;;;;;;;;;;;;;;;;;;;;;;;;16750:379;;;16813:60;16869:3;16813:51;16824:39;16847:15;;16824:18;;:22;;:39;;;;:::i;:::-;16813:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16801:72;;16917:1;16899:15;;:19;:53;;;;;16935:17;;16922:10;;:30;16899:53;16896:214;;;16994:36;17026:3;16994:27;17005:15;;16994:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16981:49;;17057:29;17068:6;17075:10;17057;:29::i;:::-;16896:214;16750:379;16355:774;16200:946;17176:1;17164:9;:13;17161:439;;;17211:1;17199:13;;17232:21;17270:1;17256:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17232:40;;17302:6;17292:4;17297:1;17292:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17338:9;17328:4;17333:1;17328:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17367:24;17413:15;;;;;;;;;;;17394:49;;;17444:6;17451:4;17394:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17367:89;;17489:7;17497:1;17489:10;;;;;;;;:::i;:::-;;;;;;;;17476:23;;;;;:::i;:::-;;;17545:39;17574:9;17545;:24;17563:4;17545:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17518:9;:24;17536:4;17518:24;;;;;;;;;;;;;;;:66;;;;17179:421;;17161:439;17652:32;17677:6;17652:9;:20;17662:9;17652:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17629:9;:20;17639:9;17629:20;;;;;;;;;;;;;;;:55;;;;17721:9;17704:35;;17713:6;17704:35;;;17732:6;17704:35;;;;;;:::i;:::-;;;;;;;;17761:4;17754:11;;;;;;15070:2714;;;;;;:::o;1519:192::-;1605:7;1638:1;1633;:6;;1641:12;1625:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1665:9;1681:1;1677;:5;;;;:::i;:::-;1665:17;;1702:1;1695:8;;;1519:192;;;;;:::o;1375:136::-;1433:7;1460:43;1464:1;1467;1460:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1453:50;;1375:136;;;;:::o;1197:170::-;1255:7;1275:9;1291:1;1287;:5;;;;:::i;:::-;1275:17;;1307:1;1302;:6;;1294:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1358:1;1351:8;;;1197:170;;;;:::o;17792:330::-;17885:4;17922:53;17944:6;17922:53;;;;;;;;;;;;;;;;;:9;:17;17932:6;17922:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17902:9;:17;17912:6;17902:17;;;;;;;;;;;;;;;:73;;;;18009:32;18034:6;18009:9;:20;18019:9;18009:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17986:9;:20;17996:9;17986:20;;;;;;;;;;;;;;;:55;;;;18074:9;18057:35;;18066:6;18057:35;;;18085:6;18057:35;;;;;;:::i;:::-;;;;;;;;18110:4;18103:11;;17792:330;;;;;:::o;18130:1032::-;9553:4;9534:16;;:23;;;;;;;;;;;;;;;;;;18204:19:::1;18226:65;18289:1;18226:58;18259:24;;18226:28;18238:15;;18226:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18204:87;;18302:21;18326:24;18338:11;18326:7;:11;;:24;;;;:::i;:::-;18302:48;;18363:31;18380:13;18363:16;:31::i;:::-;18405:22;18430:21;18405:46;;18464:19;18486:52;18515:22;18535:1;18515:15;;:19;;:22;;;;:::i;:::-;18486:24;;:28;;:52;;;;:::i;:::-;18464:74;;18551:26;18580:59;18637:1;18580:52;18620:11;18580:35;18599:15;;18580:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18551:88;;18650:21;18674:47;18709:11;18674:30;18693:10;;18674:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18650:71;;18732:26;18761:57;18804:13;18761:38;18780:18;18761:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18732:86;;18855:1;18834:18;:22;18831:104;;;18871:64;18892:22;;;;;;;;;;;18916:18;18871:20;:64::i;:::-;18831:104;18967:1;18951:13;:17;18948:89;;;18983:54;19004:17;;;;;;;;;;;19023:13;18983:20;:54::i;:::-;18948:89;19074:1;19053:18;:22;:41;;;;;19093:1;19079:11;:15;19053:41;19050:104;;;19109:45;19122:11;19135:18;19109:12;:45::i;:::-;19050:104;18191:971;;;;;;;9599:5:::0;9580:16;;:24;;;;;;;;;;;;;;;;;;18130:1032;:::o;1719:250::-;1777:7;1806:1;1801;:6;1797:47;;;1831:1;1824:8;;;;1797:47;1856:9;1872:1;1868;:5;;;;:::i;:::-;1856:17;;1901:1;1896;1892;:5;;;;:::i;:::-;:10;1884:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1960:1;1953:8;;;1719:250;;;;;:::o;1977:132::-;2035:7;2062:39;2066:1;2069;2062:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2055:46;;1977:132;;;;:::o;22026:321::-;22140:17;;22126:10;;:31;22123:43;;22159:7;;22123:43;22203:35;22230:7;22203:9;:22;22213:11;;;;;;;;;;;22203:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22178:9;:22;22188:11;;;;;;;;;;;22178:22;;;;;;;;;;;;;;;:60;;;;22262:23;22277:7;22262:10;;:14;;:23;;;;:::i;:::-;22249:10;:36;;;;22318:11;;;;;;;;;;;22301:38;;22310:6;22301:38;;;22331:7;22301:38;;;;;;:::i;:::-;;;;;;;;22026:321;;;:::o;19170:658::-;19296:21;19334:1;19320:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19296:40;;19365:4;19347;19352:1;19347:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19391:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19381:4;19386:1;19381:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19426:62;19443:4;19458:15;;;;;;;;;;;19476:11;19426:8;:62::i;:::-;19527:15;;;;;;;;;;;:66;;;19608:11;19634:1;19678:4;19705;19741:15;19527:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19785:35;19802:11;19815:4;19785:35;;;;;;;:::i;:::-;;;;;;;;19225:603;19170:658;:::o;13591:126::-;13683:9;:18;;:26;13702:6;13683:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13591:126;;:::o;19836:520::-;19984:62;20001:4;20016:15;;;;;;;;;;;20034:11;19984:8;:62::i;:::-;20089:15;;;;;;;;;;;:31;;;20128:9;20161:4;20181:11;20207:1;20250;20293:14;;;;;;;;;;;20322:15;20089:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19836:520;;:::o;2117:278::-;2203:7;2235:1;2231;:5;2238:12;2223:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2262:9;2278:1;2274;:5;;;;:::i;:::-;2262:17;;2386:1;2379:8;;;2117:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:329::-;5503:6;5552:2;5540:9;5531:7;5527:23;5523:32;5520:119;;;5558:79;;:::i;:::-;5520:119;5678:1;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5649:117;5444:329;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:329::-;6268:6;6317:2;6305:9;6296:7;6292:23;6288:32;6285:119;;;6323:79;;:::i;:::-;6285:119;6443:1;6468:53;6513:7;6504:6;6493:9;6489:22;6468:53;:::i;:::-;6458:63;;6414:117;6209:329;;;;:::o;6544:118::-;6631:24;6649:5;6631:24;:::i;:::-;6626:3;6619:37;6544:118;;:::o;6668:222::-;6761:4;6799:2;6788:9;6784:18;6776:26;;6812:71;6880:1;6869:9;6865:17;6856:6;6812:71;:::i;:::-;6668:222;;;;:::o;6896:116::-;6966:21;6981:5;6966:21;:::i;:::-;6959:5;6956:32;6946:60;;7002:1;6999;6992:12;6946:60;6896:116;:::o;7018:133::-;7061:5;7099:6;7086:20;7077:29;;7115:30;7139:5;7115:30;:::i;:::-;7018:133;;;;:::o;7157:468::-;7222:6;7230;7279:2;7267:9;7258:7;7254:23;7250:32;7247:119;;;7285:79;;:::i;:::-;7247:119;7405:1;7430:53;7475:7;7466:6;7455:9;7451:22;7430:53;:::i;:::-;7420:63;;7376:117;7532:2;7558:50;7600:7;7591:6;7580:9;7576:22;7558:50;:::i;:::-;7548:60;;7503:115;7157:468;;;;;:::o;7631:323::-;7687:6;7736:2;7724:9;7715:7;7711:23;7707:32;7704:119;;;7742:79;;:::i;:::-;7704:119;7862:1;7887:50;7929:7;7920:6;7909:9;7905:22;7887:50;:::i;:::-;7877:60;;7833:114;7631:323;;;;:::o;7960:474::-;8028:6;8036;8085:2;8073:9;8064:7;8060:23;8056:32;8053:119;;;8091:79;;:::i;:::-;8053:119;8211:1;8236:53;8281:7;8272:6;8261:9;8257:22;8236:53;:::i;:::-;8226:63;;8182:117;8338:2;8364:53;8409:7;8400:6;8389:9;8385:22;8364:53;:::i;:::-;8354:63;;8309:118;7960:474;;;;;:::o;8440:180::-;8488:77;8485:1;8478:88;8585:4;8582:1;8575:15;8609:4;8606:1;8599:15;8626:320;8670:6;8707:1;8701:4;8697:12;8687:22;;8754:1;8748:4;8744:12;8775:18;8765:81;;8831:4;8823:6;8819:17;8809:27;;8765:81;8893:2;8885:6;8882:14;8862:18;8859:38;8856:84;;;8912:18;;:::i;:::-;8856:84;8677:269;8626:320;;;:::o;8952:182::-;9092:34;9088:1;9080:6;9076:14;9069:58;8952:182;:::o;9140:366::-;9282:3;9303:67;9367:2;9362:3;9303:67;:::i;:::-;9296:74;;9379:93;9468:3;9379:93;:::i;:::-;9497:2;9492:3;9488:12;9481:19;;9140:366;;;:::o;9512:419::-;9678:4;9716:2;9705:9;9701:18;9693:26;;9765:9;9759:4;9755:20;9751:1;9740:9;9736:17;9729:47;9793:131;9919:4;9793:131;:::i;:::-;9785:139;;9512:419;;;:::o;9937:143::-;9994:5;10025:6;10019:13;10010:22;;10041:33;10068:5;10041:33;:::i;:::-;9937:143;;;;:::o;10086:351::-;10156:6;10205:2;10193:9;10184:7;10180:23;10176:32;10173:119;;;10211:79;;:::i;:::-;10173:119;10331:1;10356:64;10412:7;10403:6;10392:9;10388:22;10356:64;:::i;:::-;10346:74;;10302:128;10086:351;;;;:::o;10443:332::-;10564:4;10602:2;10591:9;10587:18;10579:26;;10615:71;10683:1;10672:9;10668:17;10659:6;10615:71;:::i;:::-;10696:72;10764:2;10753:9;10749:18;10740:6;10696:72;:::i;:::-;10443:332;;;;;:::o;10781:168::-;10921:20;10917:1;10909:6;10905:14;10898:44;10781:168;:::o;10955:366::-;11097:3;11118:67;11182:2;11177:3;11118:67;:::i;:::-;11111:74;;11194:93;11283:3;11194:93;:::i;:::-;11312:2;11307:3;11303:12;11296:19;;10955:366;;;:::o;11327:419::-;11493:4;11531:2;11520:9;11516:18;11508:26;;11580:9;11574:4;11570:20;11566:1;11555:9;11551:17;11544:47;11608:131;11734:4;11608:131;:::i;:::-;11600:139;;11327:419;;;:::o;11752:225::-;11892:34;11888:1;11880:6;11876:14;11869:58;11961:8;11956:2;11948:6;11944:15;11937:33;11752:225;:::o;11983:366::-;12125:3;12146:67;12210:2;12205:3;12146:67;:::i;:::-;12139:74;;12222:93;12311:3;12222:93;:::i;:::-;12340:2;12335:3;12331:12;12324:19;;11983:366;;;:::o;12355:419::-;12521:4;12559:2;12548:9;12544:18;12536:26;;12608:9;12602:4;12598:20;12594:1;12583:9;12579:17;12572:47;12636:131;12762:4;12636:131;:::i;:::-;12628:139;;12355:419;;;:::o;12780:223::-;12920:34;12916:1;12908:6;12904:14;12897:58;12989:6;12984:2;12976:6;12972:15;12965:31;12780:223;:::o;13009:366::-;13151:3;13172:67;13236:2;13231:3;13172:67;:::i;:::-;13165:74;;13248:93;13337:3;13248:93;:::i;:::-;13366:2;13361:3;13357:12;13350:19;;13009:366;;;:::o;13381:419::-;13547:4;13585:2;13574:9;13570:18;13562:26;;13634:9;13628:4;13624:20;13620:1;13609:9;13605:17;13598:47;13662:131;13788:4;13662:131;:::i;:::-;13654:139;;13381:419;;;:::o;13806:221::-;13946:34;13942:1;13934:6;13930:14;13923:58;14015:4;14010:2;14002:6;13998:15;13991:29;13806:221;:::o;14033:366::-;14175:3;14196:67;14260:2;14255:3;14196:67;:::i;:::-;14189:74;;14272:93;14361:3;14272:93;:::i;:::-;14390:2;14385:3;14381:12;14374:19;;14033:366;;;:::o;14405:419::-;14571:4;14609:2;14598:9;14594:18;14586:26;;14658:9;14652:4;14648:20;14644:1;14633:9;14629:17;14622:47;14686:131;14812:4;14686:131;:::i;:::-;14678:139;;14405:419;;;:::o;14830:224::-;14970:34;14966:1;14958:6;14954:14;14947:58;15039:7;15034:2;15026:6;15022:15;15015:32;14830:224;:::o;15060:366::-;15202:3;15223:67;15287:2;15282:3;15223:67;:::i;:::-;15216:74;;15299:93;15388:3;15299:93;:::i;:::-;15417:2;15412:3;15408:12;15401:19;;15060:366;;;:::o;15432:419::-;15598:4;15636:2;15625:9;15621:18;15613:26;;15685:9;15679:4;15675:20;15671:1;15660:9;15656:17;15649:47;15713:131;15839:4;15713:131;:::i;:::-;15705:139;;15432:419;;;:::o;15857:222::-;15997:34;15993:1;15985:6;15981:14;15974:58;16066:5;16061:2;16053:6;16049:15;16042:30;15857:222;:::o;16085:366::-;16227:3;16248:67;16312:2;16307:3;16248:67;:::i;:::-;16241:74;;16324:93;16413:3;16324:93;:::i;:::-;16442:2;16437:3;16433:12;16426:19;;16085:366;;;:::o;16457:419::-;16623:4;16661:2;16650:9;16646:18;16638:26;;16710:9;16704:4;16700:20;16696:1;16685:9;16681:17;16674:47;16738:131;16864:4;16738:131;:::i;:::-;16730:139;;16457:419;;;:::o;16882:228::-;17022:34;17018:1;17010:6;17006:14;16999:58;17091:11;17086:2;17078:6;17074:15;17067:36;16882:228;:::o;17116:366::-;17258:3;17279:67;17343:2;17338:3;17279:67;:::i;:::-;17272:74;;17355:93;17444:3;17355:93;:::i;:::-;17473:2;17468:3;17464:12;17457:19;;17116:366;;;:::o;17488:419::-;17654:4;17692:2;17681:9;17677:18;17669:26;;17741:9;17735:4;17731:20;17727:1;17716:9;17712:17;17705:47;17769:131;17895:4;17769:131;:::i;:::-;17761:139;;17488:419;;;:::o;17913:180::-;17961:77;17958:1;17951:88;18058:4;18055:1;18048:15;18082:4;18079:1;18072:15;18099:180;18147:77;18144:1;18137:88;18244:4;18241:1;18234:15;18268:4;18265:1;18258:15;18285:114;18352:6;18386:5;18380:12;18370:22;;18285:114;;;:::o;18405:184::-;18504:11;18538:6;18533:3;18526:19;18578:4;18573:3;18569:14;18554:29;;18405:184;;;;:::o;18595:132::-;18662:4;18685:3;18677:11;;18715:4;18710:3;18706:14;18698:22;;18595:132;;;:::o;18733:108::-;18810:24;18828:5;18810:24;:::i;:::-;18805:3;18798:37;18733:108;;:::o;18847:179::-;18916:10;18937:46;18979:3;18971:6;18937:46;:::i;:::-;19015:4;19010:3;19006:14;18992:28;;18847:179;;;;:::o;19032:113::-;19102:4;19134;19129:3;19125:14;19117:22;;19032:113;;;:::o;19181:732::-;19300:3;19329:54;19377:5;19329:54;:::i;:::-;19399:86;19478:6;19473:3;19399:86;:::i;:::-;19392:93;;19509:56;19559:5;19509:56;:::i;:::-;19588:7;19619:1;19604:284;19629:6;19626:1;19623:13;19604:284;;;19705:6;19699:13;19732:63;19791:3;19776:13;19732:63;:::i;:::-;19725:70;;19818:60;19871:6;19818:60;:::i;:::-;19808:70;;19664:224;19651:1;19648;19644:9;19639:14;;19604:284;;;19608:14;19904:3;19897:10;;19305:608;;;19181:732;;;;:::o;19919:483::-;20090:4;20128:2;20117:9;20113:18;20105:26;;20141:71;20209:1;20198:9;20194:17;20185:6;20141:71;:::i;:::-;20259:9;20253:4;20249:20;20244:2;20233:9;20229:18;20222:48;20287:108;20390:4;20381:6;20287:108;:::i;:::-;20279:116;;19919:483;;;;;:::o;20408:117::-;20517:1;20514;20507:12;20531:281;20614:27;20636:4;20614:27;:::i;:::-;20606:6;20602:40;20744:6;20732:10;20729:22;20708:18;20696:10;20693:34;20690:62;20687:88;;;20755:18;;:::i;:::-;20687:88;20795:10;20791:2;20784:22;20574:238;20531:281;;:::o;20818:129::-;20852:6;20879:20;;:::i;:::-;20869:30;;20908:33;20936:4;20928:6;20908:33;:::i;:::-;20818:129;;;:::o;20953:311::-;21030:4;21120:18;21112:6;21109:30;21106:56;;;21142:18;;:::i;:::-;21106:56;21192:4;21184:6;21180:17;21172:25;;21252:4;21246;21242:15;21234:23;;20953:311;;;:::o;21270:117::-;21379:1;21376;21369:12;21393:143;21450:5;21481:6;21475:13;21466:22;;21497:33;21524:5;21497:33;:::i;:::-;21393:143;;;;:::o;21559:732::-;21666:5;21691:81;21707:64;21764:6;21707:64;:::i;:::-;21691:81;:::i;:::-;21682:90;;21792:5;21821:6;21814:5;21807:21;21855:4;21848:5;21844:16;21837:23;;21908:4;21900:6;21896:17;21888:6;21884:30;21937:3;21929:6;21926:15;21923:122;;;21956:79;;:::i;:::-;21923:122;22071:6;22054:231;22088:6;22083:3;22080:15;22054:231;;;22163:3;22192:48;22236:3;22224:10;22192:48;:::i;:::-;22187:3;22180:61;22270:4;22265:3;22261:14;22254:21;;22130:155;22114:4;22109:3;22105:14;22098:21;;22054:231;;;22058:21;21672:619;;21559:732;;;;;:::o;22314:385::-;22396:5;22445:3;22438:4;22430:6;22426:17;22422:27;22412:122;;22453:79;;:::i;:::-;22412:122;22563:6;22557:13;22588:105;22689:3;22681:6;22674:4;22666:6;22662:17;22588:105;:::i;:::-;22579:114;;22402:297;22314:385;;;;:::o;22705:554::-;22800:6;22849:2;22837:9;22828:7;22824:23;22820:32;22817:119;;;22855:79;;:::i;:::-;22817:119;22996:1;22985:9;22981:17;22975:24;23026:18;23018:6;23015:30;23012:117;;;23048:79;;:::i;:::-;23012:117;23153:89;23234:7;23225:6;23214:9;23210:22;23153:89;:::i;:::-;23143:99;;22946:306;22705:554;;;;:::o;23265:180::-;23313:77;23310:1;23303:88;23410:4;23407:1;23400:15;23434:4;23431:1;23424:15;23451:191;23491:4;23511:20;23529:1;23511:20;:::i;:::-;23506:25;;23545:20;23563:1;23545:20;:::i;:::-;23540:25;;23584:1;23581;23578:8;23575:34;;;23589:18;;:::i;:::-;23575:34;23634:1;23631;23627:9;23619:17;;23451:191;;;;:::o;23648:305::-;23688:3;23707:20;23725:1;23707:20;:::i;:::-;23702:25;;23741:20;23759:1;23741:20;:::i;:::-;23736:25;;23895:1;23827:66;23823:74;23820:1;23817:81;23814:107;;;23901:18;;:::i;:::-;23814:107;23945:1;23942;23938:9;23931:16;;23648:305;;;;:::o;23959:177::-;24099:29;24095:1;24087:6;24083:14;24076:53;23959:177;:::o;24142:366::-;24284:3;24305:67;24369:2;24364:3;24305:67;:::i;:::-;24298:74;;24381:93;24470:3;24381:93;:::i;:::-;24499:2;24494:3;24490:12;24483:19;;24142:366;;;:::o;24514:419::-;24680:4;24718:2;24707:9;24703:18;24695:26;;24767:9;24761:4;24757:20;24753:1;24742:9;24738:17;24731:47;24795:131;24921:4;24795:131;:::i;:::-;24787:139;;24514:419;;;:::o;24939:348::-;24979:7;25002:20;25020:1;25002:20;:::i;:::-;24997:25;;25036:20;25054:1;25036:20;:::i;:::-;25031:25;;25224:1;25156:66;25152:74;25149:1;25146:81;25141:1;25134:9;25127:17;25123:105;25120:131;;;25231:18;;:::i;:::-;25120:131;25279:1;25276;25272:9;25261:20;;24939:348;;;;:::o;25293:180::-;25341:77;25338:1;25331:88;25438:4;25435:1;25428:15;25462:4;25459:1;25452:15;25479:185;25519:1;25536:20;25554:1;25536:20;:::i;:::-;25531:25;;25570:20;25588:1;25570:20;:::i;:::-;25565:25;;25609:1;25599:35;;25614:18;;:::i;:::-;25599:35;25656:1;25653;25649:9;25644:14;;25479:185;;;;:::o;25670:220::-;25810:34;25806:1;25798:6;25794:14;25787:58;25879:3;25874:2;25866:6;25862:15;25855:28;25670:220;:::o;25896:366::-;26038:3;26059:67;26123:2;26118:3;26059:67;:::i;:::-;26052:74;;26135:93;26224:3;26135:93;:::i;:::-;26253:2;26248:3;26244:12;26237:19;;25896:366;;;:::o;26268:419::-;26434:4;26472:2;26461:9;26457:18;26449:26;;26521:9;26515:4;26511:20;26507:1;26496:9;26492:17;26485:47;26549:131;26675:4;26549:131;:::i;:::-;26541:139;;26268:419;;;:::o;26693:85::-;26738:7;26767:5;26756:16;;26693:85;;;:::o;26784:158::-;26842:9;26875:61;26893:42;26902:32;26928:5;26902:32;:::i;:::-;26893:42;:::i;:::-;26875:61;:::i;:::-;26862:74;;26784:158;;;:::o;26948:147::-;27043:45;27082:5;27043:45;:::i;:::-;27038:3;27031:58;26948:147;;:::o;27101:831::-;27364:4;27402:3;27391:9;27387:19;27379:27;;27416:71;27484:1;27473:9;27469:17;27460:6;27416:71;:::i;:::-;27497:80;27573:2;27562:9;27558:18;27549:6;27497:80;:::i;:::-;27624:9;27618:4;27614:20;27609:2;27598:9;27594:18;27587:48;27652:108;27755:4;27746:6;27652:108;:::i;:::-;27644:116;;27770:72;27838:2;27827:9;27823:18;27814:6;27770:72;:::i;:::-;27852:73;27920:3;27909:9;27905:19;27896:6;27852:73;:::i;:::-;27101:831;;;;;;;;:::o;27938:807::-;28187:4;28225:3;28214:9;28210:19;28202:27;;28239:71;28307:1;28296:9;28292:17;28283:6;28239:71;:::i;:::-;28320:72;28388:2;28377:9;28373:18;28364:6;28320:72;:::i;:::-;28402:80;28478:2;28467:9;28463:18;28454:6;28402:80;:::i;:::-;28492;28568:2;28557:9;28553:18;28544:6;28492:80;:::i;:::-;28582:73;28650:3;28639:9;28635:19;28626:6;28582:73;:::i;:::-;28665;28733:3;28722:9;28718:19;28709:6;28665:73;:::i;:::-;27938:807;;;;;;;;;:::o;28751:663::-;28839:6;28847;28855;28904:2;28892:9;28883:7;28879:23;28875:32;28872:119;;;28910:79;;:::i;:::-;28872:119;29030:1;29055:64;29111:7;29102:6;29091:9;29087:22;29055:64;:::i;:::-;29045:74;;29001:128;29168:2;29194:64;29250:7;29241:6;29230:9;29226:22;29194:64;:::i;:::-;29184:74;;29139:129;29307:2;29333:64;29389:7;29380:6;29369:9;29365:22;29333:64;:::i;:::-;29323:74;;29278:129;28751:663;;;;;:::o

Swarm Source

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