ETH Price: $2,077.00 (+6.45%)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 MEDI

Holders

523 (0.00%)

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Medi Token, or $MEDI, is a token created to revolutionize the way you think about charity in the crypto space while providing utility to the world. We aim to do this through worldwide donations in the healthcare sector and beyond, while creating a robust crypto ecosystem for $MEDI.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MediTokenV2

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Audited
File 1 of 1 : MediTokenV2.sol
// SPDX-License-Identifier: NOLICENSE
                     
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&.(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,@@@@@@@@@@@@%.&@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@&**&@@@@@@@@@.*#@@#*,,*@,..,&@@@&,.&,...,./@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@((((((/**@@@.,*,***&,.,*(@&@%,,,***%@@@@@@@@@@@@,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@#*((((((((((((@.****@,,**@,,.******,,@(((((/*@....,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@*#(((((((((((#%@*,*,,*@***@,,,**,,*****&#((((((((**@***@%***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@&#%(((((%%.,,**(,,,#***/,**,,*******@(((((((((((((*&@,,,....,**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@/@@@@@@@,..******,,,****,,*,,*@**/@*@#(((((((((((((((****@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@,........,****%,,,*,,,,,,@*,,,,*/#((((((((((*******((/@**@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@#@(******@**@,/,*,,,&***(,,,**#(((((***%@@%######(@(,../@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@,,*@@#(*/(**%***/,/,@,/#&,,#,.,*#@%***%**/&****/&&%&***@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@,/&#******@*#,..............,,#,.,*#......../@(*******.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@,@@#&,****@*//,................,,,,*,,*#... ./((/,&*****(@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@%***(*/@,..................,%.***,,*,%..#******,,@(**.**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@%*,,(*/@@@.............@@@@@@%&**##****,...@********#,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@*.,#**#@/*@&,,,,,,...%@,,,/&@@/**.@,%@**#&@&&@@/****/#(,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@&*@&(###%@@@&#*,,@#@,...,#(/(**../.(/.,,,,*%@@@@**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@#####*. .@%,......,@  ...  (.(,.,,,(#@ ...... #&@@@**@@@,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@###,,*,,@,........,&     /.      @......./&...,,@(@,.,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@%@@@&%(@*...............,.....................&*****&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@/****,,.................................#(****(*@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@&//,@@@@@#..........*&@@...........*@@/***&***/&@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%&@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@(*(*/**,,,........@&((,&@.......,.&*(#/********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@(/&,....../@((( ./.......,,@***(.....**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@*#....,.@&@,,,,,.,,,&(**(*......*@&///@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@**,,@&(,,,,,*,,@#****(.....,*%#(((((%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&**,,**%@%&******.....,*&(((((((#,.@@/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%&&&@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&@@@@@@@@@%/****/@(,,,.,*&((((((((#@.. (@* @@@@@@@@@@@@@@@@@@@@@@@@@@@%#####################################&@@
// @@@@@@@@@@@@@@@@@@@@@@&..%@@@#@@@@@@@@@%%&*******,,,,*@/((((((((##*..&..@@ * %@@@@@@@@@@@@@@@@@@@@@@@%#####################################@@@
// @@@@@@@@@@@@@@@@@@@*,&,,&#%@@*,@@@@@@@%@%%&***/&*,,##(//((#(((###&..,.. (@&   *  @@@@@@@@@@@@@@@@@@@@######################################@@@
// @@@@@@@@@@@@@@@@,.....&*&&&**@@@@&..@@%%&%%&**,,,**@%%%@/####(#((&..&.   @@           @@@@@@@@@@@@@@@#####################################%@@@
// @@@@@@@@@@@@,.,%...&,,,&/**@@@,....@@%%%&&%*******/%%%%%&/(##((((,../,   &@         /    %@@@@@@@@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@@,,,...%..,(/,(**@@.....(@@&%%%&&&********@%&&&&&./((((@.. %.   @@   ..        .%%#&@@@@@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@
// @@@@@@@@@(.,@*(.,,%,.&.#*,*.....@@@@&&.#&&&#*******&&&&&&.....@(....&.   @@ ...,     .@        ,@@@@@@@@@@@@@@@@@&############@@@@@@@@@@@@@@@@
// @@@@@@@@@@..,***(#.&.%***/..,@@@  (@@@.@&&&******%&&&&&&  ..........@   .@&..../  ..&           @@@@@@@@@@@@@@@@@&############@@@@@@@@@@@@@@@@
// @@@@@@@@@@(.************,%..(/@     @@.@&&&/***(&&&&&#/.   ......*&,.   @@ ...@ ...#            @@@@@@@@@@@@@@@@@%############@@@@@@@@@@@@@@@@
// @@@@@@@@@@@,***********(/   /@#    ,@&*%&&&&*&&&@%%#/(&   ....&*,.     ##@ ..& ..&..             @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@********&*#.     %     @(*%%%&&&&&&@(((((%    .........*%  &@  ..,..&..              /@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@*****@***..     .(     * @%(%&&&&&&&((((#@    .........@. @@*  .&..,..    .           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@********,&.*@@@@@@@@@@# %%((&&&&@@@@@@@@@@@@@@@@@@@@@@&, @@/   .&@@@@@@@@@@@@@@@@@@/  .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@         @@*******.,@@(        @@ &(/(%&&@@                    @@*@@*    *@@                  /@@@@@@@@@@@@@@@@@@@         @@@@@@@@@@@@@@@@@
// @@.         @@(*****/@@          @@@((((&&&@@.                   ,@@./     ,@@                      .@@@@@@@@@@@@@@@         @@@@@@@@@@@@@@@@@
// @@/          @@@***(@@           @@#(((#&&&@@/        @@@@&%#*.   @@&@&    .@@        @@@@@#          ,@@@@@@@@@@@@@*        @@@@@@@@@@@@@@@@@
// @@#           *@@*@@@            @@%#((&&&&@@&        @@@@@@@@@@@@@  &@    /@@        @@    @@@         @@@@@@@@@@@@#        @@@@@@@@@@@@@@@@@
// @@&             @@@.            .@@%%#%&&&&@@@                   @@  @(   ..@@        @@      @@,       &@@@@@@@@@@@&       ,@@@@@@@@@@@@@@@@@
// @@@..............@...... ........@@#((%&&&&&@@.................. @@ ##/  ..,@@....... @@      #@@.......*@@@@@@@@@@@&.......*@@@@@@@@@@@@@@@@@
// @@&.......@............%@........@@(((&&&&&@@@........&&&&&&&%/./@@@@    ./.@@........@@..    @@........@@@@@@@@@@@@(.......,@@@@@@@@@@@@@@@@@
// @@(.......@@/.........@@@........@@%@(&&&&&@@(........@@@@@@@@@@@@@@    #.(.@@........@@&&@@@@&........%@@@@@@@@@@@@,........@@@@@@@@@@@@@@@@@
// @@,.......@@@@.......@@@&........@@((%&&&&&@@,....................@@#  ..(,*@@........................@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@
// @@........@@@@@....,@@@@#........@@((&&&&&&@@.....................@@  ..#@%.@@.....................,@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@
// @@.,,,,,,,@@/*@@,,,@@*@@#,,,,,,,,@@((@&&&&&@@.,,,,,,,,,,,,,,,,,,,(@@ .,,@%.*@@,,,,,,,,,,,,,,..(@@@@@@@@@@@@@@@@@@@@@.,,,,,,,.@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// @@@            @@@@@@@@@@@@@@@          /@@@@@@@@@@@@@@@@    .@@@@     @@@@@@@@@@@@@           @@@@@@@@@@@@@@     @@@@@#    @@@@@@@@@@@@@@@@@@
// @@@@@@(    @@@@@@@@@@@@@@@@@      %@(      @@@@@@@@@@@@@@    #@@@     @@@@@@@@@@@@@@    ,@@@@@@@@@@@@@@@@@@@@       @@@@    @@@@@@@@@@@@@@@@@@
// @@@@@@&    @@@@@@@@@@@@@@@@     @@@@@@@    /@@@@@@@@@@@@@           @@@@@@@@@@@@@@@@           @@@@@@@@@@@@@@         @@    @@@@@@@@@@@@@@@@@@
// @@@@@@%....@@@@@@@@@@@@@@@@ ... @@@@@@@....(@@@@@@@@@@@@@.......... @@@@@@@@@@@@@@@@.....    . @@@@@@@@@@@@@@....@@.........@@@@@@@@@@@@@@@@@@
// @@@@@@/....@@@@@@@@@@@@@@@@@......*#,.....,@@@@@@@@@@@@@@..../@@.....%@@@@@@@@@@@@@@.....%@@&#//@@@@@@@@@@@@@....@@@@.......@@@@@@@@@@@@@@@@@@
// @@@@@@,,,,,@@@@@@@@@@@@@@@@@@@/,,,,,,,,,&@@@@@@@@@@@@@@@@,,,,,@@@@,,,,.@@@@@@@@@@@@@,,,,,,,,,,,&@@@@@@@@@@@@@,,,,@@@@@@.,,,,@@@@@@@@@@@@@@@@@@
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


pragma solidity ^0.8.9;

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

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract MediTokenV2 is Context, IERC20, Ownable {

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isBot;

    address[] private _excluded;
    
    bool public swapEnabled;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 1000000000000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    
    uint256 public swapTokensAtAmount = 1000000 * 10**_decimals;
    uint256 public maxTxAmount = 2000000000000000 * 10**_decimals;

    bool private _isTradingState = true;
    
    // Anti Dump //
    mapping (address => uint256) public _lastTrade;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 69 seconds;

    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public devAddress = 0xC56d6d2ae78102C9D7a72bCab720ca1CAe97b2cC;
    address public charityAddress = 0xb3AaE54BE35E8044c8044F5488aAF3861279328B;
    address public marketingAddress = 0x45b495b912c33db96D57B18FbB5f4A439573D770;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;  //uniswap v2

    string private constant _name = "Medi Token V2";
    string private constant _symbol = "MEDI";


    struct Taxes {
      uint256 rfi;
      uint256 burn;
      uint256 liquidity;
      uint256 charity;
      uint256 dev;
      uint256 marketing;   
    }

    Taxes public taxes = Taxes(1,1,1,3,3,2);

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 burn;
        uint256 liquidity;
        uint256 charity;
        uint256 dev;
        uint256 marketing;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rBurn;
        uint256 rLiquidity;
        uint256 rCharity;
        uint256 rDev;
        uint256 rMarketing;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tBurn;
        uint256 tLiquidity;
        uint256 tCharity;
        uint256 tDev;
        uint256 tMarketing;
    }

    event FeesChanged();
    event UpdatedRouter(address oldRouter, address newRouter);

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

    constructor () {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        excludeFromReward(pair);
        excludeFromReward(deadAddress);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[charityAddress]=true;
        _isExcludedFromFee[devAddress]=true;
        _isExcludedFromFee[marketingAddress]=true;
        _isExcludedFromFee[deadAddress] = true;

        _isTradingState = true;
        swapEnabled = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        require(_isTradingState == true, "Trading is currently disabled.");
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function tradingEnabled() public view returns (bool) {
        return _isTradingState;
    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

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

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

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

    function setTaxes(uint256 _rfi, uint256 _charity, uint256 _dev, uint256 _marketing, uint256 _liquidity, uint256 _burn) public onlyOwner {
        taxes.rfi = _rfi;
        taxes.charity = _charity;
        taxes.dev = _dev;
        taxes.marketing = _marketing;
        taxes.liquidity = _liquidity;
        taxes.burn = _burn;
        emit FeesChanged();
    }


    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takeDev(uint256 rDev, uint256 tDev) private {
        totFeesPaid.dev +=tDev;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tDev;
        }
        _rOwned[address(this)] +=rDev;
    }
    
    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }

    function _takeCharity(uint256 rCharity, uint256 tCharity) private {
        totFeesPaid.charity +=tCharity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tCharity;
        }
        _rOwned[address(this)] +=rCharity;
    }

    function _takeBurn(uint256 rBurn, uint256 tBurn) private{
        totFeesPaid.burn +=tBurn;

        if(_isExcluded[deadAddress])
        {
            _tOwned[deadAddress]+=tBurn;
        }
        _rOwned[deadAddress] +=rBurn;
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rCharity, to_return.rDev, to_return.rMarketing, to_return.rLiquidity, to_return.rBurn) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        
        s.tRfi = tAmount*taxes.rfi/100;
        s.tCharity = tAmount*taxes.charity/100;
        s.tDev = tAmount*taxes.dev/100;
        s.tMarketing = tAmount*taxes.marketing/100;
        s.tLiquidity = tAmount*taxes.liquidity/100;
        s.tBurn = tAmount*taxes.burn/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tCharity-s.tDev-s.tMarketing-s.tLiquidity-s.tBurn;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rCharity, uint256 rDev, uint256 rMarketing, uint256 rLiquidity, uint256 rBurn) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0,0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rCharity = s.tCharity*currentRate;
        rDev = s.tDev*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rBurn = s.rBurn*currentRate;
        rTransferAmount =  rAmount-rRfi-rCharity-rDev-rMarketing-rLiquidity-rBurn;
        return (rAmount, rTransferAmount, rRfi, rCharity, rDev, rMarketing, rLiquidity, rBurn);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

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

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


    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBot[from] && !_isBot[to], "You are a bot");
        

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){
            require(amount <= maxTxAmount ,"Amount is exceeding maxTxAmount");

            if(from != pair && coolDownEnabled){
                uint256 timePassed = block.timestamp - _lastTrade[from];
                require(timePassed > coolDownTime, "You must wait coolDownTime");
                _lastTrade[from] = block.timestamp;
            }
            if(to != pair && coolDownEnabled){
                uint256 timePassed2 = block.timestamp - _lastTrade[to];
                require(timePassed2 > coolDownTime, "You must wait coolDownTime");
                _lastTrade[to] = block.timestamp;
            }
        }
        
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        
        _reflectRfi(s.rRfi, s.tRfi);
        _takeLiquidity(s.rLiquidity,s.tLiquidity);
        _takeDev(s.rDev, s.tDev);
        _takeMarketing(s.rMarketing, s.tMarketing);
        _takeCharity(s.rCharity, s.tCharity);
        _takeBurn(s.rBurn, s.tBurn);

        emit Transfer(sender, deadAddress, s.tBurn);
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tLiquidity + s.tCharity + s.tDev + s.tMarketing);
        
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 denominator = (taxes.liquidity + taxes.dev + taxes.charity + taxes.marketing ) * 2;
        uint256 tokensToAddLiquidityWith = tokens * taxes.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForETH(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance= deltaBalance / (denominator - taxes.liquidity);
        uint256 ethToAddLiquidityWith = unitBalance * taxes.liquidity;

        if(ethToAddLiquidityWith > 0){
            // Add liquidity to uniswap
            addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
        }

        uint256 devAmt = unitBalance * 2 * taxes.charity;
        if(devAmt > 0){
            payable(devAddress).transfer(devAmt);
        }

        uint256 charityAmt = unitBalance * 2 * taxes.dev;
        if(charityAmt > 0){
            payable(charityAddress).transfer(charityAmt);
        }

        uint256 marketingAmt = unitBalance * 2 * taxes.marketing;
        if(marketingAmt > 0){
            payable(marketingAddress).transfer(marketingAmt);
        }

    }

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

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

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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function updatedevWallet(address newWallet) external onlyOwner{
        require(devAddress != newWallet ,'Wallet already set');
        devAddress = newWallet;
        _isExcludedFromFee[devAddress];
    }

    function updatecharityWallet(address newWallet) external onlyOwner{
        require(charityAddress != newWallet ,'Wallet already set');
        charityAddress = newWallet;
        _isExcludedFromFee[charityAddress];
    }

    function updatemarketingWallet(address newWallet) external onlyOwner{
        require(marketingAddress != newWallet ,'Wallet already set');
        marketingAddress = newWallet;
        _isExcludedFromFee[marketingAddress];
    }

    function updatMaxTxAmt(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10 **_decimals;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10 **_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }

    function updateCoolDownSettings(bool _enabled, uint256 _timeInSeconds) external onlyOwner{
        coolDownEnabled = _enabled;
        coolDownTime = _timeInSeconds * 1 seconds;
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }
    

    //Use this in case ETH are sent to the contract by mistake
    function rescueETH(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake)
    // Owner cannot transfer out cakecoin from this smart contract
    function rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    function setTradingState(bool _state) external onlyOwner{
        _isTradingState = _state;
    }

    receive() external payable{
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "berlin",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"FeesChanged","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lastTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charityAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"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":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_charity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setTradingState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"charity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"charity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxTxAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_timeInSeconds","type":"uint256"}],"name":"updateCoolDownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatecharityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatedevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000a54565b6200002690670de0b6b3a764000062000a65565b600a819055620000399060001962000a9d565b620000479060001962000ab4565b600b55620000586009600a62000a54565b6200006790620f424062000a65565b600c55620000786009600a62000a54565b6200008b9066071afd498d000062000a65565b600d55600e805460ff19908116600190811790925560108054909116821790556045601155601280546001600160a01b031990811673c56d6d2ae78102c9d7a72bcab720ca1cae97b2cc1790915560138054821673b3aae54be35e8044c8044f5488aaf3861279328b1790556014805482167345b495b912c33db96d57b18fbb5f4a439573d77017905560158054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556040805160c0810182528281526020810183905290810182905260036060820181905260808201819052600260a0909201829052601683905560178390556018929092556019829055601a91909155601b553480156200019357600080fd5b506200019f3362000506565b6015546040805163c45a015560e01b815290516001600160a01b0390921691600091839163c45a015591600480820192602092909190829003018186803b158015620001ea57600080fd5b505afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000225919062000ace565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026e57600080fd5b505afa15801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000ace565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002f257600080fd5b505af115801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000ace565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200037b9062000556565b6200038861dead62000556565b600b5460016000620003a26000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620003dc620006e460201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556013548216845282842080548616821790556012548216845282842080548616821790556014549091168352908220805484168217905561dead9091527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd8054831682179055600e805483168217905560088054909216179055620004ae6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620004f691815260200190565b60405180910390a3505062000b44565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620006215760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620005ad565b6001600160a01b038116600090815260016020526040902054156200067e576001600160a01b0381166000908152600160205260409020546200066490620006f3565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b548211156200075c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620005ad565b6000620007686200077d565b905062000776818462000af9565b9392505050565b600080806200078b620007a3565b90925090506200079c818362000af9565b9250505090565b600b54600a546000918291825b6007548110156200090b57826001600060078481548110620007d657620007d662000b10565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200084557508160026000600784815481106200081e576200081e62000b10565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200085c57600b54600a54945094505050509091565b600160006007838154811062000876576200087662000b10565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008a7908462000ab4565b92506002600060078381548110620008c357620008c362000b10565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008f4908362000ab4565b915080620009028162000b26565b915050620007b0565b50600a54600b546200091e919062000af9565b8210156200093657600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620009965781600019048211156200097a576200097a6200093f565b808516156200098857918102915b93841c93908002906200095a565b509250929050565b600082620009af5750600162000a4e565b81620009be5750600062000a4e565b8160018114620009d75760028114620009e25762000a02565b600191505062000a4e565b60ff841115620009f657620009f66200093f565b50506001821b62000a4e565b5060208310610133831016604e8410600b841016171562000a27575081810a62000a4e565b62000a33838362000955565b806000190482111562000a4a5762000a4a6200093f565b0290505b92915050565b60006200077660ff8416836200099e565b600081600019048311821515161562000a825762000a826200093f565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000aaf5762000aaf62000a87565b500690565b60008282101562000ac95762000ac96200093f565b500390565b60006020828403121562000ae157600080fd5b81516001600160a01b03811681146200077657600080fd5b60008262000b0b5762000b0b62000a87565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000b3d5762000b3d6200093f565b5060010190565b6133748062000b546000396000f3fe6080604052600436106103035760003560e01c80638c0b5e2211610190578063bff78169116100dc578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b146109e1578063f887ea4014610a01578063f965aa1d14610a27578063fc17044114610a4757600080fd5b8063e2f4560514610991578063ea2f0b37146109a7578063ee36e359146109c757600080fd5b8063bff78169146108b5578063d257b34f146108d5578063d2ce0db2146108f5578063d5ccb8ee1461090b578063dd62ed3e1461092b578063e11655451461097157600080fd5b8063a457c2d711610149578063a8aa1b3111610123578063a8aa1b3114610835578063a9059cbb14610855578063afcf2fc414610875578063b31470a41461089557600080fd5b8063a457c2d7146107c8578063a5ece941146107e8578063a87859f61461080857600080fd5b80638c0b5e22146106fc5780638da5cb5b14610712578063924de9b71461073057806395d89b41146107505780639ba5e4d51461077d5780639e252f00146107a857600080fd5b806340b28c2f1161024f5780635342acb411610208578063715018a6116101e2578063715018a614610636578063728f8eea1461064b57806388f82020146106a35780638c0ae3df146106dc57600080fd5b80635342acb4146105c35780636ddd1713146105fc57806370a082311461061657600080fd5b806340b28c2f1461050b578063437823ec1461052b5780634549b0391461054b57806349244cb01461056b5780634ada218b1461058b57806352390c02146105a357600080fd5b806327c8f835116102bc5780633685d419116102965780633685d4191461047257806339509351146104925780633ad10ef6146104b25780633bbac579146104d257600080fd5b806327c8f835146104085780632d83811914610436578063313ce5671461045657600080fd5b806304d4c9901461030f57806306fdde0314610331578063095ea7b3146103795780630d65df9b146103a957806318160ddd146103c957806323b872dd146103e857600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032f61032a366004612d17565b610a67565b005b34801561033d57600080fd5b5060408051808201909152600d81526c26b2b234902a37b5b2b7102b1960991b60208201525b6040516103709190612d5a565b60405180910390f35b34801561038557600080fd5b50610399610394366004612dd4565b610ae9565b6040519015158152602001610370565b3480156103b557600080fd5b5061032f6103c4366004612e00565b610b00565b3480156103d557600080fd5b50600a545b604051908152602001610370565b3480156103f457600080fd5b50610399610403366004612e00565b610bb2565b34801561041457600080fd5b5061041e61dead81565b6040516001600160a01b039091168152602001610370565b34801561044257600080fd5b506103da610451366004612e41565b610c63565b34801561046257600080fd5b5060405160098152602001610370565b34801561047e57600080fd5b5061032f61048d366004612e5a565b610ce7565b34801561049e57600080fd5b506103996104ad366004612dd4565b610e9e565b3480156104be57600080fd5b5060125461041e906001600160a01b031681565b3480156104de57600080fd5b506103996104ed366004612e5a565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561051757600080fd5b5061032f610526366004612e77565b610ed5565b34801561053757600080fd5b5061032f610546366004612e5a565b610f39565b34801561055757600080fd5b506103da610566366004612ec9565b610f87565b34801561057757600080fd5b5061032f610586366004612e5a565b611011565b34801561059757600080fd5b50600e5460ff16610399565b3480156105af57600080fd5b5061032f6105be366004612e5a565b611092565b3480156105cf57600080fd5b506103996105de366004612e5a565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561060857600080fd5b506008546103999060ff1681565b34801561062257600080fd5b506103da610631366004612e5a565b6111e5565b34801561064257600080fd5b5061032f611244565b34801561065757600080fd5b50601654601754601854601954601a54601b5461067695949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610370565b3480156106af57600080fd5b506103996106be366004612e5a565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106e857600080fd5b5061032f6106f7366004612eee565b61127a565b34801561070857600080fd5b506103da600d5481565b34801561071e57600080fd5b506000546001600160a01b031661041e565b34801561073c57600080fd5b5061032f61074b366004612f0c565b6112c4565b34801561075c57600080fd5b506040805180820190915260048152634d45444960e01b6020820152610363565b34801561078957600080fd5b50601c54601d54601e54601f5460205460215461067695949392919086565b3480156107b457600080fd5b5061032f6107c3366004612e41565b611301565b3480156107d457600080fd5b506103996107e3366004612dd4565b6113a8565b3480156107f457600080fd5b5060145461041e906001600160a01b031681565b34801561081457600080fd5b506103da610823366004612e5a565b600f6020526000908152604090205481565b34801561084157600080fd5b5060095461041e906001600160a01b031681565b34801561086157600080fd5b50610399610870366004612dd4565b611443565b34801561088157600080fd5b5060135461041e906001600160a01b031681565b3480156108a157600080fd5b5061032f6108b0366004612f3f565b6114a8565b3480156108c157600080fd5b5061032f6108d0366004612e5a565b61153e565b3480156108e157600080fd5b5061032f6108f0366004612e41565b6115bf565b34801561090157600080fd5b506103da60115481565b34801561091757600080fd5b5061032f610926366004612f0c565b611605565b34801561093757600080fd5b506103da610946366004612e77565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561097d57600080fd5b5061032f61098c366004613016565b611642565b34801561099d57600080fd5b506103da600c5481565b3480156109b357600080fd5b5061032f6109c2366004612e5a565b6116fa565b3480156109d357600080fd5b506010546103999060ff1681565b3480156109ed57600080fd5b5061032f6109fc366004612e5a565b611745565b348015610a0d57600080fd5b5060085461041e906201000090046001600160a01b031681565b348015610a3357600080fd5b5061032f610a42366004612e41565b6117e0565b348015610a5357600080fd5b5061032f610a62366004612e5a565b611826565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b8152600401610a9190613044565b60405180910390fd5b60168690556019859055601a849055601b839055601882905560178190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050505050565b6000610af63384846118a7565b5060015b92915050565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b8152600401610a9190613044565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610b7457600080fd5b505af1158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bac9190613079565b50505050565b6000610bbf8484846119cb565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610c445760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a91565b610c588533610c5386856130ac565b6118a7565b506001949350505050565b6000600b54821115610cca5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610a91565b6000610cd4611ef9565b9050610ce081846130c3565b9392505050565b6000546001600160a01b03163314610d115760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03811660009081526005602052604090205460ff16610d795760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610a91565b60005b600754811015610e9a57816001600160a01b031660078281548110610da357610da36130e5565b6000918252602090912001546001600160a01b03161415610e885760078054610dce906001906130ac565b81548110610dde57610dde6130e5565b600091825260209091200154600780546001600160a01b039092169183908110610e0a57610e0a6130e5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610e6257610e626130fb565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610e9281613111565b915050610d7c565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610af6918590610c5390869061312c565b6000546001600160a01b03163314610eff5760405162461bcd60e51b8152600401610a9190613044565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610f635760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a54831115610fdb5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a91565b81610ff7576000610fed846001611f1c565b519150610afa9050565b6000611004846001611f1c565b602001519150610afa9050565b6000546001600160a01b0316331461103b5760405162461bcd60e51b8152600401610a9190613044565b6013546001600160a01b03828116911614156110695760405162461bcd60e51b8152600401610a9190613144565b601380546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146110bc5760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03811660009081526005602052604090205460ff16156111255760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a91565b6001600160a01b0381166000908152600160205260409020541561117f576001600160a01b03811660009081526001602052604090205461116590610c63565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561122257506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610afa90610c63565b6000546001600160a01b0316331461126e5760405162461bcd60e51b8152600401610a9190613044565b6112786000611f6e565b565b6000546001600160a01b031633146112a45760405162461bcd60e51b8152600401610a9190613044565b6010805460ff19168315151790556112bd816001613170565b6011555050565b6000546001600160a01b031633146112ee5760405162461bcd60e51b8152600401610a9190613044565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461132b5760405162461bcd60e51b8152600401610a9190613044565b8047101561137b5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610a91565b604051339082156108fc029083906000818181858888f19350505050158015610e9a573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561142a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a91565b6114393385610c5386856130ac565b5060019392505050565b600e5460009060ff16151560011461149d5760405162461bcd60e51b815260206004820152601e60248201527f54726164696e672069732063757272656e746c792064697361626c65642e00006044820152606401610a91565b610af63384846119cb565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610a9190613044565b60005b82518110156115395781600660008584815181106114f5576114f56130e5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061153181613111565b9150506114d5565b505050565b6000546001600160a01b031633146115685760405162461bcd60e51b8152600401610a9190613044565b6014546001600160a01b03828116911614156115965760405162461bcd60e51b8152600401610a9190613144565b601480546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146115e95760405162461bcd60e51b8152600401610a9190613044565b6115f56009600a613273565b6115ff9082613170565b600c5550565b6000546001600160a01b0316331461162f5760405162461bcd60e51b8152600401610a9190613044565b600e805460ff1916911515919091179055565b6000546001600160a01b0316331461166c5760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156116cf5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610a91565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117245760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461176f5760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b0381166117d45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a91565b6117dd81611f6e565b50565b6000546001600160a01b0316331461180a5760405162461bcd60e51b8152600401610a9190613044565b6118166009600a613273565b6118209082613170565b600d5550565b6000546001600160a01b031633146118505760405162461bcd60e51b8152600401610a9190613044565b6012546001600160a01b038281169116141561187e5760405162461bcd60e51b8152600401610a9190613144565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6001600160a01b0383166119095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a91565b6001600160a01b03821661196a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a91565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611a2f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a91565b6001600160a01b038216611a915760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a91565b60008111611af35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a91565b611afc836111e5565b811115611b655760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610a91565b6001600160a01b03831660009081526006602052604090205460ff16158015611ba757506001600160a01b03821660009081526006602052604090205460ff16155b611be35760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610a91565b6001600160a01b03831660009081526004602052604090205460ff16158015611c2557506001600160a01b03821660009081526004602052604090205460ff16155b8015611c395750600854610100900460ff16155b15611e0057600d54811115611c905760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610a91565b6009546001600160a01b03848116911614801590611cb0575060105460ff165b15611d48576001600160a01b0383166000908152600f6020526040812054611cd890426130ac565b90506011548111611d2b5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610a91565b506001600160a01b0383166000908152600f602052604090204290555b6009546001600160a01b03838116911614801590611d68575060105460ff165b15611e00576001600160a01b0382166000908152600f6020526040812054611d9090426130ac565b90506011548111611de35760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610a91565b506001600160a01b0382166000908152600f602052604090204290555b6000600c54611e0e306111e5565b6008549111159150610100900460ff16158015611e2d575060085460ff165b8015611e365750805b8015611e5057506009546001600160a01b03858116911614155b8015611e7557506001600160a01b03841660009081526004602052604090205460ff16155b8015611e9a57506001600160a01b03831660009081526004602052604090205460ff16155b15611eaa57611eaa600c54611fbe565b6001600160a01b038416600090815260046020526040902054610bac9085908590859060ff1680611ef357506001600160a01b03871660009081526004602052604090205460ff165b156121c3565b6000806000611f066124aa565b9092509050611f1581836130c3565b9250505090565b611f24612ca1565b611f2e838361262d565b9050611f43818484611f3e611ef9565b61276f565b6060890152608088015260e087015260c086015260a085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff001916610100179055601b54601954601a546018546000939291611fe79161312c565b611ff1919061312c565b611ffb919061312c565b612006906002613170565b90506000816016600201548461201c9190613170565b61202691906130c3565b9050600061203482856130ac565b90504761204082612867565b600061204c82476130ac565b60185490915060009061205f90876130ac565b61206990836130c3565b60185490915060009061207c9083613170565b9050801561208e5761208e86826129f5565b60195460009061209f846002613170565b6120a99190613170565b905080156120ed576012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156120eb573d6000803e3d6000fd5b505b601a546000906120fe856002613170565b6121089190613170565b9050801561214c576013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561214a573d6000803e3d6000fd5b505b601b5460009061215d866002613170565b6121679190613170565b905080156121ab576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121a9573d6000803e3d6000fd5b505b50506008805461ff0019169055505050505050505050565b60006121cf8383611f1c565b6001600160a01b03861660009081526005602052604090205490915060ff1615612231576001600160a01b0385166000908152600260205260409020546122179084906130ac565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615612295576101008101516001600160a01b03851660009081526002602052604090205461227b919061312c565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546122ba91906130ac565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546122f1919061312c565b6001600160a01b03851660009081526001602052604090819020919091558101516101208201516123229190612ae6565b6123358160800151826101600151612b1b565b6123488160c00151826101a00151612b91565b61235b8160e00151826101c00151612ba6565b61236e8160a00151826101800151612bbb565b6123818160600151826101400151612bd0565b61dead6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361014001516040516123cd91815260200190565b60405180910390a3836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610100015160405161241f91815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101c00151846101a0015185610180015186610160015161247e919061312c565b612488919061312c565b612492919061312c565b60405190815260200160405180910390a35050505050565b600b54600a546000918291825b6007548110156125fc578260016000600784815481106124d9576124d96130e5565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612544575081600260006007848154811061251d5761251d6130e5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561255a57600b54600a54945094505050509091565b6001600060078381548110612571576125716130e5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546125a090846130ac565b925060026000600783815481106125b9576125b96130e5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546125e890836130ac565b9150806125f481613111565b9150506124b7565b50600a54600b5461260d91906130c3565b82101561262457600b54600a549350935050509091565b90939092509050565b612635612ca1565b81612647576101008101839052610afa565b6016546064906126579085613170565b61266191906130c3565b6101208201526019546064906126779085613170565b61268191906130c3565b610180820152601a546064906126979085613170565b6126a191906130c3565b6101a0820152601b546064906126b79085613170565b6126c191906130c3565b6101c08201526018546064906126d79085613170565b6126e191906130c3565b6101608201526017546064906126f79085613170565b61270191906130c3565b61014082018190526101608201516101c08301516101a084015161018085015161012086015161273190896130ac565b61273b91906130ac565b61274591906130ac565b61274f91906130ac565b61275991906130ac565b61276391906130ac565b61010082015292915050565b600080808080808080612782898c613170565b9750896127a357508695506000945084935083925082915081905080612858565b888c61012001516127b49190613170565b9550888c61018001516127c79190613170565b9450888c6101a001516127da9190613170565b9350888c6101c001516127ed9190613170565b9250888c61016001516128009190613170565b9150888c606001516128129190613170565b905080828486886128238b8e6130ac565b61282d91906130ac565b61283791906130ac565b61284191906130ac565b61284b91906130ac565b61285591906130ac565b96505b94995094995094999196509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061289c5761289c6130e5565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561290a57600080fd5b505afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190613282565b81600181518110612955576129556130e5565b6001600160a01b03928316602091820292909201015260085461298191309162010000900416846118a7565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac947906129bf90859060009086903090429060040161329f565b600060405180830381600087803b1580156129d957600080fd5b505af11580156129ed573d6000803e3d6000fd5b505050505050565b600854612a139030906201000090046001600160a01b0316846118a7565b6008546001600160a01b03620100009091041663f305d719823085600080612a436000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015612aa657600080fd5b505af1158015612aba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612adf9190613310565b5050505050565b81600b6000828254612af891906130ac565b9091555050601c8054829190600090612b1290849061312c565b90915550505050565b80601c6002016000828254612b30919061312c565b90915550503060009081526005602052604090205460ff1615612b72573060009081526002602052604081208054839290612b6c90849061312c565b90915550505b3060009081526001602052604081208054849290612b1290849061312c565b80601c6004016000828254612b30919061312c565b80601c6005016000828254612b30919061312c565b80601c6003016000828254612b30919061312c565b80601c6001016000828254612be5919061312c565b909155505061dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460ff1615612c635761dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc8054839290612c5d90849061312c565b90915550505b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290612b1290849061312c565b604051806101e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060008060008060c08789031215612d3057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612d8757858101830151858201604001528201612d6b565b81811115612d99576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146117dd57600080fd5b8035612dcf81612daf565b919050565b60008060408385031215612de757600080fd5b8235612df281612daf565b946020939093013593505050565b600080600060608486031215612e1557600080fd5b8335612e2081612daf565b92506020840135612e3081612daf565b929592945050506040919091013590565b600060208284031215612e5357600080fd5b5035919050565b600060208284031215612e6c57600080fd5b8135610ce081612daf565b60008060408385031215612e8a57600080fd5b8235612e9581612daf565b91506020830135612ea581612daf565b809150509250929050565b80151581146117dd57600080fd5b8035612dcf81612eb0565b60008060408385031215612edc57600080fd5b823591506020830135612ea581612eb0565b60008060408385031215612f0157600080fd5b8235612df281612eb0565b600060208284031215612f1e57600080fd5b8135610ce081612eb0565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612f5257600080fd5b823567ffffffffffffffff80821115612f6a57600080fd5b818501915085601f830112612f7e57600080fd5b8135602082821115612f9257612f92612f29565b8160051b604051601f19603f83011681018181108682111715612fb757612fb7612f29565b604052928352818301935084810182019289841115612fd557600080fd5b948201945b83861015612ffa57612feb86612dc4565b85529482019493820193612fda565b96506130099050878201612ebe565b9450505050509250929050565b6000806040838503121561302957600080fd5b823561303481612daf565b91506020830135612ea581612eb0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561308b57600080fd5b8151610ce081612eb0565b634e487b7160e01b600052601160045260246000fd5b6000828210156130be576130be613096565b500390565b6000826130e057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561312557613125613096565b5060010190565b6000821982111561313f5761313f613096565b500190565b60208082526012908201527115d85b1b195d08185b1c9958591e481cd95d60721b604082015260600190565b600081600019048311821515161561318a5761318a613096565b500290565b600181815b808511156131ca5781600019048211156131b0576131b0613096565b808516156131bd57918102915b93841c9390800290613194565b509250929050565b6000826131e157506001610afa565b816131ee57506000610afa565b8160018114613204576002811461320e5761322a565b6001915050610afa565b60ff84111561321f5761321f613096565b50506001821b610afa565b5060208310610133831016604e8410600b841016171561324d575081810a610afa565b613257838361318f565b806000190482111561326b5761326b613096565b029392505050565b6000610ce060ff8416836131d2565b60006020828403121561329457600080fd5b8151610ce081612daf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156132ef5784516001600160a01b0316835293830193918301916001016132ca565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561332557600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220460f4278c074493a99e2d3383abf1beb5fa1cdd1d0d21d8ca5aa0080df4fb5cd64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80638c0b5e2211610190578063bff78169116100dc578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b146109e1578063f887ea4014610a01578063f965aa1d14610a27578063fc17044114610a4757600080fd5b8063e2f4560514610991578063ea2f0b37146109a7578063ee36e359146109c757600080fd5b8063bff78169146108b5578063d257b34f146108d5578063d2ce0db2146108f5578063d5ccb8ee1461090b578063dd62ed3e1461092b578063e11655451461097157600080fd5b8063a457c2d711610149578063a8aa1b3111610123578063a8aa1b3114610835578063a9059cbb14610855578063afcf2fc414610875578063b31470a41461089557600080fd5b8063a457c2d7146107c8578063a5ece941146107e8578063a87859f61461080857600080fd5b80638c0b5e22146106fc5780638da5cb5b14610712578063924de9b71461073057806395d89b41146107505780639ba5e4d51461077d5780639e252f00146107a857600080fd5b806340b28c2f1161024f5780635342acb411610208578063715018a6116101e2578063715018a614610636578063728f8eea1461064b57806388f82020146106a35780638c0ae3df146106dc57600080fd5b80635342acb4146105c35780636ddd1713146105fc57806370a082311461061657600080fd5b806340b28c2f1461050b578063437823ec1461052b5780634549b0391461054b57806349244cb01461056b5780634ada218b1461058b57806352390c02146105a357600080fd5b806327c8f835116102bc5780633685d419116102965780633685d4191461047257806339509351146104925780633ad10ef6146104b25780633bbac579146104d257600080fd5b806327c8f835146104085780632d83811914610436578063313ce5671461045657600080fd5b806304d4c9901461030f57806306fdde0314610331578063095ea7b3146103795780630d65df9b146103a957806318160ddd146103c957806323b872dd146103e857600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032f61032a366004612d17565b610a67565b005b34801561033d57600080fd5b5060408051808201909152600d81526c26b2b234902a37b5b2b7102b1960991b60208201525b6040516103709190612d5a565b60405180910390f35b34801561038557600080fd5b50610399610394366004612dd4565b610ae9565b6040519015158152602001610370565b3480156103b557600080fd5b5061032f6103c4366004612e00565b610b00565b3480156103d557600080fd5b50600a545b604051908152602001610370565b3480156103f457600080fd5b50610399610403366004612e00565b610bb2565b34801561041457600080fd5b5061041e61dead81565b6040516001600160a01b039091168152602001610370565b34801561044257600080fd5b506103da610451366004612e41565b610c63565b34801561046257600080fd5b5060405160098152602001610370565b34801561047e57600080fd5b5061032f61048d366004612e5a565b610ce7565b34801561049e57600080fd5b506103996104ad366004612dd4565b610e9e565b3480156104be57600080fd5b5060125461041e906001600160a01b031681565b3480156104de57600080fd5b506103996104ed366004612e5a565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561051757600080fd5b5061032f610526366004612e77565b610ed5565b34801561053757600080fd5b5061032f610546366004612e5a565b610f39565b34801561055757600080fd5b506103da610566366004612ec9565b610f87565b34801561057757600080fd5b5061032f610586366004612e5a565b611011565b34801561059757600080fd5b50600e5460ff16610399565b3480156105af57600080fd5b5061032f6105be366004612e5a565b611092565b3480156105cf57600080fd5b506103996105de366004612e5a565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561060857600080fd5b506008546103999060ff1681565b34801561062257600080fd5b506103da610631366004612e5a565b6111e5565b34801561064257600080fd5b5061032f611244565b34801561065757600080fd5b50601654601754601854601954601a54601b5461067695949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610370565b3480156106af57600080fd5b506103996106be366004612e5a565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106e857600080fd5b5061032f6106f7366004612eee565b61127a565b34801561070857600080fd5b506103da600d5481565b34801561071e57600080fd5b506000546001600160a01b031661041e565b34801561073c57600080fd5b5061032f61074b366004612f0c565b6112c4565b34801561075c57600080fd5b506040805180820190915260048152634d45444960e01b6020820152610363565b34801561078957600080fd5b50601c54601d54601e54601f5460205460215461067695949392919086565b3480156107b457600080fd5b5061032f6107c3366004612e41565b611301565b3480156107d457600080fd5b506103996107e3366004612dd4565b6113a8565b3480156107f457600080fd5b5060145461041e906001600160a01b031681565b34801561081457600080fd5b506103da610823366004612e5a565b600f6020526000908152604090205481565b34801561084157600080fd5b5060095461041e906001600160a01b031681565b34801561086157600080fd5b50610399610870366004612dd4565b611443565b34801561088157600080fd5b5060135461041e906001600160a01b031681565b3480156108a157600080fd5b5061032f6108b0366004612f3f565b6114a8565b3480156108c157600080fd5b5061032f6108d0366004612e5a565b61153e565b3480156108e157600080fd5b5061032f6108f0366004612e41565b6115bf565b34801561090157600080fd5b506103da60115481565b34801561091757600080fd5b5061032f610926366004612f0c565b611605565b34801561093757600080fd5b506103da610946366004612e77565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561097d57600080fd5b5061032f61098c366004613016565b611642565b34801561099d57600080fd5b506103da600c5481565b3480156109b357600080fd5b5061032f6109c2366004612e5a565b6116fa565b3480156109d357600080fd5b506010546103999060ff1681565b3480156109ed57600080fd5b5061032f6109fc366004612e5a565b611745565b348015610a0d57600080fd5b5060085461041e906201000090046001600160a01b031681565b348015610a3357600080fd5b5061032f610a42366004612e41565b6117e0565b348015610a5357600080fd5b5061032f610a62366004612e5a565b611826565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b8152600401610a9190613044565b60405180910390fd5b60168690556019859055601a849055601b839055601882905560178190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050505050565b6000610af63384846118a7565b5060015b92915050565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b8152600401610a9190613044565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610b7457600080fd5b505af1158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bac9190613079565b50505050565b6000610bbf8484846119cb565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610c445760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a91565b610c588533610c5386856130ac565b6118a7565b506001949350505050565b6000600b54821115610cca5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610a91565b6000610cd4611ef9565b9050610ce081846130c3565b9392505050565b6000546001600160a01b03163314610d115760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03811660009081526005602052604090205460ff16610d795760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610a91565b60005b600754811015610e9a57816001600160a01b031660078281548110610da357610da36130e5565b6000918252602090912001546001600160a01b03161415610e885760078054610dce906001906130ac565b81548110610dde57610dde6130e5565b600091825260209091200154600780546001600160a01b039092169183908110610e0a57610e0a6130e5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610e6257610e626130fb565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610e9281613111565b915050610d7c565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610af6918590610c5390869061312c565b6000546001600160a01b03163314610eff5760405162461bcd60e51b8152600401610a9190613044565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610f635760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a54831115610fdb5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a91565b81610ff7576000610fed846001611f1c565b519150610afa9050565b6000611004846001611f1c565b602001519150610afa9050565b6000546001600160a01b0316331461103b5760405162461bcd60e51b8152600401610a9190613044565b6013546001600160a01b03828116911614156110695760405162461bcd60e51b8152600401610a9190613144565b601380546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146110bc5760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03811660009081526005602052604090205460ff16156111255760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a91565b6001600160a01b0381166000908152600160205260409020541561117f576001600160a01b03811660009081526001602052604090205461116590610c63565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561122257506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610afa90610c63565b6000546001600160a01b0316331461126e5760405162461bcd60e51b8152600401610a9190613044565b6112786000611f6e565b565b6000546001600160a01b031633146112a45760405162461bcd60e51b8152600401610a9190613044565b6010805460ff19168315151790556112bd816001613170565b6011555050565b6000546001600160a01b031633146112ee5760405162461bcd60e51b8152600401610a9190613044565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461132b5760405162461bcd60e51b8152600401610a9190613044565b8047101561137b5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610a91565b604051339082156108fc029083906000818181858888f19350505050158015610e9a573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561142a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a91565b6114393385610c5386856130ac565b5060019392505050565b600e5460009060ff16151560011461149d5760405162461bcd60e51b815260206004820152601e60248201527f54726164696e672069732063757272656e746c792064697361626c65642e00006044820152606401610a91565b610af63384846119cb565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610a9190613044565b60005b82518110156115395781600660008584815181106114f5576114f56130e5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061153181613111565b9150506114d5565b505050565b6000546001600160a01b031633146115685760405162461bcd60e51b8152600401610a9190613044565b6014546001600160a01b03828116911614156115965760405162461bcd60e51b8152600401610a9190613144565b601480546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146115e95760405162461bcd60e51b8152600401610a9190613044565b6115f56009600a613273565b6115ff9082613170565b600c5550565b6000546001600160a01b0316331461162f5760405162461bcd60e51b8152600401610a9190613044565b600e805460ff1916911515919091179055565b6000546001600160a01b0316331461166c5760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156116cf5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610a91565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117245760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461176f5760405162461bcd60e51b8152600401610a9190613044565b6001600160a01b0381166117d45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a91565b6117dd81611f6e565b50565b6000546001600160a01b0316331461180a5760405162461bcd60e51b8152600401610a9190613044565b6118166009600a613273565b6118209082613170565b600d5550565b6000546001600160a01b031633146118505760405162461bcd60e51b8152600401610a9190613044565b6012546001600160a01b038281169116141561187e5760405162461bcd60e51b8152600401610a9190613144565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6001600160a01b0383166119095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a91565b6001600160a01b03821661196a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a91565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611a2f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a91565b6001600160a01b038216611a915760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a91565b60008111611af35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a91565b611afc836111e5565b811115611b655760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610a91565b6001600160a01b03831660009081526006602052604090205460ff16158015611ba757506001600160a01b03821660009081526006602052604090205460ff16155b611be35760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610a91565b6001600160a01b03831660009081526004602052604090205460ff16158015611c2557506001600160a01b03821660009081526004602052604090205460ff16155b8015611c395750600854610100900460ff16155b15611e0057600d54811115611c905760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610a91565b6009546001600160a01b03848116911614801590611cb0575060105460ff165b15611d48576001600160a01b0383166000908152600f6020526040812054611cd890426130ac565b90506011548111611d2b5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610a91565b506001600160a01b0383166000908152600f602052604090204290555b6009546001600160a01b03838116911614801590611d68575060105460ff165b15611e00576001600160a01b0382166000908152600f6020526040812054611d9090426130ac565b90506011548111611de35760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610a91565b506001600160a01b0382166000908152600f602052604090204290555b6000600c54611e0e306111e5565b6008549111159150610100900460ff16158015611e2d575060085460ff165b8015611e365750805b8015611e5057506009546001600160a01b03858116911614155b8015611e7557506001600160a01b03841660009081526004602052604090205460ff16155b8015611e9a57506001600160a01b03831660009081526004602052604090205460ff16155b15611eaa57611eaa600c54611fbe565b6001600160a01b038416600090815260046020526040902054610bac9085908590859060ff1680611ef357506001600160a01b03871660009081526004602052604090205460ff165b156121c3565b6000806000611f066124aa565b9092509050611f1581836130c3565b9250505090565b611f24612ca1565b611f2e838361262d565b9050611f43818484611f3e611ef9565b61276f565b6060890152608088015260e087015260c086015260a085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff001916610100179055601b54601954601a546018546000939291611fe79161312c565b611ff1919061312c565b611ffb919061312c565b612006906002613170565b90506000816016600201548461201c9190613170565b61202691906130c3565b9050600061203482856130ac565b90504761204082612867565b600061204c82476130ac565b60185490915060009061205f90876130ac565b61206990836130c3565b60185490915060009061207c9083613170565b9050801561208e5761208e86826129f5565b60195460009061209f846002613170565b6120a99190613170565b905080156120ed576012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156120eb573d6000803e3d6000fd5b505b601a546000906120fe856002613170565b6121089190613170565b9050801561214c576013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561214a573d6000803e3d6000fd5b505b601b5460009061215d866002613170565b6121679190613170565b905080156121ab576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121a9573d6000803e3d6000fd5b505b50506008805461ff0019169055505050505050505050565b60006121cf8383611f1c565b6001600160a01b03861660009081526005602052604090205490915060ff1615612231576001600160a01b0385166000908152600260205260409020546122179084906130ac565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615612295576101008101516001600160a01b03851660009081526002602052604090205461227b919061312c565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546122ba91906130ac565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546122f1919061312c565b6001600160a01b03851660009081526001602052604090819020919091558101516101208201516123229190612ae6565b6123358160800151826101600151612b1b565b6123488160c00151826101a00151612b91565b61235b8160e00151826101c00151612ba6565b61236e8160a00151826101800151612bbb565b6123818160600151826101400151612bd0565b61dead6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361014001516040516123cd91815260200190565b60405180910390a3836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610100015160405161241f91815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101c00151846101a0015185610180015186610160015161247e919061312c565b612488919061312c565b612492919061312c565b60405190815260200160405180910390a35050505050565b600b54600a546000918291825b6007548110156125fc578260016000600784815481106124d9576124d96130e5565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612544575081600260006007848154811061251d5761251d6130e5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561255a57600b54600a54945094505050509091565b6001600060078381548110612571576125716130e5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546125a090846130ac565b925060026000600783815481106125b9576125b96130e5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546125e890836130ac565b9150806125f481613111565b9150506124b7565b50600a54600b5461260d91906130c3565b82101561262457600b54600a549350935050509091565b90939092509050565b612635612ca1565b81612647576101008101839052610afa565b6016546064906126579085613170565b61266191906130c3565b6101208201526019546064906126779085613170565b61268191906130c3565b610180820152601a546064906126979085613170565b6126a191906130c3565b6101a0820152601b546064906126b79085613170565b6126c191906130c3565b6101c08201526018546064906126d79085613170565b6126e191906130c3565b6101608201526017546064906126f79085613170565b61270191906130c3565b61014082018190526101608201516101c08301516101a084015161018085015161012086015161273190896130ac565b61273b91906130ac565b61274591906130ac565b61274f91906130ac565b61275991906130ac565b61276391906130ac565b61010082015292915050565b600080808080808080612782898c613170565b9750896127a357508695506000945084935083925082915081905080612858565b888c61012001516127b49190613170565b9550888c61018001516127c79190613170565b9450888c6101a001516127da9190613170565b9350888c6101c001516127ed9190613170565b9250888c61016001516128009190613170565b9150888c606001516128129190613170565b905080828486886128238b8e6130ac565b61282d91906130ac565b61283791906130ac565b61284191906130ac565b61284b91906130ac565b61285591906130ac565b96505b94995094995094999196509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061289c5761289c6130e5565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561290a57600080fd5b505afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190613282565b81600181518110612955576129556130e5565b6001600160a01b03928316602091820292909201015260085461298191309162010000900416846118a7565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac947906129bf90859060009086903090429060040161329f565b600060405180830381600087803b1580156129d957600080fd5b505af11580156129ed573d6000803e3d6000fd5b505050505050565b600854612a139030906201000090046001600160a01b0316846118a7565b6008546001600160a01b03620100009091041663f305d719823085600080612a436000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015612aa657600080fd5b505af1158015612aba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612adf9190613310565b5050505050565b81600b6000828254612af891906130ac565b9091555050601c8054829190600090612b1290849061312c565b90915550505050565b80601c6002016000828254612b30919061312c565b90915550503060009081526005602052604090205460ff1615612b72573060009081526002602052604081208054839290612b6c90849061312c565b90915550505b3060009081526001602052604081208054849290612b1290849061312c565b80601c6004016000828254612b30919061312c565b80601c6005016000828254612b30919061312c565b80601c6003016000828254612b30919061312c565b80601c6001016000828254612be5919061312c565b909155505061dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460ff1615612c635761dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc8054839290612c5d90849061312c565b90915550505b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290612b1290849061312c565b604051806101e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060008060008060c08789031215612d3057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612d8757858101830151858201604001528201612d6b565b81811115612d99576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146117dd57600080fd5b8035612dcf81612daf565b919050565b60008060408385031215612de757600080fd5b8235612df281612daf565b946020939093013593505050565b600080600060608486031215612e1557600080fd5b8335612e2081612daf565b92506020840135612e3081612daf565b929592945050506040919091013590565b600060208284031215612e5357600080fd5b5035919050565b600060208284031215612e6c57600080fd5b8135610ce081612daf565b60008060408385031215612e8a57600080fd5b8235612e9581612daf565b91506020830135612ea581612daf565b809150509250929050565b80151581146117dd57600080fd5b8035612dcf81612eb0565b60008060408385031215612edc57600080fd5b823591506020830135612ea581612eb0565b60008060408385031215612f0157600080fd5b8235612df281612eb0565b600060208284031215612f1e57600080fd5b8135610ce081612eb0565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612f5257600080fd5b823567ffffffffffffffff80821115612f6a57600080fd5b818501915085601f830112612f7e57600080fd5b8135602082821115612f9257612f92612f29565b8160051b604051601f19603f83011681018181108682111715612fb757612fb7612f29565b604052928352818301935084810182019289841115612fd557600080fd5b948201945b83861015612ffa57612feb86612dc4565b85529482019493820193612fda565b96506130099050878201612ebe565b9450505050509250929050565b6000806040838503121561302957600080fd5b823561303481612daf565b91506020830135612ea581612eb0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561308b57600080fd5b8151610ce081612eb0565b634e487b7160e01b600052601160045260246000fd5b6000828210156130be576130be613096565b500390565b6000826130e057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561312557613125613096565b5060010190565b6000821982111561313f5761313f613096565b500190565b60208082526012908201527115d85b1b195d08185b1c9958591e481cd95d60721b604082015260600190565b600081600019048311821515161561318a5761318a613096565b500290565b600181815b808511156131ca5781600019048211156131b0576131b0613096565b808516156131bd57918102915b93841c9390800290613194565b509250929050565b6000826131e157506001610afa565b816131ee57506000610afa565b8160018114613204576002811461320e5761322a565b6001915050610afa565b60ff84111561321f5761321f613096565b50506001821b610afa565b5060208310610133831016604e8410600b841016171561324d575081810a610afa565b613257838361318f565b806000190482111561326b5761326b613096565b029392505050565b6000610ce060ff8416836131d2565b60006020828403121561329457600080fd5b8151610ce081612daf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156132ef5784516001600160a01b0316835293830193918301916001016132ca565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561332557600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220460f4278c074493a99e2d3383abf1beb5fa1cdd1d0d21d8ca5aa0080df4fb5cd64736f6c63430008090033

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.