ETH Price: $3,928.32 (+5.90%)

Token

ERC-20: Pokelon X (POKELONX)
 

Overview

Max Total Supply

300,000,000 POKELONX

Holders

2

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
POKELONX

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-18
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.28;

/*

   ooooooooo.     .oooooo.   oooo    oooo oooooooooooo ooooo          .oooooo.   ooooo      ooo       
   `888   `Y88.  d8P'  `Y8b  `888   .8P'  `888'     `8 `888'         d8P'  `Y8b  `888b.     `8'       .,::      .:
    888   .d88' 888      888  888  d8'     888          888         888      888  8 `88b.    8        `;;;,  .,;;
    888ooo88P'  888      888  88888[       888oooo8     888         888      888  8   `88b.  8         '[[,,[['
    888         888      888  888`88b.     888    "     888         888      888  8     `88b.8          Y$$$P
    888         `88b    d88'  888  `88b.   888       o  888       o `88b    d88'  8       `888        oP"``"Yo,
   o888o         `Y8bood8P'  o888o  o888o o888ooooood8 o888ooooood8  `Y8bood8P'  o8o        `8     ,m"       "Mm,
   #========================================================================


    Website: https://www.pokelon.finance/
    Telegram: https://t.me/pokelonxportal
    Twitter: https://x.com/pokelonofficial
    Contract: 0xD76ae50746644b365718a627b8763d82572e3bAd

*/

/// @title Pokelon X (POKELONX) - Pokelon X combines gamification and active community dynamics.
/// @author Project Pokelon Team
/// @notice Combines deflationary tokenomics, treasury management, and gamification with NFT features.
/// @dev Implements treasury management via customizable dues for buy/sell transactions and integrates with Uniswap for liquidity.
/// @custom:security-contact [email protected]

    // --- OpenZeppelin and Uniswap Interfaces ---
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

    // --- OpenZeppelin SafeERC20 ---
library SafeERC20 { function safeTransfer(IERC20 token, address to, uint256 value) internal { require(token.transfer(to, value), "SafeERC20: transfer failed"); }}

    // --- OpenZeppelin Ownable ---
abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor(address initialOwner) { _transferOwnership(initialOwner); }
    modifier onlyOwner() { _checkOwner(); _; }
    function owner() public view virtual returns (address) { return _owner; }
    function _checkOwner() internal view virtual { require(owner() == msg.sender, "Ownable: caller is not the owner"); }
    function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } 
}

    // --- OpenZeppelin ReentrancyGuard ---
abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;
    constructor() { _status = _NOT_ENTERED; }
    modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; }
}

    // --- Contract ---
contract POKELONX is IERC20, Ownable, ReentrancyGuard {
    using SafeERC20 for IERC20;

    // --- Constants ---
    string private constant _name = "Pokelon X";
    string private constant _symbol = "POKELONX";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 300_000_000 * (10 ** _decimals);
    uint256 private constant MAX_ALLOCATION = 500; // 5%
    uint256 private constant ALLOCATION_DENOMINATOR = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;


    // --- State Variables ---

    // Token Basic Data
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    // Trading Controls
    bool private tradingOpen;
    uint256 private initStartTime;
    bool private swapping;
    mapping(address => bool) public isDuesExempt;

    // Treasury Allocation Configuration
    uint256 public buyAllocation = 500;  // 5%
    uint256 public sellAllocation = 500; // 5%

    // Uniswap Integration
    IUniswapV2Router02 public immutable router;
    address public immutable pair;

    // Treasury Management
    address payable public treasuryReceiver;
    uint256 private pendingTreasuryFunds;

    // --- Events ---

    event AllocationsUpdated(uint256 buyAllocation, uint256 sellAllocation);
    event TradingStarted(uint256 timestamp);
    event TokensSold(uint256 tokenAmount, uint256 ethReceived);
    event ETHWithdrawn(address indexed to, uint256 amount);
    event tokensWithdrawn(address indexed token, address indexed to, uint256 amount);
    event TreasuryFundsWithdrawn(address indexed receiver, uint256 amount);
    event TreasuryReceiverUpdated(address indexed newReceiver);
    event DebugTransfer(
        string message,
        address from,
        address to,
        uint256 amount,
        uint256 relevantAmount,
        bool fromExempt,
        bool toExempt,
        bool isSwapping
    );
    event DebugBalance(
        string message,
        address account,
        uint256 balance
    );

    // --- Modifiers ---   

    /// @dev Prevents concurrent swap operations
    modifier swapLock() {
        require(!swapping, "Swap in progress");
        swapping = true;
        _;
        swapping = false;
    }

    // --- Constructor ---

    /// @notice Constructor initializes the token with Uniswap integration and initial settings
    /// @dev Sets up trading pair, exemptions, and initial token distribution
    /// @param _routerAddress The Uniswap V2 Router contract address
    /// @param _treasuryReceiver The address that will receive treasury funds
    /// @custom:security Critical initialization - sets permanent router/pair addresses and initial exemptions
    constructor(address _routerAddress, address _treasuryReceiver) Ownable(msg.sender) {
        require(_routerAddress != address(0), "Router cannot be zero address");
        require(_treasuryReceiver != address(0), "Treasury receiver cannot be zero address");
        
        router = IUniswapV2Router02(_routerAddress);
        pair = IUniswapV2Factory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        
        treasuryReceiver = payable(_treasuryReceiver);
        
        // Set initial exemptions
        isDuesExempt[address(this)] = true;     // Contract exempt
        isDuesExempt[_treasuryReceiver] = true; // Treasury exempt
        isDuesExempt[msg.sender] = true;        // Deployer exempt
        isDuesExempt[_routerAddress] = true;    // Router exempt
        
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    // --- External Functions ---

    // View Functions
    /// @notice Required IERC20Metadata implementation
    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public pure override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }
    function circulatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(address(0)); }
    function isTradingOpen() external view returns (bool) { return tradingOpen; }
    function getTotalDues(address from, address to) public view returns (uint256) { if (to == pair) return sellAllocation; if (from == pair) return buyAllocation; return 0; }

    // State-Changing Functions
    function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; }
    function transfer(address to, uint256 amount) public override returns (bool) { _transfer(msg.sender, to, amount); return true; }
    function transferFrom(address from, address to, uint256 amount) public override returns (bool) { _spendAllowance(from, msg.sender, amount); _transfer(from, to, amount); return true; }

    // Owner Functions
    /// @notice Enables trading functionality for the token
    /// @dev Can only be called once by owner to prevent manipulation
    /// @custom:security This is a critical function that enables public trading
    function startTrading() external onlyOwner {
        require(!tradingOpen, "Trading already enabled");
        tradingOpen = true;
        initStartTime = block.timestamp;
        emit TradingStarted(block.timestamp);
    }

    /// @notice Updates fee structure for buy/sell transactions
    /// @dev Fees are capped at MAX_ALLOCATION (5%)
    /// @param newbuyAllocation Transaction % allocated to the treasury on buys in basis points (e.g. 500 = 5%)
    /// @param newsellAllocation Transaction % allocated to the treasury on sells in basis points (e.g. 500 = 5%)
    function updateAllocations(uint256 newbuyAllocation, uint256 newsellAllocation) external onlyOwner {
        require(newbuyAllocation <= MAX_ALLOCATION, "Buy allocation exceeds maximum");
        require(newsellAllocation <= MAX_ALLOCATION, "Sell allocation exceeds maximum");
        buyAllocation = newbuyAllocation;
        sellAllocation = newsellAllocation;
        emit AllocationsUpdated(newbuyAllocation, newsellAllocation);
    }

    /// @notice Sets or removes due exemption status for an address
    /// @dev Exempt addresses can transfer without contributing dues to the Treasury
    /// @param _address The address to modify exemption for
    /// @param _enabled True to exempt from dues, false to make subject to dues
    /// @custom:security Critical for maintaining secure, trusted addresses list
    function setExemption(address _address, bool _enabled) external onlyOwner {
        isDuesExempt[_address] = _enabled;
    }

    /// @notice Updates the treasury wallet address
    /// @dev Critical function that determines where collected dues are sent
    /// @param _newReceiver New treasury wallet address
    /// @custom:security Securely validates address before updating
    function setTreasuryReceiver(address payable _newReceiver) external onlyOwner {
        require(_newReceiver != address(0), "Cannot be zero address");
        require(_newReceiver != treasuryReceiver, "Already set to this address");
        treasuryReceiver = _newReceiver;
        emit TreasuryReceiverUpdated(_newReceiver);
    }

    /// @notice Converts collected tokens to ETH for treasury
    /// @dev Uses Uniswap router for token-to-ETH swap
    /// @param tokenAmount Amount of tokens to convert to ETH (add 18 zeroes for decimals)
    /// @custom:security Non-reentrant and swap-locked for security
    function convertTokensToETH(uint256 tokenAmount) external onlyOwner nonReentrant swapLock {
        require(tokenAmount > 0 && tokenAmount <= _balances[address(this)], 
            "Invalid token amount");
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp + 300
        );
        uint256 newBalance = address(this).balance;
        pendingTreasuryFunds += (newBalance - initialBalance);
        emit TokensSold(tokenAmount, newBalance - initialBalance);
    }

    /// @notice Emergency function to reset the swapping flag if it gets stuck
    /// @dev This function allows the owner to reset the swapping flag in case a transaction fails mid-swap
    ///      and leaves the contract in a locked state. This is a safety mechanism and should rarely be needed.
    /// @custom:security-note Only callable by owner, should only be used if the contract is genuinely stuck
    function resetSwappingFlag() external onlyOwner { swapping = false; }

    /// @notice Withdraws ETH specifically accumulated from Treasury token-to-ETH swaps
    /// @dev Only withdraws from pendingTreasuryFunds counter to protect any accidental ETH sends
    /// @custom:security Separating this from withdrawETH() ensures accidentally sent ETH isn't swept into treasury
    function withdrawTreasuryFunds() external onlyOwner nonReentrant {
        uint256 amount = pendingTreasuryFunds;
        require(amount > 0, "No pending treasury funds");
        pendingTreasuryFunds = 0;
        (bool success, ) = treasuryReceiver.call{value: amount}("");
        require(success, "Treasury funds withdrawal failed");
        emit TreasuryFundsWithdrawn(treasuryReceiver, amount);
    }

    /// @notice Emergency function to withdraw all ETH from the contract
    /// @dev Should only be used if ETH was accidentally sent to contract
    /// @custom:security This will withdraw ALL ETH, including any accidentally sent by users
    function withdrawETH() external onlyOwner nonReentrant {
        uint256 balance = address(this).balance;
        require(balance > 0, "No ETH to withdraw");
        (bool success, ) = treasuryReceiver.call{value: balance}("");
        require(success, "ETH withdrawal failed");
        emit ETHWithdrawn(treasuryReceiver, balance);
    }

    /// @notice Withdraws any ERC20 tokens from the contract to the Treasury
    /// @dev Used to recover tokens that were accidentally sent to the contract
    /// @param tokenAddress The contract address of the token to withdraw
    /// @param amount The amount of tokens to withdraw (add 18 zeroes for decimals)
    function withdrawTokens(address tokenAddress, uint256 amount) external onlyOwner nonReentrant {
        IERC20(tokenAddress).safeTransfer(treasuryReceiver, amount);
        emit tokensWithdrawn(tokenAddress, treasuryReceiver, amount);
    }

    // --- Internal Functions ---

    /// @notice Internal transfer function with handling of dues for the Treasury and recipient
    /// @dev Implements deflationary mechanism through collection of dues to be added to the Treasury for liquidity and management, and to the recipient
    /// @param from Source address
    /// @param to Destination address
    /// @param amount Transfer amount
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        require(from != address(0), "ERC20: transfer from zero address");
        require(to != address(0), "ERC20: transfer to zero address");
        require(amount > 0, "ERC20: transfer amount must be positive");
        require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance");

        emit DebugTransfer(
            "Pre-Transfer State",
            from,
            to,
            amount,
            _balances[from],
            isDuesExempt[from],
            isDuesExempt[to],
            swapping
        );

        emit DebugBalance("Before Transfer", from, _balances[from]);
        
        checkTradingAllowed(from, to);

        uint256 dueAmount = 0;
        
        if (!swapping && !isDuesExempt[from] && !isDuesExempt[to]) {
            if (to == pair || from == pair) { 
                dueAmount = calculateDues(from, to, amount);
                
                emit DebugTransfer(
                    to == pair ? "Sell Fee Calculation" : "Buy Fee Calculation",
                    from,
                    to,
                    amount,
                    dueAmount,
                    isDuesExempt[from],
                    isDuesExempt[to],
                    swapping
                );
            }
        }

        if (dueAmount > 0) {
            _balances[from] -= amount;
            _balances[address(this)] += dueAmount;
            _balances[to] += (amount - dueAmount);
            
            emit Transfer(from, address(this), dueAmount);
            emit Transfer(from, to, amount - dueAmount);
            emit DebugBalance("After Fee Collection", address(this), _balances[address(this)]);
        } else {
            _balances[from] -= amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    /// @notice Internal function to handle token approvals
    /// @param owner The address that owns the tokens
    /// @param spender The address that will spend the tokens
    /// @param amount The amount of tokens to approve
    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from zero address");
        require(spender != address(0), "ERC20: approve to zero address");

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

    /// @notice Internal function to handle spending allowances
    /// @param owner The address that owns the tokens
    /// @param spender The address that will spend the tokens
    /// @param amount The amount of tokens to spend
    function _spendAllowance(address owner, address spender, uint256 amount) internal {
        uint256 currentAllowance = _allowances[owner][spender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /// @notice Validates if a transfer is allowed under current trading rules
    /// @dev Enforces trading restrictions and initialization periods
    /// @param from Source address of the transfer
    /// @param to Destination address of the transfer
    /// @custom:security Critical for preventing trading before proper initialization
    function checkTradingAllowed(address from, address to) internal view {
        if (!isDuesExempt[from] && !isDuesExempt[to]) {
            require(tradingOpen, "Trading not enabled");
            if (initStartTime > 0) {
                require(block.timestamp >= initStartTime, "Trading not started");
            }
        }
    }

    /// @notice Calculates fees for a transfer based on transaction type
    /// @dev Different fees for buys vs sells
    /// @param from Source address
    /// @param to Destination address
    /// @param amount Transfer amount
    /// @return Fee amount to be collected
    function calculateDues(address from, address to, uint256 amount) internal view returns (uint256) {
        uint256 due = (to == pair) ? sellAllocation : (from == pair) ? buyAllocation : 0;
        return (amount * due) / ALLOCATION_DENOMINATOR;
    }

    // --- Receive/Fallback ---
    
    /// @notice Handles direct ETH transfers from Uniswap router
    /// @dev Only accepts ETH from the router address
    /// @custom:security Prevents unauthorized ETH deposits
    receive() external payable { require(msg.sender == address(router), "POKELONX: Router only"); }

    /// @notice Rejects all other direct contract calls
    /// @dev Prevents accidental contract interactions
    /// @custom:security Prevents unauthorized contract interactions
    fallback() external payable { revert("POKELONX: Invalid call"); }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_routerAddress","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyAllocation","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellAllocation","type":"uint256"}],"name":"AllocationsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"}],"name":"DebugBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"relevantAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"fromExempt","type":"bool"},{"indexed":false,"internalType":"bool","name":"toExempt","type":"bool"},{"indexed":false,"internalType":"bool","name":"isSwapping","type":"bool"}],"name":"DebugTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ETHWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"TokensSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TreasuryFundsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newReceiver","type":"address"}],"name":"TreasuryReceiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensWithdrawn","type":"event"},{"stateMutability":"payable","type":"fallback"},{"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":"buyAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"convertTokensToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"getTotalDues","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDuesExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resetSwappingFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newReceiver","type":"address"}],"name":"setTreasuryReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"treasuryReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newbuyAllocation","type":"uint256"},{"internalType":"uint256","name":"newsellAllocation","type":"uint256"}],"name":"updateAllocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTreasuryFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526101f46008556101f460095534801561001c57600080fd5b506040516126f93803806126f983398101604081905261003b916103bd565b3361004581610351565b50600180556001600160a01b0382166100a55760405162461bcd60e51b815260206004820152601d60248201527f526f757465722063616e6e6f74206265207a65726f206164647265737300000060448201526064015b60405180910390fd5b6001600160a01b03811661010c5760405162461bcd60e51b815260206004820152602860248201527f54726561737572792072656365697665722063616e6e6f74206265207a65726f604482015267206164647265737360c01b606482015260840161009c565b6001600160a01b03821660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017a91906103f0565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ed91906103f0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561023a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025e91906103f0565b6001600160a01b0390811660a052600a80546001600160a01b031916838316908117825530600090815260076020526040808220805460ff199081166001908117909255938352818320805485168217905533835281832080548516821790559487168252902080549091169092179091556102dc90601290610511565b6102ea906311e1a300610520565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61032b6012600a610511565b610339906311e1a300610520565b60405190815260200160405180910390a35050610537565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146103b857600080fd5b919050565b600080604083850312156103d057600080fd5b6103d9836103a1565b91506103e7602084016103a1565b90509250929050565b60006020828403121561040257600080fd5b61040b826103a1565b9392505050565b634e487b7160e01b600052601160045260246000fd5b6001815b60018411156104635780850481111561044757610447610412565b600184161561045557908102905b60019390931c92800261042c565b935093915050565b60008261047a5750600161050b565b816104875750600061050b565b816001811461049d57600281146104a7576104c3565b600191505061050b565b60ff8411156104b8576104b8610412565b50506001821b61050b565b5060208310610133831016604e8410600b84101617156104e6575081810a61050b565b6104f36000198484610428565b806000190482111561050757610507610412565b0290505b92915050565b600061040b60ff84168361046b565b808202811582820484141761050b5761050b610412565b60805160a0516121506105a96000396000818161055201528181610745015281816107870152818161174d01528181611788015281816117f101528181611c040152611c3d0152600081816101cb0152818161065101528181610c9301528181610d4c0152610d7b01526121506000f3fe6080604052600436106101bb5760003560e01c806356a227bc116100ec578063a8aa1b311161008a578063c90566d711610064578063c90566d7146105b4578063dd62ed3e146105e4578063e086e5ec1461062a578063f887ea401461063f57610237565b8063a8aa1b3114610540578063a9059cbb14610574578063b71144a41461059457610237565b80637e1dafae116100c65780637e1dafae146104c65780638da5cb5b146104dc5780639358928b146104fa57806395d89b411461050f57610237565b806356a227bc146104505780636fc771d51461047057806370a082311461049057610237565b806323b872dd116101595780633deb8512116101335780633deb8512146103ee5780633ea6e07114610403578063447479db1461042357806356a060a21461043857610237565b806323b872dd1461039d578063293230b8146103bd578063313ce567146103d257610237565b8063095ea7b311610195578063095ea7b3146103145780631600cd221461034457806318160ddd146103685780631c51c9ae1461037d57610237565b806306b091f91461027857806306fdde031461029857806308b1fd8f146102dc57610237565b3661023757336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102355760405162461bcd60e51b8152602060048201526015602482015274504f4b454c4f4e583a20526f75746572206f6e6c7960581b60448201526064015b60405180910390fd5b005b60405162461bcd60e51b81526020600482015260166024820152751413d2d15313d3960e88125b9d985b1a590818d85b1b60521b604482015260640161022c565b34801561028457600080fd5b50610235610293366004611cc1565b610673565b3480156102a457600080fd5b506040805180820190915260098152680a0ded6cad8dedc40b60bb1b60208201525b6040516102d39190611d33565b60405180910390f35b3480156102e857600080fd5b50600a546102fc906001600160a01b031681565b6040516001600160a01b0390911681526020016102d3565b34801561032057600080fd5b5061033461032f366004611cc1565b610709565b60405190151581526020016102d3565b34801561035057600080fd5b5061035a60095481565b6040519081526020016102d3565b34801561037457600080fd5b5061035a610720565b34801561038957600080fd5b5061035a610398366004611d4d565b610741565b3480156103a957600080fd5b506103346103b8366004611d86565b6107d0565b3480156103c957600080fd5b506102356107f2565b3480156103de57600080fd5b50604051601281526020016102d3565b3480156103fa57600080fd5b5061023561089c565b34801561040f57600080fd5b5061023561041e366004611dd5565b6108b0565b34801561042f57600080fd5b506102356108e3565b34801561044457600080fd5b5060045460ff16610334565b34801561045c57600080fd5b5061023561046b366004611e03565b610a56565b34801561047c57600080fd5b5061023561048b366004611e20565b610b55565b34801561049c57600080fd5b5061035a6104ab366004611e03565b6001600160a01b031660009081526002602052604090205490565b3480156104d257600080fd5b5061035a60085481565b3480156104e857600080fd5b506000546001600160a01b03166102fc565b34801561050657600080fd5b5061035a610e80565b34801561051b57600080fd5b506040805180820190915260088152670a09e968a989e9cb60c31b60208201526102c6565b34801561054c57600080fd5b506102fc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561058057600080fd5b5061033461058f366004611cc1565b610f02565b3480156105a057600080fd5b506102356105af366004611e39565b610f0f565b3480156105c057600080fd5b506103346105cf366004611e03565b60076020526000908152604090205460ff1681565b3480156105f057600080fd5b5061035a6105ff366004611d4d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561063657600080fd5b50610235611002565b34801561064b57600080fd5b506102fc7f000000000000000000000000000000000000000000000000000000000000000081565b61067b61114e565b60026001540361069d5760405162461bcd60e51b815260040161022c90611e5b565b6002600155600a546106bc906001600160a01b038481169116836111b9565b600a546040518281526001600160a01b03918216918416907f2e8fbf54cecd6c94b9cc0a4444bef56d7836157ea1f144da84df7e568c9ae4829060200160405180910390a3505060018055565b600061071633848461127d565b5060015b92915050565b600061072e6012600a611f8f565b61073c906311e1a300611f9e565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610785575060095461071a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036107c7575060085461071a565b50600092915050565b60006107dd84338461138a565b6107e884848461141c565b5060019392505050565b6107fa61114e565b60045460ff161561084d5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161022c565b6004805460ff191660011790554260058190556040517f681fd8281014ec159aeba3c383293bbbc3db4d68f2c74f894d9f46a401f73fe4916108929190815260200190565b60405180910390a1565b6108a461114e565b6006805460ff19169055565b6108b861114e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6108eb61114e565b60026001540361090d5760405162461bcd60e51b815260040161022c90611e5b565b6002600155600b54806109625760405162461bcd60e51b815260206004820152601960248201527f4e6f2070656e64696e672074726561737572792066756e647300000000000000604482015260640161022c565b6000600b819055600a546040516001600160a01b039091169083908381818185875af1925050503d80600081146109b5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ba565b606091505b5050905080610a0b5760405162461bcd60e51b815260206004820181905260248201527f54726561737572792066756e6473207769746864726177616c206661696c6564604482015260640161022c565b600a546040518381526001600160a01b03909116907fb042954b622edc6d2a1c2e7dc12e096a496befd792164704a0afdd40860cfa28906020015b60405180910390a2505060018055565b610a5e61114e565b6001600160a01b038116610aad5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206265207a65726f206164647265737360501b604482015260640161022c565b600a546001600160a01b0390811690821603610b0b5760405162461bcd60e51b815260206004820152601b60248201527f416c72656164792073657420746f207468697320616464726573730000000000604482015260640161022c565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fbb7e0559325d38fa70a0678dc6eb9e30e3bb287dd72120517eab06ff80fd87c390600090a250565b610b5d61114e565b600260015403610b7f5760405162461bcd60e51b815260040161022c90611e5b565b600260015560065460ff1615610bca5760405162461bcd60e51b815260206004820152601060248201526f5377617020696e2070726f677265737360801b604482015260640161022c565b6006805460ff191660011790558015801590610bf55750306000908152600260205260409020548111155b610c385760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b604482015260640161022c565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110610c7157610c71611fb5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d139190611fcb565b81600181518110610d2657610d26611fb5565b60200260200101906001600160a01b031690816001600160a01b031681525050610d71307f00000000000000000000000000000000000000000000000000000000000000008561127d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac9478460008430610db14261012c611fe8565b6040518663ffffffff1660e01b8152600401610dd1959493929190611ffb565b600060405180830381600087803b158015610deb57600080fd5b505af1158015610dff573d6000803e3d6000fd5b50479250610e1191508490508261206d565b600b6000828254610e229190611fe8565b909155507f9745885914207e14787933537f5e0fc3685e9b3a89eeeecbc1d10207baa4c790905084610e54858461206d565b6040805192835260208301919091520160405180910390a150506006805460ff19169055505060018055565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54909190610ee06012600a611f8f565b610eee906311e1a300611f9e565b610ef8919061206d565b61073c919061206d565b600061071633848461141c565b610f1761114e565b6101f4821115610f695760405162461bcd60e51b815260206004820152601e60248201527f42757920616c6c6f636174696f6e2065786365656473206d6178696d756d0000604482015260640161022c565b6101f4811115610fbb5760405162461bcd60e51b815260206004820152601f60248201527f53656c6c20616c6c6f636174696f6e2065786365656473206d6178696d756d00604482015260640161022c565b6008829055600981905560408051838152602081018390527f56c83dc0d8206909d951c769c76691f345636edcb9f3f318f3a5acdbded5a37a910160405180910390a15050565b61100a61114e565b60026001540361102c5760405162461bcd60e51b815260040161022c90611e5b565b600260015547806110745760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b604482015260640161022c565b600a546040516000916001600160a01b03169083908381818185875af1925050503d80600081146110c1576040519150601f19603f3d011682016040523d82523d6000602084013e6110c6565b606091505b505090508061110f5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b604482015260640161022c565b600a546040518381526001600160a01b03909116907f94b2de810873337ed265c5f8cf98c9cffefa06b8607f9a2f1fbaebdfbcfbef1c90602001610a46565b336111616000546001600160a01b031690565b6001600160a01b0316146111b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161022c565b565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190612080565b6112785760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c6564000000000000604482015260640161022c565b505050565b6001600160a01b0383166112d35760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f2061646472657373604482015260640161022c565b6001600160a01b0382166113295760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f20616464726573730000604482015260640161022c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03808416600090815260036020908152604080832093861683529290522054600019811461141657818110156114095760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161022c565b611416848484840361127d565b50505050565b6001600160a01b03831661147c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b606482015260840161022c565b6001600160a01b0382166114d25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161022c565b600081116115325760405162461bcd60e51b815260206004820152602760248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520706044820152666f73697469766560c81b606482015260840161022c565b6001600160a01b0383166000908152600260205260409020548111156115a95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161022c565b6001600160a01b03838116600081815260026020908152604080832054600783528184205495881680855293829020546006548351610100808252601290820152715072652d5472616e7366657220537461746560701b610120820152948501969096528383019490945260608301879052608083015260ff948516151560a0830152918416151560c082015292909116151560e0830152517fb28c0462b4c909f87f5af813a5676f446ea157db17721de47be95a12e9898bcf918190036101400190a16001600160a01b0383166000818152600260209081526040918290205482516060808252600f908201526e2132b337b932902a3930b739b332b960891b60808201529182019390935280820192909252517f28d7b9b2f784cfd77a99878b6ee7ac54e22d1a1b3cd542a1992bc36993b213c19181900360a00190a16116f28383611b1c565b60065460009060ff1615801561172157506001600160a01b03841660009081526007602052604090205460ff16155b801561174657506001600160a01b03831660009081526007602052604090205460ff16155b156118d8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806117bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b156118d8576117cc848484611bff565b90507fb28c0462b4c909f87f5af813a5676f446ea157db17721de47be95a12e9898bcf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146118595760405180604001604052806013815260200172213abc902332b29021b0b631bab630ba34b7b760691b815250611887565b6040518060400160405280601481526020017329b2b636102332b29021b0b631bab630ba34b7b760611b8152505b6001600160a01b03808716600090815260076020526040808220549288168252908190205460065491516118cf94938a938a938a938a9360ff9081169392811692169061209d565b60405180910390a15b8015611a6d576001600160a01b0384166000908152600260205260408120805484929061190690849061206d565b9091555050306000908152600260205260408120805483929061192a908490611fe8565b9091555061193a9050818361206d565b6001600160a01b03841660009081526002602052604081208054909190611962908490611fe8565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119e0848661206d565b60405190815260200160405180910390a33060008181526002602090815260409182902054825160608082526014908201527320b33a32b9102332b29021b7b63632b1ba34b7b760611b60808201529182019390935280820192909252517f28d7b9b2f784cfd77a99878b6ee7ac54e22d1a1b3cd542a1992bc36993b213c19181900360a00190a1611416565b6001600160a01b03841660009081526002602052604081208054849290611a9590849061206d565b90915550506001600160a01b03831660009081526002602052604081208054849290611ac2908490611fe8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0e91815260200190565b60405180910390a350505050565b6001600160a01b03821660009081526007602052604090205460ff16158015611b5e57506001600160a01b03811660009081526007602052604090205460ff16155b15611bfb5760045460ff16611bab5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161022c565b60055415611bfb57600554421015611bfb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd081cdd185c9d1959606a1b604482015260640161022c565b5050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614611c83577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614611c7b576000611c87565b600854611c87565b6009545b9050612710611c968285611f9e565b611ca091906120f8565b95945050505050565b6001600160a01b0381168114611cbe57600080fd5b50565b60008060408385031215611cd457600080fd5b8235611cdf81611ca9565b946020939093013593505050565b6000815180845260005b81811015611d1357602081850181015186830182015201611cf7565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611d466020830184611ced565b9392505050565b60008060408385031215611d6057600080fd5b8235611d6b81611ca9565b91506020830135611d7b81611ca9565b809150509250929050565b600080600060608486031215611d9b57600080fd5b8335611da681611ca9565b92506020840135611db681611ca9565b929592945050506040919091013590565b8015158114611cbe57600080fd5b60008060408385031215611de857600080fd5b8235611df381611ca9565b91506020830135611d7b81611dc7565b600060208284031215611e1557600080fd5b8135611d4681611ca9565b600060208284031215611e3257600080fd5b5035919050565b60008060408385031215611e4c57600080fd5b50508035926020909101359150565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115611ee357808504811115611ec757611ec7611e92565b6001841615611ed557908102905b60019390931c928002611eac565b935093915050565b600082611efa5750600161071a565b81611f075750600061071a565b8160018114611f1d5760028114611f2757611f43565b600191505061071a565b60ff841115611f3857611f38611e92565b50506001821b61071a565b5060208310610133831016604e8410600b8410161715611f66575081810a61071a565b611f736000198484611ea8565b8060001904821115611f8757611f87611e92565b029392505050565b6000611d4660ff841683611eeb565b808202811582820484141761071a5761071a611e92565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611fdd57600080fd5b8151611d4681611ca9565b8082018082111561071a5761071a611e92565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b8181101561204d5783516001600160a01b0316835260209384019390920191600101612026565b50506001600160a01b039590951660608401525050608001529392505050565b8181038181111561071a5761071a611e92565b60006020828403121561209257600080fd5b8151611d4681611dc7565b610100815260006120b261010083018b611ced565b6001600160a01b03998a1660208401529790981660408201526060810195909552608085019390935290151560a0840152151560c0830152151560e09091015292915050565b60008261211557634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b5db26121442b42c27ca395425a9dfb3095c396e88a5d77dc8c4cc2f68da895664736f6c634300081c00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000204d7ea51bbc84db485da49605c15a737ffe5bff

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806356a227bc116100ec578063a8aa1b311161008a578063c90566d711610064578063c90566d7146105b4578063dd62ed3e146105e4578063e086e5ec1461062a578063f887ea401461063f57610237565b8063a8aa1b3114610540578063a9059cbb14610574578063b71144a41461059457610237565b80637e1dafae116100c65780637e1dafae146104c65780638da5cb5b146104dc5780639358928b146104fa57806395d89b411461050f57610237565b806356a227bc146104505780636fc771d51461047057806370a082311461049057610237565b806323b872dd116101595780633deb8512116101335780633deb8512146103ee5780633ea6e07114610403578063447479db1461042357806356a060a21461043857610237565b806323b872dd1461039d578063293230b8146103bd578063313ce567146103d257610237565b8063095ea7b311610195578063095ea7b3146103145780631600cd221461034457806318160ddd146103685780631c51c9ae1461037d57610237565b806306b091f91461027857806306fdde031461029857806308b1fd8f146102dc57610237565b3661023757336001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d16146102355760405162461bcd60e51b8152602060048201526015602482015274504f4b454c4f4e583a20526f75746572206f6e6c7960581b60448201526064015b60405180910390fd5b005b60405162461bcd60e51b81526020600482015260166024820152751413d2d15313d3960e88125b9d985b1a590818d85b1b60521b604482015260640161022c565b34801561028457600080fd5b50610235610293366004611cc1565b610673565b3480156102a457600080fd5b506040805180820190915260098152680a0ded6cad8dedc40b60bb1b60208201525b6040516102d39190611d33565b60405180910390f35b3480156102e857600080fd5b50600a546102fc906001600160a01b031681565b6040516001600160a01b0390911681526020016102d3565b34801561032057600080fd5b5061033461032f366004611cc1565b610709565b60405190151581526020016102d3565b34801561035057600080fd5b5061035a60095481565b6040519081526020016102d3565b34801561037457600080fd5b5061035a610720565b34801561038957600080fd5b5061035a610398366004611d4d565b610741565b3480156103a957600080fd5b506103346103b8366004611d86565b6107d0565b3480156103c957600080fd5b506102356107f2565b3480156103de57600080fd5b50604051601281526020016102d3565b3480156103fa57600080fd5b5061023561089c565b34801561040f57600080fd5b5061023561041e366004611dd5565b6108b0565b34801561042f57600080fd5b506102356108e3565b34801561044457600080fd5b5060045460ff16610334565b34801561045c57600080fd5b5061023561046b366004611e03565b610a56565b34801561047c57600080fd5b5061023561048b366004611e20565b610b55565b34801561049c57600080fd5b5061035a6104ab366004611e03565b6001600160a01b031660009081526002602052604090205490565b3480156104d257600080fd5b5061035a60085481565b3480156104e857600080fd5b506000546001600160a01b03166102fc565b34801561050657600080fd5b5061035a610e80565b34801561051b57600080fd5b506040805180820190915260088152670a09e968a989e9cb60c31b60208201526102c6565b34801561054c57600080fd5b506102fc7f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f81565b34801561058057600080fd5b5061033461058f366004611cc1565b610f02565b3480156105a057600080fd5b506102356105af366004611e39565b610f0f565b3480156105c057600080fd5b506103346105cf366004611e03565b60076020526000908152604090205460ff1681565b3480156105f057600080fd5b5061035a6105ff366004611d4d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561063657600080fd5b50610235611002565b34801561064b57600080fd5b506102fc7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b61067b61114e565b60026001540361069d5760405162461bcd60e51b815260040161022c90611e5b565b6002600155600a546106bc906001600160a01b038481169116836111b9565b600a546040518281526001600160a01b03918216918416907f2e8fbf54cecd6c94b9cc0a4444bef56d7836157ea1f144da84df7e568c9ae4829060200160405180910390a3505060018055565b600061071633848461127d565b5060015b92915050565b600061072e6012600a611f8f565b61073c906311e1a300611f9e565b905090565b60007f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316826001600160a01b031603610785575060095461071a565b7f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316836001600160a01b0316036107c7575060085461071a565b50600092915050565b60006107dd84338461138a565b6107e884848461141c565b5060019392505050565b6107fa61114e565b60045460ff161561084d5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161022c565b6004805460ff191660011790554260058190556040517f681fd8281014ec159aeba3c383293bbbc3db4d68f2c74f894d9f46a401f73fe4916108929190815260200190565b60405180910390a1565b6108a461114e565b6006805460ff19169055565b6108b861114e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6108eb61114e565b60026001540361090d5760405162461bcd60e51b815260040161022c90611e5b565b6002600155600b54806109625760405162461bcd60e51b815260206004820152601960248201527f4e6f2070656e64696e672074726561737572792066756e647300000000000000604482015260640161022c565b6000600b819055600a546040516001600160a01b039091169083908381818185875af1925050503d80600081146109b5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ba565b606091505b5050905080610a0b5760405162461bcd60e51b815260206004820181905260248201527f54726561737572792066756e6473207769746864726177616c206661696c6564604482015260640161022c565b600a546040518381526001600160a01b03909116907fb042954b622edc6d2a1c2e7dc12e096a496befd792164704a0afdd40860cfa28906020015b60405180910390a2505060018055565b610a5e61114e565b6001600160a01b038116610aad5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206265207a65726f206164647265737360501b604482015260640161022c565b600a546001600160a01b0390811690821603610b0b5760405162461bcd60e51b815260206004820152601b60248201527f416c72656164792073657420746f207468697320616464726573730000000000604482015260640161022c565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fbb7e0559325d38fa70a0678dc6eb9e30e3bb287dd72120517eab06ff80fd87c390600090a250565b610b5d61114e565b600260015403610b7f5760405162461bcd60e51b815260040161022c90611e5b565b600260015560065460ff1615610bca5760405162461bcd60e51b815260206004820152601060248201526f5377617020696e2070726f677265737360801b604482015260640161022c565b6006805460ff191660011790558015801590610bf55750306000908152600260205260409020548111155b610c385760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b604482015260640161022c565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110610c7157610c71611fb5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d139190611fcb565b81600181518110610d2657610d26611fb5565b60200260200101906001600160a01b031690816001600160a01b031681525050610d71307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8561127d565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac9478460008430610db14261012c611fe8565b6040518663ffffffff1660e01b8152600401610dd1959493929190611ffb565b600060405180830381600087803b158015610deb57600080fd5b505af1158015610dff573d6000803e3d6000fd5b50479250610e1191508490508261206d565b600b6000828254610e229190611fe8565b909155507f9745885914207e14787933537f5e0fc3685e9b3a89eeeecbc1d10207baa4c790905084610e54858461206d565b6040805192835260208301919091520160405180910390a150506006805460ff19169055505060018055565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54909190610ee06012600a611f8f565b610eee906311e1a300611f9e565b610ef8919061206d565b61073c919061206d565b600061071633848461141c565b610f1761114e565b6101f4821115610f695760405162461bcd60e51b815260206004820152601e60248201527f42757920616c6c6f636174696f6e2065786365656473206d6178696d756d0000604482015260640161022c565b6101f4811115610fbb5760405162461bcd60e51b815260206004820152601f60248201527f53656c6c20616c6c6f636174696f6e2065786365656473206d6178696d756d00604482015260640161022c565b6008829055600981905560408051838152602081018390527f56c83dc0d8206909d951c769c76691f345636edcb9f3f318f3a5acdbded5a37a910160405180910390a15050565b61100a61114e565b60026001540361102c5760405162461bcd60e51b815260040161022c90611e5b565b600260015547806110745760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b604482015260640161022c565b600a546040516000916001600160a01b03169083908381818185875af1925050503d80600081146110c1576040519150601f19603f3d011682016040523d82523d6000602084013e6110c6565b606091505b505090508061110f5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b604482015260640161022c565b600a546040518381526001600160a01b03909116907f94b2de810873337ed265c5f8cf98c9cffefa06b8607f9a2f1fbaebdfbcfbef1c90602001610a46565b336111616000546001600160a01b031690565b6001600160a01b0316146111b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161022c565b565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190612080565b6112785760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c6564000000000000604482015260640161022c565b505050565b6001600160a01b0383166112d35760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f2061646472657373604482015260640161022c565b6001600160a01b0382166113295760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f20616464726573730000604482015260640161022c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03808416600090815260036020908152604080832093861683529290522054600019811461141657818110156114095760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161022c565b611416848484840361127d565b50505050565b6001600160a01b03831661147c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b606482015260840161022c565b6001600160a01b0382166114d25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161022c565b600081116115325760405162461bcd60e51b815260206004820152602760248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520706044820152666f73697469766560c81b606482015260840161022c565b6001600160a01b0383166000908152600260205260409020548111156115a95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161022c565b6001600160a01b03838116600081815260026020908152604080832054600783528184205495881680855293829020546006548351610100808252601290820152715072652d5472616e7366657220537461746560701b610120820152948501969096528383019490945260608301879052608083015260ff948516151560a0830152918416151560c082015292909116151560e0830152517fb28c0462b4c909f87f5af813a5676f446ea157db17721de47be95a12e9898bcf918190036101400190a16001600160a01b0383166000818152600260209081526040918290205482516060808252600f908201526e2132b337b932902a3930b739b332b960891b60808201529182019390935280820192909252517f28d7b9b2f784cfd77a99878b6ee7ac54e22d1a1b3cd542a1992bc36993b213c19181900360a00190a16116f28383611b1c565b60065460009060ff1615801561172157506001600160a01b03841660009081526007602052604090205460ff16155b801561174657506001600160a01b03831660009081526007602052604090205460ff16155b156118d8577f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316836001600160a01b031614806117bc57507f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316846001600160a01b0316145b156118d8576117cc848484611bff565b90507fb28c0462b4c909f87f5af813a5676f446ea157db17721de47be95a12e9898bcf7f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316846001600160a01b0316146118595760405180604001604052806013815260200172213abc902332b29021b0b631bab630ba34b7b760691b815250611887565b6040518060400160405280601481526020017329b2b636102332b29021b0b631bab630ba34b7b760611b8152505b6001600160a01b03808716600090815260076020526040808220549288168252908190205460065491516118cf94938a938a938a938a9360ff9081169392811692169061209d565b60405180910390a15b8015611a6d576001600160a01b0384166000908152600260205260408120805484929061190690849061206d565b9091555050306000908152600260205260408120805483929061192a908490611fe8565b9091555061193a9050818361206d565b6001600160a01b03841660009081526002602052604081208054909190611962908490611fe8565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119e0848661206d565b60405190815260200160405180910390a33060008181526002602090815260409182902054825160608082526014908201527320b33a32b9102332b29021b7b63632b1ba34b7b760611b60808201529182019390935280820192909252517f28d7b9b2f784cfd77a99878b6ee7ac54e22d1a1b3cd542a1992bc36993b213c19181900360a00190a1611416565b6001600160a01b03841660009081526002602052604081208054849290611a9590849061206d565b90915550506001600160a01b03831660009081526002602052604081208054849290611ac2908490611fe8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0e91815260200190565b60405180910390a350505050565b6001600160a01b03821660009081526007602052604090205460ff16158015611b5e57506001600160a01b03811660009081526007602052604090205460ff16155b15611bfb5760045460ff16611bab5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161022c565b60055415611bfb57600554421015611bfb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd081cdd185c9d1959606a1b604482015260640161022c565b5050565b6000807f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316846001600160a01b031614611c83577f000000000000000000000000e5b48d21dd5a8571ce832273570bfd13afd7f30f6001600160a01b0316856001600160a01b031614611c7b576000611c87565b600854611c87565b6009545b9050612710611c968285611f9e565b611ca091906120f8565b95945050505050565b6001600160a01b0381168114611cbe57600080fd5b50565b60008060408385031215611cd457600080fd5b8235611cdf81611ca9565b946020939093013593505050565b6000815180845260005b81811015611d1357602081850181015186830182015201611cf7565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611d466020830184611ced565b9392505050565b60008060408385031215611d6057600080fd5b8235611d6b81611ca9565b91506020830135611d7b81611ca9565b809150509250929050565b600080600060608486031215611d9b57600080fd5b8335611da681611ca9565b92506020840135611db681611ca9565b929592945050506040919091013590565b8015158114611cbe57600080fd5b60008060408385031215611de857600080fd5b8235611df381611ca9565b91506020830135611d7b81611dc7565b600060208284031215611e1557600080fd5b8135611d4681611ca9565b600060208284031215611e3257600080fd5b5035919050565b60008060408385031215611e4c57600080fd5b50508035926020909101359150565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115611ee357808504811115611ec757611ec7611e92565b6001841615611ed557908102905b60019390931c928002611eac565b935093915050565b600082611efa5750600161071a565b81611f075750600061071a565b8160018114611f1d5760028114611f2757611f43565b600191505061071a565b60ff841115611f3857611f38611e92565b50506001821b61071a565b5060208310610133831016604e8410600b8410161715611f66575081810a61071a565b611f736000198484611ea8565b8060001904821115611f8757611f87611e92565b029392505050565b6000611d4660ff841683611eeb565b808202811582820484141761071a5761071a611e92565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611fdd57600080fd5b8151611d4681611ca9565b8082018082111561071a5761071a611e92565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b8181101561204d5783516001600160a01b0316835260209384019390920191600101612026565b50506001600160a01b039590951660608401525050608001529392505050565b8181038181111561071a5761071a611e92565b60006020828403121561209257600080fd5b8151611d4681611dc7565b610100815260006120b261010083018b611ced565b6001600160a01b03998a1660208401529790981660408201526060810195909552608085019390935290151560a0840152151560c0830152151560e09091015292915050565b60008261211557634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b5db26121442b42c27ca395425a9dfb3095c396e88a5d77dc8c4cc2f68da895664736f6c634300081c0033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000204d7ea51bbc84db485da49605c15a737ffe5bff

-----Decoded View---------------
Arg [0] : _routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _treasuryReceiver (address): 0x204d7Ea51bBc84Db485DA49605C15a737FFe5bfF

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000204d7ea51bbc84db485da49605c15a737ffe5bff


Deployed Bytecode Sourcemap

4017:16707:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20405:10;-1:-1:-1;;;;;20427:6:0;20405:29;;20397:63;;;;-1:-1:-1;;;20397:63:0;;216:2:1;20397:63:0;;;198:21:1;255:2;235:18;;;228:30;-1:-1:-1;;;274:18:1;;;267:51;335:18;;20397:63:0;;;;;;;;;4017:16707;;20684:32;;-1:-1:-1;;;20684:32:0;;566:2:1;20684:32:0;;;548:21:1;605:2;585:18;;;578:30;-1:-1:-1;;;624:18:1;;;617:52;686:18;;20684:32:0;364:346:1;15046:243:0;;;;;;;;;;-1:-1:-1;15046:243:0;;;;;:::i;:::-;;:::i;7941:69::-;;;;;;;;;;-1:-1:-1;8002:5:0;;;;;;;;;;;;-1:-1:-1;;;8002:5:0;;;;7941:69;;;;;;;:::i;:::-;;;;;;;;5215:39;;;;;;;;;;-1:-1:-1;5215:39:0;;;;-1:-1:-1;;;;;5215:39:0;;;;;;-1:-1:-1;;;;;2033:32:1;;;2015:51;;2003:2;1988:18;5215:39:0;1853:219:1;8933:136:0;;;;;;;;;;-1:-1:-1;8933:136:0;;;;;:::i;:::-;;:::i;:::-;;;2242:14:1;;2235:22;2217:41;;2205:2;2190:18;8933:136:0;2077:187:1;5022:35:0;;;;;;;;;;;;;;;;;;;2415:25:1;;;2403:2;2388:18;5022:35:0;2269:177:1;8170:86:0;;;;;;;;;;;;;:::i;8722:170::-;;;;;;;;;;-1:-1:-1;8722:170:0;;;;;:::i;:::-;;:::i;9209:183::-;;;;;;;;;;-1:-1:-1;9209:183:0;;;;;:::i;:::-;;:::i;9638:228::-;;;;;;;;;;;;;:::i;8095:69::-;;;;;;;;;;-1:-1:-1;8095:69:0;;4275:2;3499:36:1;;3487:2;3472:18;8095:69:0;3357:184:1;13329:69:0;;;;;;;;;;;;;:::i;11051:126::-;;;;;;;;;;-1:-1:-1;11051:126:0;;;;;:::i;:::-;;:::i;13711:412::-;;;;;;;;;;;;;:::i;8639:77::-;;;;;;;;;;-1:-1:-1;8702:11:0;;;;8639:77;;11442:336;;;;;;;;;;-1:-1:-1;11442:336:0;;;;;:::i;:::-;;:::i;12066:843::-;;;;;;;;;;-1:-1:-1;12066:843:0;;;;;:::i;:::-;;:::i;8262:105::-;;;;;;;;;;-1:-1:-1;8262:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8346:18:0;8328:7;8346:18;;;:9;:18;;;;;;;8262:105;4974:34;;;;;;;;;;;;;;;;3223:73;;;;;;;;;;-1:-1:-1;3269:7:0;3287:6;-1:-1:-1;;;;;3287:6:0;3223:73;;8508:125;;;;;;;;;;;;;:::i;8016:73::-;;;;;;;;;;-1:-1:-1;8079:7:0;;;;;;;;;;;;-1:-1:-1;;;8079:7:0;;;;8016:73;;5149:29;;;;;;;;;;;;;;;9075:128;;;;;;;;;;-1:-1:-1;9075:128:0;;;;;:::i;:::-;;:::i;10220:444::-;;;;;;;;;;-1:-1:-1;10220:444:0;;;;;:::i;:::-;;:::i;4879:44::-;;;;;;;;;;-1:-1:-1;4879:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8373:129;;;;;;;;;;-1:-1:-1;8373:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;8472:18:0;;;8454:7;8472:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8373:129;14375:344;;;;;;;;;;;;;:::i;5100:42::-;;;;;;;;;;;;;;;15046:243;3198:13;:11;:13::i;:::-;3761:1:::1;3880:7;;:19:::0;3872:63:::1;;;;-1:-1:-1::0;;;3872:63:0::1;;;;;;;:::i;:::-;3761:1;3937:7;:18:::0;15185:16:::2;::::0;15151:59:::2;::::0;-1:-1:-1;;;;;15151:33:0;;::::2;::::0;15185:16:::2;15203:6:::0;15151:33:::2;:59::i;:::-;15256:16;::::0;15226:55:::2;::::0;2415:25:1;;;-1:-1:-1;;;;;15256:16:0;;::::2;::::0;15226:55;::::2;::::0;::::2;::::0;2403:2:1;2388:18;15226:55:0::2;;;;;;;-1:-1:-1::0;;3717:1:0::1;3960:22:::0;;15046:243::o;8933:136::-;9008:4;9016:37;9025:10;9037:7;9046:6;9016:8;:37::i;:::-;-1:-1:-1;9062:4:0;8933:136;;;;;:::o;8170:86::-;8223:7;4339:15;4275:2;4339;:15;:::i;:::-;4324:31;;:11;:31;:::i;:::-;8234:19;;8170:86;:::o;8722:170::-;8791:7;8812:4;-1:-1:-1;;;;;8806:10:0;:2;-1:-1:-1;;;;;8806:10:0;;8802:37;;-1:-1:-1;8825:14:0;;8818:21;;8802:37;8853:4;-1:-1:-1;;;;;8845:12:0;:4;-1:-1:-1;;;;;8845:12:0;;8841:38;;-1:-1:-1;8866:13:0;;8859:20;;8841:38;-1:-1:-1;8888:1:0;8722:170;;;;:::o;9209:183::-;9298:4;9306:41;9322:4;9328:10;9340:6;9306:15;:41::i;:::-;9349:27;9359:4;9365:2;9369:6;9349:9;:27::i;:::-;-1:-1:-1;9385:4:0;9209:183;;;;;:::o;9638:228::-;3198:13;:11;:13::i;:::-;9701:11:::1;::::0;::::1;;9700:12;9692:48;;;::::0;-1:-1:-1;;;9692:48:0;;7891:2:1;9692:48:0::1;::::0;::::1;7873:21:1::0;7930:2;7910:18;;;7903:30;7969:25;7949:18;;;7942:53;8012:18;;9692:48:0::1;7689:347:1::0;9692:48:0::1;9751:11;:18:::0;;-1:-1:-1;;9751:18:0::1;9765:4;9751:18;::::0;;9796:15:::1;9780:13;:31:::0;;;9827::::1;::::0;::::1;::::0;::::1;::::0;2415:25:1;;;2403:2;2388:18;;2269:177;9827:31:0::1;;;;;;;;9638:228::o:0;13329:69::-;3198:13;:11;:13::i;:::-;13379:8:::1;:16:::0;;-1:-1:-1;;13379:16:0::1;::::0;;13329:69::o;11051:126::-;3198:13;:11;:13::i;:::-;-1:-1:-1;;;;;11136:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:33;;-1:-1:-1;;11136:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11051:126::o;13711:412::-;3198:13;:11;:13::i;:::-;3761:1:::1;3880:7;;:19:::0;3872:63:::1;;;;-1:-1:-1::0;;;3872:63:0::1;;;;;;;:::i;:::-;3761:1;3937:7;:18:::0;13804:20:::2;::::0;13843:10;13835:48:::2;;;::::0;-1:-1:-1;;;13835:48:0;;8243:2:1;13835:48:0::2;::::0;::::2;8225:21:1::0;8282:2;8262:18;;;8255:30;8321:27;8301:18;;;8294:55;8366:18;;13835:48:0::2;8041:349:1::0;13835:48:0::2;13917:1;13894:20;:24:::0;;;13948:16:::2;::::0;:40:::2;::::0;-1:-1:-1;;;;;13948:16:0;;::::2;::::0;13977:6;;13917:1;13948:40;13917:1;13948:40;13977:6;13948:16;:40:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13929:59;;;14007:7;13999:52;;;::::0;-1:-1:-1;;;13999:52:0;;8807:2:1;13999:52:0::2;::::0;::::2;8789:21:1::0;;;8826:18;;;8819:30;8885:34;8865:18;;;8858:62;8937:18;;13999:52:0::2;8605:356:1::0;13999:52:0::2;14090:16;::::0;14067:48:::2;::::0;2415:25:1;;;-1:-1:-1;;;;;14090:16:0;;::::2;::::0;14067:48:::2;::::0;2403:2:1;2388:18;14067:48:0::2;;;;;;;;-1:-1:-1::0;;3717:1:0::1;3960:22:::0;;13711:412::o;11442:336::-;3198:13;:11;:13::i;:::-;-1:-1:-1;;;;;11539:26:0;::::1;11531:61;;;::::0;-1:-1:-1;;;11531:61:0;;9168:2:1;11531:61:0::1;::::0;::::1;9150:21:1::0;9207:2;9187:18;;;9180:30;-1:-1:-1;;;9226:18:1;;;9219:52;9288:18;;11531:61:0::1;8966:346:1::0;11531:61:0::1;11627:16;::::0;-1:-1:-1;;;;;11627:16:0;;::::1;11611:32:::0;;::::1;::::0;11603:72:::1;;;::::0;-1:-1:-1;;;11603:72:0;;9519:2:1;11603:72:0::1;::::0;::::1;9501:21:1::0;9558:2;9538:18;;;9531:30;9597:29;9577:18;;;9570:57;9644:18;;11603:72:0::1;9317:351:1::0;11603:72:0::1;11686:16;:31:::0;;-1:-1:-1;;;;;;11686:31:0::1;-1:-1:-1::0;;;;;11686:31:0;::::1;::::0;;::::1;::::0;;;11733:37:::1;::::0;::::1;::::0;-1:-1:-1;;11733:37:0::1;11442:336:::0;:::o;12066:843::-;3198:13;:11;:13::i;:::-;3761:1:::1;3880:7;;:19:::0;3872:63:::1;;;;-1:-1:-1::0;;;3872:63:0::1;;;;;;;:::i;:::-;3761:1;3937:7;:18:::0;6278:8:::2;::::0;::::2;;6277:9;6269:38;;;::::0;-1:-1:-1;;;6269:38:0;;9875:2:1;6269:38:0::2;::::0;::::2;9857:21:1::0;9914:2;9894:18;;;9887:30;-1:-1:-1;;;9933:18:1;;;9926:46;9989:18;;6269:38:0::2;9673:340:1::0;6269:38:0::2;6318:8;:15:::0;;-1:-1:-1;;6318:15:0::2;6329:4;6318:15;::::0;;12175;;;;;:58:::3;;-1:-1:-1::0;12227:4:0::3;12209:24;::::0;;;:9:::3;:24;::::0;;;;;12194:39;::::3;;12175:58;12167:105;;;::::0;-1:-1:-1;;;12167:105:0;;10220:2:1;12167:105:0::3;::::0;::::3;10202:21:1::0;10259:2;10239:18;;;10232:30;-1:-1:-1;;;10278:18:1;;;10271:50;10338:18;;12167:105:0::3;10018:344:1::0;12167:105:0::3;12364:16;::::0;;12378:1:::3;12364:16:::0;;;;;::::3;::::0;;12308:21:::3;::::0;12283:22:::3;::::0;12364:16;12378:1;12364:16:::3;::::0;::::3;::::0;;::::3;::::0;::::3;;::::0;-1:-1:-1;12364:16:0::3;12340:40;;12409:4;12391;12396:1;12391:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12391:23:0::3;;;-1:-1:-1::0;;;;;12391:23:0::3;;;::::0;::::3;12435:6;-1:-1:-1::0;;;;;12435:11:0::3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12425:4;12430:1;12425:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12425:23:0::3;;;-1:-1:-1::0;;;;;12425:23:0::3;;;::::0;::::3;12459:53;12476:4;12491:6;12500:11;12459:8;:53::i;:::-;-1:-1:-1::0;;;;;12523:6:0::3;:57;;12595:11:::0;12621:1:::3;12637:4:::0;12664::::3;12684:21;:15;12702:3;12684:21;:::i;:::-;12523:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;12748:21:0::3;::::0;-1:-1:-1;12805:27:0::3;::::0;-1:-1:-1;12818:14:0;;-1:-1:-1;12748:21:0;12805:27:::3;:::i;:::-;12780:20;;:53;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;12849:52:0::3;::::0;-1:-1:-1;12860:11:0;12873:27:::3;12886:14:::0;12873:10;:27:::3;:::i;:::-;12849:52;::::0;;12288:25:1;;;12344:2;12329:18;;12322:34;;;;12261:18;12849:52:0::3;;;;;;;-1:-1:-1::0;;6356:8:0::2;:16:::0;;-1:-1:-1;;6356:16:0::2;::::0;;-1:-1:-1;;6356:16:0;3960:22;;12066:843::o;8508:125::-;8346:9;:18;;;;4515:42;8558:7;8346:18;;;;;8558:7;;8346:18;4339:15;4275:2;4339;:15;:::i;:::-;4324:31;;:11;:31;:::i;:::-;8576:30;;;;:::i;:::-;:54;;;;:::i;9075:128::-;9146:4;9154:33;9164:10;9176:2;9180:6;9154:9;:33::i;10220:444::-;3198:13;:11;:13::i;:::-;4404:3:::1;10338:16;:34;;10330:77;;;::::0;-1:-1:-1;;;10330:77:0;;12569:2:1;10330:77:0::1;::::0;::::1;12551:21:1::0;12608:2;12588:18;;;12581:30;12647:32;12627:18;;;12620:60;12697:18;;10330:77:0::1;12367:354:1::0;10330:77:0::1;4404:3;10426:17;:35;;10418:79;;;::::0;-1:-1:-1;;;10418:79:0;;12928:2:1;10418:79:0::1;::::0;::::1;12910:21:1::0;12967:2;12947:18;;;12940:30;13006:33;12986:18;;;12979:61;13057:18;;10418:79:0::1;12726:355:1::0;10418:79:0::1;10508:13;:32:::0;;;10551:14:::1;:34:::0;;;10601:55:::1;::::0;;12288:25:1;;;12344:2;12329:18;;12322:34;;;10601:55:0::1;::::0;12261:18:1;10601:55:0::1;;;;;;;10220:444:::0;;:::o;14375:344::-;3198:13;:11;:13::i;:::-;3761:1:::1;3880:7;;:19:::0;3872:63:::1;;;;-1:-1:-1::0;;;3872:63:0::1;;;;;;;:::i;:::-;3761:1;3937:7;:18:::0;14459:21:::2;14499:11:::0;14491:42:::2;;;::::0;-1:-1:-1;;;14491:42:0;;13288:2:1;14491:42:0::2;::::0;::::2;13270:21:1::0;13327:2;13307:18;;;13300:30;-1:-1:-1;;;13346:18:1;;;13339:48;13404:18;;14491:42:0::2;13086:342:1::0;14491:42:0::2;14563:16;::::0;:41:::2;::::0;14545:12:::2;::::0;-1:-1:-1;;;;;14563:16:0::2;::::0;14592:7;;14545:12;14563:41;14545:12;14563:41;14592:7;14563:16;:41:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14544:60;;;14623:7;14615:41;;;::::0;-1:-1:-1;;;14615:41:0;;13635:2:1;14615:41:0::2;::::0;::::2;13617:21:1::0;13674:2;13654:18;;;13647:30;-1:-1:-1;;;13693:18:1;;;13686:51;13754:18;;14615:41:0::2;13433:345:1::0;14615:41:0::2;14685:16;::::0;14672:39:::2;::::0;2415:25:1;;;-1:-1:-1;;;;;14685:16:0;;::::2;::::0;14672:39:::2;::::0;2403:2:1;2388:18;14672:39:0::2;2269:177:1::0;3302:116:0;3368:10;3357:7;3269;3287:6;-1:-1:-1;;;;;3287:6:0;;3223:73;3357:7;-1:-1:-1;;;;;3357:21:0;;3349:66;;;;-1:-1:-1;;;3349:66:0;;13985:2:1;3349:66:0;;;13967:21:1;;;14004:18;;;13997:30;14063:34;14043:18;;;14036:62;14115:18;;3349:66:0;13783:356:1;3349:66:0;3302:116::o;2763:141::-;2845:25;;-1:-1:-1;;;2845:25:0;;-1:-1:-1;;;;;14336:32:1;;;2845:25:0;;;14318:51:1;14385:18;;;14378:34;;;2845:14:0;;;;;14291:18:1;;2845:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2837:64;;;;-1:-1:-1;;;2837:64:0;;14875:2:1;2837:64:0;;;14857:21:1;14914:2;14894:18;;;14887:30;14953:28;14933:18;;;14926:56;14999:18;;2837:64:0;14673:350:1;2837:64:0;2763:141;;;:::o;17920:330::-;-1:-1:-1;;;;;18014:19:0;;18006:64;;;;-1:-1:-1;;;18006:64:0;;15230:2:1;18006:64:0;;;15212:21:1;;;15249:18;;;15242:30;15308:34;15288:18;;;15281:62;15360:18;;18006:64:0;15028:356:1;18006:64:0;-1:-1:-1;;;;;18089:21:0;;18081:64;;;;-1:-1:-1;;;18081:64:0;;15591:2:1;18081:64:0;;;15573:21:1;15630:2;15610:18;;;15603:30;15669:32;15649:18;;;15642:60;15719:18;;18081:64:0;15389:354:1;18081:64:0;-1:-1:-1;;;;;18158:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18210:32;;2415:25:1;;;18210:32:0;;2388:18:1;18210:32:0;;;;;;;17920:330;;;:::o;18494:413::-;-1:-1:-1;;;;;18614:18:0;;;18587:24;18614:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;18656:37:0;;18652:248;;18738:6;18718:16;:26;;18710:68;;;;-1:-1:-1;;;18710:68:0;;15950:2:1;18710:68:0;;;15932:21:1;15989:2;15969:18;;;15962:30;16028:31;16008:18;;;16001:59;16077:18;;18710:68:0;15748:353:1;18710:68:0;18822:51;18831:5;18838:7;18866:6;18847:16;:25;18822:8;:51::i;:::-;18576:331;18494:413;;;:::o;15699:1979::-;-1:-1:-1;;;;;15822:18:0;;15814:64;;;;-1:-1:-1;;;15814:64:0;;16308:2:1;15814:64:0;;;16290:21:1;16347:2;16327:18;;;16320:30;16386:34;16366:18;;;16359:62;-1:-1:-1;;;16437:18:1;;;16430:31;16478:19;;15814:64:0;16106:397:1;15814:64:0;-1:-1:-1;;;;;15897:16:0;;15889:60;;;;-1:-1:-1;;;15889:60:0;;16710:2:1;15889:60:0;;;16692:21:1;16749:2;16729:18;;;16722:30;16788:33;16768:18;;;16761:61;16839:18;;15889:60:0;16508:355:1;15889:60:0;15977:1;15968:6;:10;15960:62;;;;-1:-1:-1;;;15960:62:0;;17070:2:1;15960:62:0;;;17052:21:1;17109:2;17089:18;;;17082:30;17148:34;17128:18;;;17121:62;-1:-1:-1;;;17199:18:1;;;17192:37;17246:19;;15960:62:0;16868:403:1;15960:62:0;-1:-1:-1;;;;;16041:15:0;;;;;;:9;:15;;;;;;:25;-1:-1:-1;16041:25:0;16033:76;;;;-1:-1:-1;;;16033:76:0;;17478:2:1;16033:76:0;;;17460:21:1;17517:2;17497:18;;;17490:30;17556:34;17536:18;;;17529:62;-1:-1:-1;;;17607:18:1;;;17600:36;17653:19;;16033:76:0;17276:402:1;16033:76:0;-1:-1:-1;;;;;16247:15:0;;;;;;;:9;:15;;;;;;;;;16277:12;:18;;;;;;16310:16;;;;;;;;;;;16341:8;;16127:233;;18063:3:1;18045:22;;;18104:2;18083:19;;;18076:31;-1:-1:-1;;;18138:3:1;18123:19;;18116:49;18217:20;;;18210:62;;;;18288:18;;;18281:60;;;;18372:2;18357:18;;18350:34;;;18415:3;18400:19;;18393:35;16277:18:0;;;;18472:14:1;18465:22;-1:-1:-1;18444:19:1;;18437:51;16310:16:0;;;18532:14:1;18525:22;-1:-1:-1;18504:19:1;;18497:51;16341:8:0;;;;18592:14:1;18585:22;-1:-1:-1;18564:19:1;;18557:51;16127:233:0;;;;;;18197:3:1;16127:233:0;;;-1:-1:-1;;;;;16416:15:0;;;;;;:9;:15;;;;;;;;;;16378:54;;18877:2:1;18859:21;;;18916:2;18896:18;;;18889:30;-1:-1:-1;;;18950:3:1;18935:19;;18928:46;19026:20;;;19019:62;;;;19097:18;;;19090:34;;;;16378:54:0;;;;;;19006:3:1;16378:54:0;;;16453:29;16473:4;16479:2;16453:19;:29::i;:::-;16542:8;;16495:17;;16542:8;;16541:9;:32;;;;-1:-1:-1;;;;;;16555:18:0;;;;;;:12;:18;;;;;;;;16554:19;16541:32;:53;;;;-1:-1:-1;;;;;;16578:16:0;;;;;;:12;:16;;;;;;;;16577:17;16541:53;16537:576;;;16621:4;-1:-1:-1;;;;;16615:10:0;:2;-1:-1:-1;;;;;16615:10:0;;:26;;;;16637:4;-1:-1:-1;;;;;16629:12:0;:4;-1:-1:-1;;;;;16629:12:0;;16615:26;16611:491;;;16675:31;16689:4;16695:2;16699:6;16675:13;:31::i;:::-;16663:43;;16748:338;16790:4;-1:-1:-1;;;;;16784:10:0;:2;-1:-1:-1;;;;;16784:10:0;;:59;;;;;;;;;;;;;;;-1:-1:-1;;;16784:59:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16784:59:0;;;;-1:-1:-1;;;;;16979:18:0;;;;;;;:12;:18;;;;;;;17020:16;;;;;;;;;;17059:8;;16748:338;;;;;16866:4;;16893:2;;16918:6;;16947:9;;16979:18;;;;;17020:16;;;;17059:8;;16748:338;:::i;:::-;;;;;;;;16611:491;17129:13;;17125:546;;-1:-1:-1;;;;;17159:15:0;;;;;;:9;:15;;;;;:25;;17178:6;;17159:15;:25;;17178:6;;17159:25;:::i;:::-;;;;-1:-1:-1;;17217:4:0;17199:24;;;;:9;:24;;;;;:37;;17227:9;;17199:24;:37;;17227:9;;17199:37;:::i;:::-;;;;-1:-1:-1;17269:18:0;;-1:-1:-1;17278:9:0;17269:6;:18;:::i;:::-;-1:-1:-1;;;;;17251:13:0;;;;;;:9;:13;;;;;:37;;:13;;;:37;;;;;:::i;:::-;;;;-1:-1:-1;;17322:40:0;;2415:25:1;;;17345:4:0;;-1:-1:-1;;;;;17322:40:0;;;;;2403:2:1;2388:18;17322:40:0;;;;;;;-1:-1:-1;;;;;17382:38:0;;;;;;;17401:18;17410:9;17401:6;:18;:::i;:::-;17382:38;;2415:25:1;;;2403:2;2388:18;17382:38:0;;;;;;;17485:4;17492:24;;;;:9;:24;;;;;;;;;;17440:77;;20203:2:1;20185:21;;;20242:2;20222:18;;;20215:30;-1:-1:-1;;;20276:3:1;20261:19;;20254:51;20357:20;;;20350:62;;;;20428:18;;;20421:34;;;;17440:77:0;;;;;;20337:3:1;17440:77:0;;;17125:546;;;-1:-1:-1;;;;;17550:15:0;;;;;;:9;:15;;;;;:25;;17569:6;;17550:15;:25;;17569:6;;17550:25;:::i;:::-;;;;-1:-1:-1;;;;;;;17590:13:0;;;;;;:9;:13;;;;;:23;;17607:6;;17590:13;:23;;17607:6;;17590:23;:::i;:::-;;;;;;;;17648:2;-1:-1:-1;;;;;17633:26:0;17642:4;-1:-1:-1;;;;;17633:26:0;;17652:6;17633:26;;;;2415:25:1;;2403:2;2388:18;;2269:177;17633:26:0;;;;;;;;15803:1875;15699:1979;;;:::o;19260:339::-;-1:-1:-1;;;;;19345:18:0;;;;;;:12;:18;;;;;;;;19344:19;:40;;;;-1:-1:-1;;;;;;19368:16:0;;;;;;:12;:16;;;;;;;;19367:17;19344:40;19340:252;;;19409:11;;;;19401:43;;;;-1:-1:-1;;;19401:43:0;;20668:2:1;19401:43:0;;;20650:21:1;20707:2;20687:18;;;20680:30;-1:-1:-1;;;20726:18:1;;;20719:49;20785:18;;19401:43:0;20466:343:1;19401:43:0;19463:13;;:17;19459:122;;19528:13;;19509:15;:32;;19501:64;;;;-1:-1:-1;;;19501:64:0;;21016:2:1;19501:64:0;;;20998:21:1;21055:2;21035:18;;;21028:30;-1:-1:-1;;;21074:18:1;;;21067:49;21133:18;;19501:64:0;20814:343:1;19501:64:0;19260:339;;:::o;19886:253::-;19974:7;19994:11;20015:4;-1:-1:-1;;;;;20009:10:0;:2;-1:-1:-1;;;;;20009:10:0;;20008:66;;20049:4;-1:-1:-1;;;;;20041:12:0;:4;-1:-1:-1;;;;;20041:12:0;;20040:34;;20073:1;20008:66;;20040:34;20057:13;;20008:66;;;20023:14;;20008:66;19994:80;-1:-1:-1;4470:5:0;20093:12;19994:80;20093:6;:12;:::i;:::-;20092:39;;;;:::i;:::-;20085:46;19886:253;-1:-1:-1;;;;;19886:253:0:o;715:131:1:-;-1:-1:-1;;;;;790:31:1;;780:42;;770:70;;836:1;833;826:12;770:70;715:131;:::o;851:367::-;919:6;927;980:2;968:9;959:7;955:23;951:32;948:52;;;996:1;993;986:12;948:52;1035:9;1022:23;1054:31;1079:5;1054:31;:::i;:::-;1104:5;1182:2;1167:18;;;;1154:32;;-1:-1:-1;;;851:367:1:o;1223:400::-;1265:3;1303:5;1297:12;1330:6;1325:3;1318:19;1355:1;1365:139;1379:6;1376:1;1373:13;1365:139;;;1487:4;1472:13;;;1468:24;;1462:31;1442:11;;;1438:22;;1431:63;1394:12;1365:139;;;1369:3;1549:1;1542:4;1533:6;1528:3;1524:16;1520:27;1513:38;1612:4;1605:2;1601:7;1596:2;1588:6;1584:15;1580:29;1575:3;1571:39;1567:50;1560:57;;;1223:400;;;;:::o;1628:220::-;1777:2;1766:9;1759:21;1740:4;1797:45;1838:2;1827:9;1823:18;1815:6;1797:45;:::i;:::-;1789:53;1628:220;-1:-1:-1;;;1628:220:1:o;2451:388::-;2519:6;2527;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;2635:9;2622:23;2654:31;2679:5;2654:31;:::i;:::-;2704:5;-1:-1:-1;2761:2:1;2746:18;;2733:32;2774:33;2733:32;2774:33;:::i;:::-;2826:7;2816:17;;;2451:388;;;;;:::o;2844:508::-;2921:6;2929;2937;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;-1:-1:-1;3171:2:1;3156:18;;3143:32;3184:33;3143:32;3184:33;:::i;:::-;2844:508;;3236:7;;-1:-1:-1;;;3316:2:1;3301:18;;;;3288:32;;2844:508::o;3546:118::-;3632:5;3625:13;3618:21;3611:5;3608:32;3598:60;;3654:1;3651;3644:12;3669:382;3734:6;3742;3795:2;3783:9;3774:7;3770:23;3766:32;3763:52;;;3811:1;3808;3801:12;3763:52;3850:9;3837:23;3869:31;3894:5;3869:31;:::i;:::-;3919:5;-1:-1:-1;3976:2:1;3961:18;;3948:32;3989:30;3948:32;3989:30;:::i;4056:255::-;4123:6;4176:2;4164:9;4155:7;4151:23;4147:32;4144:52;;;4192:1;4189;4182:12;4144:52;4231:9;4218:23;4250:31;4275:5;4250:31;:::i;4316:226::-;4375:6;4428:2;4416:9;4407:7;4403:23;4399:32;4396:52;;;4444:1;4441;4434:12;4396:52;-1:-1:-1;4489:23:1;;4316:226;-1:-1:-1;4316:226:1:o;5007:346::-;5075:6;5083;5136:2;5124:9;5115:7;5111:23;5107:32;5104:52;;;5152:1;5149;5142:12;5104:52;-1:-1:-1;;5197:23:1;;;5317:2;5302:18;;;5289:32;;-1:-1:-1;5007:346:1:o;5592:355::-;5794:2;5776:21;;;5833:2;5813:18;;;5806:30;5872:33;5867:2;5852:18;;5845:61;5938:2;5923:18;;5592:355::o;5952:127::-;6013:10;6008:3;6004:20;6001:1;5994:31;6044:4;6041:1;6034:15;6068:4;6065:1;6058:15;6084:375;6172:1;6190:5;6204:249;6225:1;6215:8;6212:15;6204:249;;;6275:4;6270:3;6266:14;6260:4;6257:24;6254:50;;;6284:18;;:::i;:::-;6334:1;6324:8;6320:16;6317:49;;;6348:16;;;;6317:49;6431:1;6427:16;;;;;6387:15;;6204:249;;;6084:375;;;;;;:::o;6464:902::-;6513:5;6543:8;6533:80;;-1:-1:-1;6584:1:1;6598:5;;6533:80;6632:4;6622:76;;-1:-1:-1;6669:1:1;6683:5;;6622:76;6714:4;6732:1;6727:59;;;;6800:1;6795:174;;;;6707:262;;6727:59;6757:1;6748:10;;6771:5;;;6795:174;6832:3;6822:8;6819:17;6816:43;;;6839:18;;:::i;:::-;-1:-1:-1;;6895:1:1;6881:16;;6954:5;;6707:262;;7053:2;7043:8;7040:16;7034:3;7028:4;7025:13;7021:36;7015:2;7005:8;7002:16;6997:2;6991:4;6988:12;6984:35;6981:77;6978:203;;;-1:-1:-1;7090:19:1;;;7166:5;;6978:203;7213:42;-1:-1:-1;;7238:8:1;7232:4;7213:42;:::i;:::-;7291:6;7287:1;7283:6;7279:19;7270:7;7267:32;7264:58;;;7302:18;;:::i;:::-;7340:20;;6464:902;-1:-1:-1;;;6464:902:1:o;7371:140::-;7429:5;7458:47;7499:4;7489:8;7485:19;7479:4;7458:47;:::i;7516:168::-;7589:9;;;7620;;7637:15;;;7631:22;;7617:37;7607:71;;7658:18;;:::i;10499:127::-;10560:10;10555:3;10551:20;10548:1;10541:31;10591:4;10588:1;10581:15;10615:4;10612:1;10605:15;10631:251;10701:6;10754:2;10742:9;10733:7;10729:23;10725:32;10722:52;;;10770:1;10767;10760:12;10722:52;10802:9;10796:16;10821:31;10846:5;10821:31;:::i;10887:125::-;10952:9;;;10973:10;;;10970:36;;;10986:18;;:::i;11017:959::-;11279:4;11327:3;11316:9;11312:19;11358:6;11347:9;11340:25;11401:6;11396:2;11385:9;11381:18;11374:34;11444:3;11439:2;11428:9;11424:18;11417:31;11468:6;11503;11497:13;11534:6;11526;11519:22;11572:3;11561:9;11557:19;11550:26;;11611:2;11603:6;11599:15;11585:29;;11632:1;11642:195;11656:6;11653:1;11650:13;11642:195;;;11721:13;;-1:-1:-1;;;;;11717:39:1;11705:52;;11786:2;11812:15;;;;11777:12;;;;11753:1;11671:9;11642:195;;;-1:-1:-1;;;;;;;11893:32:1;;;;11888:2;11873:18;;11866:60;-1:-1:-1;;11957:3:1;11942:19;11935:35;11854:3;11017:959;-1:-1:-1;;;11017:959:1:o;11981:128::-;12048:9;;;12069:11;;;12066:37;;;12083:18;;:::i;14423:245::-;14490:6;14543:2;14531:9;14522:7;14518:23;14514:32;14511:52;;;14559:1;14556;14549:12;14511:52;14591:9;14585:16;14610:28;14632:5;14610:28;:::i;19135:805::-;19462:3;19451:9;19444:22;19425:4;19483:46;19524:3;19513:9;19509:19;19501:6;19483:46;:::i;:::-;-1:-1:-1;;;;;19565:32:1;;;19560:2;19545:18;;19538:60;19634:32;;;;19629:2;19614:18;;19607:60;19698:2;19683:18;;19676:34;;;;19741:3;19726:19;;19719:35;;;;19798:14;;19791:22;19585:3;19770:19;;19763:51;19858:14;19851:22;19845:3;19830:19;;19823:51;19918:14;19911:22;19905:3;19890:19;;;19883:51;19475:54;19135:805;-1:-1:-1;;19135:805:1:o;21162:217::-;21202:1;21228;21218:132;;21272:10;21267:3;21263:20;21260:1;21253:31;21307:4;21304:1;21297:15;21335:4;21332:1;21325:15;21218:132;-1:-1:-1;21364:9:1;;21162:217::o

Swarm Source

ipfs://b5db26121442b42c27ca395425a9dfb3095c396e88a5d77dc8c4cc2f68da8956
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.