ETH Price: $3,397.73 (+2.07%)

Token

Ragnarok (BUDDHA)
 

Overview

Max Total Supply

1,000,000,000 BUDDHA

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,455,000 BUDDHA

Value
$0.00
0xe63cfb20d02739d60f4a944d3654d2f7b1e6c844
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:
BUDDHA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

the six realms await you 

(正しょう覚がく・阿あ頼ら耶や識しき, Shōgaku Arayashiki) 

acquire enlightment and follow $BUDDHA


https://medium.com/@Ragnarok_ERC20

SPDX-License-Identifier: MIT
*/

pragma solidity ^0.8.16;

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;
        return c;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface DexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface DexRouter {
    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 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;
}

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    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(0));
        _owner = address(0);
    }

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

contract BUDDHA is Ownable, IERC20 {
    using SafeMath for uint256;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 constant private _decimals = 9;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 9 / 1000;
    uint256 public _walletMax = _totalSupply * 9 / 1000;

    string constant private _name = "Ragnarok";
    string constant private _symbol = "BUDDHA";

    bool public restrictWhales = true;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public liquidityFee = 2;
    uint256 public marketingFee = 3;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = false;
    bool public blacklistMode = false;
    bool public launchMode = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    mapping(address => bool) public isBlacklisted;
    mapping (address => bool) public isEcosystem;

    uint256 public swapThreshold = _totalSupply * 2 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;

        isEcosystem[address(this)] = true;
        isEcosystem[msg.sender] = true;
        isEcosystem[address(pair)] = true;
        isEcosystem[address(router)] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        lpWallet = msg.sender;
        projectAddress = 0xDfe6d196C0276b30A438d6c482998879e2Ba4759;
         
        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee + 20;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

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

    function getOwner() external view override returns (address) {return owner();}

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    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 transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender] && isTxLimitExempt[recipient], "TX Limit");
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender],"Blacklisted");
        }

        if (launchMode && recipient != pair && sender == pair){
            isBlacklisted[recipient] = true;
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling;        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee;        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling; 
            }
            else{
                feeApplicable = 0;
            }
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;


        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function changeisEcosystem(address _address, bool _bool) external onlyOwner {
        isEcosystem[_address] = _bool;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _walletMax = _totalSupply * newLimit / 1000;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = _totalSupply * newLimit / 1000;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        require(launchMode, "Can no longer pause trading");
        tradingOpen = newStatus;
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function addWhitelist(address target) public onlyOwner{
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
        isEcosystem[target] = true;
        isBlacklisted[target] = false;
    }

    function changeFees(uint256 newLiqFee, uint256 newMarketingFee, uint256 extraSellFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;

        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require (totalFeeIfSelling + totalFee < 20);
    }

    function enableBlacklist(bool _status) public onlyOwner {
        require(launchMode, "");
        blacklistMode = _status;
    }
        
    function changeBlacklist(address[] calldata addresses, bool status) public onlyOwner {
        require(launchMode, "");
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

    function isAuth(address _address, bool status) public onlyOwner{
        authorizations[_address] = status;
    }

    function changePair(address _address, bool status) public onlyOwner{
        isPair[_address] = status;
    }

    function endLaunchMode() public onlyOwner{
        launchMode = false;
        tradingOpen = true;
        blacklistMode = true;
    }

    function disableBlacklist() public onlyOwner{
        blacklistMode = false;
    }

    function changeTakeBuyfee(bool status) public onlyOwner{
        takeBuyFee = status;
    }

    function changeTakeSellfee(bool status) public onlyOwner{
        takeSellFee = status;
    }

    function changeTakeTransferfee(bool status) public onlyOwner{
        takeTransferFee = status;
    }

    function changeSwapbackSettings(bool status, uint256 newAmount) public onlyOwner{
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function changeWallets(address newProjectWallet, address newLpWallet) public onlyOwner{
        lpWallet = newLpWallet;
        projectAddress = newProjectWallet;
    }

    function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_maxTxAmount","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":"target","type":"address"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newProjectWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"changeisEcosystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endLaunchMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isEcosystem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","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":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386009600a6200069d565b6200004890633b9aca00620006b5565b6003556103e860035460096200005f9190620006b5565b6200006b9190620006cf565b6004556103e86003546009620000829190620006b5565b6200008e9190620006cf565b6005556006805460ff191660011790556002600b8190556003600c8190556000600d819055600e55600f80546201010162ffffff199091161790556015805465ffff00ffffff1916640100010000179055546107d091620000f09190620006b5565b620000fc9190620006cf565b6018553480156200010c57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea9190620006f2565b6001600160a01b031663c9c65396601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002729190620006f2565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e59190620006f2565b601280546001600160a01b03199081166001600160a01b0393841690811783556000908152601360209081526040808320805460ff1990811660019081179092553080865260088552838620601180548b1688529086528487206000199081905589548b16885285882055338088526009808852868920805486168717905592885285882080548516861790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054851686179055601787528588208054851686179055808852858820805485168617905589548b168852858820805485168617905590548a1687528487208054841685179055808752600a865284872080548416851790559754909816855291842080548316821790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054831682179055600f80546301000000600160b81b0319166301000000909702969096179095556010805473dfe6d196c0276b30a438d6c482998879e2ba4759951685179055929091529283527fc672a07fc6d05f9fd14db8f2cf58690668f372b753e6a60de04183b0623e394280549091169091179055600c54600b54620004b5929091906200051b811b620017a417901c565b600d819055620004c79060146200071d565b600e5560035433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000733565b6000806200052a83856200071d565b905083811015620005815760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005e1578160001904821115620005c557620005c56200058a565b80851615620005d357918102915b93841c9390800290620005a5565b509250929050565b600082620005fa5750600162000584565b81620006095750600062000584565b81600181146200062257600281146200062d576200064d565b600191505062000584565b60ff8411156200064157620006416200058a565b50506001821b62000584565b5060208310610133831016604e8410600b841016171562000672575081810a62000584565b6200067e8383620005a0565b80600019048211156200069557620006956200058a565b029392505050565b6000620006ae60ff841683620005e9565b9392505050565b80820281158282048414176200058457620005846200058a565b600082620006ed57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200070557600080fd5b81516001600160a01b03811681146200058157600080fd5b808201808211156200058457620005846200058a565b61282480620007436000396000f3fe6080604052600436106103a65760003560e01c8063807c2d9c116101e7578063bb54c40e1161010d578063f0ef821f116100a0578063f84ba65d1161006f578063f84ba65d14610b0d578063f887ea4014610b2d578063fe575a8714610b4d578063ffb54a9914610b7d57600080fd5b8063f0ef821f14610a93578063f1d5f51714610aad578063f2fde38b14610acd578063f80f5dd514610aed57600080fd5b8063da00097d116100dc578063da00097d146109e5578063dd62ed3e14610a08578063e5e31b1314610a4e578063ea43915e14610a7e57600080fd5b8063bb54c40e14610984578063bf56b371146109a4578063c9567bf9146109ba578063ca987b0e146109cf57600080fd5b806394213c8911610185578063a61699c411610154578063a61699c414610904578063a8aa1b3114610924578063a9059cbb14610944578063b37dd6901461096457600080fd5b806394213c891461087f57806395d89b411461089f57806398118cb4146108ce578063a5355989146108e457600080fd5b8063896648c1116101c1578063896648c1146107f25780638b42507f146108115780638da5cb5b14610841578063900d96111461085f57600080fd5b8063807c2d9c1461078a5780638637b069146107a0578063893d20e8146107c057600080fd5b806344de2e4c116102cc578063705409331161026a578063787a051b11610239578063787a051b146107145780637a319590146107345780637cc5d7eb146107545780637d1db4a51461077457600080fd5b8063705409331461068a5780637070c898146106a957806370a08231146106c9578063715018a6146106ff57600080fd5b80635c85974f116102a65780635c85974f146106045780636369244014610624578063658d4b7f146106545780636b67c4df1461067457600080fd5b806344de2e4c146105a85780634a74bb02146105c2578063571ac8b0146105e457600080fd5b80631df4ccfc116103445780632b112e49116103135780632b112e4914610527578063313ce5671461053c578063399c7976146105585780633f4218e01461057857600080fd5b80631df4ccfc146104b157806323b872dd146104c7578063251b8787146104e75780632aea52ab1461050757600080fd5b80630975d294116103805780630975d294146104455780630d2959801461046757806318160ddd1461048757806319f734841461049c57600080fd5b80630445b667146103b257806306fdde03146103db578063095ea7b31461041557600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c860185481565b6040519081526020015b60405180910390f35b3480156103e757600080fd5b506040805180820190915260088152675261676e61726f6b60c01b60208201525b6040516103d2919061238b565b34801561042157600080fd5b506104356104303660046123f1565b610b97565b60405190151581526020016103d2565b34801561045157600080fd5b5061046561046036600461242b565b610c04565b005b34801561047357600080fd5b50610465610482366004612449565b610c5b565b34801561049357600080fd5b506003546103c8565b3480156104a857600080fd5b50610465610cf0565b3480156104bd57600080fd5b506103c8600d5481565b3480156104d357600080fd5b506104356104e2366004612466565b610d2c565b3480156104f357600080fd5b506104656105023660046124a7565b610dee565b34801561051357600080fd5b50610465610522366004612449565b610ebf565b34801561053357600080fd5b506103c8610f35565b34801561054857600080fd5b50604051600981526020016103d2565b34801561056457600080fd5b5061046561057336600461252d565b610fa6565b34801561058457600080fd5b50610435610593366004612566565b60096020526000908152604090205460ff1681565b3480156105b457600080fd5b506006546104359060ff1681565b3480156105ce57600080fd5b5060155461043590640100000000900460ff1681565b3480156105f057600080fd5b506104356105ff366004612566565b610ffb565b34801561061057600080fd5b5061046561061f366004612583565b611009565b34801561063057600080fd5b5061043561063f366004612566565b60176020526000908152604090205460ff1681565b34801561066057600080fd5b5061046561066f36600461252d565b611075565b34801561068057600080fd5b506103c8600c5481565b34801561069657600080fd5b50600f5461043590610100900460ff1681565b3480156106b557600080fd5b506104656106c4366004612449565b6110ca565b3480156106d557600080fd5b506103c86106e4366004612566565b6001600160a01b031660009081526007602052604090205490565b34801561070b57600080fd5b50610465611110565b34801561072057600080fd5b5061046561072f366004612583565b611184565b34801561074057600080fd5b5061046561074f36600461259c565b6111f6565b34801561076057600080fd5b5061046561076f36600461252d565b611263565b34801561078057600080fd5b506103c860045481565b34801561079657600080fd5b506103c860055481565b3480156107ac57600080fd5b506104356107bb3660046123f1565b6112b8565b3480156107cc57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103d2565b3480156107fe57600080fd5b5060155461043590610100900460ff1681565b34801561081d57600080fd5b5061043561082c366004612566565b600a6020526000908152604090205460ff1681565b34801561084d57600080fd5b506000546001600160a01b03166107da565b34801561086b57600080fd5b5061046561087a366004612449565b6113ac565b34801561088b57600080fd5b5061046561089a36600461252d565b6113f0565b3480156108ab57600080fd5b5060408051808201909152600681526542554444484160d01b6020820152610408565b3480156108da57600080fd5b506103c8600b5481565b3480156108f057600080fd5b50600f546104359062010000900460ff1681565b34801561091057600080fd5b5061046561091f3660046125c8565b611445565b34801561093057600080fd5b506012546107da906001600160a01b031681565b34801561095057600080fd5b5061043561095f3660046123f1565b6114ae565b34801561097057600080fd5b506015546104359062010000900460ff1681565b34801561099057600080fd5b5061046561099f366004612449565b6114bb565b3480156109b057600080fd5b506103c860145481565b3480156109c657600080fd5b506104656114f8565b3480156109db57600080fd5b506103c8600e5481565b3480156109f157600080fd5b506015546104359065010000000000900460ff1681565b348015610a1457600080fd5b506103c8610a233660046125c8565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a5a57600080fd5b50610435610a69366004612566565b60136020526000908152604090205460ff1681565b348015610a8a57600080fd5b50610465611531565b348015610a9f57600080fd5b50600f546104359060ff1681565b348015610ab957600080fd5b50610465610ac8366004612583565b611568565b348015610ad957600080fd5b50610465610ae8366004612566565b6115d4565b348015610af957600080fd5b50610465610b08366004612566565b6116be565b348015610b1957600080fd5b50610465610b2836600461252d565b61174f565b348015610b3957600080fd5b506011546107da906001600160a01b031681565b348015610b5957600080fd5b50610435610b68366004612566565b60166020526000908152604090205460ff1681565b348015610b8957600080fd5b506015546104359060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bf29086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c375760405162461bcd60e51b8152600401610c2e906125f6565b60405180910390fd5b601580549215156401000000000264ff000000001990931692909217909155601855565b6000546001600160a01b03163314610c855760405162461bcd60e51b8152600401610c2e906125f6565b60155462010000900460ff16610cdd5760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f206c6f6e6765722070617573652074726164696e6700000000006044820152606401610c2e565b6015805460ff1916911515919091179055565b6000546001600160a01b03163314610d1a5760405162461bcd60e51b8152600401610c2e906125f6565b6015805462ffffff1916610101179055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610dd9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610db4918490611803565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610de484848461183d565b90505b9392505050565b6000546001600160a01b03163314610e185760405162461bcd60e51b8152600401610c2e906125f6565b60155462010000900460ff16610e4a5760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b60005b82811015610eb9578160166000868685818110610e6c57610e6c61262b565b9050602002016020810190610e819190612566565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610eb281612657565b9050610e4d565b50505050565b6000546001600160a01b03163314610ee95760405162461bcd60e51b8152600401610c2e906125f6565b60155462010000900460ff16610f1b5760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b601580549115156101000261ff0019909216919091179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d546003549192610fa1929091610f9b9190611cb6565b90611cb6565b905090565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000610bfe82600019610b97565b6000546001600160a01b031633146110335760405162461bcd60e51b8152600401610c2e906125f6565b60058110156110545760405162461bcd60e51b8152600401610c2e90612670565b6103e88160035461106591906126b6565b61106f91906126cd565b60045550565b6000546001600160a01b0316331461109f5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110f45760405162461bcd60e51b8152600401610c2e906125f6565b600f8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461113a5760405162461bcd60e51b8152600401610c2e906125f6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146111ae5760405162461bcd60e51b8152600401610c2e906125f6565b47336108fc60646111bf85856126b6565b6111c991906126cd565b6040518115909202916000818181858888f193505050501580156111f1573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146112205760405162461bcd60e51b8152600401610c2e906125f6565b600b839055600c82905561123483836117a4565b600d8190556112449082906126ef565b600e819055600d5460149161125991906126ef565b106111f157600080fd5b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146112e35760405162461bcd60e51b8152600401610c2e906125f6565b306001600160a01b0384160361133b5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610c2e565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611388573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190612702565b6000546001600160a01b031633146113d65760405162461bcd60e51b8152600401610c2e906125f6565b600f80549115156101000261ff0019909216919091179055565b6000546001600160a01b0316331461141a5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461146f5760405162461bcd60e51b8152600401610c2e906125f6565b600f80546301000000600160b81b03191663010000006001600160a01b0393841602179055601080546001600160a01b03191692909116919091179055565b6000610de733848461183d565b6000546001600160a01b031633146114e55760405162461bcd60e51b8152600401610c2e906125f6565b600f805460ff1916911515919091179055565b6000546001600160a01b031633146115225760405162461bcd60e51b8152600401610c2e906125f6565b6015805460ff19166001179055565b6000546001600160a01b0316331461155b5760405162461bcd60e51b8152600401610c2e906125f6565b6015805461ff0019169055565b6000546001600160a01b031633146115925760405162461bcd60e51b8152600401610c2e906125f6565b60058110156115b35760405162461bcd60e51b8152600401610c2e90612670565b6103e8816003546115c491906126b6565b6115ce91906126cd565b60055550565b6000546001600160a01b031633146115fe5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b0381166116635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116e85760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600983528185208054821685179055600a835281852080548216851790556017835281852080548216909417909355601690915290912080549091169055565b6000546001600160a01b031633146117795760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806117b183856126ef565b905083811015610de75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c2e565b600081848411156118275760405162461bcd60e51b8152600401610c2e919061238b565b506000611834848661271f565b95945050505050565b6015546000906301000000900460ff16156118645761185d848484611cf8565b9050610de7565b6001600160a01b03841660009081526001602052604090205460ff161580156118a657506001600160a01b03831660009081526001602052604090205460ff16155b156118d75760155460ff166118d75760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b6004548211158061192357506001600160a01b0384166000908152600a602052604090205460ff16801561192357506001600160a01b0383166000908152600a602052604090205460ff165b61195a5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610c2e565b6001600160a01b03831660009081526013602052604090205460ff16801561198c57506015546301000000900460ff16155b80156119a25750601554640100000000900460ff165b80156119bf57506018543060009081526007602052604090205410155b156119cc576119cc611dde565b6014541580156119f457506001600160a01b03831660009081526013602052604090205460ff165b15611a41576001600160a01b038416600090815260076020526040902054611a385760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b611a4143601455565b601554610100900460ff1615611aa8576001600160a01b03841660009081526016602052604090205460ff1615611aa85760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c2e565b60155462010000900460ff168015611ace57506012546001600160a01b03848116911614155b8015611ae757506012546001600160a01b038581169116145b15611b10576001600160a01b0383166000908152601660205260409020805460ff191660011790555b604080516020808201835260008083526001600160a01b038816815260079091529190912054611b41918490611803565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015611b7f575060065460ff165b15611bd2576005546001600160a01b038416600090815260076020526040902054611baa90846117a4565b1115611bd25760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b6001600160a01b03841660009081526009602052604081205460ff16158015611c1457506001600160a01b03841660009081526009602052604090205460ff16155b611c1e5782611c29565b611c2985858561212f565b6001600160a01b038516600090815260076020526040902054909150611c4f90826117a4565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ca39085815260200190565b60405180910390a3506001949350505050565b6000610de783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611803565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611d49918490611803565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611d7890836117a4565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dcc9086815260200190565b60405180910390a35060019392505050565b6015805463ff0000001916630100000017905530600090815260076020526040812054600d54600b54919291611e2591600291611e1f91908290879061229e565b90612320565b90506000611e338383611cb6565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e6d57611e6d61262b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eea9190612732565b81600181518110611efd57611efd61262b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611f4390859060009086903090429060040161274f565b600060405180830381600087803b158015611f5d57600080fd5b505af1158015611f71573d6000803e3d6000fd5b5050600b5447925060009150611f9590611f8c906002612320565b600d5490611cb6565b90506000611fb76002611e1f84611e1f600b548861229e90919063ffffffff16565b90506000611fd483611e1f600c548761229e90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461202b576040519150601f19603f3d011682016040523d82523d6000602084013e612030565b606091505b5060009250508815905061211757601154600f5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af11580156120b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120da91906127c0565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506015805463ff0000001916905550505050505050565b6001600160a01b038216600090815260136020526040812054819060ff1680156121605750600f54610100900460ff165b1561216a5750600e545b6001600160a01b03851660009081526013602052604090205460ff1680156121945750600f5460ff165b1561219e5750600d545b6001600160a01b03851660009081526013602052604090205460ff161580156121e057506001600160a01b03841660009081526013602052604090205460ff16155b1561220357600f5462010000900460ff16156121ff5750600e54612203565b5060005b60006122146064611e1f868561229e565b3060009081526007602052604090205490915061223190826117a4565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122829085815260200190565b60405180910390a36122948482611cb6565b9695505050505050565b6000826000036122b057506000610bfe565b60006122bc83856126b6565b9050826122c985836126cd565b14610de75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c2e565b6000610de783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361237e5760405162461bcd60e51b8152600401610c2e919061238b565b50600061183484866126cd565b600060208083528351808285015260005b818110156123b85785810183015185820160400152820161239c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146123ee57600080fd5b50565b6000806040838503121561240457600080fd5b823561240f816123d9565b946020939093013593505050565b80151581146123ee57600080fd5b6000806040838503121561243e57600080fd5b823561240f8161241d565b60006020828403121561245b57600080fd5b8135610de78161241d565b60008060006060848603121561247b57600080fd5b8335612486816123d9565b92506020840135612496816123d9565b929592945050506040919091013590565b6000806000604084860312156124bc57600080fd5b833567ffffffffffffffff808211156124d457600080fd5b818601915086601f8301126124e857600080fd5b8135818111156124f757600080fd5b8760208260051b850101111561250c57600080fd5b602092830195509350508401356125228161241d565b809150509250925092565b6000806040838503121561254057600080fd5b823561254b816123d9565b9150602083013561255b8161241d565b809150509250929050565b60006020828403121561257857600080fd5b8135610de7816123d9565b60006020828403121561259557600080fd5b5035919050565b6000806000606084860312156125b157600080fd5b505081359360208301359350604090920135919050565b600080604083850312156125db57600080fd5b82356125e6816123d9565b9150602083013561255b816123d9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161266957612669612641565b5060010190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b8082028115828204841417610bfe57610bfe612641565b6000826126ea57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bfe57610bfe612641565b60006020828403121561271457600080fd5b8151610de78161241d565b81810381811115610bfe57610bfe612641565b60006020828403121561274457600080fd5b8151610de7816123d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561279f5784516001600160a01b03168352938301939183019160010161277a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127d557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122058deef07bd81dd94fc87de64f297d3e7036a774a39063ff08c1f76701623fd2d64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106103a65760003560e01c8063807c2d9c116101e7578063bb54c40e1161010d578063f0ef821f116100a0578063f84ba65d1161006f578063f84ba65d14610b0d578063f887ea4014610b2d578063fe575a8714610b4d578063ffb54a9914610b7d57600080fd5b8063f0ef821f14610a93578063f1d5f51714610aad578063f2fde38b14610acd578063f80f5dd514610aed57600080fd5b8063da00097d116100dc578063da00097d146109e5578063dd62ed3e14610a08578063e5e31b1314610a4e578063ea43915e14610a7e57600080fd5b8063bb54c40e14610984578063bf56b371146109a4578063c9567bf9146109ba578063ca987b0e146109cf57600080fd5b806394213c8911610185578063a61699c411610154578063a61699c414610904578063a8aa1b3114610924578063a9059cbb14610944578063b37dd6901461096457600080fd5b806394213c891461087f57806395d89b411461089f57806398118cb4146108ce578063a5355989146108e457600080fd5b8063896648c1116101c1578063896648c1146107f25780638b42507f146108115780638da5cb5b14610841578063900d96111461085f57600080fd5b8063807c2d9c1461078a5780638637b069146107a0578063893d20e8146107c057600080fd5b806344de2e4c116102cc578063705409331161026a578063787a051b11610239578063787a051b146107145780637a319590146107345780637cc5d7eb146107545780637d1db4a51461077457600080fd5b8063705409331461068a5780637070c898146106a957806370a08231146106c9578063715018a6146106ff57600080fd5b80635c85974f116102a65780635c85974f146106045780636369244014610624578063658d4b7f146106545780636b67c4df1461067457600080fd5b806344de2e4c146105a85780634a74bb02146105c2578063571ac8b0146105e457600080fd5b80631df4ccfc116103445780632b112e49116103135780632b112e4914610527578063313ce5671461053c578063399c7976146105585780633f4218e01461057857600080fd5b80631df4ccfc146104b157806323b872dd146104c7578063251b8787146104e75780632aea52ab1461050757600080fd5b80630975d294116103805780630975d294146104455780630d2959801461046757806318160ddd1461048757806319f734841461049c57600080fd5b80630445b667146103b257806306fdde03146103db578063095ea7b31461041557600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c860185481565b6040519081526020015b60405180910390f35b3480156103e757600080fd5b506040805180820190915260088152675261676e61726f6b60c01b60208201525b6040516103d2919061238b565b34801561042157600080fd5b506104356104303660046123f1565b610b97565b60405190151581526020016103d2565b34801561045157600080fd5b5061046561046036600461242b565b610c04565b005b34801561047357600080fd5b50610465610482366004612449565b610c5b565b34801561049357600080fd5b506003546103c8565b3480156104a857600080fd5b50610465610cf0565b3480156104bd57600080fd5b506103c8600d5481565b3480156104d357600080fd5b506104356104e2366004612466565b610d2c565b3480156104f357600080fd5b506104656105023660046124a7565b610dee565b34801561051357600080fd5b50610465610522366004612449565b610ebf565b34801561053357600080fd5b506103c8610f35565b34801561054857600080fd5b50604051600981526020016103d2565b34801561056457600080fd5b5061046561057336600461252d565b610fa6565b34801561058457600080fd5b50610435610593366004612566565b60096020526000908152604090205460ff1681565b3480156105b457600080fd5b506006546104359060ff1681565b3480156105ce57600080fd5b5060155461043590640100000000900460ff1681565b3480156105f057600080fd5b506104356105ff366004612566565b610ffb565b34801561061057600080fd5b5061046561061f366004612583565b611009565b34801561063057600080fd5b5061043561063f366004612566565b60176020526000908152604090205460ff1681565b34801561066057600080fd5b5061046561066f36600461252d565b611075565b34801561068057600080fd5b506103c8600c5481565b34801561069657600080fd5b50600f5461043590610100900460ff1681565b3480156106b557600080fd5b506104656106c4366004612449565b6110ca565b3480156106d557600080fd5b506103c86106e4366004612566565b6001600160a01b031660009081526007602052604090205490565b34801561070b57600080fd5b50610465611110565b34801561072057600080fd5b5061046561072f366004612583565b611184565b34801561074057600080fd5b5061046561074f36600461259c565b6111f6565b34801561076057600080fd5b5061046561076f36600461252d565b611263565b34801561078057600080fd5b506103c860045481565b34801561079657600080fd5b506103c860055481565b3480156107ac57600080fd5b506104356107bb3660046123f1565b6112b8565b3480156107cc57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103d2565b3480156107fe57600080fd5b5060155461043590610100900460ff1681565b34801561081d57600080fd5b5061043561082c366004612566565b600a6020526000908152604090205460ff1681565b34801561084d57600080fd5b506000546001600160a01b03166107da565b34801561086b57600080fd5b5061046561087a366004612449565b6113ac565b34801561088b57600080fd5b5061046561089a36600461252d565b6113f0565b3480156108ab57600080fd5b5060408051808201909152600681526542554444484160d01b6020820152610408565b3480156108da57600080fd5b506103c8600b5481565b3480156108f057600080fd5b50600f546104359062010000900460ff1681565b34801561091057600080fd5b5061046561091f3660046125c8565b611445565b34801561093057600080fd5b506012546107da906001600160a01b031681565b34801561095057600080fd5b5061043561095f3660046123f1565b6114ae565b34801561097057600080fd5b506015546104359062010000900460ff1681565b34801561099057600080fd5b5061046561099f366004612449565b6114bb565b3480156109b057600080fd5b506103c860145481565b3480156109c657600080fd5b506104656114f8565b3480156109db57600080fd5b506103c8600e5481565b3480156109f157600080fd5b506015546104359065010000000000900460ff1681565b348015610a1457600080fd5b506103c8610a233660046125c8565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a5a57600080fd5b50610435610a69366004612566565b60136020526000908152604090205460ff1681565b348015610a8a57600080fd5b50610465611531565b348015610a9f57600080fd5b50600f546104359060ff1681565b348015610ab957600080fd5b50610465610ac8366004612583565b611568565b348015610ad957600080fd5b50610465610ae8366004612566565b6115d4565b348015610af957600080fd5b50610465610b08366004612566565b6116be565b348015610b1957600080fd5b50610465610b2836600461252d565b61174f565b348015610b3957600080fd5b506011546107da906001600160a01b031681565b348015610b5957600080fd5b50610435610b68366004612566565b60166020526000908152604090205460ff1681565b348015610b8957600080fd5b506015546104359060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bf29086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c375760405162461bcd60e51b8152600401610c2e906125f6565b60405180910390fd5b601580549215156401000000000264ff000000001990931692909217909155601855565b6000546001600160a01b03163314610c855760405162461bcd60e51b8152600401610c2e906125f6565b60155462010000900460ff16610cdd5760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f206c6f6e6765722070617573652074726164696e6700000000006044820152606401610c2e565b6015805460ff1916911515919091179055565b6000546001600160a01b03163314610d1a5760405162461bcd60e51b8152600401610c2e906125f6565b6015805462ffffff1916610101179055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610dd9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610db4918490611803565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610de484848461183d565b90505b9392505050565b6000546001600160a01b03163314610e185760405162461bcd60e51b8152600401610c2e906125f6565b60155462010000900460ff16610e4a5760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b60005b82811015610eb9578160166000868685818110610e6c57610e6c61262b565b9050602002016020810190610e819190612566565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610eb281612657565b9050610e4d565b50505050565b6000546001600160a01b03163314610ee95760405162461bcd60e51b8152600401610c2e906125f6565b60155462010000900460ff16610f1b5760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b601580549115156101000261ff0019909216919091179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d546003549192610fa1929091610f9b9190611cb6565b90611cb6565b905090565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000610bfe82600019610b97565b6000546001600160a01b031633146110335760405162461bcd60e51b8152600401610c2e906125f6565b60058110156110545760405162461bcd60e51b8152600401610c2e90612670565b6103e88160035461106591906126b6565b61106f91906126cd565b60045550565b6000546001600160a01b0316331461109f5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110f45760405162461bcd60e51b8152600401610c2e906125f6565b600f8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461113a5760405162461bcd60e51b8152600401610c2e906125f6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146111ae5760405162461bcd60e51b8152600401610c2e906125f6565b47336108fc60646111bf85856126b6565b6111c991906126cd565b6040518115909202916000818181858888f193505050501580156111f1573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146112205760405162461bcd60e51b8152600401610c2e906125f6565b600b839055600c82905561123483836117a4565b600d8190556112449082906126ef565b600e819055600d5460149161125991906126ef565b106111f157600080fd5b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146112e35760405162461bcd60e51b8152600401610c2e906125f6565b306001600160a01b0384160361133b5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610c2e565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611388573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190612702565b6000546001600160a01b031633146113d65760405162461bcd60e51b8152600401610c2e906125f6565b600f80549115156101000261ff0019909216919091179055565b6000546001600160a01b0316331461141a5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461146f5760405162461bcd60e51b8152600401610c2e906125f6565b600f80546301000000600160b81b03191663010000006001600160a01b0393841602179055601080546001600160a01b03191692909116919091179055565b6000610de733848461183d565b6000546001600160a01b031633146114e55760405162461bcd60e51b8152600401610c2e906125f6565b600f805460ff1916911515919091179055565b6000546001600160a01b031633146115225760405162461bcd60e51b8152600401610c2e906125f6565b6015805460ff19166001179055565b6000546001600160a01b0316331461155b5760405162461bcd60e51b8152600401610c2e906125f6565b6015805461ff0019169055565b6000546001600160a01b031633146115925760405162461bcd60e51b8152600401610c2e906125f6565b60058110156115b35760405162461bcd60e51b8152600401610c2e90612670565b6103e8816003546115c491906126b6565b6115ce91906126cd565b60055550565b6000546001600160a01b031633146115fe5760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b0381166116635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116e85760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600983528185208054821685179055600a835281852080548216851790556017835281852080548216909417909355601690915290912080549091169055565b6000546001600160a01b031633146117795760405162461bcd60e51b8152600401610c2e906125f6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806117b183856126ef565b905083811015610de75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c2e565b600081848411156118275760405162461bcd60e51b8152600401610c2e919061238b565b506000611834848661271f565b95945050505050565b6015546000906301000000900460ff16156118645761185d848484611cf8565b9050610de7565b6001600160a01b03841660009081526001602052604090205460ff161580156118a657506001600160a01b03831660009081526001602052604090205460ff16155b156118d75760155460ff166118d75760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b6004548211158061192357506001600160a01b0384166000908152600a602052604090205460ff16801561192357506001600160a01b0383166000908152600a602052604090205460ff165b61195a5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610c2e565b6001600160a01b03831660009081526013602052604090205460ff16801561198c57506015546301000000900460ff16155b80156119a25750601554640100000000900460ff165b80156119bf57506018543060009081526007602052604090205410155b156119cc576119cc611dde565b6014541580156119f457506001600160a01b03831660009081526013602052604090205460ff165b15611a41576001600160a01b038416600090815260076020526040902054611a385760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b611a4143601455565b601554610100900460ff1615611aa8576001600160a01b03841660009081526016602052604090205460ff1615611aa85760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c2e565b60155462010000900460ff168015611ace57506012546001600160a01b03848116911614155b8015611ae757506012546001600160a01b038581169116145b15611b10576001600160a01b0383166000908152601660205260409020805460ff191660011790555b604080516020808201835260008083526001600160a01b038816815260079091529190912054611b41918490611803565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015611b7f575060065460ff165b15611bd2576005546001600160a01b038416600090815260076020526040902054611baa90846117a4565b1115611bd25760405162461bcd60e51b81526020600482015260006024820152604401610c2e565b6001600160a01b03841660009081526009602052604081205460ff16158015611c1457506001600160a01b03841660009081526009602052604090205460ff16155b611c1e5782611c29565b611c2985858561212f565b6001600160a01b038516600090815260076020526040902054909150611c4f90826117a4565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ca39085815260200190565b60405180910390a3506001949350505050565b6000610de783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611803565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611d49918490611803565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611d7890836117a4565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dcc9086815260200190565b60405180910390a35060019392505050565b6015805463ff0000001916630100000017905530600090815260076020526040812054600d54600b54919291611e2591600291611e1f91908290879061229e565b90612320565b90506000611e338383611cb6565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e6d57611e6d61262b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eea9190612732565b81600181518110611efd57611efd61262b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611f4390859060009086903090429060040161274f565b600060405180830381600087803b158015611f5d57600080fd5b505af1158015611f71573d6000803e3d6000fd5b5050600b5447925060009150611f9590611f8c906002612320565b600d5490611cb6565b90506000611fb76002611e1f84611e1f600b548861229e90919063ffffffff16565b90506000611fd483611e1f600c548761229e90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461202b576040519150601f19603f3d011682016040523d82523d6000602084013e612030565b606091505b5060009250508815905061211757601154600f5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af11580156120b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120da91906127c0565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506015805463ff0000001916905550505050505050565b6001600160a01b038216600090815260136020526040812054819060ff1680156121605750600f54610100900460ff165b1561216a5750600e545b6001600160a01b03851660009081526013602052604090205460ff1680156121945750600f5460ff165b1561219e5750600d545b6001600160a01b03851660009081526013602052604090205460ff161580156121e057506001600160a01b03841660009081526013602052604090205460ff16155b1561220357600f5462010000900460ff16156121ff5750600e54612203565b5060005b60006122146064611e1f868561229e565b3060009081526007602052604090205490915061223190826117a4565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122829085815260200190565b60405180910390a36122948482611cb6565b9695505050505050565b6000826000036122b057506000610bfe565b60006122bc83856126b6565b9050826122c985836126cd565b14610de75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c2e565b6000610de783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361237e5760405162461bcd60e51b8152600401610c2e919061238b565b50600061183484866126cd565b600060208083528351808285015260005b818110156123b85785810183015185820160400152820161239c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146123ee57600080fd5b50565b6000806040838503121561240457600080fd5b823561240f816123d9565b946020939093013593505050565b80151581146123ee57600080fd5b6000806040838503121561243e57600080fd5b823561240f8161241d565b60006020828403121561245b57600080fd5b8135610de78161241d565b60008060006060848603121561247b57600080fd5b8335612486816123d9565b92506020840135612496816123d9565b929592945050506040919091013590565b6000806000604084860312156124bc57600080fd5b833567ffffffffffffffff808211156124d457600080fd5b818601915086601f8301126124e857600080fd5b8135818111156124f757600080fd5b8760208260051b850101111561250c57600080fd5b602092830195509350508401356125228161241d565b809150509250925092565b6000806040838503121561254057600080fd5b823561254b816123d9565b9150602083013561255b8161241d565b809150509250929050565b60006020828403121561257857600080fd5b8135610de7816123d9565b60006020828403121561259557600080fd5b5035919050565b6000806000606084860312156125b157600080fd5b505081359360208301359350604090920135919050565b600080604083850312156125db57600080fd5b82356125e6816123d9565b9150602083013561255b816123d9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161266957612669612641565b5060010190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b8082028115828204841417610bfe57610bfe612641565b6000826126ea57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bfe57610bfe612641565b60006020828403121561271457600080fd5b8151610de78161241d565b81810381811115610bfe57610bfe612641565b60006020828403121561274457600080fd5b8151610de7816123d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561279f5784516001600160a01b03168352938301939183019160010161277a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127d557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122058deef07bd81dd94fc87de64f297d3e7036a774a39063ff08c1f76701623fd2d64736f6c63430008110033

Deployed Bytecode Sourcemap

5107:13059:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6877:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6877:54:0;;;;;;;;8289:78;;;;;;;;;;-1:-1:-1;8360:5:0;;;;;;;;;;;;-1:-1:-1;;;8360:5:0;;;;8289:78;;;;;;;:::i;9131:216::-;;;;;;;;;;-1:-1:-1;9131:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9131:216:0;1205:187:1;17345:165:0;;;;;;;;;;-1:-1:-1;17345:165:0;;;;;:::i;:::-;;:::i;:::-;;15013:159;;;;;;;;;;-1:-1:-1;15013:159:0;;;;;:::i;:::-;;:::i;8551:86::-;;;;;;;;;;-1:-1:-1;8623:12:0;;8551:86;;16792:138;;;;;;;;;;;;;:::i;6119:27::-;;;;;;;;;;;;;;;;10338:370;;;;;;;;;;-1:-1:-1;10338:370:0;;;;;:::i;:::-;;:::i;16299:243::-;;;;;;;;;;-1:-1:-1;16299:243:0;;;;;:::i;:::-;;:::i;16151:132::-;;;;;;;;;;-1:-1:-1;16151:132:0;;;;;:::i;:::-;;:::i;8981:142::-;;;;;;;;;;;;;:::i;8465:78::-;;;;;;;;;;-1:-1:-1;8465:78:0;;5466:1;3438:36:1;;3426:2;3411:18;8465:78:0;3296:184:1;16673:111:0;;;;;;;;;;-1:-1:-1;16673:111:0;;;;;:::i;:::-;;:::i;5934:43::-;;;;;;;;;;-1:-1:-1;5934:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5764:33;;;;;;;;;;-1:-1:-1;5764:33:0;;;;;;;;6671:40;;;;;;;;;;-1:-1:-1;6671:40:0;;;;;;;;;;;9355:122;;;;;;;;;;-1:-1:-1;9355:122:0;;;;;:::i;:::-;;:::i;14809:196::-;;;;;;;;;;-1:-1:-1;14809:196:0;;;;;:::i;:::-;;:::i;6824:44::-;;;;;;;;;;-1:-1:-1;6824:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15265:119;;;;;;;;;;-1:-1:-1;15265:119:0;;;;;:::i;:::-;;:::i;6079:31::-;;;;;;;;;;;;;;;;6234:30;;;;;;;;;;-1:-1:-1;6234:30:0;;;;;;;;;;;17234:103;;;;;;;;;;-1:-1:-1;17234:103:0;;;;;:::i;:::-;;:::i;8731:::-;;;;;;;;;;-1:-1:-1;8731:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8814:18:0;8797:7;8814:18;;;:9;:18;;;;;;;8731:103;4700:148;;;;;;;;;;;;;:::i;17960:201::-;;;;;;;;;;-1:-1:-1;17960:201:0;;;;;:::i;:::-;;:::i;15792:351::-;;;;;;;;;;-1:-1:-1;15792:351:0;;;;;:::i;:::-;;:::i;16550:115::-;;;;;;;;;;-1:-1:-1;16550:115:0;;;;;:::i;:::-;;:::i;5544:53::-;;;;;;;;;;;;;;;;5604:51;;;;;;;;;;;;;;;;17697:255;;;;;;;;;;-1:-1:-1;17697:255:0;;;;;:::i;:::-;;:::i;8645:78::-;;;;;;;;;;-1:-1:-1;8697:7:0;4549:6;-1:-1:-1;;;;;4549:6:0;8645:78;;;-1:-1:-1;;;;;4794:32:1;;;4776:51;;4764:2;4749:18;8645:78:0;4630:203:1;6559:33:0;;;;;;;;;;-1:-1:-1;6559:33:0;;;;;;;;;;;5984:47;;;;;;;;;;-1:-1:-1;5984:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4484:79;;;;;;;;;;-1:-1:-1;4522:7:0;4549:6;-1:-1:-1;;;;;4549:6:0;4484:79;;17131:95;;;;;;;;;;-1:-1:-1;17131:95:0;;;;;:::i;:::-;;:::i;14471:124::-;;;;;;;;;;-1:-1:-1;14471:124:0;;;;;:::i;:::-;;:::i;8375:82::-;;;;;;;;;;-1:-1:-1;8448:7:0;;;;;;;;;;;;-1:-1:-1;;;8448:7:0;;;;8375:82;;6041:31;;;;;;;;;;;;;;;;6271:34;;;;;;;;;;-1:-1:-1;6271:34:0;;;;;;;;;;;17518:171;;;;;;;;;;-1:-1:-1;17518:171:0;;;;;:::i;:::-;;:::i;6414:19::-;;;;;;;;;;-1:-1:-1;6414:19:0;;;;-1:-1:-1;;;;;6414:19:0;;;9836:156;;;;;;;;;;-1:-1:-1;9836:156:0;;;;;:::i;:::-;;:::i;6599:29::-;;;;;;;;;;-1:-1:-1;6599:29:0;;;;;;;;;;;17030:93;;;;;;;;;;-1:-1:-1;17030:93:0;;;;;:::i;:::-;;:::i;6487:25::-;;;;;;;;;;;;;;;;15180:77;;;;;;;;;;;;;:::i;6153:36::-;;;;;;;;;;;;;;;;6718:45;;;;;;;;;;-1:-1:-1;6718:45:0;;;;;;;;;;;8842:131;;;;;;;;;;-1:-1:-1;8842:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8943:19:0;;;8926:7;8943:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8842:131;6440:38;;;;;;;;;;-1:-1:-1;6440:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16938:84;;;;;;;;;;;;;:::i;6198:29::-;;;;;;;;;;-1:-1:-1;6198:29:0;;;;;;;;14603:198;;;;;;;;;;-1:-1:-1;14603:198:0;;;;;:::i;:::-;;:::i;4856:244::-;;;;;;;;;;-1:-1:-1;4856:244:0;;;;;:::i;:::-;;:::i;15527:257::-;;;;;;;;;;-1:-1:-1;15527:257:0;;;;;:::i;:::-;;:::i;15392:127::-;;;;;;;;;;-1:-1:-1;15392:127:0;;;;;:::i;:::-;;:::i;6384:23::-;;;;;;;;;;-1:-1:-1;6384:23:0;;;;-1:-1:-1;;;;;6384:23:0;;;6772:45;;;;;;;;;;-1:-1:-1;6772:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6521:31;;;;;;;;;;-1:-1:-1;6521:31:0;;;;;;;;9131:216;9235:10;9206:4;9223:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9223:32:0;;;;;;;;;;:41;;;9280:37;9206:4;;9223:32;;9280:37;;;;9258:6;160:25:1;;148:2;133:18;;14:177;9280:37:0;;;;;;;;-1:-1:-1;9335:4:0;9131:216;;;;;:::o;17345:165::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;;;;;;;;;17436:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;17436:30:0;;::::1;::::0;;;::::1;::::0;;;17477:13:::1;:25:::0;17345:165::o;15013:159::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;15088:10:::1;::::0;;;::::1;;;15080:50;;;::::0;-1:-1:-1;;;15080:50:0;;6019:2:1;15080:50:0::1;::::0;::::1;6001:21:1::0;6058:2;6038:18;;;6031:30;6097:29;6077:18;;;6070:57;6144:18;;15080:50:0::1;5817:351:1::0;15080:50:0::1;15141:11;:23:::0;;-1:-1:-1;;15141:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15013:159::o;16792:138::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;16844:10:::1;:18:::0;;-1:-1:-1;;16902:20:0;;;;;16792:138::o;10338:370::-;-1:-1:-1;;;;;10459:19:0;;10438:4;10459:19;;;:11;:19;;;;;;;;10479:10;10459:31;;;;;;;;-1:-1:-1;;10459:52:0;10455:188;;10562:69;;;;;;;;;;;-1:-1:-1;;;10562:69:0;;;;;;;;-1:-1:-1;;;;;10562:19:0;;-1:-1:-1;10562:19:0;;;:11;:19;;;;;10582:10;10562:31;;;;;;;;;;:69;;10598:6;;10562:35;:69::i;:::-;-1:-1:-1;;;;;10528:19:0;;;;;;:11;:19;;;;;;;;10548:10;10528:31;;;;;;;:103;10455:188;10660:40;10674:6;10682:9;10693:6;10660:13;:40::i;:::-;10653:47;;10338:370;;;;;;:::o;16299:243::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;16403:10:::1;::::0;;;::::1;;;16395:23;;;::::0;-1:-1:-1;;;16395:23:0;;6375:2:1;16395:23:0::1;::::0;::::1;6357:21:1::0;-1:-1:-1;6394:18:1;;;6387:29;6433:18;;16395:23:0::1;6173:284:1::0;16395:23:0::1;16434:9;16429:106;16445:20:::0;;::::1;16429:106;;;16517:6;16487:13;:27;16501:9;;16511:1;16501:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16487:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16487:27:0;:36;;-1:-1:-1;;16487:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16467:3:::1;::::0;::::1;:::i;:::-;;;16429:106;;;;16299:243:::0;;;:::o;16151:132::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;16226:10:::1;::::0;;;::::1;;;16218:23;;;::::0;-1:-1:-1;;;16218:23:0;;6375:2:1;16218:23:0::1;::::0;::::1;6357:21:1::0;-1:-1:-1;6394:18:1;;;6387:29;6433:18;;16218:23:0::1;6173:284:1::0;16218:23:0::1;16252:13;:23:::0;;;::::1;;;;-1:-1:-1::0;;16252:23:0;;::::1;::::0;;;::::1;::::0;;16151:132::o;8981:142::-;8814:9;:18;;;;5216:42;9034:7;8814:18;;;;;9061:12;;9034:7;;9061:54;;8814:18;;9061:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;9054:61;;8981:142;:::o;16673:111::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16751:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;16751:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16673:111::o;9355:122::-;9410:4;9434:35;9442:7;-1:-1:-1;;9434:7:0;:35::i;14809:196::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;14897:1:::1;14885:8;:13;;14877:64;;;;-1:-1:-1::0;;;14877:64:0::1;;;;;;;:::i;:::-;14993:4;14982:8;14967:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;14952:12;:45:::0;-1:-1:-1;14809:196:0:o;15265:119::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15348:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15348:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15265:119::o;17234:103::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;17305:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;17305:24:0;;::::1;::::0;;;::::1;::::0;;17234:103::o;4700:148::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;4807:1:::1;4791:6:::0;;4770:40:::1;::::0;-1:-1:-1;;;;;4791:6:0;;::::1;::::0;4770:40:::1;::::0;4807:1;;4770:40:::1;4838:1;4821:19:::0;;-1:-1:-1;;;;;;4821:19:0::1;::::0;;4700:148::o;17960:201::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;18057:21:::1;18097:10;18089:64;18149:3;18118:28;18130:16:::0;18057:21;18118:28:::1;:::i;:::-;:34;;;;:::i;:::-;18089:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18026:135;17960:201:::0;:::o;15792:351::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;15908:12:::1;:24:::0;;;15943:12:::1;:30:::0;;;15997::::1;15923:9:::0;15958:15;15997:16:::1;:30::i;:::-;15986:8;:41:::0;;;16058:23:::1;::::0;16069:12;;16058:23:::1;:::i;:::-;16038:17;:43:::0;;;16121:8:::1;::::0;16132:2:::1;::::0;16101:28:::1;::::0;16121:8;16101:28:::1;:::i;:::-;:33;16092:43;;;::::0;::::1;16550:115:::0;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16624:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;16624:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16550:115::o;17697:255::-;17782:12;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;17839:4:::1;-1:-1:-1::0;;;;;17815:29:0;::::1;::::0;17807:70:::1;;;::::0;-1:-1:-1;;;17807:70:0;;8000:2:1;17807:70:0::1;::::0;::::1;7982:21:1::0;8039:2;8019:18;;;8012:30;8078;8058:18;;;8051:58;8126:18;;17807:70:0::1;7798:352:1::0;17807:70:0::1;17895:49;::::0;-1:-1:-1;;;17895:49:0;;17925:10:::1;17895:49;::::0;::::1;8329:51:1::0;8396:18;;;8389:34;;;-1:-1:-1;;;;;17895:29:0;::::1;::::0;::::1;::::0;8302:18:1;;17895:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17131:95::-:0;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;17198:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;17198:20:0;;::::1;::::0;;;::::1;::::0;;17131:95::o;14471:124::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14558:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:29;;-1:-1:-1;;14558:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14471:124::o;17518:171::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;17615:8:::1;:22:::0;;-1:-1:-1;;;;;;17615:22:0::1;::::0;-1:-1:-1;;;;;17615:22:0;;::::1;;;::::0;;17648:14:::1;:33:::0;;-1:-1:-1;;;;;;17648:33:0::1;::::0;;;::::1;::::0;;;::::1;::::0;;17518:171::o;9836:156::-;9916:4;9940:44;9954:10;9966:9;9977:6;9940:13;:44::i;17030:93::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;17096:10:::1;:19:::0;;-1:-1:-1;;17096:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17030:93::o;15180:77::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;15231:11:::1;:18:::0;;-1:-1:-1;;15231:18:0::1;15245:4;15231:18;::::0;;15180:77::o;16938:84::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;16993:13:::1;:21:::0;;-1:-1:-1;;16993:21:0::1;::::0;;16938:84::o;14603:198::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;14695:1:::1;14683:8;:13;;14675:64;;;;-1:-1:-1::0;;;14675:64:0::1;;;;;;;:::i;:::-;14789:4;14778:8;14763:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;14750:10;:43:::0;-1:-1:-1;14603:198:0:o;4856:244::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4945:22:0;::::1;4937:73;;;::::0;-1:-1:-1;;;4937:73:0;;8886:2:1;4937:73:0::1;::::0;::::1;8868:21:1::0;8925:2;8905:18;;;8898:30;8964:34;8944:18;;;8937:62;-1:-1:-1;;;9015:18:1;;;9008:36;9061:19;;4937:73:0::1;8684:402:1::0;4937:73:0::1;5047:6;::::0;;5026:38:::1;::::0;-1:-1:-1;;;;;5026:38:0;;::::1;::::0;5047:6;::::1;::::0;5026:38:::1;::::0;::::1;5075:6;:17:::0;;-1:-1:-1;;;;;;5075:17:0::1;-1:-1:-1::0;;;;;5075:17:0;;;::::1;::::0;;;::::1;::::0;;4856:244::o;15527:257::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15592:22:0::1;;::::0;;;15617:4:::1;15592:22;::::0;;;;;;;:29;;-1:-1:-1;;15592:29:0;;::::1;::::0;::::1;::::0;;;15632:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;15669:15:::1;:23:::0;;;;;:30;;;::::1;::::0;::::1;::::0;;15710:11:::1;:19:::0;;;;;:26;;;::::1;::::0;;::::1;::::0;;;15747:13:::1;:21:::0;;;;;;:29;;;;::::1;::::0;;15527:257::o;15392:127::-;4611:6;;-1:-1:-1;;;;;4611:6:0;3920:10;4611:22;4603:67;;;;-1:-1:-1;;;4603:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15479:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15479:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15392:127::o;287:179::-;345:7;;377:5;381:1;377;:5;:::i;:::-;365:17;;406:1;401;:6;;393:46;;;;-1:-1:-1;;;393:46:0;;9293:2:1;393:46:0;;;9275:21:1;9332:2;9312:18;;;9305:30;9371:29;9351:18;;;9344:57;9418:18;;393:46:0;9091:351:1;618:190:0;704:7;740:12;732:6;;;;724:29;;;;-1:-1:-1;;;724:29:0;;;;;;;;:::i;:::-;-1:-1:-1;764:9:0;776:5;780:1;776;:5;:::i;:::-;764:17;618:190;-1:-1:-1;;;;;618:190:0:o;10716:1476::-;10829:16;;10808:4;;10829:16;;;;;10825:73;;;10855:41;10870:6;10878:9;10889:6;10855:14;:41::i;:::-;10848:48;;;;10825:73;-1:-1:-1;;;;;10912:22:0;;;;;;:14;:22;;;;;;;;10911:23;:53;;;;-1:-1:-1;;;;;;10939:25:0;;;;;;:14;:25;;;;;;;;10938:26;10911:53;10908:108;;;10988:11;;;;10980:24;;;;-1:-1:-1;;;10980:24:0;;6375:2:1;10980:24:0;;;6357:21:1;-1:-1:-1;6394:18:1;;;6387:29;6433:18;;10980:24:0;6173:284:1;10980:24:0;11046:12;;11036:6;:22;;:79;;;-1:-1:-1;;;;;;11062:23:0;;;;;;:15;:23;;;;;;;;:53;;;;-1:-1:-1;;;;;;11089:26:0;;;;;;:15;:26;;;;;;;;11062:53;11028:100;;;;-1:-1:-1;;;11028:100:0;;9782:2:1;11028:100:0;;;9764:21:1;9821:1;9801:18;;;9794:29;-1:-1:-1;;;9839:18:1;;;9832:38;9887:18;;11028:100:0;9580:331:1;11028:100:0;-1:-1:-1;;;;;11143:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;11165:16:0;;;;;;;11164:17;11143:38;:63;;;;-1:-1:-1;11185:21:0;;;;;;;11143:63;:108;;;;-1:-1:-1;11238:13:0;;11228:4;11210:24;;;;:9;:24;;;;;;:41;;11143:108;11139:140;;;11254:23;:21;:23::i;:::-;9552:10;;:15;;;11293:32;;-1:-1:-1;;;;;;11308:17:0;;;;;;:6;:17;;;;;;;;11293:32;11289:122;;;-1:-1:-1;;;;;11350:17:0;;11370:1;11350:17;;;:9;:17;;;;;;11342:34;;;;-1:-1:-1;;;11342:34:0;;6375:2:1;11342:34:0;;;6357:21:1;-1:-1:-1;6394:18:1;;;6387:29;6433:18;;11342:34:0;6173:284:1;11342:34:0;11391:8;9634:12;9621:10;:25;9583:71;11391:8;11449:13;;;;;;;11445:91;;;-1:-1:-1;;;;;11488:21:0;;;;;;:13;:21;;;;;;;;11487:22;11479:45;;;;-1:-1:-1;;;11479:45:0;;10118:2:1;11479:45:0;;;10100:21:1;10157:2;10137:18;;;10130:30;-1:-1:-1;;;10176:18:1;;;10169:41;10227:18;;11479:45:0;9916:335:1;11479:45:0;11552:10;;;;;;;:31;;;;-1:-1:-1;11579:4:0;;-1:-1:-1;;;;;11566:17:0;;;11579:4;;11566:17;;11552:31;:49;;;;-1:-1:-1;11597:4:0;;-1:-1:-1;;;;;11587:14:0;;;11597:4;;11587:14;11552:49;11548:112;;;-1:-1:-1;;;;;11617:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;11617:31:0;11644:4;11617:31;;;11548:112;11720:33;;;;;;;;;-1:-1:-1;11720:33:0;;;-1:-1:-1;;;;;11720:17:0;;;;:9;:17;;;;;;;;:33;;11742:6;;11720:21;:33::i;:::-;-1:-1:-1;;;;;11700:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;11771:26;;;;;:15;:26;;;;;;;11770:27;:45;;;;-1:-1:-1;11801:14:0;;;;11770:45;11766:137;;;11876:10;;-1:-1:-1;;;;;11840:20:0;;;;;;:9;:20;;;;;;:32;;11865:6;11840:24;:32::i;:::-;:46;;11832:59;;;;-1:-1:-1;;;11832:59:0;;6375:2:1;11832:59:0;;;6357:21:1;-1:-1:-1;6394:18:1;;;6387:29;6433:18;;11832:59:0;6173:284:1;11832:59:0;-1:-1:-1;;;;;11938:19:0;;11915;11938;;;:11;:19;;;;;;;;11937:20;:47;;;;-1:-1:-1;;;;;;11962:22:0;;;;;;:11;:22;;;;;;;;11961:23;11937:47;:96;;12027:6;11937:96;;;11987:37;11998:6;12006:9;12017:6;11987:10;:37::i;:::-;-1:-1:-1;;;;;12067:20:0;;;;;;:9;:20;;;;;;11915:118;;-1:-1:-1;12067:37:0;;11915:118;12067:24;:37::i;:::-;-1:-1:-1;;;;;12044:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12122:40;;;;;;;;;;12150:11;160:25:1;;148:2;133:18;;14:177;12122:40:0;;;;;;;;-1:-1:-1;12180:4:0;;10716:1476;-1:-1:-1;;;;10716:1476:0:o;474:136::-;532:7;559:43;563:1;566;559:43;;;;;;;;;;;;;;;;;:3;:43::i;10000:330::-;10130:53;;;;;;;;;;;-1:-1:-1;;;10130:53:0;;;;;;;;-1:-1:-1;;;;;10130:17:0;;10093:4;10130:17;;;:9;:17;;;;;;;:53;;10152:6;;10130:21;:53::i;:::-;-1:-1:-1;;;;;10110:17:0;;;;;;;:9;:17;;;;;;:73;;;;10217:20;;;;;;;:32;;10242:6;10217:24;:32::i;:::-;-1:-1:-1;;;;;10194:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10265:35;;;;;;;;;;10293:6;160:25:1;;148:2;133:18;;14:177;10265:35:0;;;;;;;;-1:-1:-1;10318:4:0;10000:330;;;;;:::o;13046:1417::-;7036:16;:23;;-1:-1:-1;;7036:23:0;;;;;13155:4:::1;7036:23:::0;13137:24;;;:9:::1;:24;::::0;;;;;13236:8:::1;::::0;13218:12:::1;::::0;13137:24;;7036:23;13198:54:::1;::::0;13250:1:::1;::::0;13198:47:::1;::::0;13236:8;13198:47;;13137:24;;13198:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;13172:80:::0;-1:-1:-1;13263:20:0::1;13286:36;:15:::0;13172:80;13286:19:::1;:36::i;:::-;13359:16;::::0;;13373:1:::1;13359:16:::0;;;;;::::1;::::0;;13263:59;;-1:-1:-1;13335:21:0::1;::::0;13359:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13359:16:0::1;13335:40;;13404:4;13386;13391:1;13386:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13386:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13430:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13430:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13386:7;;13430:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13420:4;13425:1;13420:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13420:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13456:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13456:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13528:12;;13456:6:::1;::::0;13571:4;;13598::::1;::::0;13618:15:::1;::::0;13456:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13746:12:0::1;::::0;13677:21:::1;::::0;-1:-1:-1;13657:17:0::1;::::0;-1:-1:-1;13733:33:0::1;::::0;13746:19:::1;::::0;13763:1:::1;13746:16;:19::i;:::-;13733:8;::::0;;:12:::1;:33::i;:::-;13711:55;;13779:26;13808:51;13857:1;13808:44;13840:11;13808:27;13822:12;;13808:9;:13;;:27;;;;:::i;:51::-;13779:80;;13870:26;13899:44;13931:11;13899:27;13913:12;;13899:9;:13;;:27;;;;:::i;:44::-;13994:14;::::0;13986:73:::1;::::0;13870;;-1:-1:-1;13965:16:0::1;::::0;-1:-1:-1;;;;;13994:14:0;;::::1;::::0;14049:5:::1;::::0;13870:73;;13965:16;13986:73;13965:16;13986:73;13870;13994:14;14049:5;13986:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14084:5:0::1;::::0;-1:-1:-1;;14108:19:0;;;-1:-1:-1;14104:352:0::1;;14144:6;::::0;14319:8:::1;::::0;14144:232:::1;::::0;-1:-1:-1;;;14144:232:0;;14221:4:::1;14144:232;::::0;::::1;12180:34:1::0;12230:18;;;12223:34;;;-1:-1:-1;12273:18:1;;;12266:34;;;12316:18;;;12309:34;-1:-1:-1;;;;;14319:8:0;;;::::1;::::0;::::1;12359:19:1::0;;;12352:44;14346:15:0::1;12412:19:1::0;;;12405:35;14144:6:0;::::1;::::0;:22:::1;::::0;14175:18;;12114:19:1;;14144:232:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14396:48:0::1;::::0;;12936:25:1;;;12992:2;12977:18;;12970:34;;;14396:48:0::1;::::0;-1:-1:-1;12909:18:1;14396:48:0::1;;;;;;;14104:352;-1:-1:-1::0;;7082:16:0;:24;;-1:-1:-1;;7082:24:0;;;-1:-1:-1;;;;;;;13046:1417:0:o;12200:838::-;-1:-1:-1;;;;;12346:17:0;;12289:7;12346:17;;;:6;:17;;;;;;12289:7;;12346:17;;:32;;;;-1:-1:-1;12367:11:0;;;;;;;12346:32;12342:106;;;-1:-1:-1;12411:17:0;;12342:106;-1:-1:-1;;;;;12462:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;12480:10:0;;;;12462:28;12458:93;;;-1:-1:-1;12523:8:0;;12458:93;-1:-1:-1;;;;;12566:14:0;;;;;;:6;:14;;;;;;;;12565:15;:37;;;;-1:-1:-1;;;;;;12585:17:0;;;;;;:6;:17;;;;;;;;12584:18;12565:37;12561:227;;;12622:15;;;;;;;12618:159;;;-1:-1:-1;12673:17:0;;12618:159;;;-1:-1:-1;12760:1:0;12618:159;12798:17;12818:34;12848:3;12818:25;:6;12829:13;12818:10;:25::i;:34::-;12910:4;12892:24;;;;:9;:24;;;;;;12798:54;;-1:-1:-1;12892:39:0;;12798:54;12892:28;:39::i;:::-;12883:4;12865:24;;;;:9;:24;;;;;;;:66;;;;12947:42;;-1:-1:-1;;;;;12947:42:0;;;;;;;12979:9;160:25:1;;148:2;133:18;;14:177;12947:42:0;;;;;;;;13009:21;:6;13020:9;13009:10;:21::i;:::-;13002:28;12200:838;-1:-1:-1;;;;;;12200:838:0:o;816:222::-;874:7;898:1;903;898:6;894:23;;-1:-1:-1;914:1:0;907:8;;894:23;927:9;939:5;943:1;939;:5;:::i;:::-;927:17;-1:-1:-1;972:1:0;963:5;967:1;927:17;963:5;:::i;:::-;:10;955:56;;;;-1:-1:-1;;;955:56:0;;13217:2:1;955:56:0;;;13199:21:1;13256:2;13236:18;;;13229:30;13295:34;13275:18;;;13268:62;-1:-1:-1;;;13346:18:1;;;13339:31;13387:19;;955:56:0;13015:397:1;1046:132:0;1104:7;1131:39;1135:1;1138;1131:39;;;;;;;;;;;;;;;;;1272:7;1307:12;1300:5;1292:28;;;;-1:-1:-1;;;1292:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1331:9:0;1343:5;1347:1;1343;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:309;1585:6;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:28;1742:5;1720:28;:::i;1834:241::-;1890:6;1943:2;1931:9;1922:7;1918:23;1914:32;1911:52;;;1959:1;1956;1949:12;1911:52;1998:9;1985:23;2017:28;2039:5;2017:28;:::i;2080:456::-;2157:6;2165;2173;2226:2;2214:9;2205:7;2201:23;2197:32;2194:52;;;2242:1;2239;2232:12;2194:52;2281:9;2268:23;2300:31;2325:5;2300:31;:::i;:::-;2350:5;-1:-1:-1;2407:2:1;2392:18;;2379:32;2420:33;2379:32;2420:33;:::i;:::-;2080:456;;2472:7;;-1:-1:-1;;;2526:2:1;2511:18;;;;2498:32;;2080:456::o;2541:750::-;2633:6;2641;2649;2702:2;2690:9;2681:7;2677:23;2673:32;2670:52;;;2718:1;2715;2708:12;2670:52;2758:9;2745:23;2787:18;2828:2;2820:6;2817:14;2814:34;;;2844:1;2841;2834:12;2814:34;2882:6;2871:9;2867:22;2857:32;;2927:7;2920:4;2916:2;2912:13;2908:27;2898:55;;2949:1;2946;2939:12;2898:55;2989:2;2976:16;3015:2;3007:6;3004:14;3001:34;;;3031:1;3028;3021:12;3001:34;3086:7;3079:4;3069:6;3066:1;3062:14;3058:2;3054:23;3050:34;3047:47;3044:67;;;3107:1;3104;3097:12;3044:67;3138:4;3130:13;;;;-1:-1:-1;3162:6:1;-1:-1:-1;;3203:20:1;;3190:34;3233:28;3190:34;3233:28;:::i;:::-;3280:5;3270:15;;;2541:750;;;;;:::o;3485:382::-;3550:6;3558;3611:2;3599:9;3590:7;3586:23;3582:32;3579:52;;;3627:1;3624;3617:12;3579:52;3666:9;3653:23;3685:31;3710:5;3685:31;:::i;:::-;3735:5;-1:-1:-1;3792:2:1;3777:18;;3764:32;3805:30;3764:32;3805:30;:::i;:::-;3854:7;3844:17;;;3485:382;;;;;:::o;3872:247::-;3931:6;3984:2;3972:9;3963:7;3959:23;3955:32;3952:52;;;4000:1;3997;3990:12;3952:52;4039:9;4026:23;4058:31;4083:5;4058:31;:::i;4124:180::-;4183:6;4236:2;4224:9;4215:7;4211:23;4207:32;4204:52;;;4252:1;4249;4242:12;4204:52;-1:-1:-1;4275:23:1;;4124:180;-1:-1:-1;4124:180:1:o;4309:316::-;4386:6;4394;4402;4455:2;4443:9;4434:7;4430:23;4426:32;4423:52;;;4471:1;4468;4461:12;4423:52;-1:-1:-1;;4494:23:1;;;4564:2;4549:18;;4536:32;;-1:-1:-1;4615:2:1;4600:18;;;4587:32;;4309:316;-1:-1:-1;4309:316:1:o;4838:388::-;4906:6;4914;4967:2;4955:9;4946:7;4942:23;4938:32;4935:52;;;4983:1;4980;4973:12;4935:52;5022:9;5009:23;5041:31;5066:5;5041:31;:::i;:::-;5091:5;-1:-1:-1;5148:2:1;5133:18;;5120:32;5161:33;5120:32;5161:33;:::i;5456:356::-;5658:2;5640:21;;;5677:18;;;5670:30;5736:34;5731:2;5716:18;;5709:62;5803:2;5788:18;;5456:356::o;6462:127::-;6523:10;6518:3;6514:20;6511:1;6504:31;6554:4;6551:1;6544:15;6578:4;6575:1;6568:15;6594:127;6655:10;6650:3;6646:20;6643:1;6636:31;6686:4;6683:1;6676:15;6710:4;6707:1;6700:15;6726:135;6765:3;6786:17;;;6783:43;;6806:18;;:::i;:::-;-1:-1:-1;6853:1:1;6842:13;;6726:135::o;6866:402::-;7068:2;7050:21;;;7107:2;7087:18;;;7080:30;7146:34;7141:2;7126:18;;7119:62;-1:-1:-1;;;7212:2:1;7197:18;;7190:36;7258:3;7243:19;;6866:402::o;7273:168::-;7346:9;;;7377;;7394:15;;;7388:22;;7374:37;7364:71;;7415:18;;:::i;7446:217::-;7486:1;7512;7502:132;;7556:10;7551:3;7547:20;7544:1;7537:31;7591:4;7588:1;7581:15;7619:4;7616:1;7609:15;7502:132;-1:-1:-1;7648:9:1;;7446:217::o;7668:125::-;7733:9;;;7754:10;;;7751:36;;;7767:18;;:::i;8434:245::-;8501:6;8554:2;8542:9;8533:7;8529:23;8525:32;8522:52;;;8570:1;8567;8560:12;8522:52;8602:9;8596:16;8621:28;8643:5;8621:28;:::i;9447:128::-;9514:9;;;9535:11;;;9532:37;;;9549:18;;:::i;10388:251::-;10458:6;10511:2;10499:9;10490:7;10486:23;10482:32;10479:52;;;10527:1;10524;10517:12;10479:52;10559:9;10553:16;10578:31;10603:5;10578:31;:::i;10644:980::-;10906:4;10954:3;10943:9;10939:19;10985:6;10974:9;10967:25;11011:2;11049:6;11044:2;11033:9;11029:18;11022:34;11092:3;11087:2;11076:9;11072:18;11065:31;11116:6;11151;11145:13;11182:6;11174;11167:22;11220:3;11209:9;11205:19;11198:26;;11259:2;11251:6;11247:15;11233:29;;11280:1;11290:195;11304:6;11301:1;11298:13;11290:195;;;11369:13;;-1:-1:-1;;;;;11365:39:1;11353:52;;11460:15;;;;11425:12;;;;11401:1;11319:9;11290:195;;;-1:-1:-1;;;;;;;11541:32:1;;;;11536:2;11521:18;;11514:60;-1:-1:-1;;;11605:3:1;11590:19;11583:35;11502:3;10644:980;-1:-1:-1;;;10644:980:1:o;12451:306::-;12539:6;12547;12555;12608:2;12596:9;12587:7;12583:23;12579:32;12576:52;;;12624:1;12621;12614:12;12576:52;12653:9;12647:16;12637:26;;12703:2;12692:9;12688:18;12682:25;12672:35;;12747:2;12736:9;12732:18;12726:25;12716:35;;12451:306;;;;;:::o

Swarm Source

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