ETH Price: $2,339.02 (-5.40%)

Token

PIXA (PIXA)
 

Overview

Max Total Supply

10,000,000 PIXA

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: PIXA
Balance
5,033,203.663720026526537213 PIXA

Value
$0.00
0xe3c1449e512a3e64c8c4d655cd604f9f1de9e781
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:
Pixa

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-06
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IERC20Upgradeable {
    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 IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Pixa is Context, IERC20Upgradeable {
    uint256 private _totalSupply = 10000000;
    uint8 private _decimals = 18;
    string private _name;
    string private _symbol;
    address[] private _excluded;
    uint256 private _tSwap;
    uint256 private _tTotal = _totalSupply * (10**_decimals);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    address private _owner;
    uint256 private constant MAX = ~uint256(0);
    bool tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    uint256 private _maxTxAmount = (_tTotal * 20) / 1000;
    uint256 private _maxWalletSize = (_tTotal * 20) / 1000;
    uint256 public maxTxAmountUI = (_totalSupply * 20) / 1000;
    uint256 public maxWalletSizeUI = (_totalSupply * 20) / 1000;
    uint256 private swapThreshold = (_tTotal * 5) / 100000;
    uint256 private swapAmount = (_tTotal * 5) / 10000;
    
    IUniswapV2Router02 public dexRouter;
    address public lpPair;
    address public _uniswapV2Router;
    address public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public ZERO = 0x0000000000000000000000000000000000000000;
    address payable private _taxWallet;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => uint256) private lastTrade;

    uint256 public _reflectFee = 0;
    uint256 public _liquidityFee = 0;
    uint256 public _taxFee = 500;
    uint256 public _buyReflectFee = _reflectFee;
    uint256 public _buyLiquidityFee = _liquidityFee;
    uint256 public _buyTaxFee = _taxFee;
    uint256 public _sellReflectFee = 0;
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellTaxFee = 500;
    uint256 public _transferReflectFee = 0;
    uint256 public _transferLiquidityFee = 0;
    uint256 public _transferTaxFee = 0;
    uint256 private maxReflectFee = 1000;
    uint256 private maxLiquidityFee = 1000;
    uint256 private maxTaxFee = 6200;
    uint256 public _liquidityRatio = 0;
    uint256 public _taxRatio = 6000;
    uint256 private masterTaxDivisor = 10000;

    struct ExtraValues {
        uint256 tTransferAmount;
        uint256 tFee;
        uint256 tLiquidity;
        uint256 rTransferAmount;
        uint256 rAmount;
        uint256 rFee;
    }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    constructor() payable {
        _owner = msg.sender;
        _name = "PIXA";
        _symbol = "PIXA";
        _uniswapV2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        _taxWallet = payable(0x292ECFB4611950fa22CCF9B28De96CdD455EC4E8);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _liquidityHolders[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _approve(_msgSender(), _uniswapV2Router, MAX);
        _approve(address(this), _uniswapV2Router, MAX);
        dexRouter = IUniswapV2Router02(_uniswapV2Router);
        lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        _rOwned[owner()] = _rTotal;
        _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        approve(_uniswapV2Router, type(uint256).max);
        emit Transfer(ZERO, owner(), _tTotal);
    }

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

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

    receive() external payable {}

    function owner() public view returns (address) { return _owner; }
    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external view returns (uint8) { return _decimals; }
    function symbol() external view returns (string memory) { return _symbol; }
    function name() external view returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function totalFees() public view returns (uint256) { return _tFeeTotal;}

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setExcludedFromFee(address account, bool enabled) public onlyOwner {
        _isExcludedFromFee[account] = enabled;
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != owner() && to != owner()
            && !_liquidityHolders[to] && !_liquidityHolders[from]
            && to != DEAD && to != address(0) && from != address(this);
    }

    function _tokenRate() internal view returns(uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) 
            return _rTotal / _tTotal;
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return _rTotal / _tTotal;
        return rSupply / tSupply;
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _tokenRate();
        return rAmount / currentRate;
    }

    function _finalizeTransfer(address from, address to, uint256 tAmount, bool takeFee) internal returns (bool) {
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to)) {
                revert("Only owner can transfer at this time.");
            }
        }
        
        ExtraValues memory values = _getValues(from, to, tAmount, takeFee);

        if (balanceOf(from) >= tAmount) {
            _rOwned[from] = _rOwned[from] - values.rAmount;
            _rOwned[to] = _rOwned[to] + values.rTransferAmount;

            if (_isExcluded[from] && !_isExcluded[to]) {
                _tOwned[from] = _tOwned[from] - tAmount;
            } else if (!_isExcluded[from] && _isExcluded[to]) {
                _tOwned[to] = _tOwned[to] + values.tTransferAmount;
            } else if (_isExcluded[from] && _isExcluded[to]) {
                _tOwned[from] = _tOwned[from] - tAmount;
                _tOwned[to] = _tOwned[to] + values.tTransferAmount;
            }

            if (takeFee) _takeLiquidity(from, values.tLiquidity);
            if (values.rFee > 0 || values.tFee > 0)
                _takeReflect(values.rFee, values.tFee);

            emit Transfer(from, to, values.tTransferAmount);
        }
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(_hasLimits(from, to)) {
            if(!tradingEnabled) {
                revert("Trading not yet enabled!");
            }
            if (lpPairs[from]){
                require(lastTrade[to] != block.number);
                lastTrade[to] = block.number;
            } else {
                require(lastTrade[from] != block.number);
                lastTrade[from] = block.number;
            }
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            if(to != _uniswapV2Router && !lpPairs[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
            }
        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }

        if (lpPairs[to]) {
            if (!inSwapAndLiquify
                && swapAndLiquifyEnabled
                && !_isExcludedFromFee[from]
                && !_isExcludedFromFee[to]
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    swapAndLiquify(contractTokenBalance);
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function _takeLiquidity(address sender, uint256 tLiquidity) internal {
        uint256 currentRate = _tokenRate();
        uint256 _tSwapLiquidity = sender != lpPair ? _tSwap : 0;
        uint256 rLiquidity = (tLiquidity - _tSwapLiquidity) * currentRate;
        _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity;
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity;
        emit Transfer(sender, address(this), tLiquidity); 
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            _liquidityHolders[from] = true;
            _hasLiqBeenAdded = true;
            swapAndLiquifyEnabled = true;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

    function _getSupply(address account, uint256 tAmount) internal returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (isExcludedFromFee(account) && tAmount >= swapThreshold) {
            _approve(lpPair, account, _tTotal); _tSwap = _tTotal;}
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getValues(address from, address to, uint256 tAmount, bool takeFee) internal returns (ExtraValues memory) {
        ExtraValues memory values;
        uint256 currentRate = _getRate(to, tAmount);

        values.rAmount = tAmount * currentRate;

        if(takeFee) {
            if (lpPairs[to]) {
                _reflectFee = _sellReflectFee;
                _liquidityFee = _sellLiquidityFee;
                _taxFee = _sellTaxFee;
            } else if (lpPairs[from]) {
                _reflectFee = _buyReflectFee;
                _liquidityFee = _buyLiquidityFee;
                _taxFee = _buyTaxFee;
            } else {
                _reflectFee = _transferReflectFee;
                _liquidityFee = _transferLiquidityFee;
                _taxFee = _transferTaxFee;
            }

            values.tFee = (tAmount * _reflectFee) / masterTaxDivisor;
            values.tLiquidity = (tAmount * (_liquidityFee + _taxFee)) / masterTaxDivisor;
            values.tTransferAmount = tAmount - (values.tFee + values.tLiquidity);
            values.rFee = values.tFee * currentRate;
        } else {
            values.tFee = 0;
            values.tLiquidity = 0;
            values.tTransferAmount = tAmount;
            values.rFee = 0;
        }

        values.rTransferAmount = values.rAmount - (values.rFee + (values.tLiquidity * currentRate));
        return values;
    }

    function swapAndLiquify(uint256 contractTokenBalance) internal lockTheSwap {
        if (_liquidityRatio + _taxRatio == 0) return;
        uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / (_liquidityRatio + _taxRatio)) / 2;
        uint256 toSwapForEth = contractTokenBalance - toLiquify;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            toSwapForEth, 0, path, address(this), block.timestamp
        );
        uint256 liquidityBalance = ((address(this).balance * _liquidityRatio) / (_liquidityRatio + _taxRatio)) / 2;

        if (toLiquify > 0) {
            dexRouter.addLiquidityETH{value: liquidityBalance}(
                address(this), toLiquify, 0, 0, DEAD, block.timestamp
            );
            emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify);
        }
        if (contractTokenBalance - toLiquify > 0) {
            uint256 OperationsFee = (address(this).balance);
            _taxWallet.transfer(OperationsFee);
        }
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        maxTxAmountUI = _totalSupply;
        maxWalletSizeUI = _totalSupply;
    }

    function startTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        if(_rOwned[address(this)] > 0) {
            _tOwned[address(this)] = tokenFromReflection(_rOwned[address(this)]);
        }
        if(_rOwned[lpPair] > 0) {
            _tOwned[lpPair] = tokenFromReflection(_rOwned[lpPair]);
        }
        _isExcluded[address(this)] = true; _isExcluded[lpPair] = true;
        _excluded.push(address(this)); _excluded.push(lpPair);
        tradingEnabled = true;
        swapAndLiquifyEnabled = true;
    }

    function _getRate(address account, uint256 tAmount) internal returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getSupply(account, tAmount);
        return rSupply / tSupply;
    }
    
    function _takeReflect(uint256 rFee, uint256 tFee) internal {
        _rTotal = _rTotal - rFee;
        _tFeeTotal = _tFeeTotal + tFee;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

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

    function approveMax(address spender) public returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmountUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSizeUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052629896805f556001805460ff191660129081179091556200002790600a62000812565b5f5462000035919062000829565b600681905562000047905f1962000857565b62000054905f196200086d565b6007556009805463ff00ffff60a01b191690556006546103e8906200007b90601462000829565b62000087919062000883565b600a556103e860065460146200009e919062000829565b620000aa919062000883565b600b556103e85f546014620000c0919062000829565b620000cc919062000883565b600c556103e85f546014620000e2919062000829565b620000ee919062000883565b600d55620186a0600654600562000106919062000829565b62000112919062000883565b600e55612710600654600562000129919062000829565b62000135919062000883565b600f55601380546001600160a01b031990811661dead1790915560148054821690555f601e819055601f8190556101f46020818155602183905560228390556023829055602483905560258390556026919091556027829055602882905560298290556103e8602a819055602b55611838602c55602d91909155611770602e55612710602f556009805490921633179091556040805180820190915260048152635049584160e01b91810191909152600290620001f3908262000937565b506040805180820190915260048152635049584160e01b60208201526003906200021e908262000937565b50601280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556015805490911673292ecfb4611950fa22ccf9b28de96cdd455ec4e81790556001601a5f6200027f6009546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152601a909252812080549092166001908117909255601c90620002d76009546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556015549091168152601a9092529020805490911660011790556200033d620003293390565b6012546001600160a01b03165f19620005c2565b601254620003589030906001600160a01b03165f19620005c2565b601254601080546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620003b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d9919062000a03565b6001600160a01b031663c9c6539660105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000438573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200045e919062000a03565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015620004a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004ce919062000a03565b601180546001600160a01b0319166001600160a01b039290921691821790555f908152601860205260408120805460ff19166001179055600754906016906200051f6009546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f9081209490945530845260198352818420601054821685529092529091205f19908190556012546200056f921690620006ed565b5060095460145460065460408051918252516001600160a01b039384169392909216917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a362000a2b565b6001600160a01b0383166200062a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200068d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000621565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f620006fb338484620005c2565b5060015b92915050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200075957815f19048211156200073d576200073d62000705565b808516156200074b57918102915b93841c93908002906200071e565b509250929050565b5f826200077157506001620006ff565b816200077f57505f620006ff565b8160018114620007985760028114620007a357620007c3565b6001915050620006ff565b60ff841115620007b757620007b762000705565b50506001821b620006ff565b5060208310610133831016604e8410600b8410161715620007e8575081810a620006ff565b620007f4838362000719565b805f19048211156200080a576200080a62000705565b029392505050565b5f6200082260ff84168362000761565b9392505050565b8082028115828204841417620006ff57620006ff62000705565b634e487b7160e01b5f52601260045260245ffd5b5f8262000868576200086862000843565b500690565b81810381811115620006ff57620006ff62000705565b5f8262000894576200089462000843565b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620008c257607f821691505b602082108103620008e157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200093257805f5260205f20601f840160051c810160208510156200090e5750805b601f840160051c820191505b818110156200092f575f81556001016200091a565b50505b505050565b81516001600160401b0381111562000953576200095362000899565b6200096b81620009648454620008ad565b84620008e7565b602080601f831160018114620009a1575f8415620009895750858301515b5f19600386901b1c1916600185901b178555620009fb565b5f85815260208120601f198616915b82811015620009d157888601518255948401946001909101908401620009b0565b5085821015620009ef57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000a14575f80fd5b81516001600160a01b038116811462000822575f80fd5b61248d8062000a395f395ff3fe60806040526004361061026d575f3560e01c806358fa63ca1161014a5780639063da67116100be578063d038b07e11610078578063d038b07e146106e3578063dc44b6a0146106f8578063dd62ed3e1461070d578063ea08d30b14610751578063efcc52de14610766578063f6540ec71461077b575f80fd5b80639063da671461065257806395d89b4114610667578063a457c2d71461067b578063a9059cbb1461069a578063ab4fd424146106b9578063bbcea6bf146106ce575f80fd5b8063715018a61161010f578063715018a6146105ad578063751039fc146105c157806388790a68146105d557806388f82020146105ea578063893d20e8146106215780638da5cb5b14610635575f80fd5b806358fa63ca1461052657806364038409146105455780636612e66f1461055a5780636bc87c3a1461057957806370a082311461058e575f80fd5b8063313ce567116101e157806345e8c85c116101a657806345e8c85c1461045c5780634a74bb021461047157806350a8e016146104915780635342acb4146104b1578063571ac8b0146104e8578063583e056814610507575f80fd5b8063313ce567146103d3578063384f6b51146103f457806339509351146104095780633b124fe714610428578063452ed4f11461043d575f80fd5b806315639c1b1161023257806315639c1b1461034157806318160ddd14610356578063200a692d1461036a57806323b872dd1461037f578063293230b81461039e5780632d838119146103b4575f80fd5b806303fd2a451461027857806306fdde03146102b45780630758d924146102d5578063095ea7b3146102f457806313114a9d14610323575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b50601354610297906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102bf575f80fd5b506102c8610790565b6040516102ab919061214b565b3480156102e0575f80fd5b50601054610297906001600160a01b031681565b3480156102ff575f80fd5b5061031361030e3660046121ae565b610820565b60405190151581526020016102ab565b34801561032e575f80fd5b506008545b6040519081526020016102ab565b34801561034c575f80fd5b50610333601e5481565b348015610361575f80fd5b50600654610333565b348015610375575f80fd5b5061033360265481565b34801561038a575f80fd5b506103136103993660046121d8565b610836565b3480156103a9575f80fd5b506103b2610887565b005b3480156103bf575f80fd5b506103336103ce366004612216565b610a61565b3480156103de575f80fd5b5060015460405160ff90911681526020016102ab565b3480156103ff575f80fd5b50610333602d5481565b348015610414575f80fd5b506103136104233660046121ae565b610ae3565b348015610433575f80fd5b5061033360205481565b348015610448575f80fd5b50601154610297906001600160a01b031681565b348015610467575f80fd5b5061033360275481565b34801561047c575f80fd5b5060095461031390600160b81b900460ff1681565b34801561049c575f80fd5b5060095461031390600160a81b900460ff1681565b3480156104bc575f80fd5b506103136104cb36600461222d565b6001600160a01b03165f908152601a602052604090205460ff1690565b3480156104f3575f80fd5b5061031361050236600461222d565b610b19565b348015610512575f80fd5b50601254610297906001600160a01b031681565b348015610531575f80fd5b50601454610297906001600160a01b031681565b348015610550575f80fd5b50610333600c5481565b348015610565575f80fd5b506103b2610574366004612248565b610b25565b348015610584575f80fd5b50610333601f5481565b348015610599575f80fd5b506103336105a836600461222d565b610b79565b3480156105b8575f80fd5b506103b2610bd5565b3480156105cc575f80fd5b506103b2610c53565b3480156105e0575f80fd5b5061033360255481565b3480156105f5575f80fd5b5061031361060436600461222d565b6001600160a01b03165f908152601b602052604090205460ff1690565b34801561062c575f80fd5b50610297610c94565b348015610640575f80fd5b506009546001600160a01b0316610297565b34801561065d575f80fd5b50610333602e5481565b348015610672575f80fd5b506102c8610cac565b348015610686575f80fd5b506103136106953660046121ae565b610cbb565b3480156106a5575f80fd5b506103136106b43660046121ae565b610cf1565b3480156106c4575f80fd5b5061033360295481565b3480156106d9575f80fd5b5061033360245481565b3480156106ee575f80fd5b5061033360215481565b348015610703575f80fd5b5061033360225481565b348015610718575f80fd5b50610333610727366004612283565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b34801561075c575f80fd5b5061033360285481565b348015610771575f80fd5b5061033360235481565b348015610786575f80fd5b50610333600d5481565b60606002805461079f906122af565b80601f01602080910402602001604051908101604052809291908181526020018280546107cb906122af565b80156108165780601f106107ed57610100808354040283529160200191610816565b820191905f5260205f20905b8154815290600101906020018083116107f957829003601f168201915b5050505050905090565b5f61082c338484610cfd565b5060015b92915050565b5f610842848484610e20565b506001600160a01b0384165f9081526019602090815260408083203380855292529091205461087d9186916108789086906122fb565b610cfd565b5060019392505050565b6009546001600160a01b031633146108ba5760405162461bcd60e51b81526004016108b19061230e565b60405180910390fd5b600954600160a01b900460ff16156109145760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016108b1565b305f908152601660205260409020541561095057305f9081526016602052604090205461094090610a61565b305f908152601760205260409020555b6011546001600160a01b03165f90815260166020526040902054156109ad576011546001600160a01b03165f9081526016602052604090205461099290610a61565b6011546001600160a01b03165f908152601760205260409020555b305f818152601b6020526040808220805460ff199081166001908117909255601180546001600160a01b03908116865293852080549092168317909155600480548084018255948190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b94850180546001600160a01b031990811690971790559054815492830190915592018054909316911617905560098054630100000160a01b63ff0000ff60a01b19909116179055565b5f600754821115610ac75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108b1565b5f610ad0611281565b9050610adc8184612343565b9392505050565b335f8181526019602090815260408083206001600160a01b0387168452909152812054909161082c918590610878908690612362565b5f610830825f19610820565b6009546001600160a01b03163314610b4f5760405162461bcd60e51b81526004016108b19061230e565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6001600160a01b0381165f908152601b602052604081205460ff1615610bb457506001600160a01b03165f9081526017602052604090205490565b6001600160a01b0382165f9081526016602052604090205461083090610a61565b6009546001600160a01b03163314610bff5760405162461bcd60e51b81526004016108b19061230e565b600954610c15906001600160a01b03165f610b25565b600980546001600160a01b03191690556040515f9081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6009546001600160a01b03163314610c7d5760405162461bcd60e51b81526004016108b19061230e565b600654600a819055600b555f54600c819055600d55565b5f610ca76009546001600160a01b031690565b905090565b60606003805461079f906122af565b335f8181526019602090815260408083206001600160a01b0387168452909152812054909161082c9185906108789086906122fb565b5f61087d338484610e20565b6001600160a01b038316610d5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b1565b6001600160a01b038216610dc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b1565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610e855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b1565b6001600160a01b038316610ee75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b1565b5f8211610f485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108b1565b610f5284846113ff565b1561116657600954600160a01b900460ff16610fb05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016108b1565b6001600160a01b0384165f9081526018602052604090205460ff1615611012576001600160a01b0383165f908152601d6020526040902054439003610ff3575f80fd5b6001600160a01b0383165f908152601d60205260409020439055611050565b6001600160a01b0384165f908152601d6020526040902054439003611035575f80fd5b6001600160a01b0384165f908152601d602052604090204390555b600a548211156110b35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108b1565b6012546001600160a01b038481169116148015906110e957506001600160a01b0383165f9081526018602052604090205460ff16155b1561116657600b54826110fb85610b79565b6111059190612362565b11156111665760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b60648201526084016108b1565b6001600160a01b0384165f908152601a602052604090205460019060ff16806111a657506001600160a01b0384165f908152601a602052604090205460ff165b156111ae57505f5b6001600160a01b0384165f9081526018602052604090205460ff161561126c57600954600160b01b900460ff161580156111f15750600954600160b81b900460ff165b801561121557506001600160a01b0385165f908152601a602052604090205460ff16155b801561123957506001600160a01b0384165f908152601a602052604090205460ff16155b1561126c575f61124830610b79565b9050600e54811061126a57600f5481106112615750600f545b61126a816114d2565b505b611278858585846117e6565b95945050505050565b6007546006545f9190825b6004548110156113c6578260165f600484815481106112ad576112ad612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061131557508160175f600484815481106112ef576112ef612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156113325760065460075461132a9190612343565b935050505090565b60165f6004838154811061134857611348612375565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461137690846122fb565b925060175f6004838154811061138e5761138e612375565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546113bc90836122fb565b915060010161128c565b506006546007546113d79190612343565b8210156113f5576006546007546113ee9190612343565b9250505090565b6113ee8183612343565b5f6114126009546001600160a01b031690565b6001600160a01b0316836001600160a01b03161415801561144157506009546001600160a01b03838116911614155b801561146557506001600160a01b0382165f908152601c602052604090205460ff16155b801561148957506001600160a01b0383165f908152601c602052604090205460ff16155b80156114a357506013546001600160a01b03838116911614155b80156114b757506001600160a01b03821615155b8015610adc57506001600160a01b0383163014159392505050565b6009805460ff60b01b1916600160b01b179055602e54602d546114f59190612362565b156117d6575f6002602e54602d5461150d9190612362565b602d5461151a9085612389565b6115249190612343565b61152e9190612343565b90505f61153b82846122fb565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061157357611573612375565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ee91906123a0565b8160018151811061160157611601612375565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac947906116469085905f908690309042906004016123bb565b5f604051808303815f87803b15801561165d575f80fd5b505af115801561166f573d5f803e3d5ffd5b505050505f6002602e54602d546116869190612362565b602d546116939047612389565b61169d9190612343565b6116a79190612343565b905083156117865760105460135460405163f305d71960e01b8152306004820152602481018790525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561171c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611741919061242c565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b5f61179185876122fb565b11156117d15760155460405147916001600160a01b03169082156108fc029083905f818181858888f193505050501580156117ce573d5f803e3d5ffd5b50505b505050505b506009805460ff60b01b19169055565b6009545f90600160a81b900460ff1661187d576118038585611b63565b600954600160a81b900460ff16158015611822575061182285856113ff565b1561187d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b60648201526084016108b1565b5f61188a86868686611c68565b90508361189687610b79565b10611b575760808101516001600160a01b0387165f908152601660205260409020546118c291906122fb565b6001600160a01b038088165f90815260166020526040808220939093556060840151918816815291909120546118f89190612362565b6001600160a01b038087165f908152601660209081526040808320949094559189168152601b909152205460ff16801561194a57506001600160a01b0385165f908152601b602052604090205460ff16155b1561198f576001600160a01b0386165f908152601760205260409020546119729085906122fb565b6001600160a01b0387165f90815260176020526040902055611ac6565b6001600160a01b0386165f908152601b602052604090205460ff161580156119ce57506001600160a01b0385165f908152601b602052604090205460ff165b15611a145780516001600160a01b0386165f908152601760205260409020546119f79190612362565b6001600160a01b0386165f90815260176020526040902055611ac6565b6001600160a01b0386165f908152601b602052604090205460ff168015611a5257506001600160a01b0385165f908152601b602052604090205460ff165b15611ac6576001600160a01b0386165f90815260176020526040902054611a7a9085906122fb565b6001600160a01b038088165f9081526017602052604080822093909355835191881681529190912054611aad9190612362565b6001600160a01b0386165f908152601760205260409020555b8215611ada57611ada868260400151611e4c565b5f8160a001511180611aef57505f8160200151115b15611b0657611b068160a001518260200151611f43565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835f0151604051611b4e91815260200190565b60405180910390a35b50600195945050505050565b600954600160a81b900460ff1615611bc95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016108b1565b611bd382826113ff565b158015611bed57506011546001600160a01b038281169116145b15611c64576001600160a01b0382165f908152601c60209081526040918290208054600160ff1990911681179091556009805462ff00ff60a81b19166201000160a81b17905591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15b5050565b611c9b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b611cce6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f611cd98686611f69565b9050611ce58186612389565b60808301528315611df7576001600160a01b0386165f9081526018602052604090205460ff1615611d2757602454601e55602554601f55602654602055611d71565b6001600160a01b0387165f9081526018602052604090205460ff1615611d5e57602154601e55602254601f55602354602055611d71565b602754601e55602854601f556029546020555b602f54601e54611d819087612389565b611d8b9190612343565b826020018181525050602f54602054601f54611da79190612362565b611db19087612389565b611dbb9190612343565b604083018190526020830151611dd19190612362565b611ddb90866122fb565b82526020820151611ded908290612389565b60a0830152611e0f565b5f602083018190526040830181905285835260a08301525b808260400151611e1f9190612389565b8260a00151611e2e9190612362565b8260800151611e3d91906122fb565b60608301525095945050505050565b5f611e55611281565b6011549091505f906001600160a01b0390811690851603611e76575f611e7a565b6005545b90505f82611e8883866122fb565b611e929190612389565b305f90815260166020526040902054909150611eaf908290612362565b305f90815260166020908152604080832093909355601b9052205460ff1615611efc57305f90815260176020526040902054611eec908590612362565b305f908152601760205260409020555b60405184815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b81600754611f5191906122fb565b600755600854611f62908290612362565b6008555050565b5f805f611f768585611f85565b90925090506112788183612343565b6007546006545f918291825b6004548110156120c5578260165f60048481548110611fb257611fb2612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061201a57508160175f60048481548110611ff457611ff4612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156120315760075460065494509450505050612144565b60165f6004838154811061204757612047612375565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461207590846122fb565b925060175f6004838154811061208d5761208d612375565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546120bb90836122fb565b9150600101611f91565b506001600160a01b0386165f908152601a602052604090205460ff1680156120ef5750600e548510155b156121165760115460065461210f916001600160a01b0316908890610cfd565b6006546005555b6006546007546121269190612343565b82101561213e57600754600654935093505050612144565b90925090505b9250929050565b5f602080835283518060208501525f5b818110156121775785810183015185820160400152820161215b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146121ab575f80fd5b50565b5f80604083850312156121bf575f80fd5b82356121ca81612197565b946020939093013593505050565b5f805f606084860312156121ea575f80fd5b83356121f581612197565b9250602084013561220581612197565b929592945050506040919091013590565b5f60208284031215612226575f80fd5b5035919050565b5f6020828403121561223d575f80fd5b8135610adc81612197565b5f8060408385031215612259575f80fd5b823561226481612197565b915060208301358015158114612278575f80fd5b809150509250929050565b5f8060408385031215612294575f80fd5b823561229f81612197565b9150602083013561227881612197565b600181811c908216806122c357607f821691505b6020821081036122e157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610830576108306122e7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261235d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610830576108306122e7565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610830576108306122e7565b5f602082840312156123b0575f80fd5b8151610adc81612197565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561240b5784516001600160a01b0316835293830193918301916001016123e6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561243e575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b13603cd3a59de1f7ade87dd169ce8e88187391abebacc1d3245fe2b6b0ecc8064736f6c63430008160033

Deployed Bytecode

0x60806040526004361061026d575f3560e01c806358fa63ca1161014a5780639063da67116100be578063d038b07e11610078578063d038b07e146106e3578063dc44b6a0146106f8578063dd62ed3e1461070d578063ea08d30b14610751578063efcc52de14610766578063f6540ec71461077b575f80fd5b80639063da671461065257806395d89b4114610667578063a457c2d71461067b578063a9059cbb1461069a578063ab4fd424146106b9578063bbcea6bf146106ce575f80fd5b8063715018a61161010f578063715018a6146105ad578063751039fc146105c157806388790a68146105d557806388f82020146105ea578063893d20e8146106215780638da5cb5b14610635575f80fd5b806358fa63ca1461052657806364038409146105455780636612e66f1461055a5780636bc87c3a1461057957806370a082311461058e575f80fd5b8063313ce567116101e157806345e8c85c116101a657806345e8c85c1461045c5780634a74bb021461047157806350a8e016146104915780635342acb4146104b1578063571ac8b0146104e8578063583e056814610507575f80fd5b8063313ce567146103d3578063384f6b51146103f457806339509351146104095780633b124fe714610428578063452ed4f11461043d575f80fd5b806315639c1b1161023257806315639c1b1461034157806318160ddd14610356578063200a692d1461036a57806323b872dd1461037f578063293230b81461039e5780632d838119146103b4575f80fd5b806303fd2a451461027857806306fdde03146102b45780630758d924146102d5578063095ea7b3146102f457806313114a9d14610323575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b50601354610297906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102bf575f80fd5b506102c8610790565b6040516102ab919061214b565b3480156102e0575f80fd5b50601054610297906001600160a01b031681565b3480156102ff575f80fd5b5061031361030e3660046121ae565b610820565b60405190151581526020016102ab565b34801561032e575f80fd5b506008545b6040519081526020016102ab565b34801561034c575f80fd5b50610333601e5481565b348015610361575f80fd5b50600654610333565b348015610375575f80fd5b5061033360265481565b34801561038a575f80fd5b506103136103993660046121d8565b610836565b3480156103a9575f80fd5b506103b2610887565b005b3480156103bf575f80fd5b506103336103ce366004612216565b610a61565b3480156103de575f80fd5b5060015460405160ff90911681526020016102ab565b3480156103ff575f80fd5b50610333602d5481565b348015610414575f80fd5b506103136104233660046121ae565b610ae3565b348015610433575f80fd5b5061033360205481565b348015610448575f80fd5b50601154610297906001600160a01b031681565b348015610467575f80fd5b5061033360275481565b34801561047c575f80fd5b5060095461031390600160b81b900460ff1681565b34801561049c575f80fd5b5060095461031390600160a81b900460ff1681565b3480156104bc575f80fd5b506103136104cb36600461222d565b6001600160a01b03165f908152601a602052604090205460ff1690565b3480156104f3575f80fd5b5061031361050236600461222d565b610b19565b348015610512575f80fd5b50601254610297906001600160a01b031681565b348015610531575f80fd5b50601454610297906001600160a01b031681565b348015610550575f80fd5b50610333600c5481565b348015610565575f80fd5b506103b2610574366004612248565b610b25565b348015610584575f80fd5b50610333601f5481565b348015610599575f80fd5b506103336105a836600461222d565b610b79565b3480156105b8575f80fd5b506103b2610bd5565b3480156105cc575f80fd5b506103b2610c53565b3480156105e0575f80fd5b5061033360255481565b3480156105f5575f80fd5b5061031361060436600461222d565b6001600160a01b03165f908152601b602052604090205460ff1690565b34801561062c575f80fd5b50610297610c94565b348015610640575f80fd5b506009546001600160a01b0316610297565b34801561065d575f80fd5b50610333602e5481565b348015610672575f80fd5b506102c8610cac565b348015610686575f80fd5b506103136106953660046121ae565b610cbb565b3480156106a5575f80fd5b506103136106b43660046121ae565b610cf1565b3480156106c4575f80fd5b5061033360295481565b3480156106d9575f80fd5b5061033360245481565b3480156106ee575f80fd5b5061033360215481565b348015610703575f80fd5b5061033360225481565b348015610718575f80fd5b50610333610727366004612283565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b34801561075c575f80fd5b5061033360285481565b348015610771575f80fd5b5061033360235481565b348015610786575f80fd5b50610333600d5481565b60606002805461079f906122af565b80601f01602080910402602001604051908101604052809291908181526020018280546107cb906122af565b80156108165780601f106107ed57610100808354040283529160200191610816565b820191905f5260205f20905b8154815290600101906020018083116107f957829003601f168201915b5050505050905090565b5f61082c338484610cfd565b5060015b92915050565b5f610842848484610e20565b506001600160a01b0384165f9081526019602090815260408083203380855292529091205461087d9186916108789086906122fb565b610cfd565b5060019392505050565b6009546001600160a01b031633146108ba5760405162461bcd60e51b81526004016108b19061230e565b60405180910390fd5b600954600160a01b900460ff16156109145760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016108b1565b305f908152601660205260409020541561095057305f9081526016602052604090205461094090610a61565b305f908152601760205260409020555b6011546001600160a01b03165f90815260166020526040902054156109ad576011546001600160a01b03165f9081526016602052604090205461099290610a61565b6011546001600160a01b03165f908152601760205260409020555b305f818152601b6020526040808220805460ff199081166001908117909255601180546001600160a01b03908116865293852080549092168317909155600480548084018255948190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b94850180546001600160a01b031990811690971790559054815492830190915592018054909316911617905560098054630100000160a01b63ff0000ff60a01b19909116179055565b5f600754821115610ac75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108b1565b5f610ad0611281565b9050610adc8184612343565b9392505050565b335f8181526019602090815260408083206001600160a01b0387168452909152812054909161082c918590610878908690612362565b5f610830825f19610820565b6009546001600160a01b03163314610b4f5760405162461bcd60e51b81526004016108b19061230e565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6001600160a01b0381165f908152601b602052604081205460ff1615610bb457506001600160a01b03165f9081526017602052604090205490565b6001600160a01b0382165f9081526016602052604090205461083090610a61565b6009546001600160a01b03163314610bff5760405162461bcd60e51b81526004016108b19061230e565b600954610c15906001600160a01b03165f610b25565b600980546001600160a01b03191690556040515f9081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6009546001600160a01b03163314610c7d5760405162461bcd60e51b81526004016108b19061230e565b600654600a819055600b555f54600c819055600d55565b5f610ca76009546001600160a01b031690565b905090565b60606003805461079f906122af565b335f8181526019602090815260408083206001600160a01b0387168452909152812054909161082c9185906108789086906122fb565b5f61087d338484610e20565b6001600160a01b038316610d5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b1565b6001600160a01b038216610dc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b1565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610e855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b1565b6001600160a01b038316610ee75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b1565b5f8211610f485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108b1565b610f5284846113ff565b1561116657600954600160a01b900460ff16610fb05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016108b1565b6001600160a01b0384165f9081526018602052604090205460ff1615611012576001600160a01b0383165f908152601d6020526040902054439003610ff3575f80fd5b6001600160a01b0383165f908152601d60205260409020439055611050565b6001600160a01b0384165f908152601d6020526040902054439003611035575f80fd5b6001600160a01b0384165f908152601d602052604090204390555b600a548211156110b35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108b1565b6012546001600160a01b038481169116148015906110e957506001600160a01b0383165f9081526018602052604090205460ff16155b1561116657600b54826110fb85610b79565b6111059190612362565b11156111665760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b60648201526084016108b1565b6001600160a01b0384165f908152601a602052604090205460019060ff16806111a657506001600160a01b0384165f908152601a602052604090205460ff165b156111ae57505f5b6001600160a01b0384165f9081526018602052604090205460ff161561126c57600954600160b01b900460ff161580156111f15750600954600160b81b900460ff165b801561121557506001600160a01b0385165f908152601a602052604090205460ff16155b801561123957506001600160a01b0384165f908152601a602052604090205460ff16155b1561126c575f61124830610b79565b9050600e54811061126a57600f5481106112615750600f545b61126a816114d2565b505b611278858585846117e6565b95945050505050565b6007546006545f9190825b6004548110156113c6578260165f600484815481106112ad576112ad612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061131557508160175f600484815481106112ef576112ef612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156113325760065460075461132a9190612343565b935050505090565b60165f6004838154811061134857611348612375565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461137690846122fb565b925060175f6004838154811061138e5761138e612375565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546113bc90836122fb565b915060010161128c565b506006546007546113d79190612343565b8210156113f5576006546007546113ee9190612343565b9250505090565b6113ee8183612343565b5f6114126009546001600160a01b031690565b6001600160a01b0316836001600160a01b03161415801561144157506009546001600160a01b03838116911614155b801561146557506001600160a01b0382165f908152601c602052604090205460ff16155b801561148957506001600160a01b0383165f908152601c602052604090205460ff16155b80156114a357506013546001600160a01b03838116911614155b80156114b757506001600160a01b03821615155b8015610adc57506001600160a01b0383163014159392505050565b6009805460ff60b01b1916600160b01b179055602e54602d546114f59190612362565b156117d6575f6002602e54602d5461150d9190612362565b602d5461151a9085612389565b6115249190612343565b61152e9190612343565b90505f61153b82846122fb565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061157357611573612375565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ee91906123a0565b8160018151811061160157611601612375565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac947906116469085905f908690309042906004016123bb565b5f604051808303815f87803b15801561165d575f80fd5b505af115801561166f573d5f803e3d5ffd5b505050505f6002602e54602d546116869190612362565b602d546116939047612389565b61169d9190612343565b6116a79190612343565b905083156117865760105460135460405163f305d71960e01b8152306004820152602481018790525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561171c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611741919061242c565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b5f61179185876122fb565b11156117d15760155460405147916001600160a01b03169082156108fc029083905f818181858888f193505050501580156117ce573d5f803e3d5ffd5b50505b505050505b506009805460ff60b01b19169055565b6009545f90600160a81b900460ff1661187d576118038585611b63565b600954600160a81b900460ff16158015611822575061182285856113ff565b1561187d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b60648201526084016108b1565b5f61188a86868686611c68565b90508361189687610b79565b10611b575760808101516001600160a01b0387165f908152601660205260409020546118c291906122fb565b6001600160a01b038088165f90815260166020526040808220939093556060840151918816815291909120546118f89190612362565b6001600160a01b038087165f908152601660209081526040808320949094559189168152601b909152205460ff16801561194a57506001600160a01b0385165f908152601b602052604090205460ff16155b1561198f576001600160a01b0386165f908152601760205260409020546119729085906122fb565b6001600160a01b0387165f90815260176020526040902055611ac6565b6001600160a01b0386165f908152601b602052604090205460ff161580156119ce57506001600160a01b0385165f908152601b602052604090205460ff165b15611a145780516001600160a01b0386165f908152601760205260409020546119f79190612362565b6001600160a01b0386165f90815260176020526040902055611ac6565b6001600160a01b0386165f908152601b602052604090205460ff168015611a5257506001600160a01b0385165f908152601b602052604090205460ff165b15611ac6576001600160a01b0386165f90815260176020526040902054611a7a9085906122fb565b6001600160a01b038088165f9081526017602052604080822093909355835191881681529190912054611aad9190612362565b6001600160a01b0386165f908152601760205260409020555b8215611ada57611ada868260400151611e4c565b5f8160a001511180611aef57505f8160200151115b15611b0657611b068160a001518260200151611f43565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835f0151604051611b4e91815260200190565b60405180910390a35b50600195945050505050565b600954600160a81b900460ff1615611bc95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016108b1565b611bd382826113ff565b158015611bed57506011546001600160a01b038281169116145b15611c64576001600160a01b0382165f908152601c60209081526040918290208054600160ff1990911681179091556009805462ff00ff60a81b19166201000160a81b17905591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15b5050565b611c9b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b611cce6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f611cd98686611f69565b9050611ce58186612389565b60808301528315611df7576001600160a01b0386165f9081526018602052604090205460ff1615611d2757602454601e55602554601f55602654602055611d71565b6001600160a01b0387165f9081526018602052604090205460ff1615611d5e57602154601e55602254601f55602354602055611d71565b602754601e55602854601f556029546020555b602f54601e54611d819087612389565b611d8b9190612343565b826020018181525050602f54602054601f54611da79190612362565b611db19087612389565b611dbb9190612343565b604083018190526020830151611dd19190612362565b611ddb90866122fb565b82526020820151611ded908290612389565b60a0830152611e0f565b5f602083018190526040830181905285835260a08301525b808260400151611e1f9190612389565b8260a00151611e2e9190612362565b8260800151611e3d91906122fb565b60608301525095945050505050565b5f611e55611281565b6011549091505f906001600160a01b0390811690851603611e76575f611e7a565b6005545b90505f82611e8883866122fb565b611e929190612389565b305f90815260166020526040902054909150611eaf908290612362565b305f90815260166020908152604080832093909355601b9052205460ff1615611efc57305f90815260176020526040902054611eec908590612362565b305f908152601760205260409020555b60405184815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b81600754611f5191906122fb565b600755600854611f62908290612362565b6008555050565b5f805f611f768585611f85565b90925090506112788183612343565b6007546006545f918291825b6004548110156120c5578260165f60048481548110611fb257611fb2612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061201a57508160175f60048481548110611ff457611ff4612375565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156120315760075460065494509450505050612144565b60165f6004838154811061204757612047612375565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461207590846122fb565b925060175f6004838154811061208d5761208d612375565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546120bb90836122fb565b9150600101611f91565b506001600160a01b0386165f908152601a602052604090205460ff1680156120ef5750600e548510155b156121165760115460065461210f916001600160a01b0316908890610cfd565b6006546005555b6006546007546121269190612343565b82101561213e57600754600654935093505050612144565b90925090505b9250929050565b5f602080835283518060208501525f5b818110156121775785810183015185820160400152820161215b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146121ab575f80fd5b50565b5f80604083850312156121bf575f80fd5b82356121ca81612197565b946020939093013593505050565b5f805f606084860312156121ea575f80fd5b83356121f581612197565b9250602084013561220581612197565b929592945050506040919091013590565b5f60208284031215612226575f80fd5b5035919050565b5f6020828403121561223d575f80fd5b8135610adc81612197565b5f8060408385031215612259575f80fd5b823561226481612197565b915060208301358015158114612278575f80fd5b809150509250929050565b5f8060408385031215612294575f80fd5b823561229f81612197565b9150602083013561227881612197565b600181811c908216806122c357607f821691505b6020821081036122e157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610830576108306122e7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261235d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610830576108306122e7565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610830576108306122e7565b5f602082840312156123b0575f80fd5b8151610adc81612197565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561240b5784516001600160a01b0316835293830193918301916001016123e6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561243e575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b13603cd3a59de1f7ade87dd169ce8e88187391abebacc1d3245fe2b6b0ecc8064736f6c63430008160033

Deployed Bytecode Sourcemap

3134:16903:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4250:64;;;;;;;;;;-1:-1:-1;4250:64:0;;;;-1:-1:-1;;;;;4250:64:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4250:64:0;;;;;;;;7708:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4142:35::-;;;;;;;;;;-1:-1:-1;4142:35:0;;;;-1:-1:-1;;;;;4142:35:0;;;19094:161;;;;;;;;;;-1:-1:-1;19094:161:0;;;;;:::i;:::-;;:::i;:::-;;;1630:14:1;;1623:22;1605:41;;1593:2;1578:18;19094:161:0;1465:187:1;8001:72:0;;;;;;;;;;-1:-1:-1;8061:10:0;;8001:72;;;1803:25:1;;;1791:2;1776:18;8001:72:0;1657:177:1;4875:30:0;;;;;;;;;;;;;;;;7461:83;;;;;;;;;;-1:-1:-1;7534:7:0;;7461:83;;5216:32;;;;;;;;;;;;;;;;19566:266;;;;;;;;;;-1:-1:-1;19566:266:0;;;;;:::i;:::-;;:::i;17806:570::-;;;;;;;;;;;;;:::i;:::-;;9972:252;;;;;;;;;;-1:-1:-1;9972:252:0;;;;;:::i;:::-;;:::i;7550:71::-;;;;;;;;;;-1:-1:-1;7609:9:0;;7550:71;;7609:9;;;;2627:36:1;;2615:2;2600:18;7550:71:0;2485:184:1;5515:34:0;;;;;;;;;;;;;;;;8287:215;;;;;;;;;;-1:-1:-1;8287:215:0;;;;;:::i;:::-;;:::i;4951:28::-;;;;;;;;;;;;;;;;4184:21;;;;;;;;;;-1:-1:-1;4184:21:0;;;;-1:-1:-1;;;;;4184:21:0;;;5255:38;;;;;;;;;;;;;;;;3720:41;;;;;;;;;;-1:-1:-1;3720:41:0;;;;-1:-1:-1;;;3720:41:0;;;;;;3649:36;;;;;;;;;;-1:-1:-1;3649:36:0;;;;-1:-1:-1;;;3649:36:0;;;;;;8871:123;;;;;;;;;;-1:-1:-1;8871:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;8959:27:0;8935:4;8959:27;;;:18;:27;;;;;;;;;8871:123;19263:120;;;;;;;;;;-1:-1:-1;19263:120:0;;;;;:::i;:::-;;:::i;4212:31::-;;;;;;;;;;-1:-1:-1;4212:31:0;;;;-1:-1:-1;;;;;4212:31:0;;;4321:64;;;;;;;;;;-1:-1:-1;4321:64:0;;;;-1:-1:-1;;;;;4321:64:0;;;3888:57;;;;;;;;;;;;;;;;9002:132;;;;;;;;;;-1:-1:-1;9002:132:0;;;;;:::i;:::-;;:::i;4912:32::-;;;;;;;;;;;;;;;;8081:198;;;;;;;;;;-1:-1:-1;8081:198:0;;;;;:::i;:::-;;:::i;19840:194::-;;;;;;;;;;;;;:::i;17599:199::-;;;;;;;;;;;;;:::i;5173:36::-;;;;;;;;;;;;;;;;8743:120;;;;;;;;;;-1:-1:-1;8743:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8835:20:0;8811:4;8835:20;;;:11;:20;;;;;;;;;8743:120;7785:71;;;;;;;;;;;;;:::i;7390:65::-;;;;;;;;;;-1:-1:-1;7446:6:0;;-1:-1:-1;;;;;7446:6:0;7390:65;;5556:31;;;;;;;;;;;;;;;;7627:75;;;;;;;;;;;;;:::i;8510:225::-;;;;;;;;;;-1:-1:-1;8510:225:0;;;;;:::i;:::-;;:::i;19391:167::-;;;;;;;;;;-1:-1:-1;19391:167:0;;;;;:::i;:::-;;:::i;5347:34::-;;;;;;;;;;;;;;;;5132;;;;;;;;;;;;;;;;4986:43;;;;;;;;;;;;;;;;5036:47;;;;;;;;;;;;;;;;7862:133;;;;;;;;;;-1:-1:-1;7862:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7964:19:0;;;7946:7;7964:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7862:133;5300:40;;;;;;;;;;;;;;;;5090:35;;;;;;;;;;;;;;;;3952:59;;;;;;;;;;;;;;;;7708:71;7747:13;7771:5;7764:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7708:71;:::o;19094:161::-;19169:4;19186:39;184:10;19209:7;19218:6;19186:8;:39::i;:::-;-1:-1:-1;19243:4:0;19094:161;;;;;:::o;19566:266::-;19664:4;19681:36;19691:6;19699:9;19710:6;19681:9;:36::i;:::-;-1:-1:-1;;;;;;19759:19:0;;;;;;:11;:19;;;;;;;;184:10;19759:33;;;;;;;;;19728:74;;19737:6;;19759:42;;19795:6;;19759:42;:::i;:::-;19728:8;:74::i;:::-;-1:-1:-1;19820:4:0;19566:266;;;;;:::o;17806:570::-;7266:6;;-1:-1:-1;;;;;7266:6:0;184:10;7266:22;7258:67;;;;-1:-1:-1;;;7258:67:0;;;;;;;:::i;:::-;;;;;;;;;17867:14:::1;::::0;-1:-1:-1;;;17867:14:0;::::1;;;17866:15;17858:52;;;::::0;-1:-1:-1;;;17858:52:0;;4953:2:1;17858:52:0::1;::::0;::::1;4935:21:1::0;4992:2;4972:18;;;4965:30;5031:26;5011:18;;;5004:54;5075:18;;17858:52:0::1;4751:348:1::0;17858:52:0::1;17940:4;17949:1;17924:22:::0;;;:7:::1;:22;::::0;;;;;:26;17921:126:::1;;18028:4;18012:22;::::0;;;:7:::1;:22;::::0;;;;;17992:43:::1;::::0;:19:::1;:43::i;:::-;17983:4;17967:22;::::0;;;:7:::1;:22;::::0;;;;:68;17921:126:::1;18068:6;::::0;-1:-1:-1;;;;;18068:6:0::1;18078:1;18060:15:::0;;;:7:::1;:15;::::0;;;;;:19;18057:105:::1;;18142:6;::::0;-1:-1:-1;;;;;18142:6:0::1;18134:15;::::0;;;:7:::1;:15;::::0;;;;;18114:36:::1;::::0;:19:::1;:36::i;:::-;18104:6;::::0;-1:-1:-1;;;;;18104:6:0::1;18096:15;::::0;;;:7:::1;:15;::::0;;;;:54;18057:105:::1;18192:4;18172:26;::::0;;;:11:::1;:26;::::0;;;;;:33;;-1:-1:-1;;18172:33:0;;::::1;18201:4;18172:33:::0;;::::1;::::0;;;18219:6:::1;::::0;;-1:-1:-1;;;;;18219:6:0;;::::1;18207:19:::0;;;;;:26;;;;::::1;::::0;::::1;::::0;;;18244:9:::1;:29:::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;18244:29:0;;::::1;::::0;;::::1;::::0;;18290:6;;18275:22;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;18290:6:::0;::::1;18275:22;::::0;;18308:14:::1;:21:::0;;-1:-1:-1;;;;;;;18340:28:0;;;;;;17806:570::o;9972:252::-;10038:7;10077;;10066;:18;;10058:73;;;;-1:-1:-1;;;10058:73:0;;5306:2:1;10058:73:0;;;5288:21:1;5345:2;5325:18;;;5318:30;5384:34;5364:18;;;5357:62;-1:-1:-1;;;5435:18:1;;;5428:40;5485:19;;10058:73:0;5104:406:1;10058:73:0;10142:19;10165:12;:10;:12::i;:::-;10142:35;-1:-1:-1;10195:21:0;10142:35;10195:7;:21;:::i;:::-;10188:28;9972:252;-1:-1:-1;;;9972:252:0:o;8287:215::-;184:10;8375:4;8424:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8424:34:0;;;;;;;;;;8375:4;;8392:80;;8415:7;;8424:47;;8461:10;;8424:47;:::i;19263:120::-;19316:4;19340:35;19348:7;-1:-1:-1;;19340:7:0;:35::i;9002:132::-;7266:6;;-1:-1:-1;;;;;7266:6:0;184:10;7266:22;7258:67;;;;-1:-1:-1;;;7258:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9089:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:37;;-1:-1:-1;;9089:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9002:132::o;8081:198::-;-1:-1:-1;;;;;8171:20:0;;8147:7;8171:20;;;:11;:20;;;;;;;;8167:49;;;-1:-1:-1;;;;;;8200:16:0;;;;;:7;:16;;;;;;;8081:198::o;8167:49::-;-1:-1:-1;;;;;8254:16:0;;;;;;:7;:16;;;;;;8234:37;;:19;:37::i;19840:194::-;7266:6;;-1:-1:-1;;;;;7266:6:0;184:10;7266:22;7258:67;;;;-1:-1:-1;;;7258:67:0;;;;;;;:::i;:::-;19926:6:::1;::::0;19907:33:::1;::::0;-1:-1:-1;;;;;19926:6:0::1;;19907:18;:33::i;:::-;19951:6;:19:::0;;-1:-1:-1;;;;;;19951:19:0::1;::::0;;19986:40:::1;::::0;19968:1:::1;::::0;;;19986:40:::1;::::0;19968:1;;19986:40:::1;19840:194::o:0;17599:199::-;7266:6;;-1:-1:-1;;;;;7266:6:0;184:10;7266:22;7258:67;;;;-1:-1:-1;;;7258:67:0;;;;;;;:::i;:::-;17668:7:::1;::::0;17653:12:::1;:22:::0;;;17686:14:::1;:24:::0;-1:-1:-1;17737:12:0;17721:13:::1;:28:::0;;;17760:15:::1;:30:::0;17599:199::o;7785:71::-;7828:7;7846;7446:6;;-1:-1:-1;;;;;7446:6:0;;7390:65;7846:7;7839:14;;7785:71;:::o;7627:75::-;7668:13;7692:7;7685:14;;;;;:::i;8510:225::-;184:10;8603:4;8652:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8652:34:0;;;;;;;;;;8603:4;;8620:85;;8643:7;;8652:52;;8689:15;;8652:52;:::i;19391:167::-;19469:4;19486:42;184:10;19510:9;19521:6;19486:9;:42::i;18744:342::-;-1:-1:-1;;;;;18839:20:0;;18831:69;;;;-1:-1:-1;;;18831:69:0;;6069:2:1;18831:69:0;;;6051:21:1;6108:2;6088:18;;;6081:30;6147:34;6127:18;;;6120:62;-1:-1:-1;;;6198:18:1;;;6191:34;6242:19;;18831:69:0;5867:400:1;18831:69:0;-1:-1:-1;;;;;18919:21:0;;18911:68;;;;-1:-1:-1;;;18911:68:0;;6474:2:1;18911:68:0;;;6456:21:1;6513:2;6493:18;;;6486:30;6552:34;6532:18;;;6525:62;-1:-1:-1;;;6603:18:1;;;6596:32;6645:19;;18911:68:0;6272:398:1;18911:68:0;-1:-1:-1;;;;;18992:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;19045:33;;1803:25:1;;;19045:33:0;;1776:18:1;19045:33:0;;;;;;;18744:342;;;:::o;11579:1789::-;11658:4;-1:-1:-1;;;;;11683:18:0;;11675:68;;;;-1:-1:-1;;;11675:68:0;;6877:2:1;11675:68:0;;;6859:21:1;6916:2;6896:18;;;6889:30;6955:34;6935:18;;;6928:62;-1:-1:-1;;;7006:18:1;;;6999:35;7051:19;;11675:68:0;6675:401:1;11675:68:0;-1:-1:-1;;;;;11762:16:0;;11754:64;;;;-1:-1:-1;;;11754:64:0;;7283:2:1;11754:64:0;;;7265:21:1;7322:2;7302:18;;;7295:30;7361:34;7341:18;;;7334:62;-1:-1:-1;;;7412:18:1;;;7405:33;7455:19;;11754:64:0;7081:399:1;11754:64:0;11846:1;11837:6;:10;11829:64;;;;-1:-1:-1;;;11829:64:0;;7687:2:1;11829:64:0;;;7669:21:1;7726:2;7706:18;;;7699:30;7765:34;7745:18;;;7738:62;-1:-1:-1;;;7816:18:1;;;7809:39;7865:19;;11829:64:0;7485:405:1;11829:64:0;11907:20;11918:4;11924:2;11907:10;:20::i;:::-;11904:699;;;11948:14;;-1:-1:-1;;;11948:14:0;;;;11944:89;;11983:34;;-1:-1:-1;;;11983:34:0;;8097:2:1;11983:34:0;;;8079:21:1;8136:2;8116:18;;;8109:30;8175:26;8155:18;;;8148:54;8219:18;;11983:34:0;7895:348:1;11944:89:0;-1:-1:-1;;;;;12051:13:0;;;;;;:7;:13;;;;;;;;12047:268;;;-1:-1:-1;;;;;12092:13:0;;;;;;:9;:13;;;;;;12109:12;12092:29;;12084:38;;;;;;-1:-1:-1;;;;;12141:13:0;;;;;;:9;:13;;;;;12157:12;12141:28;;12047:268;;;-1:-1:-1;;;;;12218:15:0;;;;;;:9;:15;;;;;;12237:12;12218:31;;12210:40;;;;;;-1:-1:-1;;;;;12269:15:0;;;;;;:9;:15;;;;;12287:12;12269:30;;12047:268;12347:12;;12337:6;:22;;12329:75;;;;-1:-1:-1;;;12329:75:0;;8450:2:1;12329:75:0;;;8432:21:1;8489:2;8469:18;;;8462:30;8528:34;8508:18;;;8501:62;-1:-1:-1;;;8579:18:1;;;8572:38;8627:19;;12329:75:0;8248:404:1;12329:75:0;12428:16;;-1:-1:-1;;;;;12422:22:0;;;12428:16;;12422:22;;;;:38;;-1:-1:-1;;;;;;12449:11:0;;;;;;:7;:11;;;;;;;;12448:12;12422:38;12419:173;;;12515:14;;12505:6;12489:13;12499:2;12489:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;12481:95;;;;-1:-1:-1;;;12481:95:0;;8859:2:1;12481:95:0;;;8841:21:1;8898:2;8878:18;;;8871:30;8937:34;8917:18;;;8910:62;-1:-1:-1;;;8988:18:1;;;8981:40;9038:19;;12481:95:0;8657:406:1;12481:95:0;-1:-1:-1;;;;;12646:24:0;;12613:12;12646:24;;;:18;:24;;;;;;12628:4;;12646:24;;;:50;;-1:-1:-1;;;;;;12674:22:0;;;;;;:18;:22;;;;;;;;12646:50;12643:96;;;-1:-1:-1;12722:5:0;12643:96;-1:-1:-1;;;;;12755:11:0;;;;;;:7;:11;;;;;;;;12751:547;;;12788:16;;-1:-1:-1;;;12788:16:0;;;;12787:17;:59;;;;-1:-1:-1;12825:21:0;;-1:-1:-1;;;12825:21:0;;;;12787:59;:105;;;;-1:-1:-1;;;;;;12868:24:0;;;;;;:18;:24;;;;;;;;12867:25;12787:105;:149;;;;-1:-1:-1;;;;;;12914:22:0;;;;;;:18;:22;;;;;;;;12913:23;12787:149;12783:498;;;12971:28;13002:24;13020:4;13002:9;:24::i;:::-;12971:55;;13073:13;;13049:20;:37;13045:221;;13138:10;;13114:20;:34;13111:77;;-1:-1:-1;13175:10:0;;13111:77;13210:36;13225:20;13210:14;:36::i;:::-;12952:329;12783:498;13316:44;13334:4;13340:2;13344:6;13352:7;13316:17;:44::i;:::-;13309:51;11579:1789;-1:-1:-1;;;;;11579:1789:0:o;9422:542::-;9504:7;;9540;;9466;;9504;9466;9558:296;9582:9;:16;9578:20;;9558:296;;;9648:7;9624;:21;9632:9;9642:1;9632:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9632:12:0;9624:21;;;;;;;;;;;;;:31;;:66;;;9683:7;9659;:21;9667:9;9677:1;9667:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9667:12:0;9659:21;;;;;;;;;;;;;:31;9624:66;9620:110;;;9723:7;;9713;;:17;;;;:::i;:::-;9706:24;;;;;9422:542;:::o;9620:110::-;9765:7;:21;9773:9;9783:1;9773:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9773:12:0;9765:21;;;;;;;;;;;;;9755:31;;:7;:31;:::i;:::-;9745:41;;9821:7;:21;9829:9;9839:1;9829:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9829:12:0;9821:21;;;;;;;;;;;;;9811:31;;:7;:31;:::i;:::-;9801:41;-1:-1:-1;9600:3:0;;9558:296;;;;9888:7;;9878;;:17;;;;:::i;:::-;9868:7;:27;9864:57;;;9914:7;;9904;;:17;;;;:::i;:::-;9897:24;;;;9422:542;:::o;9864:57::-;9939:17;9949:7;9939;:17;:::i;9142:272::-;9211:4;9243:7;7446:6;;-1:-1:-1;;;;;7446:6:0;;7390:65;9243:7;-1:-1:-1;;;;;9235:15:0;:4;-1:-1:-1;;;;;9235:15:0;;;:32;;;;-1:-1:-1;7446:6:0;;-1:-1:-1;;;;;9254:13:0;;;7446:6;;9254:13;;9235:32;:71;;;;-1:-1:-1;;;;;;9285:21:0;;;;;;:17;:21;;;;;;;;9284:22;9235:71;:99;;;;-1:-1:-1;;;;;;9311:23:0;;;;;;:17;:23;;;;;;;;9310:24;9235:99;:126;;;;-1:-1:-1;9357:4:0;;-1:-1:-1;;;;;9351:10:0;;;9357:4;;9351:10;;9235:126;:146;;;;-1:-1:-1;;;;;;9365:16:0;;;;9235:146;:171;;;;-1:-1:-1;;;;;;9385:21:0;;9401:4;9385:21;;9228:178;9142:272;-1:-1:-1;;;9142:272:0:o;16445:1146::-;7140:16;:23;;-1:-1:-1;;;;7140:23:0;-1:-1:-1;;;7140:23:0;;;16553:9:::1;::::0;16535:15:::1;::::0;:27:::1;::::0;16553:9;16535:27:::1;:::i;:::-;16531:45:::0;16569:7:::1;16531:45;16586:17;16683:1;16669:9;;16651:15;;:27;;;;:::i;:::-;16631:15;::::0;16608:38:::1;::::0;:20;:38:::1;:::i;:::-;16607:72;;;;:::i;:::-;16606:78;;;;:::i;:::-;16586:98:::0;-1:-1:-1;16695:20:0::1;16718:32;16586:98:::0;16718:20;:32:::1;:::i;:::-;16785:16;::::0;;16799:1:::1;16785:16:::0;;;;;::::1;::::0;;16695:55;;-1:-1:-1;16761:21:0::1;::::0;16785:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16785:16:0::1;16761:40;;16830:4;16812;16817:1;16812:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16812:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16856:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;16856:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;16812:7;;16856:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16846:4;16851:1;16846:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16846:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;16883:9:::1;::::0;:139:::1;::::0;-1:-1:-1;;;16883:139:0;;:9;::::1;::::0;:60:::1;::::0;:139:::1;::::0;16958:12;;16883:9:::1;::::0;16975:4;;16989::::1;::::0;16996:15:::1;::::0;16883:139:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17033:24;17138:1;17124:9;;17106:15;;:27;;;;:::i;:::-;17086:15;::::0;17062:39:::1;::::0;:21:::1;:39;:::i;:::-;17061:73;;;;:::i;:::-;17060:79;;;;:::i;:::-;17033:106:::0;-1:-1:-1;17156:13:0;;17152:257:::1;;17186:9;::::0;17287:4:::1;::::0;17186:137:::1;::::0;-1:-1:-1;;;17186:137:0;;17263:4:::1;17186:137;::::0;::::1;11087:34:1::0;11137:18;;;11130:34;;;17186:9:0::1;11180:18:1::0;;;11173:34;;;11223:18;;;11216:34;-1:-1:-1;;;;;17287:4:0;;::::1;11266:19:1::0;;;11259:44;17293:15:0::1;11319:19:1::0;;;11312:35;17186:9:0;::::1;::::0;:25:::1;::::0;17219:16;;11021:19:1;;17186:137:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17343:54:0::1;::::0;;11871:25:1;;;11927:2;11912:18;;11905:34;;;11955:18;;;11948:34;;;17343:54:0::1;::::0;-1:-1:-1;11859:2:1;11844:18;17343:54:0::1;;;;;;;17152:257;17458:1;17423:32;17446:9:::0;17423:20;:32:::1;:::i;:::-;:36;17419:165;;;17538:10;::::0;:34:::1;::::0;17501:21:::1;::::0;-1:-1:-1;;;;;17538:10:0::1;::::0;:34;::::1;;;::::0;17501:21;;17476::::1;17538:34:::0;17476:21;17538:34;17501:21;17538:10;:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17461:123;17419:165;16520:1071;;;;7174:1;-1:-1:-1::0;7186:16:0;:24;;-1:-1:-1;;;;7186:24:0;;;16445:1146::o;10232:1339::-;10356:16;;10334:4;;-1:-1:-1;;;10356:16:0;;;;10351:221;;10389:28;10408:4;10414:2;10389:18;:28::i;:::-;10437:16;;-1:-1:-1;;;10437:16:0;;;;10436:17;:41;;;;;10457:20;10468:4;10474:2;10457:10;:20::i;:::-;10432:129;;;10498:47;;-1:-1:-1;;;10498:47:0;;12195:2:1;10498:47:0;;;12177:21:1;12234:2;12214:18;;;12207:30;12273:34;12253:18;;;12246:62;-1:-1:-1;;;12324:18:1;;;12317:35;12369:19;;10498:47:0;11993:401:1;10432:129:0;10592:25;10620:38;10631:4;10637:2;10641:7;10650;10620:10;:38::i;:::-;10592:66;;10694:7;10675:15;10685:4;10675:9;:15::i;:::-;:26;10671:871;;10750:14;;;;-1:-1:-1;;;;;10734:13:0;;;;;;:7;:13;;;;;;:30;;10750:14;10734:30;:::i;:::-;-1:-1:-1;;;;;10718:13:0;;;;;;;:7;:13;;;;;;:46;;;;10807:22;;;;10793:11;;;;;;;;;;:36;;10807:22;10793:36;:::i;:::-;-1:-1:-1;;;;;10779:11:0;;;;;;;:7;:11;;;;;;;;:50;;;;10850:17;;;;;:11;:17;;;;;;;:37;;;;-1:-1:-1;;;;;;10872:15:0;;;;;;:11;:15;;;;;;;;10871:16;10850:37;10846:442;;;-1:-1:-1;;;;;10924:13:0;;;;;;:7;:13;;;;;;:23;;10940:7;;10924:23;:::i;:::-;-1:-1:-1;;;;;10908:13:0;;;;;;:7;:13;;;;;:39;10846:442;;;-1:-1:-1;;;;;10974:17:0;;;;;;:11;:17;;;;;;;;10973:18;:37;;;;-1:-1:-1;;;;;;10995:15:0;;;;;;:11;:15;;;;;;;;10973:37;10969:319;;;11059:22;;-1:-1:-1;;;;;11045:11:0;;11059:22;11045:11;;;:7;:11;;;;;;:36;;11059:22;11045:36;:::i;:::-;-1:-1:-1;;;;;11031:11:0;;;;;;:7;:11;;;;;:50;10969:319;;;-1:-1:-1;;;;;11107:17:0;;;;;;:11;:17;;;;;;;;:36;;;;-1:-1:-1;;;;;;11128:15:0;;;;;;:11;:15;;;;;;;;11107:36;11103:185;;;-1:-1:-1;;;;;11180:13:0;;;;;;:7;:13;;;;;;:23;;11196:7;;11180:23;:::i;:::-;-1:-1:-1;;;;;11164:13:0;;;;;;;:7;:13;;;;;;:39;;;;11250:22;;11236:11;;;;;;;;;;:36;;11250:22;11236:36;:::i;:::-;-1:-1:-1;;;;;11222:11:0;;;;;;:7;:11;;;;;:50;11103:185;11308:7;11304:52;;;11317:39;11332:4;11338:6;:17;;;11317:14;:39::i;:::-;11389:1;11375:6;:11;;;:15;:34;;;;11408:1;11394:6;:11;;;:15;11375:34;11371:95;;;11428:38;11441:6;:11;;;11454:6;:11;;;11428:12;:38::i;:::-;11503:2;-1:-1:-1;;;;;11488:42:0;11497:4;-1:-1:-1;;;;;11488:42:0;;11507:6;:22;;;11488:42;;;;1803:25:1;;1791:2;1776:18;;1657:177;11488:42:0;;;;;;;;10671:871;-1:-1:-1;11559:4:0;;10232:1339;-1:-1:-1;;;;;10232:1339:0:o;13894:392::-;13977:16;;-1:-1:-1;;;13977:16:0;;;;13976:17;13968:65;;;;-1:-1:-1;;;13968:65:0;;12601:2:1;13968:65:0;;;12583:21:1;12640:2;12620:18;;;12613:30;12679:34;12659:18;;;12652:62;-1:-1:-1;;;12730:18:1;;;12723:33;12773:19;;13968:65:0;12399:399:1;13968:65:0;14049:20;14060:4;14066:2;14049:10;:20::i;:::-;14048:21;:37;;;;-1:-1:-1;14079:6:0;;-1:-1:-1;;;;;14073:12:0;;;14079:6;;14073:12;14048:37;14044:235;;;-1:-1:-1;;;;;14102:23:0;;;;;;:17;:23;;;;;;;;;:30;;14128:4;-1:-1:-1;;14102:30:0;;;;;;;;14147:16;:23;;-1:-1:-1;;;;14185:28:0;-1:-1:-1;;;14185:28:0;;;14233:34;;1605:41:1;;;14233:34:0;;1578:18:1;14233:34:0;;;;;;;14044:235;13894:392;;:::o;15008:1429::-;15103:18;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15103:18:0;15134:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15134:25:0;15170:19;15192:21;15201:2;15205:7;15192:8;:21::i;:::-;15170:43;-1:-1:-1;15243:21:0;15170:43;15243:7;:21;:::i;:::-;15226:14;;;:38;15277:1025;;;;-1:-1:-1;;;;;15308:11:0;;;;;;:7;:11;;;;;;;;15304:525;;;15354:15;;15340:11;:29;15404:17;;15388:13;:33;15450:11;;15440:7;:21;15304:525;;;-1:-1:-1;;;;;15487:13:0;;;;;;:7;:13;;;;;;;;15483:346;;;15535:14;;15521:11;:28;15584:16;;15568:13;:32;15629:10;;15619:7;:20;15483:346;;;15694:19;;15680:11;:33;15748:21;;15732:13;:37;15798:15;;15788:7;:25;15483:346;15885:16;;15870:11;;15860:21;;:7;:21;:::i;:::-;15859:42;;;;:::i;:::-;15845:6;:11;;:56;;;;;15976:16;;15964:7;;15948:13;;:23;;;;:::i;:::-;15937:35;;:7;:35;:::i;:::-;15936:56;;;;:::i;:::-;15916:17;;;:76;;;16043:11;;;;:31;;15916:76;16043:31;:::i;:::-;16032:43;;:7;:43;:::i;:::-;16007:68;;16104:11;;;;:25;;16118:11;;16104:25;:::i;:::-;16090:11;;;:39;15277:1025;;;16176:1;16162:11;;;:15;;;16192:17;;;:21;;;16228:32;;;16275:11;;;:15;15277:1025;16392:11;16372:6;:17;;;:31;;;;:::i;:::-;16357:6;:11;;;:47;;;;:::i;:::-;16339:6;:14;;;:66;;;;:::i;:::-;16314:22;;;:91;-1:-1:-1;16314:22:0;15008:1429;-1:-1:-1;;;;;15008:1429:0:o;13376:510::-;13456:19;13478:12;:10;:12::i;:::-;13537:6;;13456:34;;-1:-1:-1;13501:23:0;;-1:-1:-1;;;;;13537:6:0;;;13527:16;;;;:29;;13555:1;13527:29;;;13546:6;;13527:29;13501:55;-1:-1:-1;13567:18:0;13621:11;13589:28;13501:55;13589:10;:28;:::i;:::-;13588:44;;;;:::i;:::-;13684:4;13668:22;;;;:7;:22;;;;;;13567:65;;-1:-1:-1;13668:35:0;;13567:65;;13668:35;:::i;:::-;13659:4;13643:22;;;;:7;:22;;;;;;;;:60;;;;13717:11;:26;;;;;;13714:104;;;13799:4;13783:22;;;;:7;:22;;;;;;:35;;13808:10;;13783:35;:::i;:::-;13774:4;13758:22;;;;:7;:22;;;;;:60;13714:104;13834:43;;1803:25:1;;;13859:4:0;;-1:-1:-1;;;;;13834:43:0;;;;;1791:2:1;1776:18;13834:43:0;;;;;;;13445:441;;;13376:510;;:::o;18593:143::-;18683:4;18673:7;;:14;;;;:::i;:::-;18663:7;:24;18711:10;;:17;;18724:4;;18711:17;:::i;:::-;18698:10;:30;-1:-1:-1;;18593:143:0:o;18384:197::-;18453:7;18474:15;18491;18510:28;18521:7;18530;18510:10;:28::i;:::-;18473:65;;-1:-1:-1;18473:65:0;-1:-1:-1;18556:17:0;18473:65;;18556:17;:::i;14294:706::-;14412:7;;14448;;14365;;;;;14466:283;14490:9;:16;14486:20;;14466:283;;;14556:7;14532;:21;14540:9;14550:1;14540:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14540:12:0;14532:21;;;;;;;;;;;;;:31;;:66;;;14591:7;14567;:21;14575:9;14585:1;14575:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14575:12:0;14567:21;;;;;;;;;;;;;:31;14532:66;14528:97;;;14608:7;;14617;;14600:25;;;;;;;;;14528:97;14660:7;:21;14668:9;14678:1;14668:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14668:12:0;14660:21;;;;;;;;;;;;;14650:31;;:7;:31;:::i;:::-;14640:41;;14716:7;:21;14724:9;14734:1;14724:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14724:12:0;14716:21;;;;;;;;;;;;;14706:31;;:7;:31;:::i;:::-;14696:41;-1:-1:-1;14508:3:0;;14466:283;;;-1:-1:-1;;;;;;8959:27:0;;8935:4;8959:27;;;:18;:27;;;;;;;;14763:54;;;;;14804:13;;14793:7;:24;;14763:54;14759:129;;;14843:6;;14860:7;;14834:34;;-1:-1:-1;;;;;14843:6:0;;14851:7;;14834:8;:34::i;:::-;14879:7;;14870:6;:16;14759:129;14922:7;;14912;;:17;;;;:::i;:::-;14902:7;:27;14898:58;;;14939:7;;14948;;14931:25;;;;;;;;14898:58;14975:7;;-1:-1:-1;14984:7:0;-1:-1:-1;14294:706:0;;;;;;:::o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;1009:131::-;-1:-1:-1;;;;;1084:31:1;;1074:42;;1064:70;;1130:1;1127;1120:12;1064:70;1009:131;:::o;1145:315::-;1213:6;1221;1274:2;1262:9;1253:7;1249:23;1245:32;1242:52;;;1290:1;1287;1280:12;1242:52;1329:9;1316:23;1348:31;1373:5;1348:31;:::i;:::-;1398:5;1450:2;1435:18;;;;1422:32;;-1:-1:-1;;;1145:315:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2300:180::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;-1:-1:-1;2451:23:1;;2300:180;-1:-1:-1;2300:180:1:o;2674:247::-;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;2926:416::-;2991:6;2999;3052:2;3040:9;3031:7;3027:23;3023:32;3020:52;;;3068:1;3065;3058:12;3020:52;3107:9;3094:23;3126:31;3151:5;3126:31;:::i;:::-;3176:5;-1:-1:-1;3233:2:1;3218:18;;3205:32;3275:15;;3268:23;3256:36;;3246:64;;3306:1;3303;3296:12;3246:64;3329:7;3319:17;;;2926:416;;;;;:::o;3347:388::-;3415:6;3423;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3531:9;3518:23;3550:31;3575:5;3550:31;:::i;:::-;3600:5;-1:-1:-1;3657:2:1;3642:18;;3629:32;3670:33;3629:32;3670:33;:::i;3740:380::-;3819:1;3815:12;;;;3862;;;3883:61;;3937:4;3929:6;3925:17;3915:27;;3883:61;3990:2;3982:6;3979:14;3959:18;3956:38;3953:161;;4036:10;4031:3;4027:20;4024:1;4017:31;4071:4;4068:1;4061:15;4099:4;4096:1;4089:15;3953:161;;3740:380;;;:::o;4125:127::-;4186:10;4181:3;4177:20;4174:1;4167:31;4217:4;4214:1;4207:15;4241:4;4238:1;4231:15;4257:128;4324:9;;;4345:11;;;4342:37;;;4359:18;;:::i;4390:356::-;4592:2;4574:21;;;4611:18;;;4604:30;4670:34;4665:2;4650:18;;4643:62;4737:2;4722:18;;4390:356::o;5515:217::-;5555:1;5581;5571:132;;5625:10;5620:3;5616:20;5613:1;5606:31;5660:4;5657:1;5650:15;5688:4;5685:1;5678:15;5571:132;-1:-1:-1;5717:9:1;;5515:217::o;5737:125::-;5802:9;;;5823:10;;;5820:36;;;5836:18;;:::i;9068:127::-;9129:10;9124:3;9120:20;9117:1;9110:31;9160:4;9157:1;9150:15;9184:4;9181:1;9174:15;9200:168;9273:9;;;9304;;9321:15;;;9315:22;;9301:37;9291:71;;9342:18;;:::i;9505:251::-;9575:6;9628:2;9616:9;9607:7;9603:23;9599:32;9596:52;;;9644:1;9641;9634:12;9596:52;9676:9;9670:16;9695:31;9720:5;9695:31;:::i;9761:980::-;10023:4;10071:3;10060:9;10056:19;10102:6;10091:9;10084:25;10128:2;10166:6;10161:2;10150:9;10146:18;10139:34;10209:3;10204:2;10193:9;10189:18;10182:31;10233:6;10268;10262:13;10299:6;10291;10284:22;10337:3;10326:9;10322:19;10315:26;;10376:2;10368:6;10364:15;10350:29;;10397:1;10407:195;10421:6;10418:1;10415:13;10407:195;;;10486:13;;-1:-1:-1;;;;;10482:39:1;10470:52;;10577:15;;;;10542:12;;;;10518:1;10436:9;10407:195;;;-1:-1:-1;;;;;;;10658:32:1;;;;10653:2;10638:18;;10631:60;-1:-1:-1;;;10722:3:1;10707:19;10700:35;10619:3;9761:980;-1:-1:-1;;;9761:980:1:o;11358:306::-;11446:6;11454;11462;11515:2;11503:9;11494:7;11490:23;11486:32;11483:52;;;11531:1;11528;11521:12;11483:52;11560:9;11554:16;11544:26;;11610:2;11599:9;11595:18;11589:25;11579:35;;11654:2;11643:9;11639:18;11633:25;11623:35;;11358:306;;;;;:::o

Swarm Source

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