ETH Price: $3,340.83 (-1.02%)

Contract

0x6f8b23296394d20eC048FbDec8eBc0CA90f5c8f1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve212420952024-11-22 8:31:4723 hrs ago1732264307IN
0x6f8b2329...A90f5c8f1
0 ETH0.0002732611.23270405
Transfer211131422024-11-04 8:38:2318 days ago1730709503IN
0x6f8b2329...A90f5c8f1
0 ETH0.001103154.54706984
Approve210114252024-10-21 4:00:3533 days ago1729483235IN
0x6f8b2329...A90f5c8f1
0 ETH0.000315756.82153599
Approve209706422024-10-15 11:22:5938 days ago1728991379IN
0x6f8b2329...A90f5c8f1
0 ETH0.0008178717.64179173
Approve209107682024-10-07 2:43:2347 days ago1728269003IN
0x6f8b2329...A90f5c8f1
0 ETH0.000405568.71201751
Transfer208426882024-09-27 14:54:2356 days ago1727448863IN
0x6f8b2329...A90f5c8f1
0 ETH0.0045049918.56912398
Approve207258422024-09-11 7:20:3573 days ago1726039235IN
0x6f8b2329...A90f5c8f1
0 ETH0.000129372.7755519
Approve205648432024-08-19 19:45:1195 days ago1724096711IN
0x6f8b2329...A90f5c8f1
0 ETH0.000148733.19507464
Transfer204980592024-08-10 11:58:11104 days ago1723291091IN
0x6f8b2329...A90f5c8f1
0 ETH0.000530762.18776792
Approve204510082024-08-03 22:29:11111 days ago1722724151IN
0x6f8b2329...A90f5c8f1
0 ETH0.000093922.02867741
Approve203930522024-07-26 20:16:59119 days ago1722025019IN
0x6f8b2329...A90f5c8f1
0 ETH0.000112692.43409838
Approve203199822024-07-16 15:31:23129 days ago1721143883IN
0x6f8b2329...A90f5c8f1
0 ETH0.000384815.81738019
Approve202663442024-07-09 3:46:11137 days ago1720496771IN
0x6f8b2329...A90f5c8f1
0 ETH0.000109552.35345402
Approve202420172024-07-05 18:12:11140 days ago1720203131IN
0x6f8b2329...A90f5c8f1
0 ETH0.000326747.01902912
Approve202404982024-07-05 13:07:23140 days ago1720184843IN
0x6f8b2329...A90f5c8f1
0 ETH0.000242019.94788197
Approve202301462024-07-04 2:24:35142 days ago1720059875IN
0x6f8b2329...A90f5c8f1
0 ETH0.0004717210.18852398
Approve202044422024-06-30 12:16:23145 days ago1719749783IN
0x6f8b2329...A90f5c8f1
0 ETH0.000068822.62
Transfer201903282024-06-28 12:57:11147 days ago1719579431IN
0x6f8b2329...A90f5c8f1
0 ETH0.001742167.18102292
Approve201851092024-06-27 19:27:23148 days ago1719516443IN
0x6f8b2329...A90f5c8f1
0 ETH0.0005413311.62867461
Approve201703542024-06-25 18:01:23150 days ago1719338483IN
0x6f8b2329...A90f5c8f1
0 ETH0.000391768.41557602
Approve201216882024-06-18 22:41:59157 days ago1718750519IN
0x6f8b2329...A90f5c8f1
0 ETH0.0002866.14387196
Set Limits201054352024-06-16 16:05:35159 days ago1718553935IN
0x6f8b2329...A90f5c8f1
0 ETH0.000150595.62393183
Approve200970442024-06-15 11:58:23160 days ago1718452703IN
0x6f8b2329...A90f5c8f1
0 ETH0.000188914.08119361
Approve200816802024-06-13 8:21:59162 days ago1718266919IN
0x6f8b2329...A90f5c8f1
0 ETH0.0004930110.64828819
Approve200314712024-06-06 8:03:35169 days ago1717661015IN
0x6f8b2329...A90f5c8f1
0 ETH0.0012887127.68339733
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
211131422024-11-04 8:38:2318 days ago1730709503
0x6f8b2329...A90f5c8f1
0.00214166 ETH
211131422024-11-04 8:38:2318 days ago1730709503
0x6f8b2329...A90f5c8f1
0.00053541 ETH
211131422024-11-04 8:38:2318 days ago1730709503
0x6f8b2329...A90f5c8f1
0.00267707 ETH
210114272024-10-21 4:00:5933 days ago1729483259
0x6f8b2329...A90f5c8f1
0.00214875 ETH
210114272024-10-21 4:00:5933 days ago1729483259
0x6f8b2329...A90f5c8f1
0.00053718 ETH
210114272024-10-21 4:00:5933 days ago1729483259
0x6f8b2329...A90f5c8f1
0.00268594 ETH
209706442024-10-15 11:23:2338 days ago1728991403
0x6f8b2329...A90f5c8f1
0.00215983 ETH
209706442024-10-15 11:23:2338 days ago1728991403
0x6f8b2329...A90f5c8f1
0.00053995 ETH
209706442024-10-15 11:23:2338 days ago1728991403
0x6f8b2329...A90f5c8f1
0.00269979 ETH
209706442024-10-15 11:23:2338 days ago1728991403
0x6f8b2329...A90f5c8f1
0.00216229 ETH
209706442024-10-15 11:23:2338 days ago1728991403
0x6f8b2329...A90f5c8f1
0.00054057 ETH
209706442024-10-15 11:23:2338 days ago1728991403
0x6f8b2329...A90f5c8f1
0.00270286 ETH
209107702024-10-07 2:43:4747 days ago1728269027
0x6f8b2329...A90f5c8f1
0.00215971 ETH
209107702024-10-07 2:43:4747 days ago1728269027
0x6f8b2329...A90f5c8f1
0.00053992 ETH
209107702024-10-07 2:43:4747 days ago1728269027
0x6f8b2329...A90f5c8f1
0.00269964 ETH
208426882024-09-27 14:54:2356 days ago1727448863
0x6f8b2329...A90f5c8f1
0.00216216 ETH
208426882024-09-27 14:54:2356 days ago1727448863
0x6f8b2329...A90f5c8f1
0.00054054 ETH
208426882024-09-27 14:54:2356 days ago1727448863
0x6f8b2329...A90f5c8f1
0.0027027 ETH
205648462024-08-19 19:45:4795 days ago1724096747
0x6f8b2329...A90f5c8f1
0.00214667 ETH
205648462024-08-19 19:45:4795 days ago1724096747
0x6f8b2329...A90f5c8f1
0.00053666 ETH
205648462024-08-19 19:45:4795 days ago1724096747
0x6f8b2329...A90f5c8f1
0.00268333 ETH
204980592024-08-10 11:58:11104 days ago1723291091
0x6f8b2329...A90f5c8f1
0.0021491 ETH
204980592024-08-10 11:58:11104 days ago1723291091
0x6f8b2329...A90f5c8f1
0.00053727 ETH
204980592024-08-10 11:58:11104 days ago1723291091
0x6f8b2329...A90f5c8f1
0.00268637 ETH
204511222024-08-03 22:51:59111 days ago1722725519
0x6f8b2329...A90f5c8f1
0.00216273 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TUFToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-25
*/

// SPDX-License-Identifier: MIT
/**

                     ############                                   
               ########################                             
           ############        ###########                          
         ########                    ########                       
       #######                          #######                     
      ######                      ###     ######                    
     #####                   ########      ######                   
    #####              #       ######       ######                  
    #####            ####    #####           #####                  
   #####           ######   ####             #####                  
   ######         #############              #####                  
    #####       #####  ######               ######                  
    ######     #####    ####               ######                   
     ######              #                ######                    
       ######                           #######                     
        ########                      #######                       
           #########             ##########                         
              ##########################                            
                   ################                                 



TUF Sniper Bot (TUF)

💬TG: https://t.me/TUFTokenPortal
💬TG: https://t.me/TUFReloadedPortal
🕸Website: https://tufext.com/

*/
pragma solidity ^0.8.17;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

interface IUniswapV2Pair {
    function sync() external;
}

contract TUFToken is IERC20Metadata, Ownable {
    //Constants
    string private constant _name = "TUF Token";
    string private constant _symbol = "TUF";
    uint8 private constant _decimals = 18;
    uint256 internal constant _totalSupply = 1_000_000_000 * 10**_decimals;
    uint32 private constant percent_helper = 100 * 10**2;
    //Settings limits
    uint32 private constant max_fee = 30.00 * 10**2;
    uint32 private constant min_maxes = 0.50 * 10**2;
    uint32 private constant burn_limit = 10.00 * 10**2;

    //OpenTrade
    bool public trade_open;
    bool public limits_active = true;

    //Fee
    bool public early_sell = true;
    address public team_wallet;
    uint32 public fee_buy = 8.00 * 10**2;
    uint32 public fee_sell = 8.00 * 10**2;
    /*
    0-10 min - 30% (Team 22.5% LP 7.5%)
    10-20 min - 25% (Team 18.75% LP 6.25%)
    20-30 min - 20% (Team 15% LP 5%)
    30-40 min - 15% (Team 11.25% LP 3.75%)
    40-50 min - 10% (Team 7.5% LP 2.5%)
    50- min - 8%
    */
    uint32 public fee_early_sell = 30.00 * 10**2;
    uint32 public lp_percent = 25.00 * 10**2;

    //Ignore fee
    mapping(address => bool) public ignore_fee;

    //Burn
    uint256 public burn_cooldown = 30 minutes;
    uint256 public burn_last;

    //Maxes
    uint256 public max_tx = 7_500_000 * 10**_decimals; //0.75%
    uint256 public max_wallet = 10_000_000 * 10**_decimals; //1.00%
    uint256 public swap_at_amount = 1_000_000 * 10**_decimals; //0.10%

    //ERC20
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    //Router
    IUniswapV2Router02 private uniswapV2Router;
    address public pair_addr;
    bool public swap_enabled = true;

    //Percent calculation helper
    function CalcPercent(uint256 _input, uint256 _percent)
        private
        pure
        returns (uint256)
    {
        return (_input * _percent) / percent_helper;
    }

    bool private inSwap = false;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address _team_wallet) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        pair_addr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        team_wallet = _team_wallet;
        ignore_fee[address(this)] = true;
        ignore_fee[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        //Initial supply
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    //Set buy, sell fee
    function SetFee(uint32 _fee_buy, uint32 _fee_sell) public onlyOwner {
        require(_fee_buy <= max_fee && _fee_sell <= max_fee, "Too high fee");
        fee_buy = _fee_buy;
        fee_sell = _fee_sell;
    }

    //Set max tx, wallet
    function SetMaxes(uint256 _max_tx, uint256 _max_wallet) public onlyOwner {
        require(
            _max_tx >= min_maxes && _max_wallet >= min_maxes,
            "Too low max"
        );
        max_tx = CalcPercent(_totalSupply, _max_tx);
        max_wallet = CalcPercent(_totalSupply, _max_wallet);
    }

    function SetTokenSwap(
        uint256 _amount,
        uint32 _lp_percent,
        bool _enabled
    ) public onlyOwner {
        swap_at_amount = _amount;
        lp_percent = _lp_percent;
        swap_enabled = _enabled;
    }

    //Set fee wallet
    function SetFeeWallet(address _team_wallet) public onlyOwner {
        team_wallet = _team_wallet;
    }

    //Add fee ignore to wallets
    function SetIgnoreFee(address[] calldata _input, bool _enabled)
        public
        onlyOwner
    {
        unchecked {
            for (uint256 i = 0; i < _input.length; i++) {
                ignore_fee[_input[i]] = _enabled;
            }
        }
    }

    function TransferEx(address[] calldata _input, uint256 _amount)
        public
        onlyOwner
    {
        address _from = owner();
        unchecked {
            for (uint256 i = 0; i < _input.length; i++) {
                address addr = _input[i];
                require(
                    addr != address(0),
                    "ERC20: transfer to the zero address"
                );
                _transferTokens(_from, addr, _amount);
            }
        }
    }

    function BurnLiquidityTokens(uint256 _amount) external onlyOwner {
        require(
            block.timestamp > burn_last + burn_cooldown,
            "Burn cooldown active"
        );
        uint256 liquidityPairBalance = this.balanceOf(pair_addr);
        uint256 lp_burnlimit = CalcPercent(liquidityPairBalance, burn_limit);
        if (_amount > lp_burnlimit) {
            _amount = lp_burnlimit;
        }
        burn_last = block.timestamp;

        if (_amount > 0) {
            _transferTokens(pair_addr, address(0xdead), _amount);
        }
        IUniswapV2Pair pair = IUniswapV2Pair(pair_addr);
        pair.sync();
    }

    function ManualSwap() public onlyOwner {
        HandleFees();
    }

    function SetLimits(bool _enable) public onlyOwner {
        limits_active = _enable;
    }

    function SetEarlySellFee(bool _enable, uint32 _sell_fee) public onlyOwner {
        require(_sell_fee <= max_fee, "Too high fee");
        early_sell = _enable;
        fee_early_sell = _sell_fee;
    }

    function OpenTrade(bool _enable) public onlyOwner {
        trade_open = _enable;
    }

    function TUF(uint256 code) public onlyOwner {
        trade_open = code == 10;
    }

    //ERC20
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        //If it's the owner, do a normal transfer
        if (from == owner() || to == owner() || from == address(this)) {
            _transferTokens(from, to, amount);
            return;
        }
        //Check if trading is enabled
        require(trade_open, "Trading is disabled");
        uint256 fee_amount = 0;
        bool isbuy = from == pair_addr;

        if (!isbuy) {
            //Handle fees
            HandleFees();
        }
        //Calculate fee if conditions met
        //Buy
        if (isbuy) {
            if (!ignore_fee[to]) {
                fee_amount = CalcPercent(amount, fee_buy);
            }
        }
        //Sell
        else {
            if (!ignore_fee[from]) {
                fee_amount = CalcPercent(
                    amount,
                    early_sell ? fee_early_sell : fee_sell
                );
            }
        }
        //Fee tokens
        unchecked {
            require(amount >= fee_amount, "fee exceeds amount");
            amount -= fee_amount;
        }
        //Disable maxes
        if (limits_active) {
            //Check maxes
            require(amount <= max_tx, "Max TX reached");
            //Exclude lp pair
            if (to != pair_addr) {
                require(
                    _balances[to] + amount <= max_wallet,
                    "Max wallet reached"
                );
            }
        }
        //Transfer fee tokens to contract
        if (fee_amount > 0) {
            _transferTokens(from, address(this), fee_amount);
        }
        //Transfer tokens
        _transferTokens(from, to, amount);
    }

    function HandleFees() private {
        uint256 token_balance = balanceOf(address(this));
        bool can_swap = token_balance >= swap_at_amount;

        if (can_swap && !inSwap && swap_enabled) {
            SwapTokensForEth(swap_at_amount);
            uint256 eth_balance = address(this).balance;
            if (eth_balance > 0 ether) {
                SendETHToFee(address(this).balance);
            }
        }
    }

    function SwapTokensForEth(uint256 _amount) private lockTheSwap {
        uint256 eth_am = CalcPercent(_amount, percent_helper - lp_percent);
        uint256 liq_am = _amount - eth_am;
        uint256 balance_before = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), _amount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            eth_am,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 liq_eth = address(this).balance - balance_before;

        AddLiquidity(liq_am, CalcPercent(liq_eth, lp_percent));
    }

    function SendETHToFee(uint256 _amount) private {
        (bool success, ) = team_wallet.call{value: _amount}(new bytes(0));
        require(success, "TransferFail");
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

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

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _transferTokens(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    // Function to receive Ether. msg.data must be empty
    receive() external payable {}

    // Fallback function is called when msg.data is not empty
    fallback() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnLiquidityTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"OpenTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint32","name":"_sell_fee","type":"uint32"}],"name":"SetEarlySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_fee_buy","type":"uint32"},{"internalType":"uint32","name":"_fee_sell","type":"uint32"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"}],"name":"SetFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetIgnoreFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"SetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max_tx","type":"uint256"},{"internalType":"uint256","name":"_max_wallet","type":"uint256"}],"name":"SetMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_lp_percent","type":"uint32"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"code","type":"uint256"}],"name":"TUF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"TransferEx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_last","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"early_sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_buy","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_early_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ignore_fee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits_active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp_percent","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swap_at_amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_open","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000805461ffff60a81b191661010160a81b179055600180546001600160a01b03167d0bb800000320000003200000000000000000000000000000000000000000179055600280546109c463ffffffff199091161790556107086004556200006f6012600a620004ce565b6200007e90627270e0620004e6565b6006556200008f6012600a620004ce565b6200009e9062989680620004e6565b600755620000af6012600a620004ce565b620000be90620f4240620004e6565b600855600c805461ffff60a01b1916600160a01b179055348015620000e257600080fd5b50604051620023e5380380620023e5833981016040819052620001059162000500565b620001103362000369565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000176573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019c919062000500565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000210919062000500565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000284919062000500565b600c80546001600160a01b03199081166001600160a01b03938416179091556001805490911691841691909117815530600090815260036020526040808220805460ff199081168517909155338352912080549091169091179055620002ed6012600a620004ce565b620002fd90633b9aca00620004e6565b33600081815260096020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003406012600a620004ce565b6200035090633b9aca00620004e6565b60405190815260200160405180910390a350506200052b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000410578160001904821115620003f457620003f4620003b9565b808516156200040257918102915b93841c9390800290620003d4565b509250929050565b6000826200042957506001620004c8565b816200043857506000620004c8565b81600181146200045157600281146200045c576200047c565b6001915050620004c8565b60ff841115620004705762000470620003b9565b50506001821b620004c8565b5060208310610133831016604e8410600b8410161715620004a1575081810a620004c8565b620004ad8383620003cf565b8060001904821115620004c457620004c4620003b9565b0290505b92915050565b6000620004df60ff84168362000418565b9392505050565b8082028115828204841417620004c857620004c8620003b9565b6000602082840312156200051357600080fd5b81516001600160a01b0381168114620004df57600080fd5b611eaa806200053b6000396000f3fe6080604052600436106102275760003560e01c80638e26bbe411610122578063ba414b10116100a5578063dd62ed3e1161006c578063dd62ed3e146106f9578063e717fc301461073f578063f2fde38b14610755578063f4a2ebf714610775578063f5a27e861461079557005b8063ba414b1014610648578063bd186c4c14610668578063bd4f1dc614610688578063c9d9159d146106ac578063d11fcb85146106c957005b80639bfe8df7116100e95780639bfe8df7146105b1578063a1780c18146105d1578063a20adf86146105e6578063a9059cbb14610607578063ac9358341461062757005b80638e26bbe41461050f57806391d88b951461052f57806391f18b7c1461054557806395d89b411461056557806396418d4d1461059157005b806363126e17116101aa578063715018a611610171578063715018a6146104775780637971fca71461048c5780637aab5d9b146104b05780638bf67ad0146104d15780638da5cb5b146104f157005b806363126e17146103bd578063685e838e146103dd5780636ea79583146103f357806370a082311461042b57806370fbc7121461046157005b80633d21e5a2116101ee5780633d21e5a21461030357806349dc859c14610323578063581d30f8146103435780635bc05f3c146103635780636264300e1461038457005b806306fdde0314610230578063095ea7b31461027457806318160ddd146102a457806323b872dd146102c7578063313ce567146102e757005b3661022e57005b005b34801561023c57600080fd5b506040805180820190915260098152682a2aa3102a37b5b2b760b91b60208201525b60405161026b91906118a6565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046118ee565b6107ab565b604051901515815260200161026b565b3480156102b057600080fd5b506102b96107c5565b60405190815260200161026b565b3480156102d357600080fd5b506102946102e236600461191a565b6107e6565b3480156102f357600080fd5b506040516012815260200161026b565b34801561030f57600080fd5b5061022e61031e36600461195b565b61080a565b34801561032f57600080fd5b5061022e61033e366004611978565b610834565b34801561034f57600080fd5b5061022e61035e3660046119ba565b6109ae565b34801561036f57600080fd5b5060005461029490600160b01b900460ff1681565b34801561039057600080fd5b506001546103a890600160c01b900463ffffffff1681565b60405163ffffffff909116815260200161026b565b3480156103c957600080fd5b5061022e6103d8366004611a39565b610a3f565b3480156103e957600080fd5b506102b960085481565b3480156103ff57600080fd5b50600154610413906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561043757600080fd5b506102b961044636600461195b565b6001600160a01b031660009081526009602052604090205490565b34801561046d57600080fd5b506102b960065481565b34801561048357600080fd5b5061022e610ab4565b34801561049857600080fd5b506001546103a890600160a01b900463ffffffff1681565b3480156104bc57600080fd5b5060005461029490600160a01b900460ff1681565b3480156104dd57600080fd5b5061022e6104ec366004611a8d565b610ac8565b3480156104fd57600080fd5b506000546001600160a01b0316610413565b34801561051b57600080fd5b5061022e61052a366004611ac0565b610b0f565b34801561053b57600080fd5b506102b960045481565b34801561055157600080fd5b50600c54610413906001600160a01b031681565b34801561057157600080fd5b506040805180820190915260038152622a2aa360e91b602082015261025e565b34801561059d57600080fd5b5061022e6105ac366004611adb565b610b35565b3480156105bd57600080fd5b5061022e6105cc366004611af7565b610bd8565b3480156105dd57600080fd5b5061022e610c7c565b3480156105f257600080fd5b5060005461029490600160a81b900460ff1681565b34801561061357600080fd5b506102946106223660046118ee565b610c8c565b34801561063357600080fd5b50600c5461029490600160a01b900460ff1681565b34801561065457600080fd5b5061022e610663366004611b19565b610c9a565b34801561067457600080fd5b5061022e610683366004611ac0565b610d25565b34801561069457600080fd5b506001546103a890600160e01b900463ffffffff1681565b3480156106b857600080fd5b506002546103a89063ffffffff1681565b3480156106d557600080fd5b506102946106e436600461195b565b60036020526000908152604090205460ff1681565b34801561070557600080fd5b506102b9610714366004611b65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561074b57600080fd5b506102b960075481565b34801561076157600080fd5b5061022e61077036600461195b565b610d4b565b34801561078157600080fd5b5061022e610790366004611978565b610dc4565b3480156107a157600080fd5b506102b960055481565b6000336107b9818585610deb565b60019150505b92915050565b60006107d36012600a611c98565b6107e190633b9aca00611ca7565b905090565b6000336107f4858285610f0f565b6107ff858585610f9b565b506001949350505050565b610812611336565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61083c611336565b60045460055461084c9190611cbe565b42116108965760405162461bcd60e51b81526020600482015260146024820152734275726e20636f6f6c646f776e2061637469766560601b60448201526064015b60405180910390fd5b600c546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109059190611cd1565b90506000610915826103e8611390565b905080831115610923578092505b42600555821561094657600c54610946906001600160a01b031661dead856113b0565b600c546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6109b6611336565b610bb863ffffffff821611156109fd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b60008054921515600160b01b0260ff60b01b19909316929092179091556001805463ffffffff909216600160e01b026001600160e01b03909216919091179055565b610a47611336565b60005b82811015610aae578160036000868685818110610a6957610a69611cea565b9050602002016020810190610a7e919061195b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610a4a565b50505050565b610abc611336565b610ac66000611496565b565b610ad0611336565b6008929092556002805463ffffffff90921663ffffffff19909216919091179055600c8054911515600160a01b0260ff60a01b19909216919091179055565b610b17611336565b60008054911515600160a01b0260ff60a01b19909216919091179055565b610b3d611336565b610bb863ffffffff831611801590610b5d5750610bb863ffffffff821611155b610b985760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b6001805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610be0611336565b60328210801590610bf2575060328110155b610c2c5760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b604482015260640161088d565b610c4f610c3b6012600a611c98565b610c4990633b9aca00611ca7565b83611390565b600655610c75610c616012600a611c98565b610c6f90633b9aca00611ca7565b82611390565b6007555050565b610c84611336565b610ac66114e6565b6000336107b9818585610f9b565b610ca2611336565b600080546001600160a01b0316905b83811015610d1e576000858583818110610ccd57610ccd611cea565b9050602002016020810190610ce2919061195b565b90506001600160a01b038116610d0a5760405162461bcd60e51b815260040161088d90611d00565b610d158382866113b0565b50600101610cb1565b5050505050565b610d2d611336565b60008054911515600160a81b0260ff60a81b19909216919091179055565b610d53611336565b6001600160a01b038116610db85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088d565b610dc181611496565b50565b610dcc611336565b6000805460ff60a01b1916600a92909214600160a01b02919091179055565b6001600160a01b038316610e4d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161088d565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161088d565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600a60209081526040808320938616835292905220546000198114610aae5781811015610f8e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161088d565b610aae8484848403610deb565b6001600160a01b038316610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161088d565b6001600160a01b0382166110255760405162461bcd60e51b815260040161088d90611d00565b600081116110875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161088d565b6000546001600160a01b03848116911614806110b057506000546001600160a01b038381169116145b806110c357506001600160a01b03831630145b156110d8576110d38383836113b0565b505050565b600054600160a01b900460ff166111275760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b604482015260640161088d565b600c546000906001600160a01b0385811691161480611148576111486114e6565b8015611191576001600160a01b03841660009081526003602052604090205460ff1661118c57600154611189908490600160a01b900463ffffffff16611390565b91505b6111fc565b6001600160a01b03851660009081526003602052604090205460ff166111fc576000546111f9908490600160b01b900460ff166111dd57600154600160c01b900463ffffffff166111ee565b600154600160e01b900463ffffffff165b63ffffffff16611390565b91505b818310156112415760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b604482015260640161088d565b6000549282900392600160a81b900460ff161561131a5760065483111561129b5760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b604482015260640161088d565b600c546001600160a01b0385811691161461131a576007546001600160a01b0385166000908152600960205260409020546112d7908590611cbe565b111561131a5760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161088d565b811561132b5761132b8530846113b0565b610d1e8585856113b0565b6000546001600160a01b03163314610ac65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088d565b600061271061139f8385611ca7565b6113a99190611d43565b9392505050565b6001600160a01b038316600090815260096020526040902054818110156114285760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161088d565b6001600160a01b0380851660008181526009602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114889086815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260096020526040902054600854811080159081906115145750600c54600160a81b900460ff16155b80156115295750600c54600160a01b900460ff165b156115495761153960085461154d565b4780156110d3576110d34761172c565b5050565b600c805460ff60a81b1916600160a81b17905560025460009061157e9083906111ee9063ffffffff16612710611d65565b9050600061158c8284611d89565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106115c6576115c6611cea565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561161f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116439190611d9c565b8160018151811061165657611656611cea565b6001600160a01b039283166020918202929092010152600b5461167c9130911687610deb565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116b5908790600090869030904290600401611db9565b600060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b50505050600082476116f59190611d89565b60025490915061171790859061171290849063ffffffff16611390565b6117d8565b5050600c805460ff60a81b1916905550505050565b6001546040805160008082526020820192839052926001600160a01b031691849161175691611e2a565b60006040518083038185875af1925050503d8060008114611793576040519150601f19603f3d011682016040523d82523d6000602084013e611798565b606091505b50509050806115495760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b604482015260640161088d565b600b546117f09030906001600160a01b031684610deb565b600b5460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561185d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d1e9190611e46565b60005b8381101561189d578181015183820152602001611885565b50506000910152565b60208152600082518060208401526118c5816040850160208701611882565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610dc157600080fd5b6000806040838503121561190157600080fd5b823561190c816118d9565b946020939093013593505050565b60008060006060848603121561192f57600080fd5b833561193a816118d9565b9250602084013561194a816118d9565b929592945050506040919091013590565b60006020828403121561196d57600080fd5b81356113a9816118d9565b60006020828403121561198a57600080fd5b5035919050565b803580151581146119a157600080fd5b919050565b803563ffffffff811681146119a157600080fd5b600080604083850312156119cd57600080fd5b6119d683611991565b91506119e4602084016119a6565b90509250929050565b60008083601f8401126119ff57600080fd5b50813567ffffffffffffffff811115611a1757600080fd5b6020830191508360208260051b8501011115611a3257600080fd5b9250929050565b600080600060408486031215611a4e57600080fd5b833567ffffffffffffffff811115611a6557600080fd5b611a71868287016119ed565b9094509250611a84905060208501611991565b90509250925092565b600080600060608486031215611aa257600080fd5b83359250611ab2602085016119a6565b9150611a8460408501611991565b600060208284031215611ad257600080fd5b6113a982611991565b60008060408385031215611aee57600080fd5b6119d6836119a6565b60008060408385031215611b0a57600080fd5b50508035926020909101359150565b600080600060408486031215611b2e57600080fd5b833567ffffffffffffffff811115611b4557600080fd5b611b51868287016119ed565b909790965060209590950135949350505050565b60008060408385031215611b7857600080fd5b8235611b83816118d9565b91506020830135611b93816118d9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bef578160001904821115611bd557611bd5611b9e565b80851615611be257918102915b93841c9390800290611bb9565b509250929050565b600082611c06575060016107bf565b81611c13575060006107bf565b8160018114611c295760028114611c3357611c4f565b60019150506107bf565b60ff841115611c4457611c44611b9e565b50506001821b6107bf565b5060208310610133831016604e8410600b8410161715611c72575081810a6107bf565b611c7c8383611bb4565b8060001904821115611c9057611c90611b9e565b029392505050565b60006113a960ff841683611bf7565b80820281158282048414176107bf576107bf611b9e565b808201808211156107bf576107bf611b9e565b600060208284031215611ce357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611d6057634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff828116828216039080821115611d8257611d82611b9e565b5092915050565b818103818111156107bf576107bf611b9e565b600060208284031215611dae57600080fd5b81516113a9816118d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e095784516001600160a01b031683529383019391830191600101611de4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008251611e3c818460208701611882565b9190910192915050565b600080600060608486031215611e5b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d6dcf02822f87318d6885cfd2e8a308d0b8e82c40be004391602794e312504364736f6c634300081100330000000000000000000000002af1ba1647471ece27f864eb8df36115e3931003

Deployed Bytecode

0x6080604052600436106102275760003560e01c80638e26bbe411610122578063ba414b10116100a5578063dd62ed3e1161006c578063dd62ed3e146106f9578063e717fc301461073f578063f2fde38b14610755578063f4a2ebf714610775578063f5a27e861461079557005b8063ba414b1014610648578063bd186c4c14610668578063bd4f1dc614610688578063c9d9159d146106ac578063d11fcb85146106c957005b80639bfe8df7116100e95780639bfe8df7146105b1578063a1780c18146105d1578063a20adf86146105e6578063a9059cbb14610607578063ac9358341461062757005b80638e26bbe41461050f57806391d88b951461052f57806391f18b7c1461054557806395d89b411461056557806396418d4d1461059157005b806363126e17116101aa578063715018a611610171578063715018a6146104775780637971fca71461048c5780637aab5d9b146104b05780638bf67ad0146104d15780638da5cb5b146104f157005b806363126e17146103bd578063685e838e146103dd5780636ea79583146103f357806370a082311461042b57806370fbc7121461046157005b80633d21e5a2116101ee5780633d21e5a21461030357806349dc859c14610323578063581d30f8146103435780635bc05f3c146103635780636264300e1461038457005b806306fdde0314610230578063095ea7b31461027457806318160ddd146102a457806323b872dd146102c7578063313ce567146102e757005b3661022e57005b005b34801561023c57600080fd5b506040805180820190915260098152682a2aa3102a37b5b2b760b91b60208201525b60405161026b91906118a6565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046118ee565b6107ab565b604051901515815260200161026b565b3480156102b057600080fd5b506102b96107c5565b60405190815260200161026b565b3480156102d357600080fd5b506102946102e236600461191a565b6107e6565b3480156102f357600080fd5b506040516012815260200161026b565b34801561030f57600080fd5b5061022e61031e36600461195b565b61080a565b34801561032f57600080fd5b5061022e61033e366004611978565b610834565b34801561034f57600080fd5b5061022e61035e3660046119ba565b6109ae565b34801561036f57600080fd5b5060005461029490600160b01b900460ff1681565b34801561039057600080fd5b506001546103a890600160c01b900463ffffffff1681565b60405163ffffffff909116815260200161026b565b3480156103c957600080fd5b5061022e6103d8366004611a39565b610a3f565b3480156103e957600080fd5b506102b960085481565b3480156103ff57600080fd5b50600154610413906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561043757600080fd5b506102b961044636600461195b565b6001600160a01b031660009081526009602052604090205490565b34801561046d57600080fd5b506102b960065481565b34801561048357600080fd5b5061022e610ab4565b34801561049857600080fd5b506001546103a890600160a01b900463ffffffff1681565b3480156104bc57600080fd5b5060005461029490600160a01b900460ff1681565b3480156104dd57600080fd5b5061022e6104ec366004611a8d565b610ac8565b3480156104fd57600080fd5b506000546001600160a01b0316610413565b34801561051b57600080fd5b5061022e61052a366004611ac0565b610b0f565b34801561053b57600080fd5b506102b960045481565b34801561055157600080fd5b50600c54610413906001600160a01b031681565b34801561057157600080fd5b506040805180820190915260038152622a2aa360e91b602082015261025e565b34801561059d57600080fd5b5061022e6105ac366004611adb565b610b35565b3480156105bd57600080fd5b5061022e6105cc366004611af7565b610bd8565b3480156105dd57600080fd5b5061022e610c7c565b3480156105f257600080fd5b5060005461029490600160a81b900460ff1681565b34801561061357600080fd5b506102946106223660046118ee565b610c8c565b34801561063357600080fd5b50600c5461029490600160a01b900460ff1681565b34801561065457600080fd5b5061022e610663366004611b19565b610c9a565b34801561067457600080fd5b5061022e610683366004611ac0565b610d25565b34801561069457600080fd5b506001546103a890600160e01b900463ffffffff1681565b3480156106b857600080fd5b506002546103a89063ffffffff1681565b3480156106d557600080fd5b506102946106e436600461195b565b60036020526000908152604090205460ff1681565b34801561070557600080fd5b506102b9610714366004611b65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561074b57600080fd5b506102b960075481565b34801561076157600080fd5b5061022e61077036600461195b565b610d4b565b34801561078157600080fd5b5061022e610790366004611978565b610dc4565b3480156107a157600080fd5b506102b960055481565b6000336107b9818585610deb565b60019150505b92915050565b60006107d36012600a611c98565b6107e190633b9aca00611ca7565b905090565b6000336107f4858285610f0f565b6107ff858585610f9b565b506001949350505050565b610812611336565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61083c611336565b60045460055461084c9190611cbe565b42116108965760405162461bcd60e51b81526020600482015260146024820152734275726e20636f6f6c646f776e2061637469766560601b60448201526064015b60405180910390fd5b600c546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109059190611cd1565b90506000610915826103e8611390565b905080831115610923578092505b42600555821561094657600c54610946906001600160a01b031661dead856113b0565b600c546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6109b6611336565b610bb863ffffffff821611156109fd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b60008054921515600160b01b0260ff60b01b19909316929092179091556001805463ffffffff909216600160e01b026001600160e01b03909216919091179055565b610a47611336565b60005b82811015610aae578160036000868685818110610a6957610a69611cea565b9050602002016020810190610a7e919061195b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610a4a565b50505050565b610abc611336565b610ac66000611496565b565b610ad0611336565b6008929092556002805463ffffffff90921663ffffffff19909216919091179055600c8054911515600160a01b0260ff60a01b19909216919091179055565b610b17611336565b60008054911515600160a01b0260ff60a01b19909216919091179055565b610b3d611336565b610bb863ffffffff831611801590610b5d5750610bb863ffffffff821611155b610b985760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b6001805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610be0611336565b60328210801590610bf2575060328110155b610c2c5760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b604482015260640161088d565b610c4f610c3b6012600a611c98565b610c4990633b9aca00611ca7565b83611390565b600655610c75610c616012600a611c98565b610c6f90633b9aca00611ca7565b82611390565b6007555050565b610c84611336565b610ac66114e6565b6000336107b9818585610f9b565b610ca2611336565b600080546001600160a01b0316905b83811015610d1e576000858583818110610ccd57610ccd611cea565b9050602002016020810190610ce2919061195b565b90506001600160a01b038116610d0a5760405162461bcd60e51b815260040161088d90611d00565b610d158382866113b0565b50600101610cb1565b5050505050565b610d2d611336565b60008054911515600160a81b0260ff60a81b19909216919091179055565b610d53611336565b6001600160a01b038116610db85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088d565b610dc181611496565b50565b610dcc611336565b6000805460ff60a01b1916600a92909214600160a01b02919091179055565b6001600160a01b038316610e4d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161088d565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161088d565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600a60209081526040808320938616835292905220546000198114610aae5781811015610f8e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161088d565b610aae8484848403610deb565b6001600160a01b038316610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161088d565b6001600160a01b0382166110255760405162461bcd60e51b815260040161088d90611d00565b600081116110875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161088d565b6000546001600160a01b03848116911614806110b057506000546001600160a01b038381169116145b806110c357506001600160a01b03831630145b156110d8576110d38383836113b0565b505050565b600054600160a01b900460ff166111275760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b604482015260640161088d565b600c546000906001600160a01b0385811691161480611148576111486114e6565b8015611191576001600160a01b03841660009081526003602052604090205460ff1661118c57600154611189908490600160a01b900463ffffffff16611390565b91505b6111fc565b6001600160a01b03851660009081526003602052604090205460ff166111fc576000546111f9908490600160b01b900460ff166111dd57600154600160c01b900463ffffffff166111ee565b600154600160e01b900463ffffffff165b63ffffffff16611390565b91505b818310156112415760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b604482015260640161088d565b6000549282900392600160a81b900460ff161561131a5760065483111561129b5760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b604482015260640161088d565b600c546001600160a01b0385811691161461131a576007546001600160a01b0385166000908152600960205260409020546112d7908590611cbe565b111561131a5760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161088d565b811561132b5761132b8530846113b0565b610d1e8585856113b0565b6000546001600160a01b03163314610ac65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088d565b600061271061139f8385611ca7565b6113a99190611d43565b9392505050565b6001600160a01b038316600090815260096020526040902054818110156114285760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161088d565b6001600160a01b0380851660008181526009602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114889086815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260096020526040902054600854811080159081906115145750600c54600160a81b900460ff16155b80156115295750600c54600160a01b900460ff165b156115495761153960085461154d565b4780156110d3576110d34761172c565b5050565b600c805460ff60a81b1916600160a81b17905560025460009061157e9083906111ee9063ffffffff16612710611d65565b9050600061158c8284611d89565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106115c6576115c6611cea565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561161f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116439190611d9c565b8160018151811061165657611656611cea565b6001600160a01b039283166020918202929092010152600b5461167c9130911687610deb565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116b5908790600090869030904290600401611db9565b600060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b50505050600082476116f59190611d89565b60025490915061171790859061171290849063ffffffff16611390565b6117d8565b5050600c805460ff60a81b1916905550505050565b6001546040805160008082526020820192839052926001600160a01b031691849161175691611e2a565b60006040518083038185875af1925050503d8060008114611793576040519150601f19603f3d011682016040523d82523d6000602084013e611798565b606091505b50509050806115495760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b604482015260640161088d565b600b546117f09030906001600160a01b031684610deb565b600b5460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561185d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d1e9190611e46565b60005b8381101561189d578181015183820152602001611885565b50506000910152565b60208152600082518060208401526118c5816040850160208701611882565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610dc157600080fd5b6000806040838503121561190157600080fd5b823561190c816118d9565b946020939093013593505050565b60008060006060848603121561192f57600080fd5b833561193a816118d9565b9250602084013561194a816118d9565b929592945050506040919091013590565b60006020828403121561196d57600080fd5b81356113a9816118d9565b60006020828403121561198a57600080fd5b5035919050565b803580151581146119a157600080fd5b919050565b803563ffffffff811681146119a157600080fd5b600080604083850312156119cd57600080fd5b6119d683611991565b91506119e4602084016119a6565b90509250929050565b60008083601f8401126119ff57600080fd5b50813567ffffffffffffffff811115611a1757600080fd5b6020830191508360208260051b8501011115611a3257600080fd5b9250929050565b600080600060408486031215611a4e57600080fd5b833567ffffffffffffffff811115611a6557600080fd5b611a71868287016119ed565b9094509250611a84905060208501611991565b90509250925092565b600080600060608486031215611aa257600080fd5b83359250611ab2602085016119a6565b9150611a8460408501611991565b600060208284031215611ad257600080fd5b6113a982611991565b60008060408385031215611aee57600080fd5b6119d6836119a6565b60008060408385031215611b0a57600080fd5b50508035926020909101359150565b600080600060408486031215611b2e57600080fd5b833567ffffffffffffffff811115611b4557600080fd5b611b51868287016119ed565b909790965060209590950135949350505050565b60008060408385031215611b7857600080fd5b8235611b83816118d9565b91506020830135611b93816118d9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bef578160001904821115611bd557611bd5611b9e565b80851615611be257918102915b93841c9390800290611bb9565b509250929050565b600082611c06575060016107bf565b81611c13575060006107bf565b8160018114611c295760028114611c3357611c4f565b60019150506107bf565b60ff841115611c4457611c44611b9e565b50506001821b6107bf565b5060208310610133831016604e8410600b8410161715611c72575081810a6107bf565b611c7c8383611bb4565b8060001904821115611c9057611c90611b9e565b029392505050565b60006113a960ff841683611bf7565b80820281158282048414176107bf576107bf611b9e565b808201808211156107bf576107bf611b9e565b600060208284031215611ce357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611d6057634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff828116828216039080821115611d8257611d82611b9e565b5092915050565b818103818111156107bf576107bf611b9e565b600060208284031215611dae57600080fd5b81516113a9816118d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e095784516001600160a01b031683529383019391830191600101611de4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008251611e3c818460208701611882565b9190910192915050565b600080600060608486031215611e5b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d6dcf02822f87318d6885cfd2e8a308d0b8e82c40be004391602794e312504364736f6c63430008110033

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

0000000000000000000000002af1ba1647471ece27f864eb8df36115e3931003

-----Decoded View---------------
Arg [0] : _team_wallet (address): 0x2Af1BA1647471eCE27f864EB8df36115E3931003

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002af1ba1647471ece27f864eb8df36115e3931003


Deployed Bytecode Sourcemap

9182:13155:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18981:100;;;;;;;;;;-1:-1:-1;19068:5:0;;;;;;;;;;;;-1:-1:-1;;;19068:5:0;;;;18981:100;;;;;;;:::i;:::-;;;;;;;;20364:242;;;;;;;;;;-1:-1:-1;20364:242:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;20364:242:0;1126:187:1;19309:108:0;;;;;;;;;;;;;:::i;:::-;;;1464:25:1;;;1452:2;1437:18;19309:108:0;1318:177:1;19852:295:0;;;;;;;;;;-1:-1:-1;19852:295:0;;;;;:::i;:::-;;:::i;19201:100::-;;;;;;;;;;-1:-1:-1;19201:100:0;;9382:2;2103:36:1;;2091:2;2076:18;19201:100:0;1961:184:1;12835:106:0;;;;;;;;;;-1:-1:-1;12835:106:0;;;;;:::i;:::-;;:::i;13764:656::-;;;;;;;;;;-1:-1:-1;13764:656:0;;;;;:::i;:::-;;:::i;14606:206::-;;;;;;;;;;-1:-1:-1;14606:206:0;;;;;:::i;:::-;;:::i;9816:29::-;;;;;;;;;;-1:-1:-1;9816:29:0;;;;-1:-1:-1;;;9816:29:0;;;;;;9928:37;;;;;;;;;;-1:-1:-1;9928:37:0;;;;-1:-1:-1;;;9928:37:0;;;;;;;;;3351:10:1;3339:23;;;3321:42;;3309:2;3294:18;9928:37:0;3177:192:1;12982:269:0;;;;;;;;;;-1:-1:-1;12982:269:0;;;;;:::i;:::-;;:::i;10622:57::-;;;;;;;;;;;;;;;;9852:26;;;;;;;;;;-1:-1:-1;9852:26:0;;;;-1:-1:-1;;;;;9852:26:0;;;;;;-1:-1:-1;;;;;4420:32:1;;;4402:51;;4390:2;4375:18;9852:26:0;4256:203:1;19425:177:0;;;;;;;;;;-1:-1:-1;19425:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;19576:18:0;19544:7;19576:18;;;:9;:18;;;;;;;19425:177;10489:49;;;;;;;;;;;;;;;;4049:103;;;;;;;;;;;;;:::i;9885:36::-;;;;;;;;;;-1:-1:-1;9885:36:0;;;;-1:-1:-1;;;9885:36:0;;;;;;9735:22;;;;;;;;;;-1:-1:-1;9735:22:0;;;;-1:-1:-1;;;9735:22:0;;;;;;12568:237;;;;;;;;;;-1:-1:-1;12568:237:0;;;;;:::i;:::-;;:::i;3401:87::-;;;;;;;;;;-1:-1:-1;3447:7:0;3474:6;-1:-1:-1;;;;;3474:6:0;3401:87;;14820:89;;;;;;;;;;-1:-1:-1;14820:89:0;;;;;:::i;:::-;;:::i;10395:41::-;;;;;;;;;;;;;;;;10901:24;;;;;;;;;;-1:-1:-1;10901:24:0;;;;-1:-1:-1;;;;;10901:24:0;;;19089:104;;;;;;;;;;-1:-1:-1;19178:7:0;;;;;;;;;;;;-1:-1:-1;;;19178:7:0;;;;19089:104;;11994:215;;;;;;;;;;-1:-1:-1;11994:215:0;;;;;:::i;:::-;;:::i;12243:317::-;;;;;;;;;;-1:-1:-1;12243:317:0;;;;;:::i;:::-;;:::i;14428:70::-;;;;;;;;;;;;;:::i;9764:32::-;;;;;;;;;;-1:-1:-1;9764:32:0;;;;-1:-1:-1;;;9764:32:0;;;;;;19610:234;;;;;;;;;;-1:-1:-1;19610:234:0;;;;;:::i;:::-;;:::i;10932:31::-;;;;;;;;;;-1:-1:-1;10932:31:0;;;;-1:-1:-1;;;10932:31:0;;;;;;13259:497;;;;;;;;;;-1:-1:-1;13259:497:0;;;;;:::i;:::-;;:::i;14506:92::-;;;;;;;;;;-1:-1:-1;14506:92:0;;;;;:::i;:::-;;:::i;10214:44::-;;;;;;;;;;-1:-1:-1;10214:44:0;;;;-1:-1:-1;;;10214:44:0;;;;;;10265:40;;;;;;;;;;-1:-1:-1;10265:40:0;;;;;;;;10332:42;;;;;;;;;;-1:-1:-1;10332:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20155:201;;;;;;;;;;-1:-1:-1;20155:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;20321:18:0;;;20289:7;20321:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20155:201;10553:54;;;;;;;;;;;;;;;;4307:238;;;;;;;;;;-1:-1:-1;4307:238:0;;;;;:::i;:::-;;:::i;14917:86::-;;;;;;;;;;-1:-1:-1;14917:86:0;;;;;:::i;:::-;;:::i;10443:24::-;;;;;;;;;;;;;;;;20364:242;20483:4;2165:10;20544:32;2165:10;20560:7;20569:6;20544:8;:32::i;:::-;20594:4;20587:11;;;20364:242;;;;;:::o;19309:108::-;19370:7;9448:13;9382:2;9448;:13;:::i;:::-;9432:29;;:13;:29;:::i;:::-;19390:19;;19309:108;:::o;19852:295::-;19983:4;2165:10;20041:38;20057:4;2165:10;20072:6;20041:15;:38::i;:::-;20090:27;20100:4;20106:2;20110:6;20090:9;:27::i;:::-;-1:-1:-1;20135:4:0;;19852:295;-1:-1:-1;;;;19852:295:0:o;12835:106::-;3287:13;:11;:13::i;:::-;12907:11:::1;:26:::0;;-1:-1:-1;;;;;;12907:26:0::1;-1:-1:-1::0;;;;;12907:26:0;;;::::1;::::0;;;::::1;::::0;;12835:106::o;13764:656::-;3287:13;:11;:13::i;:::-;13892::::1;;13880:9;;:25;;;;:::i;:::-;13862:15;:43;13840:113;;;::::0;-1:-1:-1;;;13840:113:0;;8411:2:1;13840:113:0::1;::::0;::::1;8393:21:1::0;8450:2;8430:18;;;8423:30;-1:-1:-1;;;8469:18:1;;;8462:50;8529:18;;13840:113:0::1;;;;;;;;;14010:9;::::0;13995:25:::1;::::0;-1:-1:-1;;;13995:25:0;;-1:-1:-1;;;;;14010:9:0;;::::1;13995:25;::::0;::::1;4402:51:1::0;13964:28:0::1;::::0;13995:4:::1;::::0;:14:::1;::::0;4375:18:1;;13995:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13964:56:::0;-1:-1:-1;14031:20:0::1;14054:45;13964:56:::0;9696:13:::1;14054:11;:45::i;:::-;14031:68;;14124:12;14114:7;:22;14110:77;;;14163:12;14153:22;;14110:77;14209:15;14197:9;:27:::0;14241:11;;14237:96:::1;;14285:9;::::0;14269:52:::1;::::0;-1:-1:-1;;;;;14285:9:0::1;14304:6;14313:7:::0;14269:15:::1;:52::i;:::-;14380:9;::::0;14401:11:::1;::::0;;-1:-1:-1;;;;;;14401:11:0;;;;-1:-1:-1;;;;;14380:9:0;;::::1;::::0;;;14401::::1;::::0;:11:::1;::::0;;::::1;::::0;14343:19:::1;::::0;14401:11;;;;;;;14343:19;14380:9;14401:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13829:591;;;13764:656:::0;:::o;14606:206::-;3287:13;:11;:13::i;:::-;9584::::1;14699:20;::::0;::::1;;;14691:45;;;::::0;-1:-1:-1;;;14691:45:0;;8949:2:1;14691:45:0::1;::::0;::::1;8931:21:1::0;8988:2;8968:18;;;8961:30;-1:-1:-1;;;9007:18:1;;;9000:42;9059:18;;14691:45:0::1;8747:336:1::0;14691:45:0::1;14747:10;:20:::0;;;::::1;;-1:-1:-1::0;;;14747:20:0::1;-1:-1:-1::0;;;;14747:20:0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;14778:26:0;;::::1;::::0;;::::1;-1:-1:-1::0;;;14778:26:0::1;-1:-1:-1::0;;;;;14778:26:0;;::::1;::::0;;;::::1;::::0;;14606:206::o;12982:269::-;3287:13;:11;:13::i;:::-;13127:9:::1;13122:111;13142:17:::0;;::::1;13122:111;;;13209:8;13185:10;:21;13196:6;;13203:1;13196:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13185:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13185:21:0;:32;;-1:-1:-1;;13185:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13161:3:0::1;13122:111;;;;12982:269:::0;;;:::o;4049:103::-;3287:13;:11;:13::i;:::-;4114:30:::1;4141:1;4114:18;:30::i;:::-;4049:103::o:0;12568:237::-;3287:13;:11;:13::i;:::-;12704:14:::1;:24:::0;;;;12739:10:::1;:24:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;12739:24:0;;::::1;::::0;;;::::1;::::0;;12774:12:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;12774:23:0::1;-1:-1:-1::0;;;;12774:23:0;;::::1;::::0;;;::::1;::::0;;12568:237::o;14820:89::-;3287:13;:11;:13::i;:::-;14881:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;14881:20:0::1;-1:-1:-1::0;;;;14881:20:0;;::::1;::::0;;;::::1;::::0;;14820:89::o;11994:215::-;3287:13;:11;:13::i;:::-;9584::::1;12081:19;::::0;::::1;;::::0;::::1;::::0;:43:::1;;-1:-1:-1::0;9584:13:0::1;12104:20;::::0;::::1;;;12081:43;12073:68;;;::::0;-1:-1:-1;;;12073:68:0;;8949:2:1;12073:68:0::1;::::0;::::1;8931:21:1::0;8988:2;8968:18;;;8961:30;-1:-1:-1;;;9007:18:1;;;9000:42;9059:18;;12073:68:0::1;8747:336:1::0;12073:68:0::1;12152:7;:18:::0;;-1:-1:-1;;;;12181:20:0;-1:-1:-1;;;12152:18:0::1;::::0;;::::1;;-1:-1:-1::0;;;;12181:20:0;;-1:-1:-1;;;12181:20:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;11994:215::o;12243:317::-;3287:13;:11;:13::i;:::-;9640:12:::1;12349:20:::0;::::1;::::0;::::1;::::0;:48:::1;;-1:-1:-1::0;9640:12:0::1;12373:24:::0;::::1;;12349:48;12327:109;;;::::0;-1:-1:-1;;;12327:109:0;;9422:2:1;12327:109:0::1;::::0;::::1;9404:21:1::0;9461:2;9441:18;;;9434:30;-1:-1:-1;;;9480:18:1;;;9473:41;9531:18;;12327:109:0::1;9220:335:1::0;12327:109:0::1;12456:34;9448:13;9382:2;9448;:13;:::i;:::-;9432:29;::::0;:13:::1;:29;:::i;:::-;12482:7;12456:11;:34::i;:::-;12447:6;:43:::0;12514:38:::1;9448:13;9382:2;9448;:13;:::i;:::-;9432:29;::::0;:13:::1;:29;:::i;:::-;12540:11;12514;:38::i;:::-;12501:10;:51:::0;-1:-1:-1;;12243:317:0:o;14428:70::-;3287:13;:11;:13::i;:::-;14478:12:::1;:10;:12::i;19610:234::-:0;19725:4;2165:10;19786:28;2165:10;19803:2;19807:6;19786:9;:28::i;13259:497::-;3287:13;:11;:13::i;:::-;13374::::1;3474:6:::0;;-1:-1:-1;;;;;3474:6:0;;13433:305:::1;13453:17:::0;;::::1;13433:305;;;13496:12;13511:6;;13518:1;13511:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13496:24:::0;-1:-1:-1;;;;;;13569:18:0;::::1;13539:127;;;;-1:-1:-1::0;;;13539:127:0::1;;;;;;;:::i;:::-;13685:37;13701:5;13708:4;13714:7;13685:15;:37::i;:::-;-1:-1:-1::0;13472:3:0::1;;13433:305;;;;13363:393;13259:497:::0;;;:::o;14506:92::-;3287:13;:11;:13::i;:::-;14567::::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14567:23:0::1;-1:-1:-1::0;;;;14567:23:0;;::::1;::::0;;;::::1;::::0;;14506:92::o;4307:238::-;3287:13;:11;:13::i;:::-;-1:-1:-1;;;;;4410:22:0;::::1;4388:110;;;::::0;-1:-1:-1;;;4388:110:0;;10166:2:1;4388:110:0::1;::::0;::::1;10148:21:1::0;10205:2;10185:18;;;10178:30;10244:34;10224:18;;;10217:62;-1:-1:-1;;;10295:18:1;;;10288:36;10341:19;;4388:110:0::1;9964:402:1::0;4388:110:0::1;4509:28;4528:8;4509:18;:28::i;:::-;4307:238:::0;:::o;14917:86::-;3287:13;:11;:13::i;:::-;14972:10:::1;:23:::0;;-1:-1:-1;;;;14972:23:0::1;14993:2;14985:10:::0;;;::::1;-1:-1:-1::0;;;14972:23:0::1;::::0;;;::::1;::::0;;14917:86::o;20614:380::-;-1:-1:-1;;;;;20750:19:0;;20742:68;;;;-1:-1:-1;;;20742:68:0;;10573:2:1;20742:68:0;;;10555:21:1;10612:2;10592:18;;;10585:30;10651:34;10631:18;;;10624:62;-1:-1:-1;;;10702:18:1;;;10695:34;10746:19;;20742:68:0;10371:400:1;20742:68:0;-1:-1:-1;;;;;20829:21:0;;20821:68;;;;-1:-1:-1;;;20821:68:0;;10978:2:1;20821:68:0;;;10960:21:1;11017:2;10997:18;;;10990:30;11056:34;11036:18;;;11029:62;-1:-1:-1;;;11107:18:1;;;11100:32;11149:19;;20821:68:0;10776:398:1;20821:68:0;-1:-1:-1;;;;;20902:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20954:32;;1464:25:1;;;20954:32:0;;1437:18:1;20954:32:0;;;;;;;20614:380;;;:::o;21002:502::-;-1:-1:-1;;;;;20321:18:0;;;21137:24;20321:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;21204:37:0;;21200:297;;21304:6;21284:16;:26;;21258:117;;;;-1:-1:-1;;;21258:117:0;;11381:2:1;21258:117:0;;;11363:21:1;11420:2;11400:18;;;11393:30;11459:31;11439:18;;;11432:59;11508:18;;21258:117:0;11179:353:1;21258:117:0;21419:51;21428:5;21435:7;21463:6;21444:16;:25;21419:8;:51::i;15024:2006::-;-1:-1:-1;;;;;15147:18:0;;15139:68;;;;-1:-1:-1;;;15139:68:0;;11739:2:1;15139:68:0;;;11721:21:1;11778:2;11758:18;;;11751:30;11817:34;11797:18;;;11790:62;-1:-1:-1;;;11868:18:1;;;11861:35;11913:19;;15139:68:0;11537:401:1;15139:68:0;-1:-1:-1;;;;;15226:16:0;;15218:64;;;;-1:-1:-1;;;15218:64:0;;;;;;;:::i;:::-;15310:1;15301:6;:10;15293:64;;;;-1:-1:-1;;;15293:64:0;;12145:2:1;15293:64:0;;;12127:21:1;12184:2;12164:18;;;12157:30;12223:34;12203:18;;;12196:62;-1:-1:-1;;;12274:18:1;;;12267:39;12323:19;;15293:64:0;11943:405:1;15293:64:0;3447:7;3474:6;-1:-1:-1;;;;;15423:15:0;;;3474:6;;15423:15;;:32;;-1:-1:-1;3447:7:0;3474:6;-1:-1:-1;;;;;15442:13:0;;;3474:6;;15442:13;15423:32;:57;;;-1:-1:-1;;;;;;15459:21:0;;15475:4;15459:21;15423:57;15419:144;;;15497:33;15513:4;15519:2;15523:6;15497:15;:33::i;:::-;15024:2006;;;:::o;15419:144::-;15620:10;;-1:-1:-1;;;15620:10:0;;;;15612:42;;;;-1:-1:-1;;;15612:42:0;;12555:2:1;15612:42:0;;;12537:21:1;12594:2;12574:18;;;12567:30;-1:-1:-1;;;12613:18:1;;;12606:49;12672:18;;15612:42:0;12353:343:1;15612:42:0;15719:9;;15665:18;;-1:-1:-1;;;;;15711:17:0;;;15719:9;;15711:17;;15741:78;;15795:12;:10;:12::i;:::-;15891:5;15887:382;;;-1:-1:-1;;;;;15918:14:0;;;;;;:10;:14;;;;;;;;15913:97;;15986:7;;15966:28;;15978:6;;-1:-1:-1;;;15986:7:0;;;;15966:11;:28::i;:::-;15953:41;;15913:97;15887:382;;;-1:-1:-1;;;;;16072:16:0;;;;;;:10;:16;;;;;;;;16067:191;;16185:10;;16122:120;;16156:6;;-1:-1:-1;;;16185:10:0;;;;:38;;16215:8;;-1:-1:-1;;;16215:8:0;;;;16185:38;;;16198:14;;-1:-1:-1;;;16198:14:0;;;;16185:38;16122:120;;:11;:120::i;:::-;16109:133;;16067:191;16344:10;16334:6;:20;;16326:51;;;;-1:-1:-1;;;16326:51:0;;12903:2:1;16326:51:0;;;12885:21:1;12942:2;12922:18;;;12915:30;-1:-1:-1;;;12961:18:1;;;12954:48;13019:18;;16326:51:0;12701:342:1;16326:51:0;16463:13;;16392:20;;;;;-1:-1:-1;;;16463:13:0;;;;16459:345;;;16538:6;;16528;:16;;16520:43;;;;-1:-1:-1;;;16520:43:0;;13250:2:1;16520:43:0;;;13232:21:1;13289:2;13269:18;;;13262:30;-1:-1:-1;;;13308:18:1;;;13301:44;13362:18;;16520:43:0;13048:338:1;16520:43:0;16619:9;;-1:-1:-1;;;;;16613:15:0;;;16619:9;;16613:15;16609:184;;16705:10;;-1:-1:-1;;;;;16679:13:0;;;;;;:9;:13;;;;;;:22;;16695:6;;16679:22;:::i;:::-;:36;;16649:128;;;;-1:-1:-1;;;16649:128:0;;13593:2:1;16649:128:0;;;13575:21:1;13632:2;13612:18;;;13605:30;-1:-1:-1;;;13651:18:1;;;13644:48;13709:18;;16649:128:0;13391:342:1;16649:128:0;16861:14;;16857:95;;16892:48;16908:4;16922;16929:10;16892:15;:48::i;:::-;16989:33;17005:4;17011:2;17015:6;16989:15;:33::i;3566:132::-;3447:7;3474:6;-1:-1:-1;;;;;3474:6:0;2165:10;3630:23;3622:68;;;;-1:-1:-1;;;3622:68:0;;13940:2:1;3622:68:0;;;13922:21:1;;;13959:18;;;13952:30;14018:34;13998:18;;;13991:62;14070:18;;3622:68:0;13738:356:1;11006:180:0;11110:7;9509:11;11143:17;11152:8;11143:6;:17;:::i;:::-;11142:36;;;;:::i;:::-;11135:43;11006:180;-1:-1:-1;;;11006:180:0:o;21512:626::-;-1:-1:-1;;;;;21663:15:0;;21641:19;21663:15;;;:9;:15;;;;;;21711:21;;;;21689:109;;;;-1:-1:-1;;;21689:109:0;;14523:2:1;21689:109:0;;;14505:21:1;14562:2;14542:18;;;14535:30;14601:34;14581:18;;;14574:62;-1:-1:-1;;;14652:18:1;;;14645:36;14698:19;;21689:109:0;14321:402:1;21689:109:0;-1:-1:-1;;;;;21834:15:0;;;;;;;:9;:15;;;;;;21852:20;;;21834:38;;22052:13;;;;;;;;;;:23;;;;;;22104:26;;;;;;21866:6;1464:25:1;;1452:2;1437:18;;1318:177;22104:26:0;;;;;;;;21630:508;21512:626;;;:::o;4705:191::-;4779:16;4798:6;;-1:-1:-1;;;;;4815:17:0;;;-1:-1:-1;;;;;;4815:17:0;;;;;;4848:40;;4798:6;;;;;;;4848:40;;4779:16;4848:40;4768:128;4705:191;:::o;17038:436::-;17121:4;17079:21;19576:18;;;:9;:18;;;;;;17171:14;;17154:31;;;;;;;17202:19;;-1:-1:-1;17215:6:0;;-1:-1:-1;;;17215:6:0;;;;17214:7;17202:19;:35;;;;-1:-1:-1;17225:12:0;;-1:-1:-1;;;17225:12:0;;;;17202:35;17198:269;;;17254:32;17271:14;;17254:16;:32::i;:::-;17323:21;17363;;17359:97;;17405:35;17418:21;17405:12;:35::i;17198:269::-;17068:406;;17038:436::o;17482:784::-;11262:6;:13;;-1:-1:-1;;;;11262:13:0;-1:-1:-1;;;11262:13:0;;;17611:10:::1;::::0;11262:13;;17573:49:::1;::::0;17585:7;;17594:27:::1;::::0;17611:10:::1;;9509:11;17594:27;:::i;17573:49::-;17556:66:::0;-1:-1:-1;17633:14:0::1;17650:16;17556:66:::0;17650:7;:16:::1;:::i;:::-;17760;::::0;;17774:1:::1;17760:16:::0;;;;;::::1;::::0;;17633:33;;-1:-1:-1;17702:21:0::1;::::0;17677:22:::1;::::0;17760:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17760:16:0::1;17736:40;;17805:4;17787;17792:1;17787:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17787:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17831:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;17831:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17787:7;;17831:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17821:4;17826:1;17821:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17821:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;17896:15:::1;::::0;17864:58:::1;::::0;17881:4:::1;::::0;17896:15:::1;17914:7:::0;17864:8:::1;:58::i;:::-;17933:15;::::0;:191:::1;::::0;-1:-1:-1;;;17933:191:0;;-1:-1:-1;;;;;17933:15:0;;::::1;::::0;:66:::1;::::0;:191:::1;::::0;18014:6;;17933:15:::1;::::0;18051:4;;18078::::1;::::0;18098:15:::1;::::0;17933:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18135:15;18177:14;18153:21;:38;;;;:::i;:::-;18246:10;::::0;18135:56;;-1:-1:-1;18204:54:0::1;::::0;18217:6;;18225:32:::1;::::0;18135:56;;18246:10:::1;;18225:11;:32::i;:::-;18204:12;:54::i;:::-;-1:-1:-1::0;;11298:6:0;:14;;-1:-1:-1;;;;11298:14:0;;;-1:-1:-1;;;;17482:784:0:o;18274:174::-;18351:11;;18384:12;;;18333;18384;;;;;;;;;;18333;-1:-1:-1;;;;;18351:11:0;;18375:7;;18351:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18332:65;;;18416:7;18408:32;;;;-1:-1:-1;;;18408:32:0;;16908:2:1;18408:32:0;;;16890:21:1;16947:2;16927:18;;;16920:30;-1:-1:-1;;;16966:18:1;;;16959:42;17018:18;;18408:32:0;16706:336:1;18456:504:0;18632:15;;18600:58;;18617:4;;-1:-1:-1;;;;;18632:15:0;18650:7;18600:8;:58::i;:::-;18701:15;;:251;;-1:-1:-1;;;18701:251:0;;18773:4;18701:251;;;17388:34:1;17438:18;;;17431:34;;;18701:15:0;17481:18:1;;;17474:34;;;17524:18;;;17517:34;;;17567:19;;;17560:44;18926:15:0;17620:19:1;;;17613:35;-1:-1:-1;;;;;18701:15:0;;;;:31;;18740:9;;17322:19:1;;18701:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1500:456::-;1577:6;1585;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:31;1745:5;1720:31;:::i;:::-;1770:5;-1:-1:-1;1827:2:1;1812:18;;1799:32;1840:33;1799:32;1840:33;:::i;:::-;1500:456;;1892:7;;-1:-1:-1;;;1946:2:1;1931:18;;;;1918:32;;1500:456::o;2150:247::-;2209:6;2262:2;2250:9;2241:7;2237:23;2233:32;2230:52;;;2278:1;2275;2268:12;2230:52;2317:9;2304:23;2336:31;2361:5;2336:31;:::i;2402:180::-;2461:6;2514:2;2502:9;2493:7;2489:23;2485:32;2482:52;;;2530:1;2527;2520:12;2482:52;-1:-1:-1;2553:23:1;;2402:180;-1:-1:-1;2402:180:1:o;2587:160::-;2652:20;;2708:13;;2701:21;2691:32;;2681:60;;2737:1;2734;2727:12;2681:60;2587:160;;;:::o;2752:163::-;2819:20;;2879:10;2868:22;;2858:33;;2848:61;;2905:1;2902;2895:12;2920:252;2984:6;2992;3045:2;3033:9;3024:7;3020:23;3016:32;3013:52;;;3061:1;3058;3051:12;3013:52;3084:26;3100:9;3084:26;:::i;:::-;3074:36;;3129:37;3162:2;3151:9;3147:18;3129:37;:::i;:::-;3119:47;;2920:252;;;;;:::o;3374:367::-;3437:8;3447:6;3501:3;3494:4;3486:6;3482:17;3478:27;3468:55;;3519:1;3516;3509:12;3468:55;-1:-1:-1;3542:20:1;;3585:18;3574:30;;3571:50;;;3617:1;3614;3607:12;3571:50;3654:4;3646:6;3642:17;3630:29;;3714:3;3707:4;3697:6;3694:1;3690:14;3682:6;3678:27;3674:38;3671:47;3668:67;;;3731:1;3728;3721:12;3668:67;3374:367;;;;;:::o;3746:505::-;3838:6;3846;3854;3907:2;3895:9;3886:7;3882:23;3878:32;3875:52;;;3923:1;3920;3913:12;3875:52;3963:9;3950:23;3996:18;3988:6;3985:30;3982:50;;;4028:1;4025;4018:12;3982:50;4067:70;4129:7;4120:6;4109:9;4105:22;4067:70;:::i;:::-;4156:8;;-1:-1:-1;4041:96:1;-1:-1:-1;4210:35:1;;-1:-1:-1;4241:2:1;4226:18;;4210:35;:::i;:::-;4200:45;;3746:505;;;;;:::o;4464:320::-;4537:6;4545;4553;4606:2;4594:9;4585:7;4581:23;4577:32;4574:52;;;4622:1;4619;4612:12;4574:52;4658:9;4645:23;4635:33;;4687:37;4720:2;4709:9;4705:18;4687:37;:::i;:::-;4677:47;;4743:35;4774:2;4763:9;4759:18;4743:35;:::i;4789:180::-;4845:6;4898:2;4886:9;4877:7;4873:23;4869:32;4866:52;;;4914:1;4911;4904:12;4866:52;4937:26;4953:9;4937:26;:::i;4974:256::-;5040:6;5048;5101:2;5089:9;5080:7;5076:23;5072:32;5069:52;;;5117:1;5114;5107:12;5069:52;5140:28;5158:9;5140:28;:::i;5235:248::-;5303:6;5311;5364:2;5352:9;5343:7;5339:23;5335:32;5332:52;;;5380:1;5377;5370:12;5332:52;-1:-1:-1;;5403:23:1;;;5473:2;5458:18;;;5445:32;;-1:-1:-1;5235:248:1:o;5488:505::-;5583:6;5591;5599;5652:2;5640:9;5631:7;5627:23;5623:32;5620:52;;;5668:1;5665;5658:12;5620:52;5708:9;5695:23;5741:18;5733:6;5730:30;5727:50;;;5773:1;5770;5763:12;5727:50;5812:70;5874:7;5865:6;5854:9;5850:22;5812:70;:::i;:::-;5901:8;;5786:96;;-1:-1:-1;5983:2:1;5968:18;;;;5955:32;;5488:505;-1:-1:-1;;;;5488:505:1:o;5998:388::-;6066:6;6074;6127:2;6115:9;6106:7;6102:23;6098:32;6095:52;;;6143:1;6140;6133:12;6095:52;6182:9;6169:23;6201:31;6226:5;6201:31;:::i;:::-;6251:5;-1:-1:-1;6308:2:1;6293:18;;6280:32;6321:33;6280:32;6321:33;:::i;:::-;6373:7;6363:17;;;5998:388;;;;;:::o;6391:127::-;6452:10;6447:3;6443:20;6440:1;6433:31;6483:4;6480:1;6473:15;6507:4;6504:1;6497:15;6523:422;6612:1;6655:5;6612:1;6669:270;6690:7;6680:8;6677:21;6669:270;;;6749:4;6745:1;6741:6;6737:17;6731:4;6728:27;6725:53;;;6758:18;;:::i;:::-;6808:7;6798:8;6794:22;6791:55;;;6828:16;;;;6791:55;6907:22;;;;6867:15;;;;6669:270;;;6673:3;6523:422;;;;;:::o;6950:806::-;6999:5;7029:8;7019:80;;-1:-1:-1;7070:1:1;7084:5;;7019:80;7118:4;7108:76;;-1:-1:-1;7155:1:1;7169:5;;7108:76;7200:4;7218:1;7213:59;;;;7286:1;7281:130;;;;7193:218;;7213:59;7243:1;7234:10;;7257:5;;;7281:130;7318:3;7308:8;7305:17;7302:43;;;7325:18;;:::i;:::-;-1:-1:-1;;7381:1:1;7367:16;;7396:5;;7193:218;;7495:2;7485:8;7482:16;7476:3;7470:4;7467:13;7463:36;7457:2;7447:8;7444:16;7439:2;7433:4;7430:12;7426:35;7423:77;7420:159;;;-1:-1:-1;7532:19:1;;;7564:5;;7420:159;7611:34;7636:8;7630:4;7611:34;:::i;:::-;7681:6;7677:1;7673:6;7669:19;7660:7;7657:32;7654:58;;;7692:18;;:::i;:::-;7730:20;;6950:806;-1:-1:-1;;;6950:806:1:o;7761:140::-;7819:5;7848:47;7889:4;7879:8;7875:19;7869:4;7848:47;:::i;7906:168::-;7979:9;;;8010;;8027:15;;;8021:22;;8007:37;7997:71;;8048:18;;:::i;8079:125::-;8144:9;;;8165:10;;;8162:36;;;8178:18;;:::i;8558:184::-;8628:6;8681:2;8669:9;8660:7;8656:23;8652:32;8649:52;;;8697:1;8694;8687:12;8649:52;-1:-1:-1;8720:16:1;;8558:184;-1:-1:-1;8558:184:1:o;9088:127::-;9149:10;9144:3;9140:20;9137:1;9130:31;9180:4;9177:1;9170:15;9204:4;9201:1;9194:15;9560:399;9762:2;9744:21;;;9801:2;9781:18;;;9774:30;9840:34;9835:2;9820:18;;9813:62;-1:-1:-1;;;9906:2:1;9891:18;;9884:33;9949:3;9934:19;;9560:399::o;14099:217::-;14139:1;14165;14155:132;;14209:10;14204:3;14200:20;14197:1;14190:31;14244:4;14241:1;14234:15;14272:4;14269:1;14262:15;14155:132;-1:-1:-1;14301:9:1;;14099:217::o;14728:175::-;14796:10;14839;;;14827;;;14823:27;;14862:12;;;14859:38;;;14877:18;;:::i;:::-;14859:38;14728:175;;;;:::o;14908:128::-;14975:9;;;14996:11;;;14993:37;;;15010:18;;:::i;15173:251::-;15243:6;15296:2;15284:9;15275:7;15271:23;15267:32;15264:52;;;15312:1;15309;15302:12;15264:52;15344:9;15338:16;15363:31;15388:5;15363:31;:::i;15429:980::-;15691:4;15739:3;15728:9;15724:19;15770:6;15759:9;15752:25;15796:2;15834:6;15829:2;15818:9;15814:18;15807:34;15877:3;15872:2;15861:9;15857:18;15850:31;15901:6;15936;15930:13;15967:6;15959;15952:22;16005:3;15994:9;15990:19;15983:26;;16044:2;16036:6;16032:15;16018:29;;16065:1;16075:195;16089:6;16086:1;16083:13;16075:195;;;16154:13;;-1:-1:-1;;;;;16150:39:1;16138:52;;16245:15;;;;16210:12;;;;16186:1;16104:9;16075:195;;;-1:-1:-1;;;;;;;16326:32:1;;;;16321:2;16306:18;;16299:60;-1:-1:-1;;;16390:3:1;16375:19;16368:35;16287:3;15429:980;-1:-1:-1;;;15429:980:1:o;16414:287::-;16543:3;16581:6;16575:13;16597:66;16656:6;16651:3;16644:4;16636:6;16632:17;16597:66;:::i;:::-;16679:16;;;;;16414:287;-1:-1:-1;;16414:287:1:o;17659:306::-;17747:6;17755;17763;17816:2;17804:9;17795:7;17791:23;17787:32;17784:52;;;17832:1;17829;17822:12;17784:52;17861:9;17855:16;17845:26;;17911:2;17900:9;17896:18;17890:25;17880:35;;17955:2;17944:9;17940:18;17934:25;17924:35;;17659:306;;;;;:::o

Swarm Source

ipfs://4d6dcf02822f87318d6885cfd2e8a308d0b8e82c40be004391602794e3125043

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.