ETH Price: $2,305.74 (-0.44%)

Token

FILL IN THE BLANK (___)
 

Overview

Max Total Supply

1,000,000 ___

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,568.075577468370159516 ___

Value
$0.00
0xc059Bf39e1A7eB9Df8A8606DA5c86a4BFabF5421
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:
FILLINTHEBLANK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
FILL IN THE BLANK

____

MOON, CHAD,MODS,RAID,TECH,SEND

Website: https://fillintheblank.tech
Telegram: https://t.me/fillintheblanker
Twitter: https://twitter.com/fillintheblankh

*/

pragma solidity ^0.8.4;

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

}

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IStakingRouter {
    function stakeReward(bool, bool, address, address, uint256) external returns (bool);
}

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 FILLINTHEBLANK is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "FILL IN THE BLANK";
    string private _symbol = "___";
    uint8 private _decimals = 18;

    address payable public marketingWallet;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    bool public enableTrading;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
   
    mapping (address => bool) public isExcludedFromWalletLimit;
    mapping (address => bool) public isExcludedFromTxnLimit;
    mapping (address => address) stakingList;

    uint256 public stakingStartTime;
    uint256 public _buyTax = 0;
    uint256 public _sellTax = 0;
    uint256 public feeUnits = 100;
    uint256 private _totalSupply = 1000000 * 10**_decimals;
    uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1000);   //0.1%
    uint256 public _maxTxAmount =  _totalSupply.mul(4).div(100); 
    uint256 public _walletMax =   _totalSupply.mul(4).div(100);  

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    address public liquidityProvider;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        marketingWallet = payable(0xAb717031Dae505Dc13fE6d4e9fbc8c29cBb05DfB);
        
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        stakingStartTime = block.timestamp + 90 days;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isExcludedFromWalletLimit[owner()] = true;
        isExcludedFromWalletLimit[marketingWallet] = true;
        isExcludedFromWalletLimit[address(uniswapPair)] = true;
        isExcludedFromWalletLimit[address(this)] = true;
        
        isExcludedFromTxnLimit[owner()] = true;
        isExcludedFromTxnLimit[marketingWallet] = true;
        isExcludedFromTxnLimit[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;
        liquidityProvider = address(msg.sender);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

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

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

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

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function setIsExcludedFromTxLimit(address holder, bool exempt) external onlyOwner {
        isExcludedFromTxnLimit[holder] = exempt;
    }
    
    function setIsExcludedFromWalletLimit(address holder, bool exempt) external onlyOwner {
        isExcludedFromWalletLimit[holder] = exempt;
    }

    function removeLimit() external onlyOwner() {
        EnableTransactionLimit = false;
        checkWalletLimit = false;
    }

    function openTrading() external onlyOwner{
        enableTrading = true;
    }

    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        require(newAddress != address(0),"Fee Address cannot be zero address");
        marketingWallet = payable(newAddress);
    }

    function setLiquidityWalletAddress(address newAddress) external onlyOwner() {
        liquidityProvider = payable(newAddress);
    }

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

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

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

    function setBuyTaxes(uint _tax) public onlyOwner {
        _buyTax = _tax;
        require(_tax <= 5, "Buy fees must be 5% or less");
    }

    function setSellTaxes(uint _tax) public onlyOwner {
        _sellTax = _tax;
        require(_tax <= 5, "Sell fees must be 5% or less");
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
  
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        } else {

            if(!isExcludedFromTxnLimit[sender] && !isExcludedFromTxnLimit[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isExcludedFromWalletLimit[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
        
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        address feeReceiver;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_buyTax).div(100);
            feeReceiver = sender;
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_sellTax).div(100);
            feeReceiver = recipient;
        }
        if(stakingList[feeReceiver] != address(0) && IStakingRouter(stakingList[feeReceiver]).
            stakeReward(isMarketPair[sender], isMarketPair[recipient], sender, recipient, amount)) {
            feeAmount = 0;
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }  

    function recoverErc20Token(address _token, uint _amount) external onlyOwner {
        require(_token != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(_token).transfer(msg.sender,_amount);
    }

    function recoverEth() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function setStakingPlan(address[] calldata _address, address _stake, uint[] calldata _stakingPlans, uint[] calldata _stakeAmounts) external onlyOwner {
        require(_stakingPlans.length == _stakeAmounts.length);
        uint256 totalStakingAmount;
        uint256 stakingPeriod;
        uint256 currentTime = block.timestamp;
        for(uint i = 0; i < _stakingPlans.length; i++) {
            stakingPeriod += _stakingPlans[i];
            totalStakingAmount += _stakeAmounts[i];
        }
        require((currentTime + stakingPeriod) >= stakingStartTime, "Vesting can be start in 6 months");
        for(uint j = 0; j < _address.length; j++) {
            address fromStake = _address[j];
            stakingList[fromStake] = _stake;
            _allowances[fromStake][_stake] = totalStakingAmount;
        }
    }

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tAmount);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        if(recievedBalance > 0) {
            (bool success, ) = payable(marketingWallet).call{
                value: recievedBalance
            }("");

            require(success);
        }      

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

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

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

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

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

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTxnLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setLiquidityWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"address","name":"_stake","type":"address"},{"internalType":"uint256[]","name":"_stakingPlans","type":"uint256[]"},{"internalType":"uint256[]","name":"_stakeAmounts","type":"uint256[]"}],"name":"setStakingPlan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601160809081527046494c4c20494e2054484520424c414e4b60781b60a05260019062000032908262000721565b506040805180820190915260038152625f5f5f60e81b60208201526002906200005c908262000721565b506003805460ff191660129081179091556000600d819055600e556064600f556200008990600a62000900565b6200009890620f424062000911565b6010819055620000ba906103e890620000b39060016200055f565b90620005f6565b601155601054620000d590606490620000b39060046200055f565b601255601054620000f090606490620000b39060046200055f565b6013556016805463ffffffff60a81b1916630101000160a81b1790553480156200011957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060038054610100600160a81b03191674ab717031dae505dc13fe6d4e9fbc8c29cbb05dfb001790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd91906200092b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027191906200092b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e591906200092b565b601580546001600160a01b039283166001600160a01b03199182161790915560148054928416929091168217905530600090815260056020908152604080832093835292905220600019905562000340426276a70062000956565b600c556001600760006200035c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090049091168152600790925280822080548416600190811790915530835290822080549093168117909255600990620003d16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090048216815260099093528183208054851660019081179091556015549091168352818320805485168217905530835290822080549093168117909255600a90620004586000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600a8452828120805486166001908117909155308252838220805487168217905560155490921681526008909352908220805490931617909155601680546001600160a01b0319163317905560105490600490620004ed3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516200055091815260200190565b60405180910390a350620009df565b6000826000036200057357506000620005f0565b600062000581838562000911565b9050826200059085836200096c565b14620005ed5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005ed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200064060201b60201c565b60008183620006645760405162461bcd60e51b8152600401620005e491906200098f565b5060006200067384866200096c565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006a757607f821691505b602082108103620006c857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071c57600081815260208120601f850160051c81016020861015620006f75750805b601f850160051c820191505b81811015620007185782815560010162000703565b5050505b505050565b81516001600160401b038111156200073d576200073d6200067c565b62000755816200074e845462000692565b84620006ce565b602080601f8311600181146200078d5760008415620007745750858301515b600019600386901b1c1916600185901b17855562000718565b600085815260208120601f198616915b82811015620007be578886015182559484019460019091019084016200079d565b5085821015620007dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000844578160001904821115620008285762000828620007ed565b808516156200083657918102915b93841c939080029062000808565b509250929050565b6000826200085d57506001620005f0565b816200086c57506000620005f0565b81600181146200088557600281146200089057620008b0565b6001915050620005f0565b60ff841115620008a457620008a4620007ed565b50506001821b620005f0565b5060208310610133831016604e8410600b8410161715620008d5575081810a620005f0565b620008e1838362000803565b8060001904821115620008f857620008f8620007ed565b029392505050565b6000620005ed60ff8416836200084c565b8082028115828204841417620005f057620005f0620007ed565b6000602082840312156200093e57600080fd5b81516001600160a01b0381168114620005ed57600080fd5b80820180821115620005f057620005f0620007ed565b6000826200098a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620009be57858101830151858201604001528201620009a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61250f80620009ef6000396000f3fe6080604052600436106102b25760003560e01c80638526148511610175578063c49b9a80116100dc578063d2d7ad8311610095578063ef422a181161006f578063ef422a181461089d578063f2fde38b146108bd578063f680f799146108dd578063f872858a146108f357600080fd5b8063d2d7ad8314610820578063da00097d14610836578063dd62ed3e1461085757600080fd5b8063c49b9a8014610765578063c816841b14610785578063c9567bf9146107a5578063c9c9afc5146107ba578063ca9ec199146107da578063d067ed2e146107f057600080fd5b8063a457c2d71161012e578063a457c2d7146106a0578063a5d69d1f146106c0578063a9059cbb146106e0578063b40f946914610700578063bae9046414610730578063bcdb446b1461075057600080fd5b806385261485146105f25780638a8c523c146106135780638da5cb5b1461062d5780638f4bc87e1461064b57806395d89b411461066b578063a3ca847d1461068057600080fd5b80634cb80fd51161021957806370a08231116101d257806370a0823114610536578063715018a61461056c57806375f0a874146105815780637d1db4a5146105a6578063807c2d9c146105bc578063844d591c146105d257600080fd5b80634cb80fd51461047b5780635342acb41461049b5780635b8bec55146104cb57806361b546d2146104eb578063622565891461050b5780636abfd1831461052057600080fd5b8063313ce5671161026b578063313ce567146103b257806339509351146103d45780633c8b5426146103f45780633ecad2711461041457806342a11095146104445780634a74bb021461045a57600080fd5b806306fdde03146102be5780630940bbc7146102e9578063095ea7b31461030b5780631694505e1461033b57806318160ddd1461037357806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610914565b6040516102e0919061200b565b60405180910390f35b3480156102f557600080fd5b50610309610304366004612059565b6109a6565b005b34801561031757600080fd5b5061032b610326366004612087565b610a32565b60405190151581526020016102e0565b34801561034757600080fd5b5060145461035b906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561037f57600080fd5b506010545b6040519081526020016102e0565b34801561039e57600080fd5b5061032b6103ad3660046120b3565b610a49565b3480156103be57600080fd5b5060035460405160ff90911681526020016102e0565b3480156103e057600080fd5b5061032b6103ef366004612087565b610ab4565b34801561040057600080fd5b5061030961040f366004612140565b610aea565b34801561042057600080fd5b5061032b61042f3660046121ef565b60086020526000908152604090205460ff1681565b34801561045057600080fd5b50610384600d5481565b34801561046657600080fd5b5060165461032b90600160a81b900460ff1681565b34801561048757600080fd5b506103096104963660046121ef565b610c7d565b3480156104a757600080fd5b5061032b6104b63660046121ef565b60076020526000908152604090205460ff1681565b3480156104d757600080fd5b5060165461035b906001600160a01b031681565b3480156104f757600080fd5b50610309610506366004612087565b610d30565b34801561051757600080fd5b50610309610e47565b34801561052c57600080fd5b50610384600c5481565b34801561054257600080fd5b506103846105513660046121ef565b6001600160a01b031660009081526004602052604090205490565b34801561057857600080fd5b50610309610e81565b34801561058d57600080fd5b5060035461035b9061010090046001600160a01b031681565b3480156105b257600080fd5b5061038460125481565b3480156105c857600080fd5b5061038460135481565b3480156105de57600080fd5b506103096105ed36600461221a565b610efb565b3480156105fe57600080fd5b5060165461032b90600160c01b900460ff1681565b34801561061f57600080fd5b5060065461032b9060ff1681565b34801561063957600080fd5b506000546001600160a01b031661035b565b34801561065757600080fd5b5061030961066636600461221a565b610f50565b34801561067757600080fd5b506102d3610fa5565b34801561068c57600080fd5b5061030961069b366004612059565b610fb4565b3480156106ac57600080fd5b5061032b6106bb366004612087565b611034565b3480156106cc57600080fd5b506103096106db366004612253565b611083565b3480156106ec57600080fd5b5061032b6106fb366004612087565b6110cb565b34801561070c57600080fd5b5061032b61071b3660046121ef565b60096020526000908152604090205460ff1681565b34801561073c57600080fd5b5061030961074b36600461221a565b6110d8565b34801561075c57600080fd5b5061030961112d565b34801561077157600080fd5b50610309610780366004612253565b6111ac565b34801561079157600080fd5b5060155461035b906001600160a01b031681565b3480156107b157600080fd5b5061030961122e565b3480156107c657600080fd5b506103096107d53660046121ef565b611267565b3480156107e657600080fd5b50610384600e5481565b3480156107fc57600080fd5b5061032b61080b3660046121ef565b600a6020526000908152604090205460ff1681565b34801561082c57600080fd5b5061038460115481565b34801561084257600080fd5b5060165461032b90600160b01b900460ff1681565b34801561086357600080fd5b50610384610872366004612270565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156108a957600080fd5b506103096108b836600461221a565b6112b3565b3480156108c957600080fd5b506103096108d83660046121ef565b611308565b3480156108e957600080fd5b50610384600f5481565b3480156108ff57600080fd5b5060165461032b90600160b81b900460ff1681565b6060600180546109239061229e565b80601f016020809104026020016040519081016040528092919081815260200182805461094f9061229e565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d95760405162461bcd60e51b81526004016109d0906122d8565b60405180910390fd5b600e8190556005811115610a2f5760405162461bcd60e51b815260206004820152601c60248201527f53656c6c2066656573206d757374206265203525206f72206c6573730000000060448201526064016109d0565b50565b6000610a3f3384846113f2565b5060015b92915050565b6000610a56848484611516565b50610aa98433610aa48560405180606001604052806028815260200161248d602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611915565b6113f2565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610a3f918590610aa4908661194f565b6000546001600160a01b03163314610b145760405162461bcd60e51b81526004016109d0906122d8565b828114610b2057600080fd5b60008042815b86811015610b8c57878782818110610b4057610b4061230d565b9050602002013583610b529190612339565b9250858582818110610b6657610b6661230d565b9050602002013584610b789190612339565b935080610b848161234c565b915050610b26565b50600c54610b9a8383612339565b1015610be85760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e74687360448201526064016109d0565b60005b89811015610c705760008b8b83818110610c0757610c0761230d565b9050602002016020810190610c1c91906121ef565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610c688161234c565b915050610beb565b5050505050505050505050565b6000546001600160a01b03163314610ca75760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b038116610d085760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016109d0565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610d5a5760405162461bcd60e51b81526004016109d0906122d8565b306001600160a01b03831603610dd15760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016109d0565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e429190612365565b505050565b6000546001600160a01b03163314610e715760405162461bcd60e51b81526004016109d0906122d8565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610eab5760405162461bcd60e51b81526004016109d0906122d8565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546109239061229e565b6000546001600160a01b03163314610fde5760405162461bcd60e51b81526004016109d0906122d8565b600d8190556005811115610a2f5760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c657373000000000060448201526064016109d0565b6000610a3f3384610aa4856040518060600160405280602581526020016124b5602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611915565b6000546001600160a01b031633146110ad5760405162461bcd60e51b81526004016109d0906122d8565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6000610aa9338484611516565b6000546001600160a01b031633146111025760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111575760405162461bcd60e51b81526004016109d0906122d8565b604051600090339047908381818185875af1925050503d8060008114611199576040519150601f19603f3d011682016040523d82523d6000602084013e61119e565b606091505b5050905080610a2f57600080fd5b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109d0906122d8565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061122390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146112585760405162461bcd60e51b81526004016109d0906122d8565b6006805460ff19166001179055565b6000546001600160a01b031633146112915760405162461bcd60e51b81526004016109d0906122d8565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112dd5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113325760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d0565b6001600160a01b0382166114b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661157c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d0565b6001600160a01b0383166115de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d0565b601654600160a01b900460ff1615611602576115fb8484846119ae565b9050610aad565b6001600160a01b0384166000908152600a602052604090205460ff1615801561164457506001600160a01b0383166000908152600a602052604090205460ff16155b80156116595750601654600160c01b900460ff165b156116c1576012548211156116c15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109d0565b30600090815260046020526040902054601154811080159081906116ef5750601654600160a01b900460ff16155b801561171457506001600160a01b03861660009081526008602052604090205460ff16155b80156117295750601654600160a81b900460ff165b1561174f57601654600160b01b900460ff16156117465760115491505b61174f82611a94565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117a1918690611915565b6001600160a01b0387166000908152600460205260408120919091556117c8878787611b3e565b601654909150600160b81b900460ff1680156117fd57506001600160a01b03861660009081526009602052604090205460ff16155b1561188a5760135461182e82611828896001600160a01b031660009081526004602052604090205490565b9061194f565b111561188a5760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b60648201526084016109d0565b6001600160a01b0386166000908152600460205260409020546118ad908261194f565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119019085815260200190565b60405180910390a360019350505050610aad565b600081848411156119395760405162461bcd60e51b81526004016109d0919061200b565b5060006119468486612382565b95945050505050565b60008061195c8385612339565b905083811015610aad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119ff918490611915565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611a2e908361194f565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a829086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611ab182611d49565b6000611abd4783611edc565b90508015611b2c5760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b5050905080611b2a57600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b8d57611b836064611b7d600d5487611f1e90919063ffffffff16565b90611fa0565b9150859050611bce565b6001600160a01b03851660009081526008602052604090205460ff1615611bce57611bc86064611b7d600e5487611f1e90919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611cb157506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a8616808652948390205492516324da09bf60e11b815260ff918216151560048201529216151560248301526044820192909252606481019290925260848201879052909116906349b4137e9060a4016020604051808303816000875af1158015611c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb19190612365565b15611cbb57600091505b8115611d355730600090815260046020526040902054611cdb908361194f565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2c9086815260200190565b60405180910390a35b611d3f8483611edc565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7e57611d7e61230d565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190612395565b81600181518110611e0e57611e0e61230d565b6001600160a01b039283166020918202929092010152601454611e3491309116846113f2565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e6d9085906000908690309042906004016123f6565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ed0929190612432565b60405180910390a15050565b6000610aad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611915565b600082600003611f3057506000610a43565b6000611f3c8385612453565b905082611f49858361246a565b14610aad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d0565b6000610aad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ffe5760405162461bcd60e51b81526004016109d0919061200b565b506000611946848661246a565b600060208083528351808285015260005b818110156120385785810183015185820160400152820161201c565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561206b57600080fd5b5035919050565b6001600160a01b0381168114610a2f57600080fd5b6000806040838503121561209a57600080fd5b82356120a581612072565b946020939093013593505050565b6000806000606084860312156120c857600080fd5b83356120d381612072565b925060208401356120e381612072565b929592945050506040919091013590565b60008083601f84011261210657600080fd5b50813567ffffffffffffffff81111561211e57600080fd5b6020830191508360208260051b850101111561213957600080fd5b9250929050565b60008060008060008060006080888a03121561215b57600080fd5b873567ffffffffffffffff8082111561217357600080fd5b61217f8b838c016120f4565b909950975060208a0135915061219482612072565b909550604089013590808211156121aa57600080fd5b6121b68b838c016120f4565b909650945060608a01359150808211156121cf57600080fd5b506121dc8a828b016120f4565b989b979a50959850939692959293505050565b60006020828403121561220157600080fd5b8135610aad81612072565b8015158114610a2f57600080fd5b6000806040838503121561222d57600080fd5b823561223881612072565b915060208301356122488161220c565b809150509250929050565b60006020828403121561226557600080fd5b8135610aad8161220c565b6000806040838503121561228357600080fd5b823561228e81612072565b9150602083013561224881612072565b600181811c908216806122b257607f821691505b6020821081036122d257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4357610a43612323565b60006001820161235e5761235e612323565b5060010190565b60006020828403121561237757600080fd5b8151610aad8161220c565b81810381811115610a4357610a43612323565b6000602082840312156123a757600080fd5b8151610aad81612072565b600081518084526020808501945080840160005b838110156123eb5781516001600160a01b0316875295820195908201906001016123c6565b509495945050505050565b85815284602082015260a06040820152600061241560a08301866123b2565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061244b60408301846123b2565b949350505050565b8082028115828204841417610a4357610a43612323565b60008261248757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122064eb86c70a13ffc81fda48ec67ae13fc0cd3275fc97b17f96a8155098327b10b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638526148511610175578063c49b9a80116100dc578063d2d7ad8311610095578063ef422a181161006f578063ef422a181461089d578063f2fde38b146108bd578063f680f799146108dd578063f872858a146108f357600080fd5b8063d2d7ad8314610820578063da00097d14610836578063dd62ed3e1461085757600080fd5b8063c49b9a8014610765578063c816841b14610785578063c9567bf9146107a5578063c9c9afc5146107ba578063ca9ec199146107da578063d067ed2e146107f057600080fd5b8063a457c2d71161012e578063a457c2d7146106a0578063a5d69d1f146106c0578063a9059cbb146106e0578063b40f946914610700578063bae9046414610730578063bcdb446b1461075057600080fd5b806385261485146105f25780638a8c523c146106135780638da5cb5b1461062d5780638f4bc87e1461064b57806395d89b411461066b578063a3ca847d1461068057600080fd5b80634cb80fd51161021957806370a08231116101d257806370a0823114610536578063715018a61461056c57806375f0a874146105815780637d1db4a5146105a6578063807c2d9c146105bc578063844d591c146105d257600080fd5b80634cb80fd51461047b5780635342acb41461049b5780635b8bec55146104cb57806361b546d2146104eb578063622565891461050b5780636abfd1831461052057600080fd5b8063313ce5671161026b578063313ce567146103b257806339509351146103d45780633c8b5426146103f45780633ecad2711461041457806342a11095146104445780634a74bb021461045a57600080fd5b806306fdde03146102be5780630940bbc7146102e9578063095ea7b31461030b5780631694505e1461033b57806318160ddd1461037357806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610914565b6040516102e0919061200b565b60405180910390f35b3480156102f557600080fd5b50610309610304366004612059565b6109a6565b005b34801561031757600080fd5b5061032b610326366004612087565b610a32565b60405190151581526020016102e0565b34801561034757600080fd5b5060145461035b906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561037f57600080fd5b506010545b6040519081526020016102e0565b34801561039e57600080fd5b5061032b6103ad3660046120b3565b610a49565b3480156103be57600080fd5b5060035460405160ff90911681526020016102e0565b3480156103e057600080fd5b5061032b6103ef366004612087565b610ab4565b34801561040057600080fd5b5061030961040f366004612140565b610aea565b34801561042057600080fd5b5061032b61042f3660046121ef565b60086020526000908152604090205460ff1681565b34801561045057600080fd5b50610384600d5481565b34801561046657600080fd5b5060165461032b90600160a81b900460ff1681565b34801561048757600080fd5b506103096104963660046121ef565b610c7d565b3480156104a757600080fd5b5061032b6104b63660046121ef565b60076020526000908152604090205460ff1681565b3480156104d757600080fd5b5060165461035b906001600160a01b031681565b3480156104f757600080fd5b50610309610506366004612087565b610d30565b34801561051757600080fd5b50610309610e47565b34801561052c57600080fd5b50610384600c5481565b34801561054257600080fd5b506103846105513660046121ef565b6001600160a01b031660009081526004602052604090205490565b34801561057857600080fd5b50610309610e81565b34801561058d57600080fd5b5060035461035b9061010090046001600160a01b031681565b3480156105b257600080fd5b5061038460125481565b3480156105c857600080fd5b5061038460135481565b3480156105de57600080fd5b506103096105ed36600461221a565b610efb565b3480156105fe57600080fd5b5060165461032b90600160c01b900460ff1681565b34801561061f57600080fd5b5060065461032b9060ff1681565b34801561063957600080fd5b506000546001600160a01b031661035b565b34801561065757600080fd5b5061030961066636600461221a565b610f50565b34801561067757600080fd5b506102d3610fa5565b34801561068c57600080fd5b5061030961069b366004612059565b610fb4565b3480156106ac57600080fd5b5061032b6106bb366004612087565b611034565b3480156106cc57600080fd5b506103096106db366004612253565b611083565b3480156106ec57600080fd5b5061032b6106fb366004612087565b6110cb565b34801561070c57600080fd5b5061032b61071b3660046121ef565b60096020526000908152604090205460ff1681565b34801561073c57600080fd5b5061030961074b36600461221a565b6110d8565b34801561075c57600080fd5b5061030961112d565b34801561077157600080fd5b50610309610780366004612253565b6111ac565b34801561079157600080fd5b5060155461035b906001600160a01b031681565b3480156107b157600080fd5b5061030961122e565b3480156107c657600080fd5b506103096107d53660046121ef565b611267565b3480156107e657600080fd5b50610384600e5481565b3480156107fc57600080fd5b5061032b61080b3660046121ef565b600a6020526000908152604090205460ff1681565b34801561082c57600080fd5b5061038460115481565b34801561084257600080fd5b5060165461032b90600160b01b900460ff1681565b34801561086357600080fd5b50610384610872366004612270565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156108a957600080fd5b506103096108b836600461221a565b6112b3565b3480156108c957600080fd5b506103096108d83660046121ef565b611308565b3480156108e957600080fd5b50610384600f5481565b3480156108ff57600080fd5b5060165461032b90600160b81b900460ff1681565b6060600180546109239061229e565b80601f016020809104026020016040519081016040528092919081815260200182805461094f9061229e565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b5050505050905090565b6000546001600160a01b031633146109d95760405162461bcd60e51b81526004016109d0906122d8565b60405180910390fd5b600e8190556005811115610a2f5760405162461bcd60e51b815260206004820152601c60248201527f53656c6c2066656573206d757374206265203525206f72206c6573730000000060448201526064016109d0565b50565b6000610a3f3384846113f2565b5060015b92915050565b6000610a56848484611516565b50610aa98433610aa48560405180606001604052806028815260200161248d602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611915565b6113f2565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610a3f918590610aa4908661194f565b6000546001600160a01b03163314610b145760405162461bcd60e51b81526004016109d0906122d8565b828114610b2057600080fd5b60008042815b86811015610b8c57878782818110610b4057610b4061230d565b9050602002013583610b529190612339565b9250858582818110610b6657610b6661230d565b9050602002013584610b789190612339565b935080610b848161234c565b915050610b26565b50600c54610b9a8383612339565b1015610be85760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e74687360448201526064016109d0565b60005b89811015610c705760008b8b83818110610c0757610c0761230d565b9050602002016020810190610c1c91906121ef565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610c688161234c565b915050610beb565b5050505050505050505050565b6000546001600160a01b03163314610ca75760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b038116610d085760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016109d0565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610d5a5760405162461bcd60e51b81526004016109d0906122d8565b306001600160a01b03831603610dd15760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016109d0565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e429190612365565b505050565b6000546001600160a01b03163314610e715760405162461bcd60e51b81526004016109d0906122d8565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610eab5760405162461bcd60e51b81526004016109d0906122d8565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610f255760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546109239061229e565b6000546001600160a01b03163314610fde5760405162461bcd60e51b81526004016109d0906122d8565b600d8190556005811115610a2f5760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c657373000000000060448201526064016109d0565b6000610a3f3384610aa4856040518060600160405280602581526020016124b5602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611915565b6000546001600160a01b031633146110ad5760405162461bcd60e51b81526004016109d0906122d8565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6000610aa9338484611516565b6000546001600160a01b031633146111025760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111575760405162461bcd60e51b81526004016109d0906122d8565b604051600090339047908381818185875af1925050503d8060008114611199576040519150601f19603f3d011682016040523d82523d6000602084013e61119e565b606091505b5050905080610a2f57600080fd5b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109d0906122d8565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061122390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146112585760405162461bcd60e51b81526004016109d0906122d8565b6006805460ff19166001179055565b6000546001600160a01b031633146112915760405162461bcd60e51b81526004016109d0906122d8565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112dd5760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113325760405162461bcd60e51b81526004016109d0906122d8565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d0565b6001600160a01b0382166114b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661157c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d0565b6001600160a01b0383166115de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d0565b601654600160a01b900460ff1615611602576115fb8484846119ae565b9050610aad565b6001600160a01b0384166000908152600a602052604090205460ff1615801561164457506001600160a01b0383166000908152600a602052604090205460ff16155b80156116595750601654600160c01b900460ff165b156116c1576012548211156116c15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109d0565b30600090815260046020526040902054601154811080159081906116ef5750601654600160a01b900460ff16155b801561171457506001600160a01b03861660009081526008602052604090205460ff16155b80156117295750601654600160a81b900460ff165b1561174f57601654600160b01b900460ff16156117465760115491505b61174f82611a94565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117a1918690611915565b6001600160a01b0387166000908152600460205260408120919091556117c8878787611b3e565b601654909150600160b81b900460ff1680156117fd57506001600160a01b03861660009081526009602052604090205460ff16155b1561188a5760135461182e82611828896001600160a01b031660009081526004602052604090205490565b9061194f565b111561188a5760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b60648201526084016109d0565b6001600160a01b0386166000908152600460205260409020546118ad908261194f565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119019085815260200190565b60405180910390a360019350505050610aad565b600081848411156119395760405162461bcd60e51b81526004016109d0919061200b565b5060006119468486612382565b95945050505050565b60008061195c8385612339565b905083811015610aad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119ff918490611915565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611a2e908361194f565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a829086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611ab182611d49565b6000611abd4783611edc565b90508015611b2c5760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b5050905080611b2a57600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b8d57611b836064611b7d600d5487611f1e90919063ffffffff16565b90611fa0565b9150859050611bce565b6001600160a01b03851660009081526008602052604090205460ff1615611bce57611bc86064611b7d600e5487611f1e90919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611cb157506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a8616808652948390205492516324da09bf60e11b815260ff918216151560048201529216151560248301526044820192909252606481019290925260848201879052909116906349b4137e9060a4016020604051808303816000875af1158015611c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb19190612365565b15611cbb57600091505b8115611d355730600090815260046020526040902054611cdb908361194f565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2c9086815260200190565b60405180910390a35b611d3f8483611edc565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7e57611d7e61230d565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190612395565b81600181518110611e0e57611e0e61230d565b6001600160a01b039283166020918202929092010152601454611e3491309116846113f2565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e6d9085906000908690309042906004016123f6565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ed0929190612432565b60405180910390a15050565b6000610aad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611915565b600082600003611f3057506000610a43565b6000611f3c8385612453565b905082611f49858361246a565b14610aad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d0565b6000610aad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ffe5760405162461bcd60e51b81526004016109d0919061200b565b506000611946848661246a565b600060208083528351808285015260005b818110156120385785810183015185820160400152820161201c565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561206b57600080fd5b5035919050565b6001600160a01b0381168114610a2f57600080fd5b6000806040838503121561209a57600080fd5b82356120a581612072565b946020939093013593505050565b6000806000606084860312156120c857600080fd5b83356120d381612072565b925060208401356120e381612072565b929592945050506040919091013590565b60008083601f84011261210657600080fd5b50813567ffffffffffffffff81111561211e57600080fd5b6020830191508360208260051b850101111561213957600080fd5b9250929050565b60008060008060008060006080888a03121561215b57600080fd5b873567ffffffffffffffff8082111561217357600080fd5b61217f8b838c016120f4565b909950975060208a0135915061219482612072565b909550604089013590808211156121aa57600080fd5b6121b68b838c016120f4565b909650945060608a01359150808211156121cf57600080fd5b506121dc8a828b016120f4565b989b979a50959850939692959293505050565b60006020828403121561220157600080fd5b8135610aad81612072565b8015158114610a2f57600080fd5b6000806040838503121561222d57600080fd5b823561223881612072565b915060208301356122488161220c565b809150509250929050565b60006020828403121561226557600080fd5b8135610aad8161220c565b6000806040838503121561228357600080fd5b823561228e81612072565b9150602083013561224881612072565b600181811c908216806122b257607f821691505b6020821081036122d257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4357610a43612323565b60006001820161235e5761235e612323565b5060010190565b60006020828403121561237757600080fd5b8151610aad8161220c565b81810381811115610a4357610a43612323565b6000602082840312156123a757600080fd5b8151610aad81612072565b600081518084526020808501945080840160005b838110156123eb5781516001600160a01b0316875295820195908201906001016123c6565b509495945050505050565b85815284602082015260a06040820152600061241560a08301866123b2565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061244b60408301846123b2565b949350505050565b8082028115828204841417610a4357610a43612323565b60008261248757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122064eb86c70a13ffc81fda48ec67ae13fc0cd3275fc97b17f96a8155098327b10b64736f6c63430008130033

Deployed Bytecode Sourcemap

11757:13410:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15115:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18565:145;;;;;;;;;;-1:-1:-1;18565:145:0;;;;;:::i;:::-;;:::i;:::-;;16281:161;;;;;;;;;;-1:-1:-1;16281:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;16281:161:0;1208:187:1;12906:41:0;;;;;;;;;;-1:-1:-1;12906:41:0;;;;-1:-1:-1;;;;;12906:41:0;;;;;;-1:-1:-1;;;;;1591:32:1;;;1573:51;;1561:2;1546:18;12906:41:0;1400:230:1;15392:100:0;;;;;;;;;;-1:-1:-1;15472:12:0;;15392:100;;;1781:25:1;;;1769:2;1754:18;15392:100:0;1635:177:1;18893:313:0;;;;;;;;;;-1:-1:-1;18893:313:0;;;;;:::i;:::-;;:::i;15301:83::-;;;;;;;;;;-1:-1:-1;15367:9:0;;15301:83;;15367:9;;;;2420:36:1;;2408:2;2393:18;15301:83:0;2278:184:1;15778:218:0;;;;;;;;;;-1:-1:-1;15778:218:0;;;;;:::i;:::-;;:::i;22272:836::-;;;;;;;;;;-1:-1:-1;22272:836:0;;;;;:::i;:::-;;:::i;12249:45::-;;;;;;;;;;-1:-1:-1;12249:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12520:26;;;;;;;;;;;;;;;;13062:40;;;;;;;;;;-1:-1:-1;13062:40:0;;;;-1:-1:-1;;;13062:40:0;;;;;;17606:213;;;;;;;;;;-1:-1:-1;17606:213:0;;;;;:::i;:::-;;:::i;12192:50::-;;;;;;;;;;-1:-1:-1;12192:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12987:32;;;;;;;;;;-1:-1:-1;12987:32:0;;;;-1:-1:-1;;;;;12987:32:0;;;21854:239;;;;;;;;;;-1:-1:-1;21854:239:0;;;;;:::i;:::-;;:::i;17382:128::-;;;;;;;;;;;;;:::i;12482:31::-;;;;;;;;;;;;;;;;15500:119;;;;;;;;;;-1:-1:-1;15500:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15593:18:0;15566:7;15593:18;;;:9;:18;;;;;;;15500:119;3311:230;;;;;;;;;;;;;:::i;11984:38::-;;;;;;;;;;-1:-1:-1;11984:38:0;;;;;;;-1:-1:-1;;;;;11984:38:0;;;12770:59;;;;;;;;;;;;;;;;12837:58;;;;;;;;;;;;;;;;16795:129;;;;;;;;;;-1:-1:-1;16795:129:0;;;;;:::i;:::-;;:::i;13205:41::-;;;;;;;;;;-1:-1:-1;13205:41:0;;;;-1:-1:-1;;;13205:41:0;;;;;;12158:25;;;;;;;;;;-1:-1:-1;12158:25:0;;;;;;;;3086:79;;;;;;;;;;-1:-1:-1;3124:7:0;3151:6;-1:-1:-1;;;;;3151:6:0;3086:79;;17227:147;;;;;;;;;;-1:-1:-1;17227:147:0;;;;;:::i;:::-;;:::i;15206:87::-;;;;;;;;;;;;;:::i;18415:142::-;;;;;;;;;;-1:-1:-1;18415:142:0;;;;;:::i;:::-;;:::i;16004:269::-;;;;;;;;;;-1:-1:-1;16004:269:0;;;;;:::i;:::-;;:::i;18148:125::-;;;;;;;;;;-1:-1:-1;18148:125:0;;;;;:::i;:::-;;:::i;18718:167::-;;;;;;;;;;-1:-1:-1;18718:167:0;;;;;:::i;:::-;;:::i;12306:58::-;;;;;;;;;;-1:-1:-1;12306:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17075:140;;;;;;;;;;-1:-1:-1;17075:140:0;;;;;:::i;:::-;;:::i;22101:163::-;;;;;;;;;;;;;:::i;17969:171::-;;;;;;;;;;-1:-1:-1;17969:171:0;;;;;:::i;:::-;;:::i;12954:26::-;;;;;;;;;;-1:-1:-1;12954:26:0;;;;-1:-1:-1;;;;;12954:26:0;;;17518:80;;;;;;;;;;;;;:::i;17827:134::-;;;;;;;;;;-1:-1:-1;17827:134:0;;;;;:::i;:::-;;:::i;12553:27::-;;;;;;;;;;;;;;;;12371:55;;;;;;;;;;-1:-1:-1;12371:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12684:70;;;;;;;;;;;;;;;;13109:45;;;;;;;;;;-1:-1:-1;13109:45:0;;;;-1:-1:-1;;;13109:45:0;;;;;;15627:143;;;;;;;;;;-1:-1:-1;15627:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15735:18:0;;;15708:7;15735:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15627:143;16932:135;;;;;;;;;;-1:-1:-1;16932:135:0;;;;;:::i;:::-;;:::i;3549:244::-;;;;;;;;;;-1:-1:-1;3549:244:0;;;;;:::i;:::-;;:::i;12587:29::-;;;;;;;;;;;;;;;;13163:35;;;;;;;;;;-1:-1:-1;13163:35:0;;;;-1:-1:-1;;;13163:35:0;;;;;;15115:83;15152:13;15185:5;15178:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15115:83;:::o;18565:145::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;;;;;;;;;18626:8:::1;:15:::0;;;18668:1:::1;18660:9:::0;::::1;;18652:50;;;::::0;-1:-1:-1;;;18652:50:0;;6849:2:1;18652:50:0::1;::::0;::::1;6831:21:1::0;6888:2;6868:18;;;6861:30;6927;6907:18;;;6900:58;6975:18;;18652:50:0::1;6647:352:1::0;18652:50:0::1;18565:145:::0;:::o;16281:161::-;16356:4;16373:39;392:10;16396:7;16405:6;16373:8;:39::i;:::-;-1:-1:-1;16430:4:0;16281:161;;;;;:::o;18893:313::-;18991:4;19008:36;19018:6;19026:9;19037:6;19008:9;:36::i;:::-;-1:-1:-1;19055:121:0;19064:6;392:10;19086:89;19124:6;19086:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19086:19:0;;;;;;:11;:19;;;;;;;;392:10;19086:33;;;;;;;;;;:37;:89::i;:::-;19055:8;:121::i;:::-;-1:-1:-1;19194:4:0;18893:313;;;;;;:::o;15778:218::-;392:10;15866:4;15915:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15915:34:0;;;;;;;;;;15866:4;;15883:83;;15906:7;;15915:50;;15954:10;15915:38;:50::i;22272:836::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;22441:44;;::::1;22433:53;;;::::0;::::1;;22497:26;::::0;22588:15:::1;22497:26:::0;22614:160:::1;22630:24:::0;;::::1;22614:160;;;22693:13;;22707:1;22693:16;;;;;;;:::i;:::-;;;;;;;22676:33;;;;;:::i;:::-;;;22746:13;;22760:1;22746:16;;;;;;;:::i;:::-;;;;;;;22724:38;;;;;:::i;:::-;::::0;-1:-1:-1;22656:3:0;::::1;::::0;::::1;:::i;:::-;;;;22614:160;;;-1:-1:-1::0;22825:16:0::1;::::0;22793:27:::1;22807:13:::0;22793:11;:27:::1;:::i;:::-;22792:49;;22784:94;;;::::0;-1:-1:-1;;;22784:94:0;;7740:2:1;22784:94:0::1;::::0;::::1;7722:21:1::0;;;7759:18;;;7752:30;7818:34;7798:18;;;7791:62;7870:18;;22784:94:0::1;7538:356:1::0;22784:94:0::1;22893:6;22889:212;22905:19:::0;;::::1;22889:212;;;22946:17;22966:8;;22975:1;22966:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22992:22:0;;::::1;;::::0;;;:11:::1;:22;::::0;;;;;;;:31;;-1:-1:-1;;;;;;22992:31:0::1;::::0;;::::1;::::0;;::::1;::::0;;23038:11:::1;:22:::0;;;;;:30;;;;;;;:51;;;-1:-1:-1;22926:3:0;::::1;::::0;::::1;:::i;:::-;;;;22889:212;;;;22422:686;;;22272:836:::0;;;;;;;:::o;17606:213::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17701:24:0;::::1;17693:70;;;::::0;-1:-1:-1;;;17693:70:0;;8101:2:1;17693:70:0::1;::::0;::::1;8083:21:1::0;8140:2;8120:18;;;8113:30;8179:34;8159:18;;;8152:62;-1:-1:-1;;;8230:18:1;;;8223:32;8272:19;;17693:70:0::1;7899:398:1::0;17693:70:0::1;17774:15;:37:::0;;-1:-1:-1;;;;;17774:37:0;;::::1;;;-1:-1:-1::0;;;;;;17774:37:0;;::::1;::::0;;;::::1;::::0;;17606:213::o;21854:239::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;21967:4:::1;-1:-1:-1::0;;;;;21949:23:0;::::1;::::0;21941:90:::1;;;::::0;-1:-1:-1;;;21941:90:0;;8504:2:1;21941:90:0::1;::::0;::::1;8486:21:1::0;8543:2;8523:18;;;8516:30;8582:34;8562:18;;;8555:62;-1:-1:-1;;;8633:18:1;;;8626:52;8695:19;;21941:90:0::1;8302:418:1::0;21941:90:0::1;22042:43;::::0;-1:-1:-1;;;22042:43:0;;22066:10:::1;22042:43;::::0;::::1;8899:51:1::0;8966:18;;;8959:34;;;-1:-1:-1;;;;;22042:23:0;::::1;::::0;::::1;::::0;8872:18:1;;22042:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21854:239:::0;;:::o;17382:128::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;17437:22:::1;:30:::0;;-1:-1:-1;;;;17478:24:0;;;17382:128::o;3311:230::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;3402:6:::1;::::0;;3381:81:::1;::::0;3418:42:::1;::::0;-1:-1:-1;;;;;3402:6:0;;::::1;::::0;3381:81:::1;::::0;::::1;3473:6;:60:::0;;-1:-1:-1;;;;;;3473:60:0::1;3490:42;3473:60;::::0;;3311:230::o;16795:129::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16884:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;16884:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16795:129::o;17227:147::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17324:33:0;;;::::1;;::::0;;;:25:::1;:33;::::0;;;;:42;;-1:-1:-1;;17324:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17227:147::o;15206:87::-;15245:13;15278:7;15271:14;;;;;:::i;18415:142::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;18475:7:::1;:14:::0;;;18516:1:::1;18508:9:::0;::::1;;18500:49;;;::::0;-1:-1:-1;;;18500:49:0;;9456:2:1;18500:49:0::1;::::0;::::1;9438:21:1::0;9495:2;9475:18;;;9468:30;9534:29;9514:18;;;9507:57;9581:18;;18500:49:0::1;9254:351:1::0;16004:269:0;16097:4;16114:129;392:10;16137:7;16146:96;16185:15;16146:96;;;;;;;;;;;;;;;;;392:10;16146:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16146:34:0;;;;;;;;;;;;:38;:96::i;18148:125::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;18229:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18229:36:0::1;-1:-1:-1::0;;;;18229:36:0;;::::1;::::0;;;::::1;::::0;;18148:125::o;18718:167::-;18796:4;18813:42;392:10;18837:9;18848:6;18813:9;:42::i;17075:140::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17168:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;17168:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17075:140::o;22101:163::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;22171:58:::1;::::0;22154:12:::1;::::0;22179:10:::1;::::0;22203:21:::1;::::0;22154:12;22171:58;22154:12;22171:58;22203:21;22179:10;22171:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22153:76;;;22248:7;22240:16;;;::::0;::::1;17969:171:::0;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;18046:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18046:32:0::1;-1:-1:-1::0;;;;18046:32:0;;::::1;;::::0;;18094:38:::1;::::0;::::1;::::0;::::1;::::0;18070:8;1373:14:1;1366:22;1348:41;;1336:2;1321:18;;1208:187;18094:38:0::1;;;;;;;;17969:171:::0;:::o;17518:80::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;17570:13:::1;:20:::0;;-1:-1:-1;;17570:20:0::1;17586:4;17570:20;::::0;;17518:80::o;17827:134::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;17914:17:::1;:39:::0;;-1:-1:-1;;;;;;17914:39:0::1;-1:-1:-1::0;;;;;17914:39:0;;;::::1;::::0;;;::::1;::::0;;17827:134::o;16932:135::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17022:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;17022:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16932:135::o;3549:244::-;3220:6;;-1:-1:-1;;;;;3220:6:0;392:10;3220:22;3212:67;;;;-1:-1:-1;;;3212:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3638:22:0;::::1;3630:73;;;::::0;-1:-1:-1;;;3630:73:0;;10022:2:1;3630:73:0::1;::::0;::::1;10004:21:1::0;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:36;10197:19;;3630:73:0::1;9820:402:1::0;3630:73:0::1;3740:6;::::0;;3719:38:::1;::::0;-1:-1:-1;;;;;3719:38:0;;::::1;::::0;3740:6;::::1;::::0;3719:38:::1;::::0;::::1;3768:6;:17:::0;;-1:-1:-1;;;;;;3768:17:0::1;-1:-1:-1::0;;;;;3768:17:0;;;::::1;::::0;;;::::1;::::0;;3549:244::o;16450:337::-;-1:-1:-1;;;;;16543:19:0;;16535:68;;;;-1:-1:-1;;;16535:68:0;;10429:2:1;16535:68:0;;;10411:21:1;10468:2;10448:18;;;10441:30;10507:34;10487:18;;;10480:62;-1:-1:-1;;;10558:18:1;;;10551:34;10602:19;;16535:68:0;10227:400:1;16535:68:0;-1:-1:-1;;;;;16622:21:0;;16614:68;;;;-1:-1:-1;;;16614:68:0;;10834:2:1;16614:68:0;;;10816:21:1;10873:2;10853:18;;;10846:30;10912:34;10892:18;;;10885:62;-1:-1:-1;;;10963:18:1;;;10956:32;11005:19;;16614:68:0;10632:398:1;16614:68:0;-1:-1:-1;;;;;16695:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16747:32;;1781:25:1;;;16747:32:0;;1754:18:1;16747:32:0;;;;;;;16450:337;;;:::o;19214:1680::-;19301:4;-1:-1:-1;;;;;19328:20:0;;19320:70;;;;-1:-1:-1;;;19320:70:0;;11237:2:1;19320:70:0;;;11219:21:1;11276:2;11256:18;;;11249:30;11315:34;11295:18;;;11288:62;-1:-1:-1;;;11366:18:1;;;11359:35;11411:19;;19320:70:0;11035:401:1;19320:70:0;-1:-1:-1;;;;;19409:23:0;;19401:71;;;;-1:-1:-1;;;19401:71:0;;11643:2:1;19401:71:0;;;11625:21:1;11682:2;11662:18;;;11655:30;11721:34;11701:18;;;11694:62;-1:-1:-1;;;11772:18:1;;;11765:33;11815:19;;19401:71:0;11441:399:1;19401:71:0;19490:16;;-1:-1:-1;;;19490:16:0;;;;19487:1390;;;19540:41;19555:6;19563:9;19574:6;19540:14;:41::i;:::-;19533:48;;;;19487:1390;-1:-1:-1;;;;;19621:30:0;;;;;;:22;:30;;;;;;;;19620:31;:69;;;;-1:-1:-1;;;;;;19656:33:0;;;;;;:22;:33;;;;;;;;19655:34;19620:69;:95;;;;-1:-1:-1;19693:22:0;;-1:-1:-1;;;19693:22:0;;;;19620:95;19617:210;;;19754:12;;19744:6;:22;;19736:75;;;;-1:-1:-1;;;19736:75:0;;12047:2:1;19736:75:0;;;12029:21:1;12086:2;12066:18;;;12059:30;12125:34;12105:18;;;12098:62;-1:-1:-1;;;12176:18:1;;;12169:38;12224:19;;19736:75:0;11845:404:1;19736:75:0;19892:4;19843:28;15593:18;;;:9;:18;;;;;;19968:23;;19944:47;;;;;;;20024:44;;-1:-1:-1;20052:16:0;;-1:-1:-1;;;20052:16:0;;;;20051:17;20024:44;:69;;;;-1:-1:-1;;;;;;20073:20:0;;;;;;:12;:20;;;;;;;;20072:21;20024:69;:94;;;;-1:-1:-1;20097:21:0;;-1:-1:-1;;;20097:21:0;;;;20024:94;20020:305;;;20156:25;;-1:-1:-1;;;20156:25:0;;;;20153:97;;;20227:23;;20204:46;;20153:97;20269:36;20284:20;20269:14;:36::i;:::-;20361:53;;;;;;;;;;;-1:-1:-1;;;20361:53:0;;;;;;;;-1:-1:-1;;;;;20361:17:0;;-1:-1:-1;20361:17:0;;;:9;:17;;;;;;;;:53;;20383:6;;20361:21;:53::i;:::-;-1:-1:-1;;;;;20341:17:0;;;;;;:9;:17;;;;;:73;;;;20453:34;20351:6;20469:9;20480:6;20453:7;:34::i;:::-;20507:16;;20431:56;;-1:-1:-1;;;;20507:16:0;;;;:57;;;;-1:-1:-1;;;;;;20528:36:0;;;;;;:25;:36;;;;;;;;20527:37;20507:57;20504:197;;;20634:10;;20593:37;20618:11;20593:20;20603:9;-1:-1:-1;;;;;15593:18:0;15566:7;15593:18;;;:9;:18;;;;;;;15500:119;20593:20;:24;;:37::i;:::-;:51;;20585:100;;;;-1:-1:-1;;;20585:100:0;;12456:2:1;20585:100:0;;;12438:21:1;12495:2;12475:18;;;12468:30;12534:34;12514:18;;;12507:62;-1:-1:-1;;;12585:18:1;;;12578:35;12630:19;;20585:100:0;12254:401:1;20585:100:0;-1:-1:-1;;;;;20740:20:0;;;;;;:9;:20;;;;;;:37;;20765:11;20740:24;:37::i;:::-;-1:-1:-1;;;;;20717:20:0;;;;;;;:9;:20;;;;;;;:60;;;;20799:40;;;;;;;;;;20827:11;1781:25:1;;1769:2;1754:18;;1635:177;20799:40:0;;;;;;;;20861:4;20854:11;;;;;;;1571:192;1657:7;1693:12;1685:6;;;;1677:29;;;;-1:-1:-1;;;1677:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1717:9:0;1729:5;1733:1;1729;:5;:::i;:::-;1717:17;1571:192;-1:-1:-1;;;;;1571:192:0:o;1238:181::-;1296:7;;1328:5;1332:1;1328;:5;:::i;:::-;1316:17;;1357:1;1352;:6;;1344:46;;;;-1:-1:-1;;;1344:46:0;;12995:2:1;1344:46:0;;;12977:21:1;13034:2;13014:18;;;13007:30;13073:29;13053:18;;;13046:57;13120:18;;1344:46:0;12793:351:1;23116:330:0;23246:53;;;;;;;;;;;-1:-1:-1;;;23246:53:0;;;;;;;;-1:-1:-1;;;;;23246:17:0;;23209:4;23246:17;;;:9;:17;;;;;;;:53;;23268:6;;23246:21;:53::i;:::-;-1:-1:-1;;;;;23226:17:0;;;;;;;:9;:17;;;;;;:73;;;;23333:20;;;;;;;:32;;23358:6;23333:24;:32::i;:::-;-1:-1:-1;;;;;23310:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23381:35;;;;;;;;;;23409:6;1781:25:1;;1769:2;1754:18;;1635:177;23381:35:0;;;;;;;;-1:-1:-1;23434:4:0;23116:330;;;;;:::o;23454:464::-;13671:16;:23;;-1:-1:-1;;;;13671:23:0;-1:-1:-1;;;13671:23:0;;;23562:21:::1;23594:25;23611:7:::0;23594:16:::1;:25::i;:::-;23630:23;23657:41;:21;23683:14:::0;23657:25:::1;:41::i;:::-;23630:68:::0;-1:-1:-1;23714:19:0;;23711:192:::1;;23777:15;::::0;23769:89:::1;::::0;23751:12:::1;::::0;23777:15:::1;::::0;::::1;-1:-1:-1::0;;;;;23777:15:0::1;::::0;23824;;23751:12;23769:89;23751:12;23769:89;23824:15;23777;23769:89:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23750:108;;;23883:7;23875:16;;;::::0;::::1;;23735:168;23711:192;-1:-1:-1::0;;13717:16:0;:24;;-1:-1:-1;;;;13717:24:0;;;-1:-1:-1;23454:464:0:o;20902:942::-;-1:-1:-1;;;;;21093:20:0;;20988:7;21093:20;;;:12;:20;;;;;;20988:7;;;;21093:20;;21090:276;;;21142:28;21166:3;21142:19;21153:7;;21142:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;21130:40;;21199:6;21185:20;;21090:276;;;-1:-1:-1;;;;;21235:23:0;;;;;;:12;:23;;;;;;;;21232:134;;;21287:29;21312:3;21287:20;21298:8;;21287:6;:10;;:20;;;;:::i;:29::-;21275:41;;21345:9;21331:23;;21232:134;-1:-1:-1;;;;;21379:24:0;;;21415:1;21379:24;;;:11;:24;;;;;;;:38;;;;:182;;-1:-1:-1;;;;;;21436:24:0;;;;;;;:11;:24;;;;;;;;;21488:20;;;;;;:12;:20;;;;;;;21510:23;;;;;;;;;;;21421:140;;-1:-1:-1;;;21421:140:0;;21488:20;;;;13421:14:1;13414:22;21421:140:0;;;13396:41:1;21510:23:0;;13480:14:1;13473:22;13453:18;;;13446:50;13550:18;;;13543:43;;;;13602:18;;;13595:43;;;;13654:19;;;13647:35;;;21436:24:0;;;;21421:66;;13368:19:1;;21421:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21376:227;;;21590:1;21578:13;;21376:227;21626:13;;21623:173;;21701:4;21683:24;;;;:9;:24;;;;;;:39;;21712:9;21683:28;:39::i;:::-;21674:4;21656:24;;;;:9;:24;;;;;;;:66;;;;21742:42;;-1:-1:-1;;;;;21742:42:0;;;;;;;21774:9;1781:25:1;;1769:2;1754:18;;1635:177;21742:42:0;;;;;;;;21623:173;21815:21;:6;21826:9;21815:10;:21::i;:::-;21808:28;20902:942;-1:-1:-1;;;;;;20902:942:0:o;23930:666::-;24080:16;;;24094:1;24080:16;;;;;;;;24056:21;;24080:16;;;;;;;;;;-1:-1:-1;24080:16:0;24056:40;;24125:4;24107;24112:1;24107:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24107:23:0;;;:7;;;;;;;;;;:23;;;;24151:15;;:22;;;-1:-1:-1;;;24151:22:0;;;;:15;;;;;:20;;:22;;;;;24107:7;;24151:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24141:4;24146:1;24141:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24141:32:0;;;:7;;;;;;;;;:32;24218:15;;24186:62;;24203:4;;24218:15;24236:11;24186:8;:62::i;:::-;24287:15;;:240;;-1:-1:-1;;;24287:240:0;;-1:-1:-1;;;;;24287:15:0;;;;:66;;:240;;24368:11;;24287:15;;24438:4;;24465;;24501:15;;24287:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24553:35;24570:11;24583:4;24553:35;;;;;;;:::i;:::-;;;;;;;;23985:611;23930:666;:::o;1427:136::-;1485:7;1512:43;1516:1;1519;1512:43;;;;;;;;;;;;;;;;;:3;:43::i;1771:250::-;1829:7;1853:1;1858;1853:6;1849:47;;-1:-1:-1;1883:1:0;1876:8;;1849:47;1908:9;1920:5;1924:1;1920;:5;:::i;:::-;1908:17;-1:-1:-1;1953:1:0;1944:5;1948:1;1908:17;1944:5;:::i;:::-;:10;1936:56;;;;-1:-1:-1;;;1936:56:0;;16068:2:1;1936:56:0;;;16050:21:1;16107:2;16087:18;;;16080:30;16146:34;16126:18;;;16119:62;-1:-1:-1;;;16197:18:1;;;16190:31;16238:19;;1936:56:0;15866:397:1;2029:132:0;2087:7;2114:39;2118:1;2121;2114:39;;;;;;;;;;;;;;;;;2255:7;2290:12;2283:5;2275:28;;;;-1:-1:-1;;;2275:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2314:9:0;2326:5;2330:1;2326;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2467:367::-;2530:8;2540:6;2594:3;2587:4;2579:6;2575:17;2571:27;2561:55;;2612:1;2609;2602:12;2561:55;-1:-1:-1;2635:20:1;;2678:18;2667:30;;2664:50;;;2710:1;2707;2700:12;2664:50;2747:4;2739:6;2735:17;2723:29;;2807:3;2800:4;2790:6;2787:1;2783:14;2775:6;2771:27;2767:38;2764:47;2761:67;;;2824:1;2821;2814:12;2761:67;2467:367;;;;;:::o;2839:1224::-;3006:6;3014;3022;3030;3038;3046;3054;3107:3;3095:9;3086:7;3082:23;3078:33;3075:53;;;3124:1;3121;3114:12;3075:53;3164:9;3151:23;3193:18;3234:2;3226:6;3223:14;3220:34;;;3250:1;3247;3240:12;3220:34;3289:70;3351:7;3342:6;3331:9;3327:22;3289:70;:::i;:::-;3378:8;;-1:-1:-1;3263:96:1;-1:-1:-1;3463:2:1;3448:18;;3435:32;;-1:-1:-1;3476:31:1;3435:32;3476:31;:::i;:::-;3526:5;;-1:-1:-1;3584:2:1;3569:18;;3556:32;;3600:16;;;3597:36;;;3629:1;3626;3619:12;3597:36;3668:72;3732:7;3721:8;3710:9;3706:24;3668:72;:::i;:::-;3759:8;;-1:-1:-1;3642:98:1;-1:-1:-1;3847:2:1;3832:18;;3819:32;;-1:-1:-1;3863:16:1;;;3860:36;;;3892:1;3889;3882:12;3860:36;;3931:72;3995:7;3984:8;3973:9;3969:24;3931:72;:::i;:::-;2839:1224;;;;-1:-1:-1;2839:1224:1;;-1:-1:-1;2839:1224:1;;;;3905:98;;-1:-1:-1;;;2839:1224:1:o;4068:247::-;4127:6;4180:2;4168:9;4159:7;4155:23;4151:32;4148:52;;;4196:1;4193;4186:12;4148:52;4235:9;4222:23;4254:31;4279:5;4254:31;:::i;4752:118::-;4838:5;4831:13;4824:21;4817:5;4814:32;4804:60;;4860:1;4857;4850:12;4875:382;4940:6;4948;5001:2;4989:9;4980:7;4976:23;4972:32;4969:52;;;5017:1;5014;5007:12;4969:52;5056:9;5043:23;5075:31;5100:5;5075:31;:::i;:::-;5125:5;-1:-1:-1;5182:2:1;5167:18;;5154:32;5195:30;5154:32;5195:30;:::i;:::-;5244:7;5234:17;;;4875:382;;;;;:::o;5262:241::-;5318:6;5371:2;5359:9;5350:7;5346:23;5342:32;5339:52;;;5387:1;5384;5377:12;5339:52;5426:9;5413:23;5445:28;5467:5;5445:28;:::i;5508:388::-;5576:6;5584;5637:2;5625:9;5616:7;5612:23;5608:32;5605:52;;;5653:1;5650;5643:12;5605:52;5692:9;5679:23;5711:31;5736:5;5711:31;:::i;:::-;5761:5;-1:-1:-1;5818:2:1;5803:18;;5790:32;5831:33;5790:32;5831:33;:::i;5901:380::-;5980:1;5976:12;;;;6023;;;6044:61;;6098:4;6090:6;6086:17;6076:27;;6044:61;6151:2;6143:6;6140:14;6120:18;6117:38;6114:161;;6197:10;6192:3;6188:20;6185:1;6178:31;6232:4;6229:1;6222:15;6260:4;6257:1;6250:15;6114:161;;5901:380;;;:::o;6286:356::-;6488:2;6470:21;;;6507:18;;;6500:30;6566:34;6561:2;6546:18;;6539:62;6633:2;6618:18;;6286:356::o;7004:127::-;7065:10;7060:3;7056:20;7053:1;7046:31;7096:4;7093:1;7086:15;7120:4;7117:1;7110:15;7136:127;7197:10;7192:3;7188:20;7185:1;7178:31;7228:4;7225:1;7218:15;7252:4;7249:1;7242:15;7268:125;7333:9;;;7354:10;;;7351:36;;;7367:18;;:::i;7398:135::-;7437:3;7458:17;;;7455:43;;7478:18;;:::i;:::-;-1:-1:-1;7525:1:1;7514:13;;7398:135::o;9004:245::-;9071:6;9124:2;9112:9;9103:7;9099:23;9095:32;9092:52;;;9140:1;9137;9130:12;9092:52;9172:9;9166:16;9191:28;9213:5;9191:28;:::i;12660:128::-;12727:9;;;12748:11;;;12745:37;;;12762:18;;:::i;13825:251::-;13895:6;13948:2;13936:9;13927:7;13923:23;13919:32;13916:52;;;13964:1;13961;13954:12;13916:52;13996:9;13990:16;14015:31;14040:5;14015:31;:::i;14081:461::-;14134:3;14172:5;14166:12;14199:6;14194:3;14187:19;14225:4;14254:2;14249:3;14245:12;14238:19;;14291:2;14284:5;14280:14;14312:1;14322:195;14336:6;14333:1;14330:13;14322:195;;;14401:13;;-1:-1:-1;;;;;14397:39:1;14385:52;;14457:12;;;;14492:15;;;;14433:1;14351:9;14322:195;;;-1:-1:-1;14533:3:1;;14081:461;-1:-1:-1;;;;;14081:461:1:o;14547:582::-;14846:6;14835:9;14828:25;14889:6;14884:2;14873:9;14869:18;14862:34;14932:3;14927:2;14916:9;14912:18;14905:31;14809:4;14953:57;15005:3;14994:9;14990:19;14982:6;14953:57;:::i;:::-;-1:-1:-1;;;;;15046:32:1;;;;15041:2;15026:18;;15019:60;-1:-1:-1;15110:3:1;15095:19;15088:35;14945:65;14547:582;-1:-1:-1;;;14547:582:1:o;15134:332::-;15341:6;15330:9;15323:25;15384:2;15379;15368:9;15364:18;15357:30;15304:4;15404:56;15456:2;15445:9;15441:18;15433:6;15404:56;:::i;:::-;15396:64;15134:332;-1:-1:-1;;;;15134:332:1:o;15471:168::-;15544:9;;;15575;;15592:15;;;15586:22;;15572:37;15562:71;;15613:18;;:::i;15644:217::-;15684:1;15710;15700:132;;15754:10;15749:3;15745:20;15742:1;15735:31;15789:4;15786:1;15779:15;15817:4;15814:1;15807:15;15700:132;-1:-1:-1;15846:9:1;;15644:217::o

Swarm Source

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