ETH Price: $2,646.51 (+0.76%)

Token

wenlambos (WENLAMBOS)
 

Overview

Max Total Supply

15,000,000 WENLAMBOS

Holders

230

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
wenlambos

Compiler Version
v0.8.5+commit.a4f2e591

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-08
*/

/**
Lamborghini, a luxury sports car, 

WEN lambo a meme for the public !
*/

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

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 wenlambos 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 private 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 = "wenlambos";
        _symbol = "WENLAMBOS";
        _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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004b7638038062004b76833981810160405281019062000108919062000526565b60008190506040518060400160405280600981526020017f77656e6c616d626f730000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600981526020017f57454e4c414d424f53000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620002239190620005f6565b8362000230919062000733565b601b81905550600360009054906101000a900460ff16600a620002549190620005f6565b600162000262919062000733565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b546040516200043791906200057e565b60405180910390a3505050620008b9565b8280546200045690620007df565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600081519050620005098162000885565b92915050565b60008151905062000520816200089f565b92915050565b6000806040838503121562000540576200053f62000873565b5b600062000550858286016200050f565b92505060206200056385828601620004f8565b9150509250929050565b6200057881620007c8565b82525050565b60006020820190506200059560008301846200056d565b92915050565b6000808291508390505b6001851115620005ed57808604811115620005c557620005c462000815565b5b6001851615620005d55780820291505b8081029050620005e58562000878565b9450620005a5565b94509492505050565b60006200060382620007c8565b91506200061083620007d2565b92506200063f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000647565b905092915050565b6000826200065957600190506200072c565b816200066957600090506200072c565b81600181146200068257600281146200068d57620006c3565b60019150506200072c565b60ff841115620006a257620006a162000815565b5b8360020a915084821115620006bc57620006bb62000815565b5b506200072c565b5060208310610133831016604e8410600b8410161715620006fd5782820a905083811115620006f757620006f662000815565b5b6200072c565b6200070c84848460016200059b565b9250905081840481111562000726576200072562000815565b5b81810290505b9392505050565b60006200074082620007c8565b91506200074d83620007c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000789576200078862000815565b5b828202905092915050565b6000620007a182620007a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620007f857607f821691505b602082108114156200080f576200080e62000844565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b620008908162000794565b81146200089c57600080fd5b50565b620008aa81620007c8565b8114620008b657600080fd5b50565b6142ad80620008c96000396000f3fe6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff9190613957565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906134fa565b6107df565b60405161023c919061393c565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b6040516102679190613ab9565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613467565b610807565b6040516102a4919061393c565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf9190613ab9565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906133cd565b610927565b005b34801561030d57600080fd5b50610316610a00565b6040516103239190613b5e565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906134fa565b610a17565b604051610360919061393c565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906135b0565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b491906133cd565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd9190613ab9565b60405180910390f35b3480156103f257600080fd5b5061040d600480360381019061040891906133cd565b610c4a565b60405161041a9190613897565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906133cd565b61112e565b6040516104579190613ab9565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906134ba565b611177565b005b34801561049557600080fd5b5061049e611267565b6040516104ab9190613897565b60405180910390f35b3480156104c057600080fd5b506104c9611290565b005b3480156104d757600080fd5b506104e06113e3565b6040516104ed9190613957565b60405180910390f35b34801561050257600080fd5b5061050b611475565b6040516105189190613ab9565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906134fa565b61147f565b604051610555919061393c565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613583565b61154c565b005b34801561059357600080fd5b506105ae60048036038101906105a991906134fa565b6115fe565b6040516105bb919061393c565b60405180910390f35b3480156105d057600080fd5b506105d961161d565b6040516105e69190613897565b60405180910390f35b3480156105fb57600080fd5b50610616600480360381019061061191906135b0565b611641565b005b34801561062457600080fd5b5061063f600480360381019061063a9190613583565b6116e0565b005b34801561064d57600080fd5b506106566117c9565b6040516106639190613897565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613427565b6117ef565b6040516106a09190613ab9565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb91906135b0565b611876565b005b3480156106de57600080fd5b506106f960048036038101906106f491906135b0565b611959565b005b34801561070757600080fd5b50610722600480360381019061071d91906133cd565b6119f8565b005b34801561073057600080fd5b5061074b600480360381019061074691906134ba565b611bba565b005b60606001805461075c90613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461078890613dce565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611caa565b8484611cb2565b6001905092915050565b6000601b54905090565b6000610814848484611e7d565b506108d684610821611caa565b6108d18560405180606001604052806028815260200161422b60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661112e565b601b546127bd90919063ffffffff16565b905090565b61092f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b390613a19565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611caa565b84610abb8560076000610a35611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b611cb2565b6001905092915050565b610ad2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613a19565b60405180910390fd5b80601e8190555050565b610b71611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590613a19565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd890613a19565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6491906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906133fa565b6040518363ffffffff1660e01b8152600401610e1b9291906138b2565b60206040518083038186803b158015610e3357600080fd5b505afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b91906133fa565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2091906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba91906133fa565b6040518363ffffffff1660e01b8152600401610fd79291906138b2565b602060405180830381600087803b158015610ff157600080fd5b505af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102991906133fa565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61117f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613a19565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611298611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546113f290613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461141e90613dce565b801561146b5780601f106114405761010080835404028352916020019161146b565b820191906000526020600020905b81548152906001019060200180831161144e57829003601f168201915b5050505050905090565b6000601e54905090565b600061154261148c611caa565b8461153d8560405180606001604052806025815260200161425360259139600760006114b6611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b6001905092915050565b611554611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613a19565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061161261160b611caa565b8484611e7d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611649611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613a19565b60405180910390fd5b80601a8190555050565b6116e8611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90613a19565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117be919061393c565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61187e611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613a19565b60405180910390fd5b600381111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690613a79565b60405180910390fd5b80601f8190555050565b611961611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e590613a19565b60405180910390fd5b80601c8190555050565b611a00611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613999565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bc2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613a19565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990613a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d89906139b9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e709190613ab9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590613a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590613979565b60405180910390fd5b60008211611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613a39565b60405180910390fd5b602260149054906101000a900460ff1615611fc857611fc1848484612865565b9050612752565b6000611fd33061112e565b90506000601e548210159050808015611ff95750602260149054906101000a900460ff16155b801561204f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120675750602260159054906101000a900460ff165b1561209157602260169054906101000a900460ff161561208757601e5491505b61209082612a38565b5b61211a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612168611267565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156121d657506121a6611267565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156123df5761221760646122096121fa601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122fd576122a7606461229961228a601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006010541180156122be5750601a54601954105b156122f8576122eb60646122dd60105489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506122f78882612cee565b5b6123de565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123dd5761238b606461237d61236e601854600c546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006018541180156123a25750601a54601954105b156123dc576123cf60646123c160185489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506123db8882612cee565b5b5b5b5b600082111561264f57600091506000600267ffffffffffffffff81111561240957612408613eed565b5b6040519080825280602002602001820160405280156124375781602001602082028036833780820191505090505b509050888160008151811061244f5761244e613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061249e5761249d613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612537929190613ad4565b60006040518083038186803b15801561254f57600080fd5b505afa158015612563573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258c919061353a565b9050806000815181106125a2576125a1613ebe565b5b6020026020010151846125b59190613d00565b935061260984600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126a186600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516127419190613ab9565b60405180910390a360019450505050505b9392505050565b60008383111582906127a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127989190613957565b60405180910390fd5b50600083856127b09190613d00565b9050809150509392505050565b60006127ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612759565b905092915050565b60008082846128169190613c1f565b90508381101561285b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612852906139d9565b60405180910390fd5b8091505092915050565b60006128f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a259190613ab9565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a916002612a83601454612a7560115487612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612aa882846127bd90919063ffffffff16565b9050612ab381612e7e565b60004790506000612ae4612ad36002601154612ca490919063ffffffff16565b6014546127bd90919063ffffffff16565b90506000612b226002612b1484612b0660115488612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612b4d83612b3f60135487612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506000612b7682612b6885886127bd90919063ffffffff16565b6127bd90919063ffffffff16565b90506000811115612bae57612bad600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613109565b5b6000821115612be457612be3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613109565b5b600083118015612bf45750600087115b15612c0457612c038784613154565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c3c5760009050612c9e565b60008284612c4a9190613ca6565b9050828482612c599190613c75565b14612c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c90906139f9565b60405180910390fd5b809150505b92915050565b6000612ce683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613263565b905092915050565b601a5460195410612cfe57612e7a565b612d728160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dec8160195461280790919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e719190613ab9565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e9b57612e9a613eed565b5b604051908082528060200260200182016040528015612ec95781602001602082028036833780820191505090505b5090503081600081518110612ee157612ee0613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb91906133fa565b81600181518110612fcf57612fce613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061303630602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161309a959493929190613b04565b600060405180830381600087803b1580156130b457600080fd5b505af11580156130c8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516130fd929190613ad4565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561314f573d6000803e3d6000fd5b505050565b61318130602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320a969594939291906138db565b6060604051808303818588803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325c91906135dd565b5050505050565b600080831182906132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a19190613957565b60405180910390fd5b50600083856132b99190613c75565b9050809150509392505050565b60006132d96132d484613b9e565b613b79565b905080838252602082019050828560208602820111156132fc576132fb613f21565b5b60005b8581101561332c578161331288826133b8565b8452602084019350602083019250506001810190506132ff565b5050509392505050565b600081359050613345816141e5565b92915050565b60008151905061335a816141e5565b92915050565b600082601f83011261337557613374613f1c565b5b81516133858482602086016132c6565b91505092915050565b60008135905061339d816141fc565b92915050565b6000813590506133b281614213565b92915050565b6000815190506133c781614213565b92915050565b6000602082840312156133e3576133e2613f2b565b5b60006133f184828501613336565b91505092915050565b6000602082840312156134105761340f613f2b565b5b600061341e8482850161334b565b91505092915050565b6000806040838503121561343e5761343d613f2b565b5b600061344c85828601613336565b925050602061345d85828601613336565b9150509250929050565b6000806000606084860312156134805761347f613f2b565b5b600061348e86828701613336565b935050602061349f86828701613336565b92505060406134b0868287016133a3565b9150509250925092565b600080604083850312156134d1576134d0613f2b565b5b60006134df85828601613336565b92505060206134f08582860161338e565b9150509250929050565b6000806040838503121561351157613510613f2b565b5b600061351f85828601613336565b9250506020613530858286016133a3565b9150509250929050565b6000602082840312156135505761354f613f2b565b5b600082015167ffffffffffffffff81111561356e5761356d613f26565b5b61357a84828501613360565b91505092915050565b60006020828403121561359957613598613f2b565b5b60006135a78482850161338e565b91505092915050565b6000602082840312156135c6576135c5613f2b565b5b60006135d4848285016133a3565b91505092915050565b6000806000606084860312156135f6576135f5613f2b565b5b6000613604868287016133b8565b9350506020613615868287016133b8565b9250506040613626868287016133b8565b9150509250925092565b600061363c8383613648565b60208301905092915050565b61365181613d34565b82525050565b61366081613d34565b82525050565b600061367182613bda565b61367b8185613bfd565b935061368683613bca565b8060005b838110156136b757815161369e8882613630565b97506136a983613bf0565b92505060018101905061368a565b5085935050505092915050565b6136cd81613d46565b82525050565b6136dc81613d89565b82525050565b60006136ed82613be5565b6136f78185613c0e565b9350613707818560208601613d9b565b61371081613f30565b840191505092915050565b6000613728602383613c0e565b915061373382613f41565b604082019050919050565b600061374b602683613c0e565b915061375682613f90565b604082019050919050565b600061376e602283613c0e565b915061377982613fdf565b604082019050919050565b6000613791601b83613c0e565b915061379c8261402e565b602082019050919050565b60006137b4602183613c0e565b91506137bf82614057565b604082019050919050565b60006137d7602083613c0e565b91506137e2826140a6565b602082019050919050565b60006137fa602983613c0e565b9150613805826140cf565b604082019050919050565b600061381d602583613c0e565b91506138288261411e565b604082019050919050565b6000613840601283613c0e565b915061384b8261416d565b602082019050919050565b6000613863602483613c0e565b915061386e82614196565b604082019050919050565b61388281613d72565b82525050565b61389181613d7c565b82525050565b60006020820190506138ac6000830184613657565b92915050565b60006040820190506138c76000830185613657565b6138d46020830184613657565b9392505050565b600060c0820190506138f06000830189613657565b6138fd6020830188613879565b61390a60408301876136d3565b61391760608301866136d3565b6139246080830185613657565b61393160a0830184613879565b979650505050505050565b600060208201905061395160008301846136c4565b92915050565b6000602082019050818103600083015261397181846136e2565b905092915050565b600060208201905081810360008301526139928161371b565b9050919050565b600060208201905081810360008301526139b28161373e565b9050919050565b600060208201905081810360008301526139d281613761565b9050919050565b600060208201905081810360008301526139f281613784565b9050919050565b60006020820190508181036000830152613a12816137a7565b9050919050565b60006020820190508181036000830152613a32816137ca565b9050919050565b60006020820190508181036000830152613a52816137ed565b9050919050565b60006020820190508181036000830152613a7281613810565b9050919050565b60006020820190508181036000830152613a9281613833565b9050919050565b60006020820190508181036000830152613ab281613856565b9050919050565b6000602082019050613ace6000830184613879565b92915050565b6000604082019050613ae96000830185613879565b8181036020830152613afb8184613666565b90509392505050565b600060a082019050613b196000830188613879565b613b2660208301876136d3565b8181036040830152613b388186613666565b9050613b476060830185613657565b613b546080830184613879565b9695505050505050565b6000602082019050613b736000830184613888565b92915050565b6000613b83613b94565b9050613b8f8282613e00565b919050565b6000604051905090565b600067ffffffffffffffff821115613bb957613bb8613eed565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c2a82613d72565b9150613c3583613d72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c6a57613c69613e31565b5b828201905092915050565b6000613c8082613d72565b9150613c8b83613d72565b925082613c9b57613c9a613e60565b5b828204905092915050565b6000613cb182613d72565b9150613cbc83613d72565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf557613cf4613e31565b5b828202905092915050565b6000613d0b82613d72565b9150613d1683613d72565b925082821015613d2957613d28613e31565b5b828203905092915050565b6000613d3f82613d52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d9482613d72565b9050919050565b60005b83811015613db9578082015181840152602081019050613d9e565b83811115613dc8576000848401525b50505050565b60006002820490506001821680613de657607f821691505b60208210811415613dfa57613df9613e8f565b5b50919050565b613e0982613f30565b810181811067ffffffffffffffff82111715613e2857613e27613eed565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141ee81613d34565b81146141f957600080fd5b50565b61420581613d46565b811461421057600080fd5b50565b61421c81613d72565b811461422757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206a6b296c704a0c8937afbb39064371534c5993932fd74f68773751737e9ac15964736f6c634300080500330000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000015ad0b3214bd56297e65e75116dd06d46573e7ea

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063914eb66a116100f7578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106a9578063ec28438a146106d2578063f2fde38b146106fb578063f84ba65d14610724576101d8565b8063b6b36643146105ef578063c49b9a8014610618578063c816841b14610641578063dd62ed3e1461066c576101d8565b8063a457c2d7116100d1578063a457c2d714610521578063a5d69d1f1461055e578063a9059cbb14610587578063b2bdfa7b146105c4576101d8565b8063914eb66a146104b457806395d89b41146104cb578063a073d37f146104f6576101d8565b8063395093511161016f5780635881f3ef1161013e5780635881f3ef146103e657806370a0823114610423578063844d591c146104605780638da5cb5b14610489576101d8565b8063395093511461032c5780633b97084a146103695780634cb80fd514610392578063557ed1ba146103bb576101d8565b806323b872dd116101ab57806323b872dd146102705780632b112e49146102ad5780632c4b2334146102d8578063313ce56714610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074d565b6040516101ff9190613957565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906134fa565b6107df565b60405161023c919061393c565b60405180910390f35b34801561025157600080fd5b5061025a6107fd565b6040516102679190613ab9565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613467565b610807565b6040516102a4919061393c565b60405180910390f35b3480156102b957600080fd5b506102c26108e1565b6040516102cf9190613ab9565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906133cd565b610927565b005b34801561030d57600080fd5b50610316610a00565b6040516103239190613b5e565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e91906134fa565b610a17565b604051610360919061393c565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906135b0565b610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b491906133cd565b610b69565b005b3480156103c757600080fd5b506103d0610c42565b6040516103dd9190613ab9565b60405180910390f35b3480156103f257600080fd5b5061040d600480360381019061040891906133cd565b610c4a565b60405161041a9190613897565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906133cd565b61112e565b6040516104579190613ab9565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906134ba565b611177565b005b34801561049557600080fd5b5061049e611267565b6040516104ab9190613897565b60405180910390f35b3480156104c057600080fd5b506104c9611290565b005b3480156104d757600080fd5b506104e06113e3565b6040516104ed9190613957565b60405180910390f35b34801561050257600080fd5b5061050b611475565b6040516105189190613ab9565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906134fa565b61147f565b604051610555919061393c565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613583565b61154c565b005b34801561059357600080fd5b506105ae60048036038101906105a991906134fa565b6115fe565b6040516105bb919061393c565b60405180910390f35b3480156105d057600080fd5b506105d961161d565b6040516105e69190613897565b60405180910390f35b3480156105fb57600080fd5b50610616600480360381019061061191906135b0565b611641565b005b34801561062457600080fd5b5061063f600480360381019061063a9190613583565b6116e0565b005b34801561064d57600080fd5b506106566117c9565b6040516106639190613897565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613427565b6117ef565b6040516106a09190613ab9565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb91906135b0565b611876565b005b3480156106de57600080fd5b506106f960048036038101906106f491906135b0565b611959565b005b34801561070757600080fd5b50610722600480360381019061071d91906133cd565b6119f8565b005b34801561073057600080fd5b5061074b600480360381019061074691906134ba565b611bba565b005b60606001805461075c90613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461078890613dce565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107f36107ec611caa565b8484611cb2565b6001905092915050565b6000601b54905090565b6000610814848484611e7d565b506108d684610821611caa565b6108d18560405180606001604052806028815260200161422b60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610887611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b600190509392505050565b6000610922610911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661112e565b601b546127bd90919063ffffffff16565b905090565b61092f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b390613a19565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610ac0610a24611caa565b84610abb8560076000610a35611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b611cb2565b6001905092915050565b610ad2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613a19565b60405180910390fd5b80601e8190555050565b610b71611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590613a19565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610c54611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd890613a19565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6491906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906133fa565b6040518363ffffffff1660e01b8152600401610e1b9291906138b2565b60206040518083038186803b158015610e3357600080fd5b505afa158015610e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6b91906133fa565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2091906133fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8257600080fd5b505afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba91906133fa565b6040518363ffffffff1660e01b8152600401610fd79291906138b2565b602060405180830381600087803b158015610ff157600080fd5b505af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102991906133fa565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61117f611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613a19565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611298611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546113f290613dce565b80601f016020809104026020016040519081016040528092919081815260200182805461141e90613dce565b801561146b5780601f106114405761010080835404028352916020019161146b565b820191906000526020600020905b81548152906001019060200180831161144e57829003601f168201915b5050505050905090565b6000601e54905090565b600061154261148c611caa565b8461153d8560405180606001604052806025815260200161425360259139600760006114b6611caa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b611cb2565b6001905092915050565b611554611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890613a19565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061161261160b611caa565b8484611e7d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611649611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613a19565b60405180910390fd5b80601a8190555050565b6116e8611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90613a19565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117be919061393c565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61187e611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613a19565b60405180910390fd5b600381111561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690613a79565b60405180910390fd5b80601f8190555050565b611961611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e590613a19565b60405180910390fd5b80601c8190555050565b611a00611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613999565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bc2611caa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613a19565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990613a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d89906139b9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e709190613ab9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee590613a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590613979565b60405180910390fd5b60008211611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613a39565b60405180910390fd5b602260149054906101000a900460ff1615611fc857611fc1848484612865565b9050612752565b6000611fd33061112e565b90506000601e548210159050808015611ff95750602260149054906101000a900460ff16155b801561204f5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120675750602260159054906101000a900460ff165b1561209157602260169054906101000a900460ff161561208757601e5491505b61209082612a38565b5b61211a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612168611267565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156121d657506121a6611267565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156123df5761221760646122096121fa601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122fd576122a7606461229961228a601054600b546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006010541180156122be5750601a54601954105b156122f8576122eb60646122dd60105489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506122f78882612cee565b5b6123de565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123dd5761238b606461237d61236e601854600c546127bd90919063ffffffff16565b89612c2990919063ffffffff16565b612ca490919063ffffffff16565b915060006018541180156123a25750601a54601954105b156123dc576123cf60646123c160185489612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506123db8882612cee565b5b5b5b5b600082111561264f57600091506000600267ffffffffffffffff81111561240957612408613eed565b5b6040519080825280602002602001820160405280156124375781602001602082028036833780820191505090505b509050888160008151811061244f5761244e613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061249e5761249d613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612537929190613ad4565b60006040518083038186803b15801561254f57600080fd5b505afa158015612563573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258c919061353a565b9050806000815181106125a2576125a1613ebe565b5b6020026020010151846125b59190613d00565b935061260984600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126a186600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516127419190613ab9565b60405180910390a360019450505050505b9392505050565b60008383111582906127a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127989190613957565b60405180910390fd5b50600083856127b09190613d00565b9050809150509392505050565b60006127ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612759565b905092915050565b60008082846128169190613c1f565b90508381101561285b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612852906139d9565b60405180910390fd5b8091505092915050565b60006128f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a259190613ab9565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612a916002612a83601454612a7560115487612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612aa882846127bd90919063ffffffff16565b9050612ab381612e7e565b60004790506000612ae4612ad36002601154612ca490919063ffffffff16565b6014546127bd90919063ffffffff16565b90506000612b226002612b1484612b0660115488612c2990919063ffffffff16565b612ca490919063ffffffff16565b612ca490919063ffffffff16565b90506000612b4d83612b3f60135487612c2990919063ffffffff16565b612ca490919063ffffffff16565b90506000612b7682612b6885886127bd90919063ffffffff16565b6127bd90919063ffffffff16565b90506000811115612bae57612bad600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613109565b5b6000821115612be457612be3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613109565b5b600083118015612bf45750600087115b15612c0457612c038784613154565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c3c5760009050612c9e565b60008284612c4a9190613ca6565b9050828482612c599190613c75565b14612c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c90906139f9565b60405180910390fd5b809150505b92915050565b6000612ce683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613263565b905092915050565b601a5460195410612cfe57612e7a565b612d728160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461280790919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dec8160195461280790919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e719190613ab9565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612e9b57612e9a613eed565b5b604051908082528060200260200182016040528015612ec95781602001602082028036833780820191505090505b5090503081600081518110612ee157612ee0613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8357600080fd5b505afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb91906133fa565b81600181518110612fcf57612fce613ebe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061303630602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161309a959493929190613b04565b600060405180830381600087803b1580156130b457600080fd5b505af11580156130c8573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516130fd929190613ad4565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561314f573d6000803e3d6000fd5b505050565b61318130602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cb2565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320a969594939291906138db565b6060604051808303818588803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061325c91906135dd565b5050505050565b600080831182906132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a19190613957565b60405180910390fd5b50600083856132b99190613c75565b9050809150509392505050565b60006132d96132d484613b9e565b613b79565b905080838252602082019050828560208602820111156132fc576132fb613f21565b5b60005b8581101561332c578161331288826133b8565b8452602084019350602083019250506001810190506132ff565b5050509392505050565b600081359050613345816141e5565b92915050565b60008151905061335a816141e5565b92915050565b600082601f83011261337557613374613f1c565b5b81516133858482602086016132c6565b91505092915050565b60008135905061339d816141fc565b92915050565b6000813590506133b281614213565b92915050565b6000815190506133c781614213565b92915050565b6000602082840312156133e3576133e2613f2b565b5b60006133f184828501613336565b91505092915050565b6000602082840312156134105761340f613f2b565b5b600061341e8482850161334b565b91505092915050565b6000806040838503121561343e5761343d613f2b565b5b600061344c85828601613336565b925050602061345d85828601613336565b9150509250929050565b6000806000606084860312156134805761347f613f2b565b5b600061348e86828701613336565b935050602061349f86828701613336565b92505060406134b0868287016133a3565b9150509250925092565b600080604083850312156134d1576134d0613f2b565b5b60006134df85828601613336565b92505060206134f08582860161338e565b9150509250929050565b6000806040838503121561351157613510613f2b565b5b600061351f85828601613336565b9250506020613530858286016133a3565b9150509250929050565b6000602082840312156135505761354f613f2b565b5b600082015167ffffffffffffffff81111561356e5761356d613f26565b5b61357a84828501613360565b91505092915050565b60006020828403121561359957613598613f2b565b5b60006135a78482850161338e565b91505092915050565b6000602082840312156135c6576135c5613f2b565b5b60006135d4848285016133a3565b91505092915050565b6000806000606084860312156135f6576135f5613f2b565b5b6000613604868287016133b8565b9350506020613615868287016133b8565b9250506040613626868287016133b8565b9150509250925092565b600061363c8383613648565b60208301905092915050565b61365181613d34565b82525050565b61366081613d34565b82525050565b600061367182613bda565b61367b8185613bfd565b935061368683613bca565b8060005b838110156136b757815161369e8882613630565b97506136a983613bf0565b92505060018101905061368a565b5085935050505092915050565b6136cd81613d46565b82525050565b6136dc81613d89565b82525050565b60006136ed82613be5565b6136f78185613c0e565b9350613707818560208601613d9b565b61371081613f30565b840191505092915050565b6000613728602383613c0e565b915061373382613f41565b604082019050919050565b600061374b602683613c0e565b915061375682613f90565b604082019050919050565b600061376e602283613c0e565b915061377982613fdf565b604082019050919050565b6000613791601b83613c0e565b915061379c8261402e565b602082019050919050565b60006137b4602183613c0e565b91506137bf82614057565b604082019050919050565b60006137d7602083613c0e565b91506137e2826140a6565b602082019050919050565b60006137fa602983613c0e565b9150613805826140cf565b604082019050919050565b600061381d602583613c0e565b91506138288261411e565b604082019050919050565b6000613840601283613c0e565b915061384b8261416d565b602082019050919050565b6000613863602483613c0e565b915061386e82614196565b604082019050919050565b61388281613d72565b82525050565b61389181613d7c565b82525050565b60006020820190506138ac6000830184613657565b92915050565b60006040820190506138c76000830185613657565b6138d46020830184613657565b9392505050565b600060c0820190506138f06000830189613657565b6138fd6020830188613879565b61390a60408301876136d3565b61391760608301866136d3565b6139246080830185613657565b61393160a0830184613879565b979650505050505050565b600060208201905061395160008301846136c4565b92915050565b6000602082019050818103600083015261397181846136e2565b905092915050565b600060208201905081810360008301526139928161371b565b9050919050565b600060208201905081810360008301526139b28161373e565b9050919050565b600060208201905081810360008301526139d281613761565b9050919050565b600060208201905081810360008301526139f281613784565b9050919050565b60006020820190508181036000830152613a12816137a7565b9050919050565b60006020820190508181036000830152613a32816137ca565b9050919050565b60006020820190508181036000830152613a52816137ed565b9050919050565b60006020820190508181036000830152613a7281613810565b9050919050565b60006020820190508181036000830152613a9281613833565b9050919050565b60006020820190508181036000830152613ab281613856565b9050919050565b6000602082019050613ace6000830184613879565b92915050565b6000604082019050613ae96000830185613879565b8181036020830152613afb8184613666565b90509392505050565b600060a082019050613b196000830188613879565b613b2660208301876136d3565b8181036040830152613b388186613666565b9050613b476060830185613657565b613b546080830184613879565b9695505050505050565b6000602082019050613b736000830184613888565b92915050565b6000613b83613b94565b9050613b8f8282613e00565b919050565b6000604051905090565b600067ffffffffffffffff821115613bb957613bb8613eed565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c2a82613d72565b9150613c3583613d72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c6a57613c69613e31565b5b828201905092915050565b6000613c8082613d72565b9150613c8b83613d72565b925082613c9b57613c9a613e60565b5b828204905092915050565b6000613cb182613d72565b9150613cbc83613d72565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf557613cf4613e31565b5b828202905092915050565b6000613d0b82613d72565b9150613d1683613d72565b925082821015613d2957613d28613e31565b5b828203905092915050565b6000613d3f82613d52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d9482613d72565b9050919050565b60005b83811015613db9578082015181840152602081019050613d9e565b83811115613dc8576000848401525b50505050565b60006002820490506001821680613de657607f821691505b60208210811415613dfa57613df9613e8f565b5b50919050565b613e0982613f30565b810181811067ffffffffffffffff82111715613e2857613e27613eed565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141ee81613d34565b81146141f957600080fd5b50565b61420581613d46565b811461421057600080fd5b50565b61421c81613d72565b811461422757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206a6b296c704a0c8937afbb39064371534c5993932fd74f68773751737e9ac15964736f6c63430008050033

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

0000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000015ad0b3214bd56297e65e75116dd06d46573e7ea

-----Decoded View---------------
Arg [0] : supply (uint256): 15000000
Arg [1] : router (address): 0x15aD0b3214bd56297e65E75116DD06d46573e7ea

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000e4e1c0
Arg [1] : 00000000000000000000000015ad0b3214bd56297e65e75116dd06d46573e7ea


Deployed Bytecode Sourcemap

7363:15078:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10325:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11620:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10602:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14838:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13544:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13095:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10511:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10988:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12813:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12948:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6281:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13814:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10710:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5662:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5876:145;;;;;;;;;;;;;:::i;:::-;;10416:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11491:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11214:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13411:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14663:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5538:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12406:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13232:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9007:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10837:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12525:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12692:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6029:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12271:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10325:83;10362:13;10395:5;10388:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10325:83;:::o;11620:161::-;11695:4;11712:39;11721:12;:10;:12::i;:::-;11735:7;11744:6;11712:8;:39::i;:::-;11769:4;11762:11;;11620:161;;;;:::o;10602:100::-;10655:7;10682:12;;10675:19;;10602:100;:::o;14838:313::-;14936:4;14953:36;14963:6;14971:9;14982:6;14953:9;:36::i;:::-;;15000:121;15009:6;15017:12;:10;:12::i;:::-;15031:89;15069:6;15031:89;;;;;;;;;;;;;;;;;:11;:19;15043:6;15031:19;;;;;;;;;;;;;;;:33;15051:12;:10;:12::i;:::-;15031:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;15000:8;:121::i;:::-;15139:4;15132:11;;14838:313;;;;;:::o;13544:128::-;13597:7;13624:40;13641:22;13651:11;;;;;;;;;;;13641:9;:22::i;:::-;13624:12;;:16;;:40;;;;:::i;:::-;13617:47;;13544:128;:::o;13095:129::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13205:10:::1;13177:17;;:39;;;;;;;;;;;;;;;;;;13095:129:::0;:::o;10511:83::-;10552:5;10577:9;;;;;;;;;;;10570:16;;10511:83;:::o;10988:218::-;11076:4;11093:83;11102:12;:10;:12::i;:::-;11116:7;11125:50;11164:10;11125:11;:25;11137:12;:10;:12::i;:::-;11125:25;;;;;;;;;;;;;;;:34;11151:7;11125:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11093:8;:83::i;:::-;11194:4;11187:11;;10988:218;;;;:::o;12813:125::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12922:8:::1;12895:24;:35;;;;12813:125:::0;:::o;12948:139::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13068:10:::1;13035:22;;:44;;;;;;;;;;;;;;;;;;12948:139:::0;:::o;6281:90::-;6321:7;6348:15;6341:22;;6281:90;:::o;13814:747::-;13894:22;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13931:35:::1;13988:16;13931:74;;14053:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14035:53;;;14097:4;14104:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14035:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14018:110;;14170:1;14144:28;;:14;:28;;;14141:225;;;14258:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14240:74;;;14323:4;14330:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14240:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14223:131;;14141:225;14392:14;14378:11;;:28;;;;;;;;;;;;;;;;;;14458:16;14440:15;;:34;;;;;;;;;;;;;;;;;;14549:4;14512:12;:34;14533:11;;;;;;;;;;;14512:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13918:643;13814:747:::0;;;:::o;10710:119::-;10776:7;10803:9;:18;10813:7;10803:18;;;;;;;;;;;;;;;;10796:25;;10710:119;;;:::o;12134:129::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12247:8:::1;12223:12;:21;12236:7;12223:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12134:129:::0;;:::o;5662:79::-;5700:7;5727:6;;;;;;;;;;;5720:13;;5662:79;:::o;5876:145::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5980:1:::1;5943:40;;5964:6;::::0;::::1;;;;;;;;5943:40;;;;;;;;;;;;6011:1;5994:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5876:145::o:0;10416:87::-;10455:13;10488:7;10481:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10416:87;:::o;11491:121::-;11553:7;11580:24;;11573:31;;11491:121;:::o;11214:269::-;11307:4;11324:129;11333:12;:10;:12::i;:::-;11347:7;11356:96;11395:15;11356:96;;;;;;;;;;;;;;;;;:11;:25;11368:12;:10;:12::i;:::-;11356:25;;;;;;;;;;;;;;;:34;11382:7;11356:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11324:8;:129::i;:::-;11471:4;11464:11;;11214:269;;;;:::o;13411:125::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13520:8:::1;13492:25;;:36;;;;;;;;;;;;;;;;;;13411:125:::0;:::o;14663:167::-;14741:4;14758:42;14768:12;:10;:12::i;:::-;14782:9;14793:6;14758:9;:42::i;:::-;;14818:4;14811:11;;14663:167;;;;:::o;5538:21::-;;;;;;;;;;;;:::o;12406:111::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12499:10:::1;12479:17;:30;;;;12406:111:::0;:::o;13232:171::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13333:8:::1;13309:21;;:32;;;;;;;;;;;;;;;;;;13357:38;13386:8;13357:38;;;;;;:::i;:::-;;;;;;;;13232:171:::0;:::o;9007:26::-;;;;;;;;;;;;;:::o;10837:143::-;10918:7;10945:11;:18;10957:5;10945:18;;;;;;;;;;;;;;;:27;10964:7;10945:27;;;;;;;;;;;;;;;;10938:34;;10837:143;;;;:::o;12525:157::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12616:1:::1;12604:8;:13;;12596:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12666:8;12651:12;:23;;;;12525:157:::0;:::o;12692:111::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12784:11:::1;12769:12;:26;;;;12692:111:::0;:::o;6029:244::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6138:1:::1;6118:22;;:8;:22;;;;6110:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6228:8;6199:38;;6220:6;::::0;::::1;;;;;;;;6199:38;;;;;;;;;;;;6257:8;6248:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6029:244:::0;:::o;12271:127::-;5799:12;:10;:12::i;:::-;5789:22;;:6;;;;;;;;;;:22;;;5781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12384:6:::1;12358:15;:23;12374:6;12358:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12271:127:::0;;:::o;186:115::-;239:15;282:10;267:26;;186:115;:::o;11789:337::-;11899:1;11882:19;;:5;:19;;;;11874:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11980:1;11961:21;;:7;:21;;;;11953:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12064:6;12034:11;:18;12046:5;12034:18;;;;;;;;;;;;;;;:27;12053:7;12034:27;;;;;;;;;;;;;;;:36;;;;12102:7;12086:32;;12095:5;12086:32;;;12111:6;12086:32;;;;;;:::i;:::-;;;;;;;;11789:337;;;:::o;15159:2714::-;15246:4;15291:1;15273:20;;:6;:20;;;;15265:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15375:1;15354:23;;:9;:23;;;;15346:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15445:1;15436:6;:10;15428:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15508:16;;;;;;;;;;;15505:2361;;;15557:41;15572:6;15580:9;15591:6;15557:14;:41::i;:::-;15550:48;;;;15505:2361;15651:28;15682:24;15700:4;15682:9;:24::i;:::-;15651:55;;15721:28;15776:24;;15752:20;:48;;15721:79;;15821:23;:44;;;;;15849:16;;;;;;;;;;;15848:17;15821:44;:69;;;;;15870:12;:20;15883:6;15870:20;;;;;;;;;;;;;;;;;;;;;;;;;15869:21;15821:69;:94;;;;;15894:21;;;;;;;;;;;15821:94;15817:301;;;15952:25;;;;;;;;;;;15949:98;;;16023:24;;16000:47;;15949:98;16066:36;16081:20;16066:14;:36::i;:::-;15817:301;16152:53;16174:6;16152:53;;;;;;;;;;;;;;;;;:9;:17;16162:6;16152:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16132:9;:17;16142:6;16132:17;;;;;;;;;;;;;;;:73;;;;16220:17;16254:18;16303:7;:5;:7::i;:::-;16293:17;;:6;:17;;;;:41;;;;;16327:7;:5;:7::i;:::-;16314:20;;:9;:20;;;;16293:41;16289:946;;;16367:58;16421:3;16367:49;16378:37;16400:14;;16378:17;;:21;;:37;;;;:::i;:::-;16367:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16355:70;;16447:12;:20;16460:6;16447:20;;;;;;;;;;;;;;;;;;;;;;;;;16444:774;;;16504:58;16558:3;16504:49;16515:37;16537:14;;16515:17;;:21;;:37;;;;:::i;:::-;16504:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16492:70;;16605:1;16588:14;;:18;:52;;;;;16623:17;;16610:10;;:30;16588:52;16585:212;;;16682:35;16713:3;16682:26;16693:14;;16682:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16669:48;;16744:29;16755:6;16762:10;16744;:29::i;:::-;16585:212;16444:774;;;16842:12;:23;16855:9;16842:23;;;;;;;;;;;;;;;;;;;;;;;;;16839:379;;;16902:60;16958:3;16902:51;16913:39;16936:15;;16913:18;;:22;;:39;;;;:::i;:::-;16902:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16890:72;;17006:1;16988:15;;:19;:53;;;;;17024:17;;17011:10;;:30;16988:53;16985:214;;;17083:36;17115:3;17083:27;17094:15;;17083:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;17070:49;;17146:29;17157:6;17164:10;17146;:29::i;:::-;16985:214;16839:379;16444:774;16289:946;17265:1;17253:9;:13;17250:439;;;17300:1;17288:13;;17321:21;17359:1;17345:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17321:40;;17391:6;17381:4;17386:1;17381:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17427:9;17417:4;17422:1;17417:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17456:24;17502:15;;;;;;;;;;;17483:49;;;17533:6;17540:4;17483:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17456:89;;17578:7;17586:1;17578:10;;;;;;;;:::i;:::-;;;;;;;;17565:23;;;;;:::i;:::-;;;17634:39;17663:9;17634;:24;17652:4;17634:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17607:9;:24;17625:4;17607:24;;;;;;;;;;;;;;;:66;;;;17268:421;;17250:439;17741:32;17766:6;17741:9;:20;17751:9;17741:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17718:9;:20;17728:9;17718:20;;;;;;;;;;;;;;;:55;;;;17810:9;17793:35;;17802:6;17793:35;;;17821:6;17793:35;;;;;;:::i;:::-;;;;;;;;17850:4;17843:11;;;;;;15159:2714;;;;;;:::o;1608:192::-;1694:7;1727:1;1722;:6;;1730:12;1714:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1754:9;1770:1;1766;:5;;;;:::i;:::-;1754:17;;1791:1;1784:8;;;1608:192;;;;;:::o;1464:136::-;1522:7;1549:43;1553:1;1556;1549:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1542:50;;1464:136;;;;:::o;1275:181::-;1333:7;1353:9;1369:1;1365;:5;;;;:::i;:::-;1353:17;;1394:1;1389;:6;;1381:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1447:1;1440:8;;;1275:181;;;;:::o;17881:330::-;17974:4;18011:53;18033:6;18011:53;;;;;;;;;;;;;;;;;:9;:17;18021:6;18011:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17991:9;:17;18001:6;17991:17;;;;;;;;;;;;;;;:73;;;;18098:32;18123:6;18098:9;:20;18108:9;18098:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18075:9;:20;18085:9;18075:20;;;;;;;;;;;;;;;:55;;;;18163:9;18146:35;;18155:6;18146:35;;;18174:6;18146:35;;;;;;:::i;:::-;;;;;;;;18199:4;18192:11;;17881:330;;;;;:::o;18219:1032::-;9638:4;9619:16;;:23;;;;;;;;;;;;;;;;;;18293:19:::1;18315:65;18378:1;18315:58;18348:24;;18315:28;18327:15;;18315:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18293:87;;18391:21;18415:24;18427:11;18415:7;:11;;:24;;;;:::i;:::-;18391:48;;18452:31;18469:13;18452:16;:31::i;:::-;18494:22;18519:21;18494:46;;18553:19;18575:52;18604:22;18624:1;18604:15;;:19;;:22;;;;:::i;:::-;18575:24;;:28;;:52;;;;:::i;:::-;18553:74;;18640:26;18669:59;18726:1;18669:52;18709:11;18669:35;18688:15;;18669:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18640:88;;18739:21;18763:47;18798:11;18763:30;18782:10;;18763:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18739:71;;18821:26;18850:57;18893:13;18850:38;18869:18;18850:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18821:86;;18944:1;18923:18;:22;18920:104;;;18960:64;18981:22;;;;;;;;;;;19005:18;18960:20;:64::i;:::-;18920:104;19056:1;19040:13;:17;19037:89;;;19072:54;19093:17;;;;;;;;;;;19112:13;19072:20;:54::i;:::-;19037:89;19163:1;19142:18;:22;:41;;;;;19182:1;19168:11;:15;19142:41;19139:104;;;19198:45;19211:11;19224:18;19198:12;:45::i;:::-;19139:104;18280:971;;;;;;;9684:5:::0;9665:16;;:24;;;;;;;;;;;;;;;;;;18219:1032;:::o;1808:250::-;1866:7;1895:1;1890;:6;1886:47;;;1920:1;1913:8;;;;1886:47;1945:9;1961:1;1957;:5;;;;:::i;:::-;1945:17;;1990:1;1985;1981;:5;;;;:::i;:::-;:10;1973:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2049:1;2042:8;;;1808:250;;;;;:::o;2066:132::-;2124:7;2151:39;2155:1;2158;2151:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2144:46;;2066:132;;;;:::o;22115:321::-;22229:17;;22215:10;;:31;22212:43;;22248:7;;22212:43;22292:35;22319:7;22292:9;:22;22302:11;;;;;;;;;;;22292:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22267:9;:22;22277:11;;;;;;;;;;;22267:22;;;;;;;;;;;;;;;:60;;;;22351:23;22366:7;22351:10;;:14;;:23;;;;:::i;:::-;22338:10;:36;;;;22407:11;;;;;;;;;;;22390:38;;22399:6;22390:38;;;22420:7;22390:38;;;;;;:::i;:::-;;;;;;;;22115:321;;;:::o;19259:658::-;19385:21;19423:1;19409:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19385:40;;19454:4;19436;19441:1;19436:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19480:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19470:4;19475:1;19470:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19515:62;19532:4;19547:15;;;;;;;;;;;19565:11;19515:8;:62::i;:::-;19616:15;;;;;;;;;;;:66;;;19697:11;19723:1;19767:4;19794;19830:15;19616:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19874:35;19891:11;19904:4;19874:35;;;;;;;:::i;:::-;;;;;;;;19314:603;19259:658;:::o;13680:126::-;13772:9;:18;;:26;13791:6;13772:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13680:126;;:::o;19925:520::-;20073:62;20090:4;20105:15;;;;;;;;;;;20123:11;20073:8;:62::i;:::-;20178:15;;;;;;;;;;;:31;;;20217:9;20250:4;20270:11;20296:1;20339;20382:14;;;;;;;;;;;20411:15;20178:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19925:520;;:::o;2206:278::-;2292:7;2324:1;2320;:5;2327:12;2312:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2351:9;2367:1;2363;:5;;;;:::i;:::-;2351:17;;2475:1;2468:8;;;2206:278;;;;;:::o;24:744:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;415:79;;:::i;:::-;361:2;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;826:87;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;982:80;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:2;;1224:79;;:::i;:::-;1183:2;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;;;;;:::o;1476:133::-;1519:5;1557:6;1544:20;1535:29;;1573:30;1597:5;1573:30;:::i;:::-;1525:84;;;;:::o;1615:139::-;1661:5;1699:6;1686:20;1677:29;;1715:33;1742:5;1715:33;:::i;:::-;1667:87;;;;:::o;1760:143::-;1817:5;1848:6;1842:13;1833:22;;1864:33;1891:5;1864:33;:::i;:::-;1823:80;;;;:::o;1909:329::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:2;;;2023:79;;:::i;:::-;1985:2;2143:1;2168:53;2213:7;2204:6;2193:9;2189:22;2168:53;:::i;:::-;2158:63;;2114:117;1975:263;;;;:::o;2244:351::-;2314:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2369:79;;:::i;:::-;2331:2;2489:1;2514:64;2570:7;2561:6;2550:9;2546:22;2514:64;:::i;:::-;2504:74;;2460:128;2321:274;;;;:::o;2601:474::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:2;;;2732:79;;:::i;:::-;2694:2;2852:1;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2823:117;2979:2;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2950:118;2684:391;;;;;:::o;3081:619::-;3158:6;3166;3174;3223:2;3211:9;3202:7;3198:23;3194:32;3191:2;;;3229:79;;:::i;:::-;3191:2;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3181:519;;;;;:::o;3706:468::-;3771:6;3779;3828:2;3816:9;3807:7;3803:23;3799:32;3796:2;;;3834:79;;:::i;:::-;3796:2;3954:1;3979:53;4024:7;4015:6;4004:9;4000:22;3979:53;:::i;:::-;3969:63;;3925:117;4081:2;4107:50;4149:7;4140:6;4129:9;4125:22;4107:50;:::i;:::-;4097:60;;4052:115;3786:388;;;;;:::o;4180:474::-;4248:6;4256;4305:2;4293:9;4284:7;4280:23;4276:32;4273:2;;;4311:79;;:::i;:::-;4273:2;4431:1;4456:53;4501:7;4492:6;4481:9;4477:22;4456:53;:::i;:::-;4446:63;;4402:117;4558:2;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4529:118;4263:391;;;;;:::o;4660:554::-;4755:6;4804:2;4792:9;4783:7;4779:23;4775:32;4772:2;;;4810:79;;:::i;:::-;4772:2;4951:1;4940:9;4936:17;4930:24;4981:18;4973:6;4970:30;4967:2;;;5003:79;;:::i;:::-;4967:2;5108:89;5189:7;5180:6;5169:9;5165:22;5108:89;:::i;:::-;5098:99;;4901:306;4762:452;;;;:::o;5220:323::-;5276:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:2;;;5331:79;;:::i;:::-;5293:2;5451:1;5476:50;5518:7;5509:6;5498:9;5494:22;5476:50;:::i;:::-;5466:60;;5422:114;5283:260;;;;:::o;5549:329::-;5608:6;5657:2;5645:9;5636:7;5632:23;5628:32;5625:2;;;5663:79;;:::i;:::-;5625:2;5783:1;5808:53;5853:7;5844:6;5833:9;5829:22;5808:53;:::i;:::-;5798:63;;5754:117;5615:263;;;;:::o;5884:663::-;5972:6;5980;5988;6037:2;6025:9;6016:7;6012:23;6008:32;6005:2;;;6043:79;;:::i;:::-;6005:2;6163:1;6188:64;6244:7;6235:6;6224:9;6220:22;6188:64;:::i;:::-;6178:74;;6134:128;6301:2;6327:64;6383:7;6374:6;6363:9;6359:22;6327:64;:::i;:::-;6317:74;;6272:129;6440:2;6466:64;6522:7;6513:6;6502:9;6498:22;6466:64;:::i;:::-;6456:74;;6411:129;5995:552;;;;;:::o;6553:179::-;6622:10;6643:46;6685:3;6677:6;6643:46;:::i;:::-;6721:4;6716:3;6712:14;6698:28;;6633:99;;;;:::o;6738:108::-;6815:24;6833:5;6815:24;:::i;:::-;6810:3;6803:37;6793:53;;:::o;6852:118::-;6939:24;6957:5;6939:24;:::i;:::-;6934:3;6927:37;6917:53;;:::o;7006:732::-;7125:3;7154:54;7202:5;7154:54;:::i;:::-;7224:86;7303:6;7298:3;7224:86;:::i;:::-;7217:93;;7334:56;7384:5;7334:56;:::i;:::-;7413:7;7444:1;7429:284;7454:6;7451:1;7448:13;7429:284;;;7530:6;7524:13;7557:63;7616:3;7601:13;7557:63;:::i;:::-;7550:70;;7643:60;7696:6;7643:60;:::i;:::-;7633:70;;7489:224;7476:1;7473;7469:9;7464:14;;7429:284;;;7433:14;7729:3;7722:10;;7130:608;;;;;;;:::o;7744:109::-;7825:21;7840:5;7825:21;:::i;:::-;7820:3;7813:34;7803:50;;:::o;7859:147::-;7954:45;7993:5;7954:45;:::i;:::-;7949:3;7942:58;7932:74;;:::o;8012:364::-;8100:3;8128:39;8161:5;8128:39;:::i;:::-;8183:71;8247:6;8242:3;8183:71;:::i;:::-;8176:78;;8263:52;8308:6;8303:3;8296:4;8289:5;8285:16;8263:52;:::i;:::-;8340:29;8362:6;8340:29;:::i;:::-;8335:3;8331:39;8324:46;;8104:272;;;;;:::o;8382:366::-;8524:3;8545:67;8609:2;8604:3;8545:67;:::i;:::-;8538:74;;8621:93;8710:3;8621:93;:::i;:::-;8739:2;8734:3;8730:12;8723:19;;8528:220;;;:::o;8754:366::-;8896:3;8917:67;8981:2;8976:3;8917:67;:::i;:::-;8910:74;;8993:93;9082:3;8993:93;:::i;:::-;9111:2;9106:3;9102:12;9095:19;;8900:220;;;:::o;9126:366::-;9268:3;9289:67;9353:2;9348:3;9289:67;:::i;:::-;9282:74;;9365:93;9454:3;9365:93;:::i;:::-;9483:2;9478:3;9474:12;9467:19;;9272:220;;;:::o;9498:366::-;9640:3;9661:67;9725:2;9720:3;9661:67;:::i;:::-;9654:74;;9737:93;9826:3;9737:93;:::i;:::-;9855:2;9850:3;9846:12;9839:19;;9644:220;;;:::o;9870:366::-;10012:3;10033:67;10097:2;10092:3;10033:67;:::i;:::-;10026:74;;10109:93;10198:3;10109:93;:::i;:::-;10227:2;10222:3;10218:12;10211:19;;10016:220;;;:::o;10242:366::-;10384:3;10405:67;10469:2;10464:3;10405:67;:::i;:::-;10398:74;;10481:93;10570:3;10481:93;:::i;:::-;10599:2;10594:3;10590:12;10583:19;;10388:220;;;:::o;10614:366::-;10756:3;10777:67;10841:2;10836:3;10777:67;:::i;:::-;10770:74;;10853:93;10942:3;10853:93;:::i;:::-;10971:2;10966:3;10962:12;10955:19;;10760:220;;;:::o;10986:366::-;11128:3;11149:67;11213:2;11208:3;11149:67;:::i;:::-;11142:74;;11225:93;11314:3;11225:93;:::i;:::-;11343:2;11338:3;11334:12;11327:19;;11132:220;;;:::o;11358:366::-;11500:3;11521:67;11585:2;11580:3;11521:67;:::i;:::-;11514:74;;11597:93;11686:3;11597:93;:::i;:::-;11715:2;11710:3;11706:12;11699:19;;11504:220;;;:::o;11730:366::-;11872:3;11893:67;11957:2;11952:3;11893:67;:::i;:::-;11886:74;;11969:93;12058:3;11969:93;:::i;:::-;12087:2;12082:3;12078:12;12071:19;;11876:220;;;:::o;12102:118::-;12189:24;12207:5;12189:24;:::i;:::-;12184:3;12177:37;12167:53;;:::o;12226:112::-;12309:22;12325:5;12309:22;:::i;:::-;12304:3;12297:35;12287:51;;:::o;12344:222::-;12437:4;12475:2;12464:9;12460:18;12452:26;;12488:71;12556:1;12545:9;12541:17;12532:6;12488:71;:::i;:::-;12442:124;;;;:::o;12572:332::-;12693:4;12731:2;12720:9;12716:18;12708:26;;12744:71;12812:1;12801:9;12797:17;12788:6;12744:71;:::i;:::-;12825:72;12893:2;12882:9;12878:18;12869:6;12825:72;:::i;:::-;12698:206;;;;;:::o;12910:807::-;13159:4;13197:3;13186:9;13182:19;13174:27;;13211:71;13279:1;13268:9;13264:17;13255:6;13211:71;:::i;:::-;13292:72;13360:2;13349:9;13345:18;13336:6;13292:72;:::i;:::-;13374:80;13450:2;13439:9;13435:18;13426:6;13374:80;:::i;:::-;13464;13540:2;13529:9;13525:18;13516:6;13464:80;:::i;:::-;13554:73;13622:3;13611:9;13607:19;13598:6;13554:73;:::i;:::-;13637;13705:3;13694:9;13690:19;13681:6;13637:73;:::i;:::-;13164:553;;;;;;;;;:::o;13723:210::-;13810:4;13848:2;13837:9;13833:18;13825:26;;13861:65;13923:1;13912:9;13908:17;13899:6;13861:65;:::i;:::-;13815:118;;;;:::o;13939:313::-;14052:4;14090:2;14079:9;14075:18;14067:26;;14139:9;14133:4;14129:20;14125:1;14114:9;14110:17;14103:47;14167:78;14240:4;14231:6;14167:78;:::i;:::-;14159:86;;14057:195;;;;:::o;14258:419::-;14424:4;14462:2;14451:9;14447:18;14439:26;;14511:9;14505:4;14501:20;14497:1;14486:9;14482:17;14475:47;14539:131;14665:4;14539:131;:::i;:::-;14531:139;;14429:248;;;:::o;14683:419::-;14849:4;14887:2;14876:9;14872:18;14864:26;;14936:9;14930:4;14926:20;14922:1;14911:9;14907:17;14900:47;14964:131;15090:4;14964:131;:::i;:::-;14956:139;;14854:248;;;:::o;15108:419::-;15274:4;15312:2;15301:9;15297:18;15289:26;;15361:9;15355:4;15351:20;15347:1;15336:9;15332:17;15325:47;15389:131;15515:4;15389:131;:::i;:::-;15381:139;;15279:248;;;:::o;15533:419::-;15699:4;15737:2;15726:9;15722:18;15714:26;;15786:9;15780:4;15776:20;15772:1;15761:9;15757:17;15750:47;15814:131;15940:4;15814:131;:::i;:::-;15806:139;;15704:248;;;:::o;15958:419::-;16124:4;16162:2;16151:9;16147:18;16139:26;;16211:9;16205:4;16201:20;16197:1;16186:9;16182:17;16175:47;16239:131;16365:4;16239:131;:::i;:::-;16231:139;;16129:248;;;:::o;16383:419::-;16549:4;16587:2;16576:9;16572:18;16564:26;;16636:9;16630:4;16626:20;16622:1;16611:9;16607:17;16600:47;16664:131;16790:4;16664:131;:::i;:::-;16656:139;;16554:248;;;:::o;16808:419::-;16974:4;17012:2;17001:9;16997:18;16989:26;;17061:9;17055:4;17051:20;17047:1;17036:9;17032:17;17025:47;17089:131;17215:4;17089:131;:::i;:::-;17081:139;;16979:248;;;:::o;17233:419::-;17399:4;17437:2;17426:9;17422:18;17414:26;;17486:9;17480:4;17476:20;17472:1;17461:9;17457:17;17450:47;17514:131;17640:4;17514:131;:::i;:::-;17506:139;;17404:248;;;:::o;17658:419::-;17824:4;17862:2;17851:9;17847:18;17839:26;;17911:9;17905:4;17901:20;17897:1;17886:9;17882:17;17875:47;17939:131;18065:4;17939:131;:::i;:::-;17931:139;;17829:248;;;:::o;18083:419::-;18249:4;18287:2;18276:9;18272:18;18264:26;;18336:9;18330:4;18326:20;18322:1;18311:9;18307:17;18300:47;18364:131;18490:4;18364:131;:::i;:::-;18356:139;;18254:248;;;:::o;18508:222::-;18601:4;18639:2;18628:9;18624:18;18616:26;;18652:71;18720:1;18709:9;18705:17;18696:6;18652:71;:::i;:::-;18606:124;;;;:::o;18736:483::-;18907:4;18945:2;18934:9;18930:18;18922:26;;18958:71;19026:1;19015:9;19011:17;19002:6;18958:71;:::i;:::-;19076:9;19070:4;19066:20;19061:2;19050:9;19046:18;19039:48;19104:108;19207:4;19198:6;19104:108;:::i;:::-;19096:116;;18912:307;;;;;:::o;19225:831::-;19488:4;19526:3;19515:9;19511:19;19503:27;;19540:71;19608:1;19597:9;19593:17;19584:6;19540:71;:::i;:::-;19621:80;19697:2;19686:9;19682:18;19673:6;19621:80;:::i;:::-;19748:9;19742:4;19738:20;19733:2;19722:9;19718:18;19711:48;19776:108;19879:4;19870:6;19776:108;:::i;:::-;19768:116;;19894:72;19962:2;19951:9;19947:18;19938:6;19894:72;:::i;:::-;19976:73;20044:3;20033:9;20029:19;20020:6;19976:73;:::i;:::-;19493:563;;;;;;;;:::o;20062:214::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20202:67;20266:1;20255:9;20251:17;20242:6;20202:67;:::i;:::-;20156:120;;;;:::o;20282:129::-;20316:6;20343:20;;:::i;:::-;20333:30;;20372:33;20400:4;20392:6;20372:33;:::i;:::-;20323:88;;;:::o;20417:75::-;20450:6;20483:2;20477:9;20467:19;;20457:35;:::o;20498:311::-;20575:4;20665:18;20657:6;20654:30;20651:2;;;20687:18;;:::i;:::-;20651:2;20737:4;20729:6;20725:17;20717:25;;20797:4;20791;20787:15;20779:23;;20580:229;;;:::o;20815:132::-;20882:4;20905:3;20897:11;;20935:4;20930:3;20926:14;20918:22;;20887:60;;;:::o;20953:114::-;21020:6;21054:5;21048:12;21038:22;;21027:40;;;:::o;21073:99::-;21125:6;21159:5;21153:12;21143:22;;21132:40;;;:::o;21178:113::-;21248:4;21280;21275:3;21271:14;21263:22;;21253:38;;;:::o;21297:184::-;21396:11;21430:6;21425:3;21418:19;21470:4;21465:3;21461:14;21446:29;;21408:73;;;;:::o;21487:169::-;21571:11;21605:6;21600:3;21593:19;21645:4;21640:3;21636:14;21621:29;;21583:73;;;;:::o;21662:305::-;21702:3;21721:20;21739:1;21721:20;:::i;:::-;21716:25;;21755:20;21773:1;21755:20;:::i;:::-;21750:25;;21909:1;21841:66;21837:74;21834:1;21831:81;21828:2;;;21915:18;;:::i;:::-;21828:2;21959:1;21956;21952:9;21945:16;;21706:261;;;;:::o;21973:185::-;22013:1;22030:20;22048:1;22030:20;:::i;:::-;22025:25;;22064:20;22082:1;22064:20;:::i;:::-;22059:25;;22103:1;22093:2;;22108:18;;:::i;:::-;22093:2;22150:1;22147;22143:9;22138:14;;22015:143;;;;:::o;22164:348::-;22204:7;22227:20;22245:1;22227:20;:::i;:::-;22222:25;;22261:20;22279:1;22261:20;:::i;:::-;22256:25;;22449:1;22381:66;22377:74;22374:1;22371:81;22366:1;22359:9;22352:17;22348:105;22345:2;;;22456:18;;:::i;:::-;22345:2;22504:1;22501;22497:9;22486:20;;22212:300;;;;:::o;22518:191::-;22558:4;22578:20;22596:1;22578:20;:::i;:::-;22573:25;;22612:20;22630:1;22612:20;:::i;:::-;22607:25;;22651:1;22648;22645:8;22642:2;;;22656:18;;:::i;:::-;22642:2;22701:1;22698;22694:9;22686:17;;22563:146;;;;:::o;22715:96::-;22752:7;22781:24;22799:5;22781:24;:::i;:::-;22770:35;;22760:51;;;:::o;22817:90::-;22851:7;22894:5;22887:13;22880:21;22869:32;;22859:48;;;:::o;22913:126::-;22950:7;22990:42;22983:5;22979:54;22968:65;;22958:81;;;:::o;23045:77::-;23082:7;23111:5;23100:16;;23090:32;;;:::o;23128:86::-;23163:7;23203:4;23196:5;23192:16;23181:27;;23171:43;;;:::o;23220:121::-;23278:9;23311:24;23329:5;23311:24;:::i;:::-;23298:37;;23288:53;;;:::o;23347:307::-;23415:1;23425:113;23439:6;23436:1;23433:13;23425:113;;;23524:1;23519:3;23515:11;23509:18;23505:1;23500:3;23496:11;23489:39;23461:2;23458:1;23454:10;23449:15;;23425:113;;;23556:6;23553:1;23550:13;23547:2;;;23636:1;23627:6;23622:3;23618:16;23611:27;23547:2;23396:258;;;;:::o;23660:320::-;23704:6;23741:1;23735:4;23731:12;23721:22;;23788:1;23782:4;23778:12;23809:18;23799:2;;23865:4;23857:6;23853:17;23843:27;;23799:2;23927;23919:6;23916:14;23896:18;23893:38;23890:2;;;23946:18;;:::i;:::-;23890:2;23711:269;;;;:::o;23986:281::-;24069:27;24091:4;24069:27;:::i;:::-;24061:6;24057:40;24199:6;24187:10;24184:22;24163:18;24151:10;24148:34;24145:62;24142:2;;;24210:18;;:::i;:::-;24142:2;24250:10;24246:2;24239:22;24029:238;;;:::o;24273:180::-;24321:77;24318:1;24311:88;24418:4;24415:1;24408:15;24442:4;24439:1;24432:15;24459:180;24507:77;24504:1;24497:88;24604:4;24601:1;24594:15;24628:4;24625:1;24618:15;24645:180;24693:77;24690:1;24683:88;24790:4;24787:1;24780:15;24814:4;24811:1;24804:15;24831:180;24879:77;24876:1;24869:88;24976:4;24973:1;24966:15;25000:4;24997:1;24990:15;25017:180;25065:77;25062:1;25055:88;25162:4;25159:1;25152:15;25186:4;25183:1;25176:15;25203:117;25312:1;25309;25302:12;25326:117;25435:1;25432;25425:12;25449:117;25558:1;25555;25548:12;25572:117;25681:1;25678;25671:12;25695:102;25736:6;25787:2;25783:7;25778:2;25771:5;25767:14;25763:28;25753:38;;25743:54;;;:::o;25803:222::-;25943:34;25939:1;25931:6;25927:14;25920:58;26012:5;26007:2;25999:6;25995:15;25988:30;25909:116;:::o;26031:225::-;26171:34;26167:1;26159:6;26155:14;26148:58;26240:8;26235:2;26227:6;26223:15;26216:33;26137:119;:::o;26262:221::-;26402:34;26398:1;26390:6;26386:14;26379:58;26471:4;26466:2;26458:6;26454:15;26447:29;26368:115;:::o;26489:177::-;26629:29;26625:1;26617:6;26613:14;26606:53;26595:71;:::o;26672:220::-;26812:34;26808:1;26800:6;26796:14;26789:58;26881:3;26876:2;26868:6;26864:15;26857:28;26778:114;:::o;26898:182::-;27038:34;27034:1;27026:6;27022:14;27015:58;27004:76;:::o;27086:228::-;27226:34;27222:1;27214:6;27210:14;27203:58;27295:11;27290:2;27282:6;27278:15;27271:36;27192:122;:::o;27320:224::-;27460:34;27456:1;27448:6;27444:14;27437:58;27529:7;27524:2;27516:6;27512:15;27505:32;27426:118;:::o;27550:168::-;27690:20;27686:1;27678:6;27674:14;27667:44;27656:62;:::o;27724:223::-;27864:34;27860:1;27852:6;27848:14;27841:58;27933:6;27928:2;27920:6;27916:15;27909:31;27830:117;:::o;27953:122::-;28026:24;28044:5;28026:24;:::i;:::-;28019:5;28016:35;28006:2;;28065:1;28062;28055:12;28006:2;27996:79;:::o;28081:116::-;28151:21;28166:5;28151:21;:::i;:::-;28144:5;28141:32;28131:2;;28187:1;28184;28177:12;28131:2;28121:76;:::o;28203:122::-;28276:24;28294:5;28276:24;:::i;:::-;28269:5;28266:35;28256:2;;28315:1;28312;28305:12;28256:2;28246:79;:::o

Swarm Source

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