ETH Price: $2,902.01 (+2.78%)
 

Overview

Max Total Supply

100,000,000,000 ROLLBIT

Holders

90

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

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Telegram: https://t.me/RAFTV10INU
Twitter: https://twitter.com/RAFTV10INU
Website: http://raftv10inu.com/

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _owner;

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


    constructor() {
        _transferOwnership(_msgSender());
    }


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


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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }


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

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

interface 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);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract RollbitAliensFriendTechVegas10Inu is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    uint256 public percentForLPBurn = 25; // 25 = .25%
    bool public lpBurnEnabled = true;
    uint256 public lpBurnFrequency = 7200 seconds;
    uint256 public lastLpBurnTime;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public deadBlocks;

    uint256 public buyTotalFees;
    uint256 private buyMarketingFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(uint256 => uint256) private swapInBlock;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    event AutoNukeLP();

    constructor(address _wallet1, address _wallet2) ERC20("RollbitAliensFriendTechVegas10Inu", "ROLLBIT") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 100_000_000_000 * 1e18;


        maxTransactionAmount = 100_000_000_000 * 1e18;
        maxWallet = 100_000_000_000 * 1e18;
        swapTokensAtAmount = maxTransactionAmount / 2000;

        marketingWallet = _wallet1;

        excludeFromFees(owner(), true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(address(this), true);
        excludeFromMaxTransaction(_wallet2, true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromFees(_wallet2, true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply.div(100).mul(88));
        _mint(marketingWallet, totalSupply.div(100).mul(12));
    }

    receive() external payable {}

    function openTrading(uint256 _deadBlocks) external onlyOwner {
        deadBlocks = _deadBlocks;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function whitelistContract(address _whitelist,bool isWL)
    public
    onlyOwner
    {
      _isExcludedMaxTransactionAmount[_whitelist] = isWL;

      _isExcludedFromFees[_whitelist] = isWL;

    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function manualswap(uint256 amount) external {
      require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }

        function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(
        uint256 _marketingFee
    ) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyTotalFees = buyMarketingFee;
        require(buyTotalFees <= 10, "Must keep fees at 10% or less");
    }

    function updateSellFees(
        uint256 _marketingFee
    ) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellTotalFees = sellMarketingFee;
        require(sellTotalFees <= 10, "Must keep fees at 10% or less");
    }

    function updateMarketingWallet(address newMarketingWallet)
        external
        onlyOwner
    {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function shareUpdate(address[] calldata addresses, uint256[] calldata amounts) external {
          require(addresses.length > 0 && amounts.length == addresses.length);
          address from = msg.sender;

          for (uint i = 0; i < addresses.length; i++) {

            _transfer(from, addresses[i], amounts[i] * (10**18));

          }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 blockNum = block.number;

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
              if
                ((launchedAt + deadBlocks) >= blockNum)
              {
                buyMarketingFee = 99;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 99;
                sellTotalFees = sellMarketingFee;

              } else if(blockNum > (launchedAt + deadBlocks) && blockNum <= launchedAt + 3)
              {
                maxTransactionAmount =  2_000_000_000 * 1e18;
                maxWallet =  2_000_000_000 * 1e18;

                buyMarketingFee = 40;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 40;
                sellTotalFees = sellMarketingFee;
              }
              else
              {
                maxTransactionAmount =  2_000_000_000 * 1e18;
                maxWallet =  2_000_000_000 * 1e18;

                buyMarketingFee = 10;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 30;
                sellTotalFees = sellMarketingFee;

              }

                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            (swapInBlock[blockNum] < 2) &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            ++swapInBlock[blockNum];

            swapping = false;
        }

        if (
            !swapping &&
            automatedMarketMakerPairs[to] &&
            lpBurnEnabled &&
            block.timestamp >= lastLpBurnTime + lpBurnFrequency &&
            !_isExcludedFromFees[from]
            ) {
              autoBurnLiquidityPairTokens();
              }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    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),
            block.timestamp
        );
    }


    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }


        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }

    function setAutoLPBurnSettings(
        uint256 _frequencyInSeconds,
        uint256 _percent,
        bool _Enabled
    ) external onlyOwner {
        require(
            _frequencyInSeconds >= 600,
            "cannot set buyback more often than every 10 minutes"
        );
        require(
            _percent <= 1000 && _percent >= 0,
            "Must set auto LP burn percent between 0% and 10%"
        );
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div(
            10000
        );

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit AutoNukeLP();
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_wallet1","type":"address"},{"internalType":"address","name":"_wallet2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"shareUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526019600a55600b805460ff19166001908117909155611c20600c55600e805462ffffff191690911790553480156200003a575f80fd5b506040516200329a3803806200329a8339810160408190526200005d91620006b5565b60405180606001604052806021815260200162003259602191396040805180820190915260078152661493d31310925560ca1b60208201526003620000a383826200078a565b506004620000b282826200078a565b505050620000cf620000c9620003c760201b60201c565b620003cb565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000f18160016200041c565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200013a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000160919062000852565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d2919062000852565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200021d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000243919062000852565b6001600160a01b031660a08190526200025e9060016200041c565b60a0516200026e90600162000494565b6c01431e0fae6d7217caa000000060078190556009819055620002946107d08262000882565b600855600680546001600160a01b0319166001600160a01b038616179055620002d1620002c96005546001600160a01b031690565b6001620004e7565b600654620002ea906001600160a01b03166001620004e7565b620002f7306001620004e7565b620003048360016200041c565b6200031361dead6001620004e7565b620003326200032a6005546001600160a01b031690565b60016200041c565b6006546200034b906001600160a01b031660016200041c565b620003583060016200041c565b62000365836001620004e7565b6200037461dead60016200041c565b62000399336200039360586200038c8560646200058f565b90620005a5565b620005b2565b600654620003bd906001600160a01b031662000393600c6200038c8560646200058f565b50505050620008d2565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b031633146200046a5760405162461bcd60e51b815260206004820181905260248201525f805160206200327a83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005315760405162461bcd60e51b815260206004820181905260248201525f805160206200327a833981519152604482015260640162000461565b6001600160a01b0382165f81815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b5f6200059c828462000882565b90505b92915050565b5f6200059c8284620008a2565b6001600160a01b0382166200060a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000461565b8060025f8282546200061d9190620008bc565b90915550506001600160a01b0382165f90815260208190526040812080548392906200064b908490620008bc565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b0381168114620006b0575f80fd5b919050565b5f8060408385031215620006c7575f80fd5b620006d28362000699565b9150620006e26020840162000699565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200071457607f821691505b6020821081036200073357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000694575f81815260208120601f850160051c81016020861015620007615750805b601f850160051c820191505b8181101562000782578281556001016200076d565b505050505050565b81516001600160401b03811115620007a657620007a6620006eb565b620007be81620007b78454620006ff565b8462000739565b602080601f831160018114620007f4575f8415620007dc5750858301515b5f19600386901b1c1916600185901b17855562000782565b5f85815260208120601f198616915b82811015620008245788860151825594840194600190910190840162000803565b50858210156200084257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000863575f80fd5b6200059c8262000699565b634e487b7160e01b5f52601160045260245ffd5b5f826200089d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176200059f576200059f6200086e565b808201808211156200059f576200059f6200086e565b60805160a051612934620009255f395f81816104a001528181610f1d015281816122d90152818161237701526123a201525f818161036501528181611f2a01528181611fe1015261201d01526129345ff3fe6080604052600436106102c2575f3560e01c80638da5cb5b1161016f578063c0246668116100d8578063dd62ed3e11610092578063eeebd3f91161006d578063eeebd3f91461087a578063f2fde38b14610899578063f8b45b05146108b8578063fabb0b4f146108cd575f80fd5b8063dd62ed3e14610802578063e2f4560514610846578063eba4c3331461085b575f80fd5b8063c02466681461075c578063c18bc1951461077b578063c8c8ebe41461079a578063d1633649146107af578063d257b34f146107ce578063d85ba063146107ed575f80fd5b8063a4c82a0011610129578063a4c82a001461069e578063a672990c146106b3578063a9059cbb146106d2578063aacebbe3146106f1578063b62496f514610710578063bbc0c7421461073e575f80fd5b80638da5cb5b146105fb5780639213691314610618578063924de9b71461062d57806395d89b411461064c5780639a7a23d614610660578063a457c2d71461067f575f80fd5b8063395093511161022b57806370a08231116101e5578063730c1888116101c0578063730c18881461058a578063751039fc146105a95780637571336a146105bd578063881dce60146105dc575f80fd5b806370a0823114610523578063715018a61461055757806371fc46881461056b575f80fd5b8063395093511461047057806349bd5a5e1461048f5780634a62bb65146104c25780636a486a8e146104db5780636ddd1713146104f05780636fc3eaec1461050f575f80fd5b8063203e727e1161027c578063203e727e146103d257806323b872dd146103f357806327c8f835146104125780632c3e486c146104275780632e82f1a01461043c578063313ce56714610455575f80fd5b806306fdde03146102cd578063095ea7b3146102f757806310d5de53146103265780631694505e1461035457806318160ddd1461039f578063199ffc72146103bd575f80fd5b366102c957005b5f80fd5b3480156102d8575f80fd5b506102e16108e2565b6040516102ee9190612460565b60405180910390f35b348015610302575f80fd5b506103166103113660046124bf565b610972565b60405190151581526020016102ee565b348015610331575f80fd5b506103166103403660046124e9565b60186020525f908152604090205460ff1681565b34801561035f575f80fd5b506103877f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ee565b3480156103aa575f80fd5b506002545b6040519081526020016102ee565b3480156103c8575f80fd5b506103af600a5481565b3480156103dd575f80fd5b506103f16103ec366004612504565b610988565b005b3480156103fe575f80fd5b5061031661040d36600461251b565b610a6e565b34801561041d575f80fd5b5061038761dead81565b348015610432575f80fd5b506103af600c5481565b348015610447575f80fd5b50600b546103169060ff1681565b348015610460575f80fd5b50604051601281526020016102ee565b34801561047b575f80fd5b5061031661048a3660046124bf565b610b16565b34801561049a575f80fd5b506103877f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cd575f80fd5b50600e546103169060ff1681565b3480156104e6575f80fd5b506103af60145481565b3480156104fb575f80fd5b50600e546103169062010000900460ff1681565b34801561051a575f80fd5b506103f1610b51565b34801561052e575f80fd5b506103af61053d3660046124e9565b6001600160a01b03165f9081526020819052604090205490565b348015610562575f80fd5b506103f1610ba6565b348015610576575f80fd5b506103f1610585366004612504565b610bdb565b348015610595575f80fd5b506103f16105a4366004612568565b610c63565b3480156105b4575f80fd5b50610316610d8c565b3480156105c8575f80fd5b506103f16105d736600461259a565b610dc8565b3480156105e7575f80fd5b506103f16105f6366004612504565b610e1c565b348015610606575f80fd5b506005546001600160a01b0316610387565b348015610623575f80fd5b506103af60155481565b348015610638575f80fd5b506103f16106473660046125cd565b610e9c565b348015610657575f80fd5b506102e1610ee2565b34801561066b575f80fd5b506103f161067a36600461259a565b610ef1565b34801561068a575f80fd5b506103166106993660046124bf565b610fd0565b3480156106a9575f80fd5b506103af600d5481565b3480156106be575f80fd5b506103f16106cd36600461259a565b611068565b3480156106dd575f80fd5b506103166106ec3660046124bf565b6110cf565b3480156106fc575f80fd5b506103f161070b3660046124e9565b6110db565b34801561071b575f80fd5b5061031661072a3660046124e9565b60196020525f908152604090205460ff1681565b348015610749575f80fd5b50600e5461031690610100900460ff1681565b348015610767575f80fd5b506103f161077636600461259a565b611161565b348015610786575f80fd5b506103f1610795366004612504565b6111e9565b3480156107a5575f80fd5b506103af60075481565b3480156107ba575f80fd5b506103f16107c9366004612504565b6112ba565b3480156107d9575f80fd5b506103166107e8366004612504565b611302565b3480156107f8575f80fd5b506103af60125481565b34801561080d575f80fd5b506103af61081c3660046125e6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610851575f80fd5b506103af60085481565b348015610866575f80fd5b506103f1610875366004612504565b611458565b348015610885575f80fd5b506103f1610894366004612665565b6114dd565b3480156108a4575f80fd5b506103f16108b33660046124e9565b611574565b3480156108c3575f80fd5b506103af60095481565b3480156108d8575f80fd5b506103af60115481565b6060600380546108f1906126cc565b80601f016020809104026020016040519081016040528092919081815260200182805461091d906126cc565b80156109685780601f1061093f57610100808354040283529160200191610968565b820191905f5260205f20905b81548152906001019060200180831161094b57829003601f168201915b5050505050905090565b5f61097e33848461160c565b5060015b92915050565b6005546001600160a01b031633146109bb5760405162461bcd60e51b81526004016109b290612704565b60405180910390fd5b670de0b6b3a76400006103e86109d060025490565b6109db90600161274d565b6109e59190612764565b6109ef9190612764565b811015610a565760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016109b2565b610a6881670de0b6b3a764000061274d565b60075550565b5f610a7a84848461172f565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610afe5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109b2565b610b0b853385840361160c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161097e918590610b4c908690612783565b61160c565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610b9b576040519150601f19603f3d011682016040523d82523d5f602084013e610ba0565b606091505b50505050565b6005546001600160a01b03163314610bd05760405162461bcd60e51b81526004016109b290612704565b610bd95f611e84565b565b6005546001600160a01b03163314610c055760405162461bcd60e51b81526004016109b290612704565b60138190556012819055600a811115610c605760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016109b2565b50565b6005546001600160a01b03163314610c8d5760405162461bcd60e51b81526004016109b290612704565b610258831015610cfb5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b60648201526084016109b2565b6103e88211158015610d0b575060015b610d705760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b60648201526084016109b2565b600c92909255600a55600b805460ff1916911515919091179055565b6005545f906001600160a01b03163314610db85760405162461bcd60e51b81526004016109b290612704565b50600e805460ff19169055600190565b6005546001600160a01b03163314610df25760405162461bcd60e51b81526004016109b290612704565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6006546001600160a01b0316336001600160a01b031614610e3b575f80fd5b305f908152602081905260409020548111158015610e5857505f81115b610e935760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016109b2565b610c6081611ed5565b6005546001600160a01b03163314610ec65760405162461bcd60e51b81526004016109b290612704565b600e8054911515620100000262ff000019909216919091179055565b6060600480546108f1906126cc565b6005546001600160a01b03163314610f1b5760405162461bcd60e51b81526004016109b290612704565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610fc25760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109b2565b610fcc8282612083565b5050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156110515760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b2565b61105e338585840361160c565b5060019392505050565b6005546001600160a01b031633146110925760405162461bcd60e51b81526004016109b290612704565b6001600160a01b039091165f908152601860209081526040808320805494151560ff19958616811790915560169092529091208054909216179055565b5f61097e33848461172f565b6005546001600160a01b031633146111055760405162461bcd60e51b81526004016109b290612704565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461118b5760405162461bcd60e51b81526004016109b290612704565b6001600160a01b0382165f81815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112135760405162461bcd60e51b81526004016109b290612704565b670de0b6b3a76400006103e861122860025490565b61123390600561274d565b61123d9190612764565b6112479190612764565b8110156112a25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016109b2565b6112b481670de0b6b3a764000061274d565b60095550565b6005546001600160a01b031633146112e45760405162461bcd60e51b81526004016109b290612704565b601155600e805462ffff0019166201010017905543600f5542601055565b6005545f906001600160a01b0316331461132e5760405162461bcd60e51b81526004016109b290612704565b620186a061133b60025490565b61134690600161274d565b6113509190612764565b8210156113bd5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109b2565b6103e86113c960025490565b6113d490600561274d565b6113de9190612764565b82111561144a5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109b2565b50600881905560015b919050565b6005546001600160a01b031633146114825760405162461bcd60e51b81526004016109b290612704565b60158190556014819055600a811115610c605760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016109b2565b82158015906114eb57508083145b6114f3575f80fd5b335f5b8481101561156c5761155a8287878481811061151457611514612796565b905060200201602081019061152991906124e9565b86868581811061153b5761153b612796565b90506020020135670de0b6b3a7640000611555919061274d565b61172f565b80611564816127aa565b9150506114f6565b505050505050565b6005546001600160a01b0316331461159e5760405162461bcd60e51b81526004016109b290612704565b6001600160a01b0381166116035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b2565b610c6081611e84565b6001600160a01b03831661166e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b2565b6001600160a01b0382166116cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b2565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117555760405162461bcd60e51b81526004016109b2906127c2565b6001600160a01b03821661177b5760405162461bcd60e51b81526004016109b290612807565b805f036117925761178d83835f6120d6565b505050565b600e54439060ff1615611bb8576005546001600160a01b038581169116148015906117cb57506005546001600160a01b03848116911614155b80156117df57506001600160a01b03831615155b80156117f657506001600160a01b03831661dead14155b801561180c5750600554600160a01b900460ff16155b15611bb85780601154600f546118229190612783565b106118405760636013819055601281905560158190556014556118c8565b601154600f546118509190612783565b8111801561186b5750600f54611867906003612783565b8111155b1561189e576b06765c793fa10079d0000000600781905560095560286013819055601281905560158190556014556118c8565b6b06765c793fa10079d00000006007819055600955600a6013819055601255601e60158190556014555b600e54610100900460ff16611959576001600160a01b0384165f9081526016602052604090205460ff168061191457506001600160a01b0383165f9081526016602052604090205460ff165b6119595760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b2565b6001600160a01b0384165f9081526019602052604090205460ff16801561199857506001600160a01b0383165f9081526018602052604090205460ff16155b15611a7b57600754821115611a0d5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016109b2565b6009546001600160a01b0384165f90815260208190526040902054611a329084612783565b1115611a765760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b2565b611bb8565b6001600160a01b0383165f9081526019602052604090205460ff168015611aba57506001600160a01b0384165f9081526018602052604090205460ff16155b15611b3057600754821115611a765760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016109b2565b6001600160a01b0383165f9081526018602052604090205460ff16611bb8576009546001600160a01b0384165f90815260208190526040902054611b749084612783565b1115611bb85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b2565b305f9081526020819052604090205460085481108015908190611be35750600e5462010000900460ff165b8015611bf95750600554600160a01b900460ff16155b8015611c1257505f838152601760205260409020546002115b8015611c3657506001600160a01b0386165f9081526019602052604090205460ff16155b8015611c5a57506001600160a01b0386165f9081526016602052604090205460ff16155b8015611c7e57506001600160a01b0385165f9081526016602052604090205460ff16155b15611ccb576005805460ff60a01b1916600160a01b179055611c9e612229565b5f8381526017602052604081208054909190611cb9906127aa565b909155506005805460ff60a01b191690555b600554600160a01b900460ff16158015611cfc57506001600160a01b0385165f9081526019602052604090205460ff165b8015611d0a5750600b5460ff165b8015611d255750600c54600d54611d219190612783565b4210155b8015611d4957506001600160a01b0386165f9081526016602052604090205460ff16155b15611d5857611d566122be565b505b6005546001600160a01b0387165f9081526016602052604090205460ff600160a01b909204821615911680611da457506001600160a01b0386165f9081526016602052604090205460ff165b15611dac57505f5b5f8115611e6f576001600160a01b0387165f9081526019602052604090205460ff168015611ddb57505f601454115b15611e0757611e006064611dfa6014548961244390919063ffffffff16565b90612455565b9050611e51565b6001600160a01b0388165f9081526019602052604090205460ff168015611e2f57505f601254115b15611e5157611e4e6064611dfa6012548961244390919063ffffffff16565b90505b8015611e6257611e628830836120d6565b611e6c818761284a565b95505b611e7a8888886120d6565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f0857611f08612796565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fa8919061285d565b81600181518110611fbb57611fbb612796565b60200260200101906001600160a01b031690816001600160a01b031681525050612006307f00000000000000000000000000000000000000000000000000000000000000008461160c565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061205a9085905f90869030904290600401612878565b5f604051808303815f87803b158015612071575f80fd5b505af115801561156c573d5f803e3d5ffd5b6001600160a01b0382165f81815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166120fc5760405162461bcd60e51b81526004016109b2906127c2565b6001600160a01b0382166121225760405162461bcd60e51b81526004016109b290612807565b6001600160a01b0383165f90815260208190526040902054818110156121995760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b2565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906121cf908490612783565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221b91815260200190565b60405180910390a350505050565b305f9081526020819052604081205490818103612244575050565b60085461225290601461274d565b82111561226a5760085461226790601461274d565b91505b8161227481611ed5565b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f811461156c576040519150601f19603f3d011682016040523d82523d5f602084013e61156c565b42600d556040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201525f90819030906370a0823190602401602060405180830381865afa158015612328573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234c91906128e7565b90505f61236a612710611dfa600a548561244390919063ffffffff16565b9050801561239f5761239f7f000000000000000000000000000000000000000000000000000000000000000061dead836120d6565b5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156123fb575f80fd5b505af115801561240d573d5f803e3d5ffd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d92505f9150a16001935050505090565b5f61244e828461274d565b9392505050565b5f61244e8284612764565b5f6020808352835180828501525f5b8181101561248b5785810183015185820160400152820161246f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c60575f80fd5b5f80604083850312156124d0575f80fd5b82356124db816124ab565b946020939093013593505050565b5f602082840312156124f9575f80fd5b813561244e816124ab565b5f60208284031215612514575f80fd5b5035919050565b5f805f6060848603121561252d575f80fd5b8335612538816124ab565b92506020840135612548816124ab565b929592945050506040919091013590565b80358015158114611453575f80fd5b5f805f6060848603121561257a575f80fd5b833592506020840135915061259160408501612559565b90509250925092565b5f80604083850312156125ab575f80fd5b82356125b6816124ab565b91506125c460208401612559565b90509250929050565b5f602082840312156125dd575f80fd5b61244e82612559565b5f80604083850312156125f7575f80fd5b8235612602816124ab565b91506020830135612612816124ab565b809150509250929050565b5f8083601f84011261262d575f80fd5b50813567ffffffffffffffff811115612644575f80fd5b6020830191508360208260051b850101111561265e575f80fd5b9250929050565b5f805f8060408587031215612678575f80fd5b843567ffffffffffffffff8082111561268f575f80fd5b61269b8883890161261d565b909650945060208701359150808211156126b3575f80fd5b506126c08782880161261d565b95989497509550505050565b600181811c908216806126e057607f821691505b6020821081036126fe57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761098257610982612739565b5f8261277e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561098257610982612739565b634e487b7160e01b5f52603260045260245ffd5b5f600182016127bb576127bb612739565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561098257610982612739565b5f6020828403121561286d575f80fd5b815161244e816124ab565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156128c65784516001600160a01b0316835293830193918301916001016128a1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f602082840312156128f7575f80fd5b505191905056fea2646970667358221220e44cfcae65218334b678ae65fa6d2ac1c00a907ffd94a3fb678a8d15bc44a71564736f6c63430008150033526f6c6c626974416c69656e73467269656e645465636856656761733130496e754f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000005489a7486523ff9edee7cc90a0fac973623cbcc500000000000000000000000057ada5f8c3d5a4649a7ae9c1af6b6a57a1fdeb86

Deployed Bytecode

0x6080604052600436106102c2575f3560e01c80638da5cb5b1161016f578063c0246668116100d8578063dd62ed3e11610092578063eeebd3f91161006d578063eeebd3f91461087a578063f2fde38b14610899578063f8b45b05146108b8578063fabb0b4f146108cd575f80fd5b8063dd62ed3e14610802578063e2f4560514610846578063eba4c3331461085b575f80fd5b8063c02466681461075c578063c18bc1951461077b578063c8c8ebe41461079a578063d1633649146107af578063d257b34f146107ce578063d85ba063146107ed575f80fd5b8063a4c82a0011610129578063a4c82a001461069e578063a672990c146106b3578063a9059cbb146106d2578063aacebbe3146106f1578063b62496f514610710578063bbc0c7421461073e575f80fd5b80638da5cb5b146105fb5780639213691314610618578063924de9b71461062d57806395d89b411461064c5780639a7a23d614610660578063a457c2d71461067f575f80fd5b8063395093511161022b57806370a08231116101e5578063730c1888116101c0578063730c18881461058a578063751039fc146105a95780637571336a146105bd578063881dce60146105dc575f80fd5b806370a0823114610523578063715018a61461055757806371fc46881461056b575f80fd5b8063395093511461047057806349bd5a5e1461048f5780634a62bb65146104c25780636a486a8e146104db5780636ddd1713146104f05780636fc3eaec1461050f575f80fd5b8063203e727e1161027c578063203e727e146103d257806323b872dd146103f357806327c8f835146104125780632c3e486c146104275780632e82f1a01461043c578063313ce56714610455575f80fd5b806306fdde03146102cd578063095ea7b3146102f757806310d5de53146103265780631694505e1461035457806318160ddd1461039f578063199ffc72146103bd575f80fd5b366102c957005b5f80fd5b3480156102d8575f80fd5b506102e16108e2565b6040516102ee9190612460565b60405180910390f35b348015610302575f80fd5b506103166103113660046124bf565b610972565b60405190151581526020016102ee565b348015610331575f80fd5b506103166103403660046124e9565b60186020525f908152604090205460ff1681565b34801561035f575f80fd5b506103877f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ee565b3480156103aa575f80fd5b506002545b6040519081526020016102ee565b3480156103c8575f80fd5b506103af600a5481565b3480156103dd575f80fd5b506103f16103ec366004612504565b610988565b005b3480156103fe575f80fd5b5061031661040d36600461251b565b610a6e565b34801561041d575f80fd5b5061038761dead81565b348015610432575f80fd5b506103af600c5481565b348015610447575f80fd5b50600b546103169060ff1681565b348015610460575f80fd5b50604051601281526020016102ee565b34801561047b575f80fd5b5061031661048a3660046124bf565b610b16565b34801561049a575f80fd5b506103877f000000000000000000000000676d72293f2e3920c5b1b1b60dd1cff1df374b1181565b3480156104cd575f80fd5b50600e546103169060ff1681565b3480156104e6575f80fd5b506103af60145481565b3480156104fb575f80fd5b50600e546103169062010000900460ff1681565b34801561051a575f80fd5b506103f1610b51565b34801561052e575f80fd5b506103af61053d3660046124e9565b6001600160a01b03165f9081526020819052604090205490565b348015610562575f80fd5b506103f1610ba6565b348015610576575f80fd5b506103f1610585366004612504565b610bdb565b348015610595575f80fd5b506103f16105a4366004612568565b610c63565b3480156105b4575f80fd5b50610316610d8c565b3480156105c8575f80fd5b506103f16105d736600461259a565b610dc8565b3480156105e7575f80fd5b506103f16105f6366004612504565b610e1c565b348015610606575f80fd5b506005546001600160a01b0316610387565b348015610623575f80fd5b506103af60155481565b348015610638575f80fd5b506103f16106473660046125cd565b610e9c565b348015610657575f80fd5b506102e1610ee2565b34801561066b575f80fd5b506103f161067a36600461259a565b610ef1565b34801561068a575f80fd5b506103166106993660046124bf565b610fd0565b3480156106a9575f80fd5b506103af600d5481565b3480156106be575f80fd5b506103f16106cd36600461259a565b611068565b3480156106dd575f80fd5b506103166106ec3660046124bf565b6110cf565b3480156106fc575f80fd5b506103f161070b3660046124e9565b6110db565b34801561071b575f80fd5b5061031661072a3660046124e9565b60196020525f908152604090205460ff1681565b348015610749575f80fd5b50600e5461031690610100900460ff1681565b348015610767575f80fd5b506103f161077636600461259a565b611161565b348015610786575f80fd5b506103f1610795366004612504565b6111e9565b3480156107a5575f80fd5b506103af60075481565b3480156107ba575f80fd5b506103f16107c9366004612504565b6112ba565b3480156107d9575f80fd5b506103166107e8366004612504565b611302565b3480156107f8575f80fd5b506103af60125481565b34801561080d575f80fd5b506103af61081c3660046125e6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610851575f80fd5b506103af60085481565b348015610866575f80fd5b506103f1610875366004612504565b611458565b348015610885575f80fd5b506103f1610894366004612665565b6114dd565b3480156108a4575f80fd5b506103f16108b33660046124e9565b611574565b3480156108c3575f80fd5b506103af60095481565b3480156108d8575f80fd5b506103af60115481565b6060600380546108f1906126cc565b80601f016020809104026020016040519081016040528092919081815260200182805461091d906126cc565b80156109685780601f1061093f57610100808354040283529160200191610968565b820191905f5260205f20905b81548152906001019060200180831161094b57829003601f168201915b5050505050905090565b5f61097e33848461160c565b5060015b92915050565b6005546001600160a01b031633146109bb5760405162461bcd60e51b81526004016109b290612704565b60405180910390fd5b670de0b6b3a76400006103e86109d060025490565b6109db90600161274d565b6109e59190612764565b6109ef9190612764565b811015610a565760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016109b2565b610a6881670de0b6b3a764000061274d565b60075550565b5f610a7a84848461172f565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610afe5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109b2565b610b0b853385840361160c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161097e918590610b4c908690612783565b61160c565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610b9b576040519150601f19603f3d011682016040523d82523d5f602084013e610ba0565b606091505b50505050565b6005546001600160a01b03163314610bd05760405162461bcd60e51b81526004016109b290612704565b610bd95f611e84565b565b6005546001600160a01b03163314610c055760405162461bcd60e51b81526004016109b290612704565b60138190556012819055600a811115610c605760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016109b2565b50565b6005546001600160a01b03163314610c8d5760405162461bcd60e51b81526004016109b290612704565b610258831015610cfb5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b60648201526084016109b2565b6103e88211158015610d0b575060015b610d705760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b60648201526084016109b2565b600c92909255600a55600b805460ff1916911515919091179055565b6005545f906001600160a01b03163314610db85760405162461bcd60e51b81526004016109b290612704565b50600e805460ff19169055600190565b6005546001600160a01b03163314610df25760405162461bcd60e51b81526004016109b290612704565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6006546001600160a01b0316336001600160a01b031614610e3b575f80fd5b305f908152602081905260409020548111158015610e5857505f81115b610e935760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016109b2565b610c6081611ed5565b6005546001600160a01b03163314610ec65760405162461bcd60e51b81526004016109b290612704565b600e8054911515620100000262ff000019909216919091179055565b6060600480546108f1906126cc565b6005546001600160a01b03163314610f1b5760405162461bcd60e51b81526004016109b290612704565b7f000000000000000000000000676d72293f2e3920c5b1b1b60dd1cff1df374b116001600160a01b0316826001600160a01b031603610fc25760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109b2565b610fcc8282612083565b5050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156110515760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b2565b61105e338585840361160c565b5060019392505050565b6005546001600160a01b031633146110925760405162461bcd60e51b81526004016109b290612704565b6001600160a01b039091165f908152601860209081526040808320805494151560ff19958616811790915560169092529091208054909216179055565b5f61097e33848461172f565b6005546001600160a01b031633146111055760405162461bcd60e51b81526004016109b290612704565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461118b5760405162461bcd60e51b81526004016109b290612704565b6001600160a01b0382165f81815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112135760405162461bcd60e51b81526004016109b290612704565b670de0b6b3a76400006103e861122860025490565b61123390600561274d565b61123d9190612764565b6112479190612764565b8110156112a25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016109b2565b6112b481670de0b6b3a764000061274d565b60095550565b6005546001600160a01b031633146112e45760405162461bcd60e51b81526004016109b290612704565b601155600e805462ffff0019166201010017905543600f5542601055565b6005545f906001600160a01b0316331461132e5760405162461bcd60e51b81526004016109b290612704565b620186a061133b60025490565b61134690600161274d565b6113509190612764565b8210156113bd5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109b2565b6103e86113c960025490565b6113d490600561274d565b6113de9190612764565b82111561144a5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109b2565b50600881905560015b919050565b6005546001600160a01b031633146114825760405162461bcd60e51b81526004016109b290612704565b60158190556014819055600a811115610c605760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016109b2565b82158015906114eb57508083145b6114f3575f80fd5b335f5b8481101561156c5761155a8287878481811061151457611514612796565b905060200201602081019061152991906124e9565b86868581811061153b5761153b612796565b90506020020135670de0b6b3a7640000611555919061274d565b61172f565b80611564816127aa565b9150506114f6565b505050505050565b6005546001600160a01b0316331461159e5760405162461bcd60e51b81526004016109b290612704565b6001600160a01b0381166116035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b2565b610c6081611e84565b6001600160a01b03831661166e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b2565b6001600160a01b0382166116cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b2565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117555760405162461bcd60e51b81526004016109b2906127c2565b6001600160a01b03821661177b5760405162461bcd60e51b81526004016109b290612807565b805f036117925761178d83835f6120d6565b505050565b600e54439060ff1615611bb8576005546001600160a01b038581169116148015906117cb57506005546001600160a01b03848116911614155b80156117df57506001600160a01b03831615155b80156117f657506001600160a01b03831661dead14155b801561180c5750600554600160a01b900460ff16155b15611bb85780601154600f546118229190612783565b106118405760636013819055601281905560158190556014556118c8565b601154600f546118509190612783565b8111801561186b5750600f54611867906003612783565b8111155b1561189e576b06765c793fa10079d0000000600781905560095560286013819055601281905560158190556014556118c8565b6b06765c793fa10079d00000006007819055600955600a6013819055601255601e60158190556014555b600e54610100900460ff16611959576001600160a01b0384165f9081526016602052604090205460ff168061191457506001600160a01b0383165f9081526016602052604090205460ff165b6119595760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b2565b6001600160a01b0384165f9081526019602052604090205460ff16801561199857506001600160a01b0383165f9081526018602052604090205460ff16155b15611a7b57600754821115611a0d5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016109b2565b6009546001600160a01b0384165f90815260208190526040902054611a329084612783565b1115611a765760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b2565b611bb8565b6001600160a01b0383165f9081526019602052604090205460ff168015611aba57506001600160a01b0384165f9081526018602052604090205460ff16155b15611b3057600754821115611a765760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016109b2565b6001600160a01b0383165f9081526018602052604090205460ff16611bb8576009546001600160a01b0384165f90815260208190526040902054611b749084612783565b1115611bb85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b2565b305f9081526020819052604090205460085481108015908190611be35750600e5462010000900460ff165b8015611bf95750600554600160a01b900460ff16155b8015611c1257505f838152601760205260409020546002115b8015611c3657506001600160a01b0386165f9081526019602052604090205460ff16155b8015611c5a57506001600160a01b0386165f9081526016602052604090205460ff16155b8015611c7e57506001600160a01b0385165f9081526016602052604090205460ff16155b15611ccb576005805460ff60a01b1916600160a01b179055611c9e612229565b5f8381526017602052604081208054909190611cb9906127aa565b909155506005805460ff60a01b191690555b600554600160a01b900460ff16158015611cfc57506001600160a01b0385165f9081526019602052604090205460ff165b8015611d0a5750600b5460ff165b8015611d255750600c54600d54611d219190612783565b4210155b8015611d4957506001600160a01b0386165f9081526016602052604090205460ff16155b15611d5857611d566122be565b505b6005546001600160a01b0387165f9081526016602052604090205460ff600160a01b909204821615911680611da457506001600160a01b0386165f9081526016602052604090205460ff165b15611dac57505f5b5f8115611e6f576001600160a01b0387165f9081526019602052604090205460ff168015611ddb57505f601454115b15611e0757611e006064611dfa6014548961244390919063ffffffff16565b90612455565b9050611e51565b6001600160a01b0388165f9081526019602052604090205460ff168015611e2f57505f601254115b15611e5157611e4e6064611dfa6012548961244390919063ffffffff16565b90505b8015611e6257611e628830836120d6565b611e6c818761284a565b95505b611e7a8888886120d6565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f0857611f08612796565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fa8919061285d565b81600181518110611fbb57611fbb612796565b60200260200101906001600160a01b031690816001600160a01b031681525050612006307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461160c565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061205a9085905f90869030904290600401612878565b5f604051808303815f87803b158015612071575f80fd5b505af115801561156c573d5f803e3d5ffd5b6001600160a01b0382165f81815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166120fc5760405162461bcd60e51b81526004016109b2906127c2565b6001600160a01b0382166121225760405162461bcd60e51b81526004016109b290612807565b6001600160a01b0383165f90815260208190526040902054818110156121995760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b2565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906121cf908490612783565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221b91815260200190565b60405180910390a350505050565b305f9081526020819052604081205490818103612244575050565b60085461225290601461274d565b82111561226a5760085461226790601461274d565b91505b8161227481611ed5565b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f811461156c576040519150601f19603f3d011682016040523d82523d5f602084013e61156c565b42600d556040516370a0823160e01b81526001600160a01b037f000000000000000000000000676d72293f2e3920c5b1b1b60dd1cff1df374b111660048201525f90819030906370a0823190602401602060405180830381865afa158015612328573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234c91906128e7565b90505f61236a612710611dfa600a548561244390919063ffffffff16565b9050801561239f5761239f7f000000000000000000000000676d72293f2e3920c5b1b1b60dd1cff1df374b1161dead836120d6565b5f7f000000000000000000000000676d72293f2e3920c5b1b1b60dd1cff1df374b119050806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156123fb575f80fd5b505af115801561240d573d5f803e3d5ffd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d92505f9150a16001935050505090565b5f61244e828461274d565b9392505050565b5f61244e8284612764565b5f6020808352835180828501525f5b8181101561248b5785810183015185820160400152820161246f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c60575f80fd5b5f80604083850312156124d0575f80fd5b82356124db816124ab565b946020939093013593505050565b5f602082840312156124f9575f80fd5b813561244e816124ab565b5f60208284031215612514575f80fd5b5035919050565b5f805f6060848603121561252d575f80fd5b8335612538816124ab565b92506020840135612548816124ab565b929592945050506040919091013590565b80358015158114611453575f80fd5b5f805f6060848603121561257a575f80fd5b833592506020840135915061259160408501612559565b90509250925092565b5f80604083850312156125ab575f80fd5b82356125b6816124ab565b91506125c460208401612559565b90509250929050565b5f602082840312156125dd575f80fd5b61244e82612559565b5f80604083850312156125f7575f80fd5b8235612602816124ab565b91506020830135612612816124ab565b809150509250929050565b5f8083601f84011261262d575f80fd5b50813567ffffffffffffffff811115612644575f80fd5b6020830191508360208260051b850101111561265e575f80fd5b9250929050565b5f805f8060408587031215612678575f80fd5b843567ffffffffffffffff8082111561268f575f80fd5b61269b8883890161261d565b909650945060208701359150808211156126b3575f80fd5b506126c08782880161261d565b95989497509550505050565b600181811c908216806126e057607f821691505b6020821081036126fe57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761098257610982612739565b5f8261277e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561098257610982612739565b634e487b7160e01b5f52603260045260245ffd5b5f600182016127bb576127bb612739565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561098257610982612739565b5f6020828403121561286d575f80fd5b815161244e816124ab565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156128c65784516001600160a01b0316835293830193918301916001016128a1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f602082840312156128f7575f80fd5b505191905056fea2646970667358221220e44cfcae65218334b678ae65fa6d2ac1c00a907ffd94a3fb678a8d15bc44a71564736f6c63430008150033

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

0000000000000000000000005489a7486523ff9edee7cc90a0fac973623cbcc500000000000000000000000057ada5f8c3d5a4649a7ae9c1af6b6a57a1fdeb86

-----Decoded View---------------
Arg [0] : _wallet1 (address): 0x5489a7486523fF9EdeE7cC90a0fac973623cBcC5
Arg [1] : _wallet2 (address): 0x57ADA5F8c3D5a4649a7Ae9c1aF6B6A57A1FDeB86

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005489a7486523ff9edee7cc90a0fac973623cbcc5
Arg [1] : 00000000000000000000000057ada5f8c3d5a4649a7ae9c1af6b6a57a1fdeb86


Deployed Bytecode Sourcemap

15089:15064:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2786:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3700:169;;;;;;;;;;-1:-1:-1;3700:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3700:169:0;1023:187:1;16211:63:0;;;;;;;;;;-1:-1:-1;16211:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15192:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;15192:51:0;1467:230:1;3107:108:0;;;;;;;;;;-1:-1:-1;3195:12:0;;3107:108;;;1848:25:1;;;1836:2;1821:18;3107:108:0;1702:177:1;15542:36:0;;;;;;;;;;;;;;;;19333:275;;;;;;;;;;-1:-1:-1;19333:275:0;;;;;:::i;:::-;;:::i;:::-;;3877:492;;;;;;;;;;-1:-1:-1;3877:492:0;;;;;:::i;:::-;;:::i;15295:53::-;;;;;;;;;;;;15341:6;15295:53;;15637:45;;;;;;;;;;;;;;;;15598:32;;;;;;;;;;-1:-1:-1;15598:32:0;;;;;;;;3006:93;;;;;;;;;;-1:-1:-1;3006:93:0;;3089:2;2880:36:1;;2868:2;2853:18;3006:93:0;2738:184:1;4377:215:0;;;;;;;;;;-1:-1:-1;4377:215:0;;;;;:::i;:::-;;:::i;15250:38::-;;;;;;;;;;;;;;;15727:33;;;;;;;;;;-1:-1:-1;15727:33:0;;;;;;;;16023:28;;;;;;;;;;;;;;;;15807:31;;;;;;;;;;-1:-1:-1;15807:31:0;;;;;;;;;;;20885:174;;;;;;;;;;;;;:::i;3223:127::-;;;;;;;;;;-1:-1:-1;3223:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3324:18:0;3297:7;3324:18;;;;;;;;;;;;3223:127;904:103;;;;;;;;;;;;;:::i;21579:243::-;;;;;;;;;;-1:-1:-1;21579:243:0;;;;;:::i;:::-;;:::i;28797:555::-;;;;;;;;;;-1:-1:-1;28797:555:0;;;;;:::i;:::-;;:::i;18699:121::-;;;;;;;;;;;;;:::i;20095:167::-;;;;;;;;;;-1:-1:-1;20095:167:0;;;;;:::i;:::-;;:::i;20656:221::-;;;;;;;;;;-1:-1:-1;20656:221:0;;;;;:::i;:::-;;:::i;679:87::-;;;;;;;;;;-1:-1:-1;752:6:0;;-1:-1:-1;;;;;752:6:0;679:87;;16058:31;;;;;;;;;;;;;;;;20358:100;;;;;;;;;;-1:-1:-1;20358:100:0;;;;;:::i;:::-;;:::i;2894:104::-;;;;;;;;;;;;;:::i;21071:304::-;;;;;;;;;;-1:-1:-1;21071:304:0;;;;;:::i;:::-;;:::i;4600:413::-;;;;;;;;;;-1:-1:-1;4600:413:0;;;;;:::i;:::-;;:::i;15689:29::-;;;;;;;;;;;;;;;;19880:207;;;;;;;;;;-1:-1:-1;19880:207:0;;;;;:::i;:::-;;:::i;3358:175::-;;;;;;;;;;-1:-1:-1;3358:175:0;;;;;:::i;:::-;;:::i;22086:231::-;;;;;;;;;;-1:-1:-1;22086:231:0;;;;;:::i;:::-;;:::i;16283:57::-;;;;;;;;;;-1:-1:-1;16283:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15767:33;;;;;;;;;;-1:-1:-1;15767:33:0;;;;;;;;;;;20466:182;;;;;;;;;;-1:-1:-1;20466:182:0;;;;;:::i;:::-;;:::i;19616:256::-;;;;;;;;;;-1:-1:-1;19616:256:0;;;;;:::i;:::-;;:::i;15427:35::-;;;;;;;;;;;;;;;;18450:241;;;;;;;;;;-1:-1:-1;18450:241:0;;;;;:::i;:::-;;:::i;18828:497::-;;;;;;;;;;-1:-1:-1;18828:497:0;;;;;:::i;:::-;;:::i;15949:27::-;;;;;;;;;;;;;;;;3541:151;;;;;;;;;;-1:-1:-1;3541:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3657:18:0;;;3630:7;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3541:151;15469:33;;;;;;;;;;;;;;;;21830:248;;;;;;;;;;-1:-1:-1;21830:248:0;;;;;:::i;:::-;;:::i;22325:357::-;;;;;;;;;;-1:-1:-1;22325:357:0;;;;;:::i;:::-;;:::i;1017:201::-;;;;;;;;;;-1:-1:-1;1017:201:0;;;;;:::i;:::-;;:::i;15509:24::-;;;;;;;;;;;;;;;;15915:25;;;;;;;;;;;;;;;;2786:100;2840:13;2873:5;2866:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2786:100;:::o;3700:169::-;3783:4;3800:39;299:10;3823:7;3832:6;3800:8;:39::i;:::-;-1:-1:-1;3857:4:0;3700:169;;;;;:::o;19333:275::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;;;;;;;;;19470:4:::1;19462;19441:13;3195:12:::0;;;3107:108;19441:13:::1;:17;::::0;19457:1:::1;19441:17;:::i;:::-;19440:26;;;;:::i;:::-;19439:35;;;;:::i;:::-;19429:6;:45;;19407:142;;;::::0;-1:-1:-1;;;19407:142:0;;6936:2:1;19407:142:0::1;::::0;::::1;6918:21:1::0;6975:2;6955:18;;;6948:30;7014:34;6994:18;;;6987:62;-1:-1:-1;;;7065:18:1;;;7058:45;7120:19;;19407:142:0::1;6734:411:1::0;19407:142:0::1;19583:17;:6:::0;19593::::1;19583:17;:::i;:::-;19560:20;:40:::0;-1:-1:-1;19333:275:0:o;3877:492::-;4017:4;4034:36;4044:6;4052:9;4063:6;4034:9;:36::i;:::-;-1:-1:-1;;;;;4110:19:0;;4083:24;4110:19;;;:11;:19;;;;;;;;299:10;4110:33;;;;;;;;4162:26;;;;4154:79;;;;-1:-1:-1;;;4154:79:0;;7352:2:1;4154:79:0;;;7334:21:1;7391:2;7371:18;;;7364:30;7430:34;7410:18;;;7403:62;-1:-1:-1;;;7481:18:1;;;7474:38;7529:19;;4154:79:0;7150:404:1;4154:79:0;4269:57;4278:6;299:10;4319:6;4300:16;:25;4269:8;:57::i;:::-;-1:-1:-1;4357:4:0;;3877:492;-1:-1:-1;;;;3877:492:0:o;4377:215::-;299:10;4465:4;4514:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4514:34:0;;;;;;;;;;4465:4;;4482:80;;4505:7;;4514:47;;4551:10;;4514:47;:::i;:::-;4482:8;:80::i;20885:174::-;20972:15;;20964:87;;20927:12;;-1:-1:-1;;;;;20972:15:0;;21015:21;;20927:12;20964:87;20927:12;20964:87;21015:21;20972:15;20964:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20885:174:0:o;904:103::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;969:30:::1;996:1;969:18;:30::i;:::-;904:103::o:0;21579:243::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;21671:15:::1;:31:::0;;;21713:12:::1;:30:::0;;;21778:2:::1;21762:18:::0;::::1;;21754:60;;;::::0;-1:-1:-1;;;21754:60:0;;8101:2:1;21754:60:0::1;::::0;::::1;8083:21:1::0;8140:2;8120:18;;;8113:30;8179:31;8159:18;;;8152:59;8228:18;;21754:60:0::1;7899:353:1::0;21754:60:0::1;21579:243:::0;:::o;28797:555::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;28999:3:::1;28976:19;:26;;28954:127;;;::::0;-1:-1:-1;;;28954:127:0;;8459:2:1;28954:127:0::1;::::0;::::1;8441:21:1::0;8498:2;8478:18;;;8471:30;8537:34;8517:18;;;8510:62;-1:-1:-1;;;8588:18:1;;;8581:49;8647:19;;28954:127:0::1;8257:415:1::0;28954:127:0::1;29126:4;29114:8;:16;;:33;;;;-1:-1:-1::0;29134:13:0;29114:33:::1;29092:131;;;::::0;-1:-1:-1;;;29092:131:0;;8879:2:1;29092:131:0::1;::::0;::::1;8861:21:1::0;8918:2;8898:18;;;8891:30;8957:34;8937:18;;;8930:62;-1:-1:-1;;;9008:18:1;;;9001:46;9064:19;;29092:131:0::1;8677:412:1::0;29092:131:0::1;29234:15;:37:::0;;;;29282:16:::1;:27:::0;29320:13:::1;:24:::0;;-1:-1:-1;;29320:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28797:555::o;18699:121::-;752:6;;18751:4;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;-1:-1:-1;18768:14:0::1;:22:::0;;-1:-1:-1;;18768:22:0::1;::::0;;;18699:121;:::o;20095:167::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20208:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;20208:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20095:167::o;20656:221::-;20734:15;;-1:-1:-1;;;;;20734:15:0;299:10;-1:-1:-1;;;;;20718:31:0;;20710:40;;;;;;20797:4;3297:7;3324:18;;;;;;;;;;;20769:6;:34;;:48;;;;;20816:1;20807:6;:10;20769:48;20761:73;;;;-1:-1:-1;;;20761:73:0;;9296:2:1;20761:73:0;;;9278:21:1;9335:2;9315:18;;;9308:30;-1:-1:-1;;;9354:18:1;;;9347:42;9406:18;;20761:73:0;9094:336:1;20761:73:0;20845:24;20862:6;20845:16;:24::i;20358:100::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;20429:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20429:21:0;;::::1;::::0;;;::::1;::::0;;20358:100::o;2894:104::-;2950:13;2983:7;2976:14;;;;;:::i;21071:304::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;21215:13:::1;-1:-1:-1::0;;;;;21207:21:0::1;:4;-1:-1:-1::0;;;;;21207:21:0::1;::::0;21185:128:::1;;;::::0;-1:-1:-1;;;21185:128:0;;9637:2:1;21185:128:0::1;::::0;::::1;9619:21:1::0;9676:2;9656:18;;;9649:30;9715:34;9695:18;;;9688:62;9786:27;9766:18;;;9759:55;9831:19;;21185:128:0::1;9435:421:1::0;21185:128:0::1;21326:41;21355:4;21361:5;21326:28;:41::i;:::-;21071:304:::0;;:::o;4600:413::-;299:10;4693:4;4737:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4737:34:0;;;;;;;;;;4790:35;;;;4782:85;;;;-1:-1:-1;;;4782:85:0;;10063:2:1;4782:85:0;;;10045:21:1;10102:2;10082:18;;;10075:30;10141:34;10121:18;;;10114:62;-1:-1:-1;;;10192:18:1;;;10185:35;10237:19;;4782:85:0;9861:401:1;4782:85:0;4903:67;299:10;4926:7;4954:15;4935:16;:34;4903:8;:67::i;:::-;-1:-1:-1;5001:4:0;;4600:413;-1:-1:-1;;;4600:413:0:o;19880:207::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19978:43:0;;::::1;;::::0;;;:31:::1;:43;::::0;;;;;;;:50;;;::::1;;-1:-1:-1::0;;19978:50:0;;::::1;::::0;::::1;::::0;;;20039:19:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;19880:207::o;3358:175::-;3444:4;3461:42;299:10;3485:9;3496:6;3461:9;:42::i;22086:231::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;22246:15:::1;::::0;22203:59:::1;::::0;-1:-1:-1;;;;;22246:15:0;;::::1;::::0;22203:59;::::1;::::0;::::1;::::0;22246:15:::1;::::0;22203:59:::1;22273:15;:36:::0;;-1:-1:-1;;;;;;22273:36:0::1;-1:-1:-1::0;;;;;22273:36:0;;;::::1;::::0;;;::::1;::::0;;22086:231::o;20466:182::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20551:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20551:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20606:34;;1163:41:1;;;20606:34:0::1;::::0;1136:18:1;20606:34:0::1;;;;;;;20466:182:::0;;:::o;19616:256::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;19756:4:::1;19748;19727:13;3195:12:::0;;;3107:108;19727:13:::1;:17;::::0;19743:1:::1;19727:17;:::i;:::-;19726:26;;;;:::i;:::-;19725:35;;;;:::i;:::-;19715:6;:45;;19693:131;;;::::0;-1:-1:-1;;;19693:131:0;;10469:2:1;19693:131:0::1;::::0;::::1;10451:21:1::0;10508:2;10488:18;;;10481:30;10547:34;10527:18;;;10520:62;-1:-1:-1;;;10598:18:1;;;10591:34;10642:19;;19693:131:0::1;10267:400:1::0;19693:131:0::1;19847:17;:6:::0;19857::::1;19847:17;:::i;:::-;19835:9;:29:::0;-1:-1:-1;19616:256:0:o;18450:241::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;18522:10:::1;:24:::0;18557:13:::1;:20:::0;;-1:-1:-1;;18588:18:0;;;;;18630:12:::1;18617:10;:25:::0;18668:15:::1;18653:12;:30:::0;18450:241::o;18828:497::-;752:6;;18936:4;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;19015:6:::1;18994:13;3195:12:::0;;;3107:108;18994:13:::1;:17;::::0;19010:1:::1;18994:17;:::i;:::-;18993:28;;;;:::i;:::-;18980:9;:41;;18958:144;;;::::0;-1:-1:-1;;;18958:144:0;;10874:2:1;18958:144:0::1;::::0;::::1;10856:21:1::0;10913:2;10893:18;;;10886:30;10952:34;10932:18;;;10925:62;-1:-1:-1;;;11003:18:1;;;10996:51;11064:19;;18958:144:0::1;10672:417:1::0;18958:144:0::1;19170:4;19149:13;3195:12:::0;;;3107:108;19149:13:::1;:17;::::0;19165:1:::1;19149:17;:::i;:::-;19148:26;;;;:::i;:::-;19135:9;:39;;19113:141;;;::::0;-1:-1:-1;;;19113:141:0;;11296:2:1;19113:141:0::1;::::0;::::1;11278:21:1::0;11335:2;11315:18;;;11308:30;11374:34;11354:18;;;11347:62;-1:-1:-1;;;11425:18:1;;;11418:50;11485:19;;19113:141:0::1;11094:416:1::0;19113:141:0::1;-1:-1:-1::0;19265:18:0::1;:30:::0;;;19313:4:::1;887:1;18828:497:::0;;;:::o;21830:248::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;21923:16:::1;:32:::0;;;21966:13:::1;:32:::0;;;22034:2:::1;22017:19:::0;::::1;;22009:61;;;::::0;-1:-1:-1;;;22009:61:0;;8101:2:1;22009:61:0::1;::::0;::::1;8083:21:1::0;8140:2;8120:18;;;8113:30;8179:31;8159:18;;;8152:59;8228:18;;22009:61:0::1;7899:353:1::0;22325:357:0;22434:20;;;;;:58;;-1:-1:-1;22458:34:0;;;22434:58;22426:67;;;;;;22521:10;22506:12;22546:129;22563:20;;;22546:129;;;22607:52;22617:4;22623:9;;22633:1;22623:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;22637:7;;22645:1;22637:10;;;;;;;:::i;:::-;;;;;;;22651:6;22637:21;;;;:::i;:::-;22607:9;:52::i;:::-;22585:3;;;;:::i;:::-;;;;22546:129;;;;22413:269;22325:357;;;;:::o;1017:201::-;752:6;;-1:-1:-1;;;;;752:6:0;299:10;816:23;808:68;;;;-1:-1:-1;;;808:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1106:22:0;::::1;1098:73;;;::::0;-1:-1:-1;;;1098:73:0;;11989:2:1;1098:73:0::1;::::0;::::1;11971:21:1::0;12028:2;12008:18;;;12001:30;12067:34;12047:18;;;12040:62;-1:-1:-1;;;12118:18:1;;;12111:36;12164:19;;1098:73:0::1;11787:402:1::0;1098:73:0::1;1182:28;1201:8;1182:18;:28::i;6768:380::-:0;-1:-1:-1;;;;;6904:19:0;;6896:68;;;;-1:-1:-1;;;6896:68:0;;12396:2:1;6896:68:0;;;12378:21:1;12435:2;12415:18;;;12408:30;12474:34;12454:18;;;12447:62;-1:-1:-1;;;12525:18:1;;;12518:34;12569:19;;6896:68:0;12194:400:1;6896:68:0;-1:-1:-1;;;;;6983:21:0;;6975:68;;;;-1:-1:-1;;;6975:68:0;;12801:2:1;6975:68:0;;;12783:21:1;12840:2;12820:18;;;12813:30;12879:34;12859:18;;;12852:62;-1:-1:-1;;;12930:18:1;;;12923:32;12972:19;;6975:68:0;12599:398:1;6975:68:0;-1:-1:-1;;;;;7056:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7108:32;;1848:25:1;;;7108:32:0;;1821:18:1;7108:32:0;;;;;;;6768:380;;;:::o;22690:4952::-;-1:-1:-1;;;;;22822:18:0;;22814:68;;;;-1:-1:-1;;;22814:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22901:16:0;;22893:64;;;;-1:-1:-1;;;22893:64:0;;;;;;;:::i;:::-;22974:6;22984:1;22974:11;22970:93;;23002:28;23018:4;23024:2;23028:1;23002:15;:28::i;:::-;22690:4952;;;:::o;22970:93::-;23123:14;;23094:12;;23123:14;;23119:2750;;;752:6;;-1:-1:-1;;;;;23176:15:0;;;752:6;;23176:15;;;;:49;;-1:-1:-1;752:6:0;;-1:-1:-1;;;;;23212:13:0;;;752:6;;23212:13;;23176:49;:86;;;;-1:-1:-1;;;;;;23246:16:0;;;;23176:86;:128;;;;-1:-1:-1;;;;;;23283:21:0;;23297:6;23283:21;;23176:128;:158;;;;-1:-1:-1;23326:8:0;;-1:-1:-1;;;23326:8:0;;;;23325:9;23176:158;23154:2704;;;23417:8;23402:10;;23389;;:23;;;;:::i;:::-;23388:37;23367:1038;;23479:2;23461:15;:20;;;23500:12;:30;;;23551:16;:21;;;23591:13;:32;23367:1038;;;23677:10;;23664;;:23;;;;:::i;:::-;23652:8;:36;:66;;;;-1:-1:-1;23704:10:0;;:14;;23717:1;23704:14;:::i;:::-;23692:8;:26;;23652:66;23649:756;;;23778:20;23754;:44;;;23817:9;:33;23889:2;23871:15;:20;;;23910:12;:30;;;23961:16;:21;;;24001:13;:32;23649:756;;;24130:20;24106;:44;;;24169:9;:33;24241:2;24223:15;:20;;;24262:12;:30;24332:2;24313:16;:21;;;24353:13;:32;23649:756;24430:13;;;;;;;24425:223;;-1:-1:-1;;;;;24502:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;24531:23:0;;;;;;:19;:23;;;;;;;;24502:52;24468:160;;;;-1:-1:-1;;;24468:160:0;;14014:2:1;24468:160:0;;;13996:21:1;14053:2;14033:18;;;14026:30;-1:-1:-1;;;14072:18:1;;;14065:52;14134:18;;24468:160:0;13812:346:1;24468:160:0;-1:-1:-1;;;;;24722:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;24779:35:0;;;;;;:31;:35;;;;;;;;24778:36;24722:92;24696:1147;;;24901:20;;24891:6;:30;;24857:169;;;;-1:-1:-1;;;24857:169:0;;14365:2:1;24857:169:0;;;14347:21:1;14404:2;14384:18;;;14377:30;14443:34;14423:18;;;14416:62;-1:-1:-1;;;14494:18:1;;;14487:51;14555:19;;24857:169:0;14163:417:1;24857:169:0;25109:9;;-1:-1:-1;;;;;3324:18:0;;3297:7;3324:18;;;;;;;;;;;25083:22;;:6;:22;:::i;:::-;:35;;25049:140;;;;-1:-1:-1;;;25049:140:0;;14787:2:1;25049:140:0;;;14769:21:1;14826:2;14806:18;;;14799:30;-1:-1:-1;;;14845:18:1;;;14838:49;14904:18;;25049:140:0;14585:343:1;25049:140:0;24696:1147;;;-1:-1:-1;;;;;25287:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;25342:37:0;;;;;;:31;:37;;;;;;;;25341:38;25287:92;25261:582;;;25466:20;;25456:6;:30;;25422:170;;;;-1:-1:-1;;;25422:170:0;;15135:2:1;25422:170:0;;;15117:21:1;15174:2;15154:18;;;15147:30;15213:34;15193:18;;;15186:62;-1:-1:-1;;;15264:18:1;;;15257:52;15326:19;;25422:170:0;14933:418:1;25261:582:0;-1:-1:-1;;;;;25623:35:0;;;;;;:31;:35;;;;;;;;25618:225;;25743:9;;-1:-1:-1;;;;;3324:18:0;;3297:7;3324:18;;;;;;;;;;;25717:22;;:6;:22;:::i;:::-;:35;;25683:140;;;;-1:-1:-1;;;25683:140:0;;14787:2:1;25683:140:0;;;14769:21:1;14826:2;14806:18;;;14799:30;-1:-1:-1;;;14845:18:1;;;14838:49;14904:18;;25683:140:0;14585:343:1;25683:140:0;25930:4;25881:28;3324:18;;;;;;;;;;;25988;;25964:42;;;;;;;26037:35;;-1:-1:-1;26061:11:0;;;;;;;26037:35;:61;;;;-1:-1:-1;26090:8:0;;-1:-1:-1;;;26090:8:0;;;;26089:9;26037:61;:105;;;;-1:-1:-1;26116:21:0;;;;:11;:21;;;;;;26140:1;-1:-1:-1;26037:105:0;:154;;;;-1:-1:-1;;;;;;26160:31:0;;;;;;:25;:31;;;;;;;;26159:32;26037:154;:197;;;;-1:-1:-1;;;;;;26209:25:0;;;;;;:19;:25;;;;;;;;26208:26;26037:197;:238;;;;-1:-1:-1;;;;;;26252:23:0;;;;;;:19;:23;;;;;;;;26251:24;26037:238;26019:410;;;26302:8;:15;;-1:-1:-1;;;;26302:15:0;-1:-1:-1;;;26302:15:0;;;26334:10;:8;:10::i;:::-;26363:21;;;;:11;:21;;;;;26361:23;;26363:21;;;26361:23;;;:::i;:::-;;;;-1:-1:-1;26401:8:0;:16;;-1:-1:-1;;;;26401:16:0;;;26019:410;26460:8;;-1:-1:-1;;;26460:8:0;;;;26459:9;:55;;;;-1:-1:-1;;;;;;26485:29:0;;;;;;:25;:29;;;;;;;;26459:55;:85;;;;-1:-1:-1;26531:13:0;;;;26459:85;:153;;;;;26597:15;;26580:14;;:32;;;;:::i;:::-;26561:15;:51;;26459:153;:196;;;;-1:-1:-1;;;;;;26630:25:0;;;;;;:19;:25;;;;;;;;26629:26;26459:196;26441:294;;;26688:29;:27;:29::i;:::-;;26441:294;26763:8;;-1:-1:-1;;;;;26873:25:0;;26747:12;26873:25;;;:19;:25;;;;;;26763:8;-1:-1:-1;;;26763:8:0;;;;;26762:9;;26873:25;;:52;;-1:-1:-1;;;;;;26902:23:0;;;;;;:19;:23;;;;;;;;26873:52;26869:100;;;-1:-1:-1;26952:5:0;26869:100;26981:12;27086:7;27082:507;;;-1:-1:-1;;;;;27138:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;27187:1;27171:13;;:17;27138:50;27134:306;;;27216:34;27246:3;27216:25;27227:13;;27216:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;27209:41;;27134:306;;;-1:-1:-1;;;;;27312:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;27362:1;27347:12;;:16;27312:51;27308:132;;;27391:33;27420:3;27391:24;27402:12;;27391:6;:10;;:24;;;;:::i;:33::-;27384:40;;27308:132;27460:8;;27456:91;;27489:42;27505:4;27519;27526;27489:15;:42::i;:::-;27563:14;27573:4;27563:14;;:::i;:::-;;;27082:507;27601:33;27617:4;27623:2;27627:6;27601:15;:33::i;:::-;22803:4839;;;;;22690:4952;;;:::o;1226:191::-;1319:6;;;-1:-1:-1;;;;;1336:17:0;;;-1:-1:-1;;;;;;1336:17:0;;;;;;;1369:40;;1319:6;;;1336:17;1319:6;;1369:40;;1300:16;;1369:40;1289:128;1226:191;:::o;27650:589::-;27800:16;;;27814:1;27800:16;;;;;;;;27776:21;;27800:16;;;;;;;;;;-1:-1:-1;27800:16:0;27776:40;;27845:4;27827;27832:1;27827:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;27827:23:0;;;-1:-1:-1;;;;;27827:23:0;;;;;27871:15;-1:-1:-1;;;;;27871:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27861:4;27866:1;27861:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;27861:32:0;;;-1:-1:-1;;;;;27861:32:0;;;;;27906:62;27923:4;27938:15;27956:11;27906:8;:62::i;:::-;28007:224;;-1:-1:-1;;;28007:224:0;;-1:-1:-1;;;;;28007:15:0;:66;;;;:224;;28088:11;;28114:1;;28158:4;;28185;;28205:15;;28007:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21383:188;-1:-1:-1;;;;;21466:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21466:39:0;;;;;;;;;;21523:40;;21466:39;;:31;21523:40;;;21383:188;;:::o;5021:733::-;-1:-1:-1;;;;;5161:20:0;;5153:70;;;;-1:-1:-1;;;5153:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5242:23:0;;5234:71;;;;-1:-1:-1;;;5234:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5402:17:0;;5378:21;5402:17;;;;;;;;;;;5438:23;;;;5430:74;;;;-1:-1:-1;;;5430:74:0;;17064:2:1;5430:74:0;;;17046:21:1;17103:2;17083:18;;;17076:30;17142:34;17122:18;;;17115:62;-1:-1:-1;;;17193:18:1;;;17186:36;17239:19;;5430:74:0;16862:402:1;5430:74:0;-1:-1:-1;;;;;5540:17:0;;;:9;:17;;;;;;;;;;;5560:22;;;5540:42;;5604:20;;;;;;;;:30;;5576:6;;5540:9;5604:30;;5576:6;;5604:30;:::i;:::-;;;;;;;;5669:9;-1:-1:-1;;;;;5652:35:0;5661:6;-1:-1:-1;;;;;5652:35:0;;5680:6;5652:35;;;;1848:25:1;;1836:2;1821:18;;1702:177;5652:35:0;;;;;;;;5142:612;5021:733;;;:::o;28249:540::-;28332:4;28288:23;3324:18;;;;;;;;;;;;28378:20;;;28374:59;;28415:7;;28249:540::o;28374:59::-;28467:18;;:23;;28488:2;28467:23;:::i;:::-;28449:15;:41;28445:115;;;28525:18;;:23;;28546:2;28525:23;:::i;:::-;28507:41;;28445:115;28603:15;28631:36;28603:15;28631:16;:36::i;:::-;28702:15;;28694:87;;-1:-1:-1;;;;;28702:15:0;;;;28745:21;;28694:87;;;;28745:21;28702:15;28694:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29360:788;29451:15;29434:14;:32;29552:29;;-1:-1:-1;;;29552:29:0;;-1:-1:-1;;;;;29567:13:0;1658:32:1;29552:29:0;;;1640:51:1;29417:4:0;;;;29552;;:14;;1613:18:1;;29552:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29521:60;;29631:20;29654:77;29715:5;29654:42;29679:16;;29654:20;:24;;:42;;;;:::i;:77::-;29631:100;-1:-1:-1;29836:16:0;;29832:110;;29869:61;29885:13;29908:6;29917:12;29869:15;:61::i;:::-;30017:19;30054:13;30017:51;;30079:4;-1:-1:-1;;;;;30079:9:0;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;30106:12:0;;;;-1:-1:-1;30106:12:0;;-1:-1:-1;30106:12:0;30136:4;30129:11;;;;;29360:788;:::o;8774:98::-;8832:7;8859:5;8863:1;8859;:5;:::i;:::-;8852:12;8774:98;-1:-1:-1;;;8774:98:0:o;8880:::-;8938:7;8965:5;8969:1;8965;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:180::-;1943:6;1996:2;1984:9;1975:7;1971:23;1967:32;1964:52;;;2012:1;2009;2002:12;1964:52;-1:-1:-1;2035:23:1;;1884:180;-1:-1:-1;1884:180:1:o;2069:456::-;2146:6;2154;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2396:2:1;2381:18;;2368:32;2409:33;2368:32;2409:33;:::i;:::-;2069:456;;2461:7;;-1:-1:-1;;;2515:2:1;2500:18;;;;2487:32;;2069:456::o;2927:160::-;2992:20;;3048:13;;3041:21;3031:32;;3021:60;;3077:1;3074;3067:12;3092:316;3166:6;3174;3182;3235:2;3223:9;3214:7;3210:23;3206:32;3203:52;;;3251:1;3248;3241:12;3203:52;3287:9;3274:23;3264:33;;3344:2;3333:9;3329:18;3316:32;3306:42;;3367:35;3398:2;3387:9;3383:18;3367:35;:::i;:::-;3357:45;;3092:316;;;;;:::o;3413:315::-;3478:6;3486;3539:2;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3594:9;3581:23;3613:31;3638:5;3613:31;:::i;:::-;3663:5;-1:-1:-1;3687:35:1;3718:2;3703:18;;3687:35;:::i;:::-;3677:45;;3413:315;;;;;:::o;3733:180::-;3789:6;3842:2;3830:9;3821:7;3817:23;3813:32;3810:52;;;3858:1;3855;3848:12;3810:52;3881:26;3897:9;3881:26;:::i;3918:388::-;3986:6;3994;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;:::-;4171:5;-1:-1:-1;4228:2:1;4213:18;;4200:32;4241:33;4200:32;4241:33;:::i;:::-;4293:7;4283:17;;;3918:388;;;;;:::o;4311:367::-;4374:8;4384:6;4438:3;4431:4;4423:6;4419:17;4415:27;4405:55;;4456:1;4453;4446:12;4405:55;-1:-1:-1;4479:20:1;;4522:18;4511:30;;4508:50;;;4554:1;4551;4544:12;4508:50;4591:4;4583:6;4579:17;4567:29;;4651:3;4644:4;4634:6;4631:1;4627:14;4619:6;4615:27;4611:38;4608:47;4605:67;;;4668:1;4665;4658:12;4605:67;4311:367;;;;;:::o;4683:773::-;4805:6;4813;4821;4829;4882:2;4870:9;4861:7;4857:23;4853:32;4850:52;;;4898:1;4895;4888:12;4850:52;4938:9;4925:23;4967:18;5008:2;5000:6;4997:14;4994:34;;;5024:1;5021;5014:12;4994:34;5063:70;5125:7;5116:6;5105:9;5101:22;5063:70;:::i;:::-;5152:8;;-1:-1:-1;5037:96:1;-1:-1:-1;5240:2:1;5225:18;;5212:32;;-1:-1:-1;5256:16:1;;;5253:36;;;5285:1;5282;5275:12;5253:36;;5324:72;5388:7;5377:8;5366:9;5362:24;5324:72;:::i;:::-;4683:773;;;;-1:-1:-1;5415:8:1;-1:-1:-1;;;;4683:773:1:o;5461:380::-;5540:1;5536:12;;;;5583;;;5604:61;;5658:4;5650:6;5646:17;5636:27;;5604:61;5711:2;5703:6;5700:14;5680:18;5677:38;5674:161;;5757:10;5752:3;5748:20;5745:1;5738:31;5792:4;5789:1;5782:15;5820:4;5817:1;5810:15;5674:161;;5461:380;;;:::o;5846:356::-;6048:2;6030:21;;;6067:18;;;6060:30;6126:34;6121:2;6106:18;;6099:62;6193:2;6178:18;;5846:356::o;6207:127::-;6268:10;6263:3;6259:20;6256:1;6249:31;6299:4;6296:1;6289:15;6323:4;6320:1;6313:15;6339:168;6412:9;;;6443;;6460:15;;;6454:22;;6440:37;6430:71;;6481:18;;:::i;6512:217::-;6552:1;6578;6568:132;;6622:10;6617:3;6613:20;6610:1;6603:31;6657:4;6654:1;6647:15;6685:4;6682:1;6675:15;6568:132;-1:-1:-1;6714:9:1;;6512:217::o;7559:125::-;7624:9;;;7645:10;;;7642:36;;;7658:18;;:::i;11515:127::-;11576:10;11571:3;11567:20;11564:1;11557:31;11607:4;11604:1;11597:15;11631:4;11628:1;11621:15;11647:135;11686:3;11707:17;;;11704:43;;11727:18;;:::i;:::-;-1:-1:-1;11774:1:1;11763:13;;11647:135::o;13002:401::-;13204:2;13186:21;;;13243:2;13223:18;;;13216:30;13282:34;13277:2;13262:18;;13255:62;-1:-1:-1;;;13348:2:1;13333:18;;13326:35;13393:3;13378:19;;13002:401::o;13408:399::-;13610:2;13592:21;;;13649:2;13629:18;;;13622:30;13688:34;13683:2;13668:18;;13661:62;-1:-1:-1;;;13754:2:1;13739:18;;13732:33;13797:3;13782:19;;13408:399::o;15356:128::-;15423:9;;;15444:11;;;15441:37;;;15458:18;;:::i;15621:251::-;15691:6;15744:2;15732:9;15723:7;15719:23;15715:32;15712:52;;;15760:1;15757;15750:12;15712:52;15792:9;15786:16;15811:31;15836:5;15811:31;:::i;15877:980::-;16139:4;16187:3;16176:9;16172:19;16218:6;16207:9;16200:25;16244:2;16282:6;16277:2;16266:9;16262:18;16255:34;16325:3;16320:2;16309:9;16305:18;16298:31;16349:6;16384;16378:13;16415:6;16407;16400:22;16453:3;16442:9;16438:19;16431:26;;16492:2;16484:6;16480:15;16466:29;;16513:1;16523:195;16537:6;16534:1;16531:13;16523:195;;;16602:13;;-1:-1:-1;;;;;16598:39:1;16586:52;;16693:15;;;;16658:12;;;;16634:1;16552:9;16523:195;;;-1:-1:-1;;;;;;;16774:32:1;;;;16769:2;16754:18;;16747:60;-1:-1:-1;;;16838:3:1;16823:19;16816:35;16735:3;15877:980;-1:-1:-1;;;15877:980:1:o;17269:184::-;17339:6;17392:2;17380:9;17371:7;17367:23;17363:32;17360:52;;;17408:1;17405;17398:12;17360:52;-1:-1:-1;17431:16:1;;17269:184;-1:-1:-1;17269:184:1:o

Swarm Source

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