ETH Price: $2,741.31 (-0.54%)

Token

PEPETANK (PEPET)
 

Overview

Max Total Supply

1,000,000,000,000,000 PEPET

Holders

109

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:
Token

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 10 : token.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "base/interface/IRouter.sol";
import "base/interface/IFactory.sol";
import "base/interface/IPancakePair.sol";
 
contract Token is ERC20,Ownable { 
     using SafeMath for uint; 
     mapping(address=>bool) public ispair;
     address marketing;   
     address dev;  
     uint mktpart;
     uint devpart;
    bool isTrading; 
    struct Fees{
        uint buy;
        uint sell;
        uint transfer;
        uint total;
    }
    Fees public fees;
    //mkt
    address token0;
    address token1; 
    IRouter router;
    address pair;
    struct autoConfig {
        bool status; 
        uint minPart;
        uint maxPart;
        uint parts;
    } 
    autoConfig public _auto; 

    //mkt_end
    modifier trading(){
        if(isTrading) return;
        isTrading=true;
        _;
        isTrading=false; 
    } 
    constructor(string memory name_,string memory symbol_,uint total_) ERC20(name_, symbol_) {
        marketing=_msgSender();  
        fees=Fees(100,100,100,100);    
        _mint(marketing, total_ * 1 ether);  
        token0=address(this);
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        token1 = router.WETH();  
        // setPair(token1);
        _approve(address(this), address(router), ~uint(0));
        _auto=autoConfig(true,5,1000,100000); 
    }
    receive() external payable { }   
    function setFees(Fees memory fees_) public onlyOwner{
        fees=fees_;
    } 
     function setMarketing(address mkt,address dev_,uint mktpart_,uint devpart_) public onlyOwner{
        marketing=mkt;
        dev=dev_;
        mktpart=mktpart_;
        devpart=devpart_;
     }
    function _beforeTokenTransfer(address from,address to,uint amount) internal override trading{
        if(amount==0)return; 
         uint t=ispair[from]?1:ispair[to]?2:0;
         if(t==2) trigger(t,amount);

    } 
    function _afterTokenTransfer(address from,address to,uint amount) internal override trading{
        if(amount==0)return;
        if(address(0)==from || address(0)==to) return; 
        takeFee(from,to,amount);  
    }
    function takeFee(address from,address to,uint amount)internal {
        uint fee=ispair[from]?fees.buy:ispair[to]?fees.sell:fees.transfer; 
        uint feeAmount=amount.mul(fee).div(fees.total); 
        if(from==marketing || to==marketing) feeAmount=0;
        if(ispair[to] && IERC20(to).totalSupply()==0) feeAmount=0;
        if(feeAmount>0)super._transfer(to,address(this),feeAmount);
    } 
    function setPair(address token) public {    
        address newPair=IFactory(router.factory()).getPair(address(token), address(this));
        if(newPair==address(0))newPair=IFactory(router.factory()).createPair(address(token), address(this));
        require(newPair!=address(0), "pair is not found"); 
        ispair[newPair]=true; 
    }
 
    //mkt 
    function setAutoSellConfig(autoConfig memory auto_) public onlyOwner {
        _auto=auto_;
    } 
    function _sell(uint amount0In) internal { 
        address[] memory path=new address[](2);
        path[0]=token0;
        path[1]=token1; 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount0In, 0, path, address(this),  block.timestamp); 
        uint amount=address(this).balance.mul(mktpart).div(mktpart+devpart); 
        (bool success1,)=payable(marketing).call{value:amount}("");
        (bool success2,)=payable(dev).call{value:address(this).balance}("");
        if(success1==success2){}
    } 
    modifier canSwap(uint t){
        if(t!=2 || !_auto.status ) return; 
        _;
    } 
    function min(uint a,uint b) internal pure returns(uint){
        return a>b?b:a;
    }
    function trigger(uint t,uint amount) internal canSwap(t) { 
        uint balance=min(IERC20(token0).balanceOf(address(this)),amount);
        if(balance < IERC20(token0).totalSupply().mul(_auto.minPart).div(_auto.parts))return;
        if(balance>0)_sell(balance);
    } 
    function send(address token,uint amount) public { 
        if(token==address(0)){ 
            (bool success,)=payable(dev).call{value:amount}(""); 
            require(success, "transfer failed"); 
        } 
        else IERC20(token).transfer(dev,amount); 
    }

}

File 2 of 10 : IPancakePair.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface IPancakePair {
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Swap(address indexed sender,uint amount0In,uint amount1In,uint amount0Out,uint amount1Out,address indexed to); 
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
    function totalSupply() external view returns (uint256);
}

File 3 of 10 : IFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);    
    function feeTo() external view returns (address);
}

File 4 of 10 : IRouter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(address tokenA,address tokenB,uint amountADesired,uint amountBDesired,uint amountAMin,uint amountBMin,address to,uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
    function swapExactTokensForTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin,address[] calldata path,address to,uint deadline) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
    function swapTokensForExactTokens(uint amountOut,uint amountInMax,address[] calldata path,address to,uint deadline) external returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

File 5 of 10 : SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 6 of 10 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @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);
    }
}

File 7 of 10 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    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;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        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);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    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);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 8 of 10 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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;
    }
}

File 9 of 10 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @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);
}

File 10 of 10 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @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);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"total_","type":"uint256"}],"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"},{"inputs":[],"name":"_auto","outputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"minPart","type":"uint256"},{"internalType":"uint256","name":"maxPart","type":"uint256"},{"internalType":"uint256","name":"parts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ispair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"minPart","type":"uint256"},{"internalType":"uint256","name":"maxPart","type":"uint256"},{"internalType":"uint256","name":"parts","type":"uint256"}],"internalType":"struct Token.autoConfig","name":"auto_","type":"tuple"}],"name":"setAutoSellConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"internalType":"struct Token.Fees","name":"fees_","type":"tuple"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"mkt","type":"address"},{"internalType":"address","name":"dev_","type":"address"},{"internalType":"uint256","name":"mktpart_","type":"uint256"},{"internalType":"uint256","name":"devpart_","type":"uint256"}],"name":"setMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

60806040523480156200001157600080fd5b50604051620027cf380380620027cf833981016040819052620000349162000c6b565b8282600362000044838262000d6c565b50600462000053828262000d6c565b505050620000706200006a620001ee60201b60201c565b620001f2565b600780546001600160a01b0319163390811790915560408051608081018252606480825260208201819052918101829052606001819052600c819055600d819055600e819055600f55620000d890620000d283670de0b6b3a764000062000e4e565b62000244565b60108054306001600160a01b03199182161790915560128054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000148573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016e919062000e68565b601180546001600160a01b0319166001600160a01b039283161790556012546200019e9130911660001962000316565b50506040805160808101825260018082526005602083018190526103e8938301849052620186a060609093018390526014805460ff19169092179091556015556016919091556017555062000f76565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b620002ae600083836200043e565b8060026000828254620002c2919062000e9a565b90915550506001600160a01b03821660008181526020818152604080832080548601905551848152600080516020620027af833981519152910160405180910390a36200031260008383620004e3565b5050565b6001600160a01b0383166200037a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000297565b6001600160a01b038216620003dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000297565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600b5460ff16156200044f57505050565b600b805460ff191660011790558015620004d4576001600160a01b03831660009081526006602052604081205460ff16620004b5576001600160a01b03831660009081526006602052604090205460ff16620004ad576000620004b8565b6002620004b8565b60015b60ff16905080600203620004d257620004d2818362000538565b505b5050600b805460ff1916905550565b600b5460ff1615620004f457505050565b600b805460ff191660011790558015620004d4576001600160a01b03831615806200052657506001600160a01b038216155b620004d457620004d48383836200068d565b818060021415806200054d575060145460ff16155b156200055857505050565b6010546040516370a0823160e01b8152306004820152600091620005d6916001600160a01b03909116906370a0823190602401602060405180830381865afa158015620005a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005cf919062000eb0565b84620007e6565b601754601554601054604080516318160ddd60e01b8152905194955062000666946200065f93926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa15801562000632573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000658919062000eb0565b9062000802565b9062000810565b811015620006745750505050565b8015620006865762000686816200081e565b505b505050565b6001600160a01b03831660009081526006602052604081205460ff16620006e1576001600160a01b03831660009081526006602052604090205460ff16620006d857600e54620006e5565b600d54620006e5565b600c545b600f54909150600090620006ff906200065f858562000802565b6007549091506001600160a01b03868116911614806200072c57506007546001600160a01b038581169116145b1562000736575060005b6001600160a01b03841660009081526006602052604090205460ff168015620007c15750836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000799573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007bf919062000eb0565b155b15620007cb575060005b8015620007df57620007df843083620009f8565b5050505050565b6000818311620007f75782620007f9565b815b90505b92915050565b6000620007f9828462000e4e565b6000620007f9828462000eca565b604080516002808252606082018352600092602083019080368337505060105482519293506001600160a01b03169183915060009062000862576200086262000eed565b6001600160a01b03928316602091820292909201015260115482519116908290600190811062000896576200089662000eed565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790620008de90859060009086903090429060040162000f03565b600060405180830381600087803b158015620008f957600080fd5b505af11580156200090e573d6000803e3d6000fd5b5050505060006200093a600a546009546200092a919062000e9a565b6009546200065f90479062000802565b6007546040519192506000916001600160a01b039091169083908381818185875af1925050503d80600081146200098e576040519150601f19603f3d011682016040523d82523d6000602084013e62000993565b606091505b50506008546040519192506000916001600160a01b039091169047908381818185875af1925050503d8060008114620009e9576040519150601f19603f3d011682016040523d82523d6000602084013e620009ee565b606091505b5050505050505050565b6001600160a01b03831662000a5e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840162000297565b6001600160a01b03821662000ac25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840162000297565b62000acf8383836200043e565b6001600160a01b0383166000908152602081905260409020548181101562000b495760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840162000297565b6001600160a01b0384811660008181526020818152604080832087870390559387168083529184902080548701905592518581529092600080516020620027af833981519152910160405180910390a362000686848484620004e3565b634e487b7160e01b600052604160045260246000fd5b600082601f83011262000bce57600080fd5b81516001600160401b038082111562000beb5762000beb62000ba6565b604051601f8301601f19908116603f0116810190828211818310171562000c165762000c1662000ba6565b8160405283815260209250868385880101111562000c3357600080fd5b600091505b8382101562000c57578582018301518183018401529082019062000c38565b600093810190920192909252949350505050565b60008060006060848603121562000c8157600080fd5b83516001600160401b038082111562000c9957600080fd5b62000ca78783880162000bbc565b9450602086015191508082111562000cbe57600080fd5b5062000ccd8682870162000bbc565b925050604084015190509250925092565b600181811c9082168062000cf357607f821691505b60208210810362000d1457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200068857600081815260208120601f850160051c8101602086101562000d435750805b601f850160051c820191505b8181101562000d645782815560010162000d4f565b505050505050565b81516001600160401b0381111562000d885762000d8862000ba6565b62000da08162000d99845462000cde565b8462000d1a565b602080601f83116001811462000dd8576000841562000dbf5750858301515b600019600386901b1c1916600185901b17855562000d64565b600085815260208120601f198616915b8281101562000e095788860151825594840194600190910190840162000de8565b508582101562000e285787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620007fc57620007fc62000e38565b60006020828403121562000e7b57600080fd5b81516001600160a01b038116811462000e9357600080fd5b9392505050565b80820180821115620007fc57620007fc62000e38565b60006020828403121562000ec357600080fd5b5051919050565b60008262000ee857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101562000f555784516001600160a01b03168352938301939183019160010162000f2e565b50506001600160a01b03969096166060850152505050608001529392505050565b6118298062000f866000396000f3fe6080604052600436106101395760003560e01c80638b2408c1116100ab578063a9059cbb1161006f578063a9059cbb14610398578063d0679d34146103b8578063dd62ed3e146103d8578063f2fde38b146103f8578063fd77c96014610418578063fe1e87911461043857600080fd5b80638b2408c1146102d85780638da5cb5b146102f857806395d89b41146103205780639af1d35a14610335578063a457c2d71461037857600080fd5b806339509351116100fd57806339509351146101fb5780636accdf941461021b57806370a082311461024b578063715018a61461028157806375df81a6146102985780638187f516146102b857600080fd5b806306fdde0314610145578063095ea7b31461017057806318160ddd146101a057806323b872dd146101bf578063313ce567146101df57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a610480565b6040516101679190611435565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004611498565b610512565b6040519015158152602001610167565b3480156101ac57600080fd5b506002545b604051908152602001610167565b3480156101cb57600080fd5b506101906101da3660046114c4565b61052c565b3480156101eb57600080fd5b5060405160128152602001610167565b34801561020757600080fd5b50610190610216366004611498565b610550565b34801561022757600080fd5b50610190610236366004611505565b60066020526000908152604090205460ff1681565b34801561025757600080fd5b506101b1610266366004611505565b6001600160a01b031660009081526020819052604090205490565b34801561028d57600080fd5b50610296610572565b005b3480156102a457600080fd5b506102966102b3366004611567565b610586565b3480156102c457600080fd5b506102966102d3366004611505565b6105ba565b3480156102e457600080fd5b506102966102f33660046115b8565b61080c565b34801561030457600080fd5b506005546040516001600160a01b039091168152602001610167565b34801561032c57600080fd5b5061015a61084f565b34801561034157600080fd5b50600c54600d54600e54600f546103589392919084565b604080519485526020850193909352918301526060820152608001610167565b34801561038457600080fd5b50610190610393366004611498565b61085e565b3480156103a457600080fd5b506101906103b3366004611498565b6108d9565b3480156103c457600080fd5b506102966103d3366004611498565b6108e7565b3480156103e457600080fd5b506101b16103f33660046115fe565b610a06565b34801561040457600080fd5b50610296610413366004611505565b610a31565b34801561042457600080fd5b50610296610433366004611637565b610aaa565b34801561044457600080fd5b5060145460155460165460175461045e9360ff1692919084565b6040805194151585526020850193909352918301526060820152608001610167565b60606003805461048f9061167d565b80601f01602080910402602001604051908101604052809291908181526020018280546104bb9061167d565b80156105085780601f106104dd57610100808354040283529160200191610508565b820191906000526020600020905b8154815290600101906020018083116104eb57829003601f168201915b5050505050905090565b600033610520818585610ad0565b60019150505b92915050565b60003361053a858285610bf4565b610545858585610c6e565b506001949350505050565b6000336105208185856105638383610a06565b61056d91906116cd565b610ad0565b61057a610e23565b6105846000610e7d565b565b61058e610e23565b80516014805460ff19169115159190911790556020810151601555604081015160165560600151601755565b6012546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062891906116e0565b60405163e6a4390560e01b81526001600160a01b038481166004830152306024830152919091169063e6a4390590604401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a91906116e0565b90506001600160a01b03811661079857601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072191906116e0565b6040516364e329cb60e11b81526001600160a01b038481166004830152306024830152919091169063c9c65396906044016020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079591906116e0565b90505b6001600160a01b0381166107e75760405162461bcd60e51b81526020600482015260116024820152701c185a5c881a5cc81b9bdd08199bdd5b99607a1b60448201526064015b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff1916600117905550565b610814610e23565b600780546001600160a01b039586166001600160a01b0319918216179091556008805494909516931692909217909255600991909155600a55565b60606004805461048f9061167d565b6000338161086c8286610a06565b9050838110156108cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107de565b6105458286868403610ad0565b600033610520818585610c6e565b6001600160a01b03821661098f576008546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610942576040519150601f19603f3d011682016040523d82523d6000602084013e610947565b606091505b505090508061098a5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b60448201526064016107de565b505050565b60085460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af11580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a91906116fd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a39610e23565b6001600160a01b038116610a9e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b610aa781610e7d565b50565b610ab2610e23565b8051600c556020810151600d556040810151600e5560600151600f55565b6001600160a01b038316610b325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107de565b6001600160a01b038216610b935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107de565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610c008484610a06565b90506000198114610c685781811015610c5b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107de565b610c688484848403610ad0565b50505050565b6001600160a01b038316610cd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107de565b6001600160a01b038216610d345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107de565b610d3f838383610ecf565b6001600160a01b03831660009081526020819052604090205481811015610db75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107de565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c68848484610f6b565b6005546001600160a01b031633146105845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107de565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b5460ff1615610edf57505050565b600b805460ff191660011790558015610f5c576001600160a01b03831660009081526006602052604081205460ff16610f40576001600160a01b03831660009081526006602052604090205460ff16610f39576000610f43565b6002610f43565b60015b60ff16905080600203610f5a57610f5a8183610fba565b505b5050600b805460ff1916905550565b600b5460ff1615610f7b57505050565b600b805460ff191660011790558015610f5c576001600160a01b0383161580610fab57506001600160a01b038216155b610f5c57610f5c8383836110f6565b81806002141580610fce575060145460ff16155b15610fd857505050565b6010546040516370a0823160e01b8152306004820152600091611051916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b919061171a565b8461123e565b601754601554601054604080516318160ddd60e01b815290519495506110da946110d493926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce919061171a565b90611256565b90611262565b8110156110e75750505050565b8015610c6857610c688161126e565b6001600160a01b03831660009081526006602052604081205460ff16611146576001600160a01b03831660009081526006602052604090205460ff1661113e57600e5461114a565b600d5461114a565b600c545b600f54909150600090611161906110d48585611256565b6007549091506001600160a01b038681169116148061118d57506007546001600160a01b038581169116145b15611196575060005b6001600160a01b03841660009081526006602052604090205460ff16801561121d5750836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b919061171a565b155b15611226575060005b801561123757611237843083610c6e565b5050505050565b600081831161124d578261124f565b815b9392505050565b600061124f8284611733565b600061124f828461174a565b604080516002808252606082018352600092602083019080368337505060105482519293506001600160a01b0316918391506000906112af576112af61176c565b6001600160a01b0392831660209182029290920101526011548251911690829060019081106112e0576112e061176c565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611326908590600090869030904290600401611782565b600060405180830381600087803b15801561134057600080fd5b505af1158015611354573d6000803e3d6000fd5b50505050600061137b600a5460095461136d91906116cd565b6009546110d4904790611256565b6007546040519192506000916001600160a01b039091169083908381818185875af1925050503d80600081146113cd576040519150601f19603f3d011682016040523d82523d6000602084013e6113d2565b606091505b50506008546040519192506000916001600160a01b039091169047908381818185875af1925050503d8060008114611426576040519150601f19603f3d011682016040523d82523d6000602084013e61142b565b606091505b5050505050505050565b600060208083528351808285015260005b8181101561146257858101830151858201604001528201611446565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aa757600080fd5b600080604083850312156114ab57600080fd5b82356114b681611483565b946020939093013593505050565b6000806000606084860312156114d957600080fd5b83356114e481611483565b925060208401356114f481611483565b929592945050506040919091013590565b60006020828403121561151757600080fd5b813561124f81611483565b6040516080810167ffffffffffffffff8111828210171561155357634e487b7160e01b600052604160045260246000fd5b60405290565b8015158114610aa757600080fd5b60006080828403121561157957600080fd5b611581611522565b823561158c81611559565b808252506020830135602082015260408301356040820152606083013560608201528091505092915050565b600080600080608085870312156115ce57600080fd5b84356115d981611483565b935060208501356115e981611483565b93969395505050506040820135916060013590565b6000806040838503121561161157600080fd5b823561161c81611483565b9150602083013561162c81611483565b809150509250929050565b60006080828403121561164957600080fd5b611651611522565b823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600181811c9082168061169157607f821691505b6020821081036116b157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610526576105266116b7565b6000602082840312156116f257600080fd5b815161124f81611483565b60006020828403121561170f57600080fd5b815161124f81611559565b60006020828403121561172c57600080fd5b5051919050565b8082028115828204841417610526576105266116b7565b60008261176757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117d25784516001600160a01b0316835293830193918301916001016117ad565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201d2a6f0c23b7c6831d26934d6eb727e835174a917e0c0eb2068aef68d5c4f60c64736f6c63430008130033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000085045504554414e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055045504554000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638b2408c1116100ab578063a9059cbb1161006f578063a9059cbb14610398578063d0679d34146103b8578063dd62ed3e146103d8578063f2fde38b146103f8578063fd77c96014610418578063fe1e87911461043857600080fd5b80638b2408c1146102d85780638da5cb5b146102f857806395d89b41146103205780639af1d35a14610335578063a457c2d71461037857600080fd5b806339509351116100fd57806339509351146101fb5780636accdf941461021b57806370a082311461024b578063715018a61461028157806375df81a6146102985780638187f516146102b857600080fd5b806306fdde0314610145578063095ea7b31461017057806318160ddd146101a057806323b872dd146101bf578063313ce567146101df57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a610480565b6040516101679190611435565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004611498565b610512565b6040519015158152602001610167565b3480156101ac57600080fd5b506002545b604051908152602001610167565b3480156101cb57600080fd5b506101906101da3660046114c4565b61052c565b3480156101eb57600080fd5b5060405160128152602001610167565b34801561020757600080fd5b50610190610216366004611498565b610550565b34801561022757600080fd5b50610190610236366004611505565b60066020526000908152604090205460ff1681565b34801561025757600080fd5b506101b1610266366004611505565b6001600160a01b031660009081526020819052604090205490565b34801561028d57600080fd5b50610296610572565b005b3480156102a457600080fd5b506102966102b3366004611567565b610586565b3480156102c457600080fd5b506102966102d3366004611505565b6105ba565b3480156102e457600080fd5b506102966102f33660046115b8565b61080c565b34801561030457600080fd5b506005546040516001600160a01b039091168152602001610167565b34801561032c57600080fd5b5061015a61084f565b34801561034157600080fd5b50600c54600d54600e54600f546103589392919084565b604080519485526020850193909352918301526060820152608001610167565b34801561038457600080fd5b50610190610393366004611498565b61085e565b3480156103a457600080fd5b506101906103b3366004611498565b6108d9565b3480156103c457600080fd5b506102966103d3366004611498565b6108e7565b3480156103e457600080fd5b506101b16103f33660046115fe565b610a06565b34801561040457600080fd5b50610296610413366004611505565b610a31565b34801561042457600080fd5b50610296610433366004611637565b610aaa565b34801561044457600080fd5b5060145460155460165460175461045e9360ff1692919084565b6040805194151585526020850193909352918301526060820152608001610167565b60606003805461048f9061167d565b80601f01602080910402602001604051908101604052809291908181526020018280546104bb9061167d565b80156105085780601f106104dd57610100808354040283529160200191610508565b820191906000526020600020905b8154815290600101906020018083116104eb57829003601f168201915b5050505050905090565b600033610520818585610ad0565b60019150505b92915050565b60003361053a858285610bf4565b610545858585610c6e565b506001949350505050565b6000336105208185856105638383610a06565b61056d91906116cd565b610ad0565b61057a610e23565b6105846000610e7d565b565b61058e610e23565b80516014805460ff19169115159190911790556020810151601555604081015160165560600151601755565b6012546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062891906116e0565b60405163e6a4390560e01b81526001600160a01b038481166004830152306024830152919091169063e6a4390590604401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a91906116e0565b90506001600160a01b03811661079857601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072191906116e0565b6040516364e329cb60e11b81526001600160a01b038481166004830152306024830152919091169063c9c65396906044016020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079591906116e0565b90505b6001600160a01b0381166107e75760405162461bcd60e51b81526020600482015260116024820152701c185a5c881a5cc81b9bdd08199bdd5b99607a1b60448201526064015b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff1916600117905550565b610814610e23565b600780546001600160a01b039586166001600160a01b0319918216179091556008805494909516931692909217909255600991909155600a55565b60606004805461048f9061167d565b6000338161086c8286610a06565b9050838110156108cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107de565b6105458286868403610ad0565b600033610520818585610c6e565b6001600160a01b03821661098f576008546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610942576040519150601f19603f3d011682016040523d82523d6000602084013e610947565b606091505b505090508061098a5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b60448201526064016107de565b505050565b60085460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af11580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a91906116fd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a39610e23565b6001600160a01b038116610a9e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b610aa781610e7d565b50565b610ab2610e23565b8051600c556020810151600d556040810151600e5560600151600f55565b6001600160a01b038316610b325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107de565b6001600160a01b038216610b935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107de565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610c008484610a06565b90506000198114610c685781811015610c5b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107de565b610c688484848403610ad0565b50505050565b6001600160a01b038316610cd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107de565b6001600160a01b038216610d345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107de565b610d3f838383610ecf565b6001600160a01b03831660009081526020819052604090205481811015610db75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107de565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c68848484610f6b565b6005546001600160a01b031633146105845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107de565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b5460ff1615610edf57505050565b600b805460ff191660011790558015610f5c576001600160a01b03831660009081526006602052604081205460ff16610f40576001600160a01b03831660009081526006602052604090205460ff16610f39576000610f43565b6002610f43565b60015b60ff16905080600203610f5a57610f5a8183610fba565b505b5050600b805460ff1916905550565b600b5460ff1615610f7b57505050565b600b805460ff191660011790558015610f5c576001600160a01b0383161580610fab57506001600160a01b038216155b610f5c57610f5c8383836110f6565b81806002141580610fce575060145460ff16155b15610fd857505050565b6010546040516370a0823160e01b8152306004820152600091611051916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b919061171a565b8461123e565b601754601554601054604080516318160ddd60e01b815290519495506110da946110d493926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce919061171a565b90611256565b90611262565b8110156110e75750505050565b8015610c6857610c688161126e565b6001600160a01b03831660009081526006602052604081205460ff16611146576001600160a01b03831660009081526006602052604090205460ff1661113e57600e5461114a565b600d5461114a565b600c545b600f54909150600090611161906110d48585611256565b6007549091506001600160a01b038681169116148061118d57506007546001600160a01b038581169116145b15611196575060005b6001600160a01b03841660009081526006602052604090205460ff16801561121d5750836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b919061171a565b155b15611226575060005b801561123757611237843083610c6e565b5050505050565b600081831161124d578261124f565b815b9392505050565b600061124f8284611733565b600061124f828461174a565b604080516002808252606082018352600092602083019080368337505060105482519293506001600160a01b0316918391506000906112af576112af61176c565b6001600160a01b0392831660209182029290920101526011548251911690829060019081106112e0576112e061176c565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611326908590600090869030904290600401611782565b600060405180830381600087803b15801561134057600080fd5b505af1158015611354573d6000803e3d6000fd5b50505050600061137b600a5460095461136d91906116cd565b6009546110d4904790611256565b6007546040519192506000916001600160a01b039091169083908381818185875af1925050503d80600081146113cd576040519150601f19603f3d011682016040523d82523d6000602084013e6113d2565b606091505b50506008546040519192506000916001600160a01b039091169047908381818185875af1925050503d8060008114611426576040519150601f19603f3d011682016040523d82523d6000602084013e61142b565b606091505b5050505050505050565b600060208083528351808285015260005b8181101561146257858101830151858201604001528201611446565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aa757600080fd5b600080604083850312156114ab57600080fd5b82356114b681611483565b946020939093013593505050565b6000806000606084860312156114d957600080fd5b83356114e481611483565b925060208401356114f481611483565b929592945050506040919091013590565b60006020828403121561151757600080fd5b813561124f81611483565b6040516080810167ffffffffffffffff8111828210171561155357634e487b7160e01b600052604160045260246000fd5b60405290565b8015158114610aa757600080fd5b60006080828403121561157957600080fd5b611581611522565b823561158c81611559565b808252506020830135602082015260408301356040820152606083013560608201528091505092915050565b600080600080608085870312156115ce57600080fd5b84356115d981611483565b935060208501356115e981611483565b93969395505050506040820135916060013590565b6000806040838503121561161157600080fd5b823561161c81611483565b9150602083013561162c81611483565b809150509250929050565b60006080828403121561164957600080fd5b611651611522565b823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600181811c9082168061169157607f821691505b6020821081036116b157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610526576105266116b7565b6000602082840312156116f257600080fd5b815161124f81611483565b60006020828403121561170f57600080fd5b815161124f81611559565b60006020828403121561172c57600080fd5b5051919050565b8082028115828204841417610526576105266116b7565b60008261176757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117d25784516001600160a01b0316835293830193918301916001016117ad565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201d2a6f0c23b7c6831d26934d6eb727e835174a917e0c0eb2068aef68d5c4f60c64736f6c63430008130033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000085045504554414e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055045504554000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): PEPETANK
Arg [1] : symbol_ (string): PEPET
Arg [2] : total_ (uint256): 1000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000038d7ea4c68000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 5045504554414e4b000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 5045504554000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

354:4206:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;;;;;-1:-1:-1;4431:197:1;;;;;:::i;:::-;;:::i;:::-;;;1188:14:10;;1181:22;1163:41;;1151:2;1136:18;4431:197:1;1023:187:10;3242:106:1;;;;;;;;;;-1:-1:-1;3329:12:1;;3242:106;;;1361:25:10;;;1349:2;1334:18;3242:106:1;1215:177:10;5190:286:1;;;;;;;;;;-1:-1:-1;5190:286:1;;;;;:::i;:::-;;:::i;3091:91::-;;;;;;;;;;-1:-1:-1;3091:91:1;;3173:2;2000:36:10;;1988:2;1973:18;3091:91:1;1858:184:10;5871:234:1;;;;;;;;;;-1:-1:-1;5871:234:1;;;;;:::i;:::-;;:::i;427:36:9:-;;;;;;;;;;-1:-1:-1;427:36:9;;;;;:::i;:::-;;;;;;;;;;;;;;;;3406:125:1;;;;;;;;;;-1:-1:-1;3406:125:1;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:1;3480:7;3506:18;;;;;;;;;;;;3406:125;1831:101:0;;;;;;;;;;;;;:::i;:::-;;3169:99:9;;;;;;;;;;-1:-1:-1;3169:99:9;;;;;:::i;:::-;;:::i;2802:346::-;;;;;;;;;;-1:-1:-1;2802:346:9;;;;;:::i;:::-;;:::i;1736:198::-;;;;;;;;;;-1:-1:-1;1736:198:9;;;;;:::i;:::-;;:::i;1201:85:0:-;;;;;;;;;;-1:-1:-1;1273:6:0;;1201:85;;-1:-1:-1;;;;;1273:6:0;;;4126:51:10;;4114:2;4099:18;1201:85:0;3980:203:10;2365:102:1;;;;;;;;;;;;;:::i;690:16:9:-;;;;;;;;;;-1:-1:-1;690:16:9;;;;;;;;;;;;;;;;;;;4419:25:10;;;4475:2;4460:18;;4453:34;;;;4503:18;;;4496:34;4561:2;4546:18;;4539:34;4406:3;4391:19;690:16:9;4188:391:10;6592:427:1;;;;;;;;;;-1:-1:-1;6592:427:1;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;;;;;-1:-1:-1;3727:189:1;;;;;:::i;:::-;;:::i;4284:271:9:-;;;;;;;;;;-1:-1:-1;4284:271:9;;;;;:::i;:::-;;:::i;3974:149:1:-;;;;;;;;;;-1:-1:-1;3974:149:1;;;;;:::i;:::-;;:::i;2081:198:0:-;;;;;;;;;;-1:-1:-1;2081:198:0;;;;;:::i;:::-;;:::i;1647:81:9:-;;;;;;;;;;-1:-1:-1;1647:81:9;;;;;:::i;:::-;;:::i;930:23::-;;;;;;;;;;-1:-1:-1;930:23:9;;;;;;;;;;;;;;;;;;;;;5698:14:10;;5691:22;5673:41;;5745:2;5730:18;;5723:34;;;;5773:18;;;5766:34;5831:2;5816:18;;5809:34;5660:3;5645:19;930:23:9;5448:401:10;2154:98:1;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:4;4568:32:1;719:10:4;4584:7:1;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;;:::o;5190:286::-;5317:4;719:10:4;5373:38:1;5389:4;719:10:4;5404:6:1;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:1;;5190:286;-1:-1:-1;;;;5190:286:1:o;5871:234::-;5959:4;719:10:4;6013:64:1;719:10:4;6029:7:1;6066:10;6038:25;719:10:4;6029:7:1;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;1831:101:0:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;3169:99:9:-;1094:13:0;:11;:13::i;:::-;3249:11:9;;:5:::1;:11:::0;;-1:-1:-1;;3249:11:9::1;::::0;::::1;;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;3169:99::o;2802:346::-;2881:6;;:16;;;-1:-1:-1;;;2881:16:9;;;;2856:15;;-1:-1:-1;;;;;2881:6:9;;:14;;:16;;;;;;;;;;;;;;:6;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2872:65;;-1:-1:-1;;;2872:65:9;;-1:-1:-1;;;;;6987:15:10;;;2872:65:9;;;6969:34:10;2931:4:9;7019:18:10;;;7012:43;2872:34:9;;;;;;;6904:18:10;;2872:65:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2856:81;-1:-1:-1;;;;;;2951:19:9;;2948:99;;2988:6;;;;;;;;;-1:-1:-1;;;;;2988:6:9;-1:-1:-1;;;;;2988:14:9;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2979:68;;-1:-1:-1;;;2979:68:9;;-1:-1:-1;;;;;6987:15:10;;;2979:68:9;;;6969:34:10;3041:4:9;7019:18:10;;;7012:43;2979:37:9;;;;;;;6904:18:10;;2979:68:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2971:76;;2948:99;-1:-1:-1;;;;;3066:19:9;;3058:49;;;;-1:-1:-1;;;3058:49:9;;7268:2:10;3058:49:9;;;7250:21:10;7307:2;7287:18;;;7280:30;-1:-1:-1;;;7326:18:10;;;7319:47;7383:18;;3058:49:9;;;;;;;;;-1:-1:-1;;;;;3119:15:9;;;;;:6;:15;;;;;:20;;-1:-1:-1;;3119:20:9;3135:4;3119:20;;;-1:-1:-1;2802:346:9:o;1736:198::-;1094:13:0;:11;:13::i;:::-;1839:9:9::1;:13:::0;;-1:-1:-1;;;;;1839:13:9;;::::1;-1:-1:-1::0;;;;;;1839:13:9;;::::1;;::::0;;;1863:3:::1;:8:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;1882:7:::1;:16:::0;;;;1909:7:::1;:16:::0;1736:198::o;2365:102:1:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:4;6685:4:1;6766:25;719:10:4;6783:7:1;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:1;;7614:2:10;6801:85:1;;;7596:21:10;7653:2;7633:18;;;7626:30;7692:34;7672:18;;;7665:62;-1:-1:-1;;;7743:18:10;;;7736:35;7788:19;;6801:85:1;7412:401:10;6801:85:1;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:4;3860:28:1;719:10:4;3877:2:1;3881:6;3860:9;:28::i;4284:271:9:-;-1:-1:-1;;;;;4347:17:9;;4344:202;;4405:3;;4397:35;;4382:12;;-1:-1:-1;;;;;4405:3:9;;4421:6;;4382:12;4397:35;4382:12;4397:35;4421:6;4405:3;4397:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4381:51;;;4456:7;4448:35;;;;-1:-1:-1;;;4448:35:9;;8230:2:10;4448:35:9;;;8212:21:10;8269:2;8249:18;;;8242:30;-1:-1:-1;;;8288:18:10;;;8281:45;8343:18;;4448:35:9;8028:339:10;4448:35:9;4365:131;4284:271;;:::o;4344:202::-;4535:3;;4512:34;;-1:-1:-1;;;4512:34:9;;-1:-1:-1;;;;;4535:3:9;;;4512:34;;;8546:51:10;8613:18;;;8606:34;;;4512:22:9;;;;;;8519:18:10;;4512:34:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3974:149:1:-;-1:-1:-1;;;;;4089:18:1;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;2081:198:0:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:0;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:0;;9103:2:10;2161:73:0::1;::::0;::::1;9085:21:10::0;9142:2;9122:18;;;9115:30;9181:34;9161:18;;;9154:62;-1:-1:-1;;;9232:18:10;;;9225:36;9278:19;;2161:73:0::1;8901:402:10::0;2161:73:0::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1647:81:9:-;1094:13:0;:11;:13::i;:::-;1710:10:9;;:4:::1;:10:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;1647:81::o;10504:370:1:-;-1:-1:-1;;;;;10635:19:1;;10627:68;;;;-1:-1:-1;;;10627:68:1;;9510:2:10;10627:68:1;;;9492:21:10;9549:2;9529:18;;;9522:30;9588:34;9568:18;;;9561:62;-1:-1:-1;;;9639:18:10;;;9632:34;9683:19;;10627:68:1;9308:400:10;10627:68:1;-1:-1:-1;;;;;10713:21:1;;10705:68;;;;-1:-1:-1;;;10705:68:1;;9915:2:10;10705:68:1;;;9897:21:10;9954:2;9934:18;;;9927:30;9993:34;9973:18;;;9966:62;-1:-1:-1;;;10044:18:10;;;10037:32;10086:19;;10705:68:1;9713:398:10;10705:68:1;-1:-1:-1;;;;;10784:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1361:25:10;;;10835:32:1;;1334:18:10;10835:32:1;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:1;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:1;;10318:2:10;11404:68:1;;;10300:21:10;10357:2;10337:18;;;10330:30;10396:31;10376:18;;;10369:59;10445:18;;11404:68:1;10116:353:10;11404:68:1;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:1;;7591:68;;;;-1:-1:-1;;;7591:68:1;;10676:2:10;7591:68:1;;;10658:21:10;10715:2;10695:18;;;10688:30;10754:34;10734:18;;;10727:62;-1:-1:-1;;;10805:18:10;;;10798:35;10850:19;;7591:68:1;10474:401:10;7591:68:1;-1:-1:-1;;;;;7677:16:1;;7669:64;;;;-1:-1:-1;;;7669:64:1;;11082:2:10;7669:64:1;;;11064:21:10;11121:2;11101:18;;;11094:30;11160:34;11140:18;;;11133:62;-1:-1:-1;;;11211:18:10;;;11204:33;11254:19;;7669:64:1;10880:399:10;7669:64:1;7744:38;7765:4;7771:2;7775:6;7744:20;:38::i;:::-;-1:-1:-1;;;;;7815:15:1;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:1;;11486:2:10;7840:72:1;;;11468:21:10;11525:2;11505:18;;;11498:30;11564:34;11544:18;;;11537:62;-1:-1:-1;;;11615:18:10;;;11608:36;11661:19;;7840:72:1;11284:402:10;7840:72:1;-1:-1:-1;;;;;7946:15:1;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1361:25:10;;;8161:13:1;;8210:26;;1334:18:10;8210:26:1;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;1359:130:0:-;1273:6;;-1:-1:-1;;;;;1273:6:0;719:10:4;1422:23:0;1414:68;;;;-1:-1:-1;;;1414:68:0;;11893:2:10;1414:68:0;;;11875:21:10;;;11912:18;;;11905:30;11971:34;11951:18;;;11944:62;12023:18;;1414:68:0;11691:356:10;2433:187:0;2525:6;;;-1:-1:-1;;;;;2541:17:0;;;-1:-1:-1;;;;;;2541:17:0;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;1940:219:9:-;1010:9;;;;1007:21;;;1940:219;;;:::o;1007:21::-;1038:9;:14;;-1:-1:-1;;1038:14:9;1048:4;1038:14;;;2043:20;;2056:7:::1;2043:20;-1:-1:-1::0;;;;;2082:12:9;::::1;2075:6;2082:12:::0;;;:6:::1;:12;::::0;;;;;::::1;;:29;;-1:-1:-1::0;;;;;2097:10:9;::::1;;::::0;;;:6:::1;:10;::::0;;;;;::::1;;:14;;2110:1;2082:29;;2097:14;2108:1;2082:29;;;2095:1;2082:29;2075:36;;;;2126:1;2129;2126:4:::0;2123:26:::1;;2132:17;2140:1;2142:6;2132:7;:17::i;:::-;2032:127;1063:1;-1:-1:-1::0;;1075:9:9;:15;;-1:-1:-1;;1075:15:9;;;-1:-1:-1;1940:219:9:o;2166:222::-;1010:9;;;;1007:21;;;2166:222;;;:::o;1007:21::-;1038:9;:14;;-1:-1:-1;;1038:14:9;1048:4;1038:14;;;2268:20;;2281:7:::1;2268:20;-1:-1:-1::0;;;;;2301:16:9;::::1;::::0;;:34:::1;;-1:-1:-1::0;;;;;;2321:14:9;::::1;::::0;2301:34:::1;2337:7;2298:46;2355:23;2363:4;2368:2;2371:6;2355:7;:23::i;4003:274::-:0;4057:1;3851;3854;3851:4;;:21;;;-1:-1:-1;3860:5:9;:12;;;3859:13;3851:21;3848:34;;;4003:274;;;:::o;3848:34::-;4096:6:::1;::::0;4089:39:::1;::::0;-1:-1:-1;;;4089:39:9;;4122:4:::1;4089:39;::::0;::::1;4126:51:10::0;4072:12:9::1;::::0;4085:51:::1;::::0;-1:-1:-1;;;;;4096:6:9;;::::1;::::0;4089:24:::1;::::0;4099:18:10;;4089:39:9::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4129:6;4085:3;:51::i;:::-;4212:11:::0;;4193:13;;4167:6:::1;::::0;4160:28:::1;::::0;;-1:-1:-1;;;4160:28:9;;;;4072:64;;-1:-1:-1;4160:64:9::1;::::0;:47:::1;::::0;4193:13;-1:-1:-1;;;;;4167:6:9::1;::::0;4160:26:::1;::::0;:28:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;4167:6;4160:28:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32:::0;::::1;:47::i;:::-;:51:::0;::::1;:64::i;:::-;4150:7;:74;4147:85;;;4225:7;4365:131:::0;4284:271;;:::o;4147:85::-:1;4245:9:::0;;4242:27:::1;;4255:14;4261:7;4255:5;:14::i;2394:401::-:0;-1:-1:-1;;;;;2476:12:9;;2467:8;2476:12;;;:6;:12;;;;;;;;:56;;-1:-1:-1;;;;;2498:10:9;;;;;;:6;:10;;;;;;;;:34;;2519:13;;2476:56;;2498:34;2509:9;;2476:56;;;2489:4;:8;2476:56;2579:10;;2467:65;;-1:-1:-1;2544:14:9;;2559:31;;:15;:6;2467:65;2559:10;:15::i;:31::-;2611:9;;2544:46;;-1:-1:-1;;;;;;2605:15:9;;;2611:9;;2605:15;;:32;;-1:-1:-1;2628:9:9;;-1:-1:-1;;;;;2624:13:9;;;2628:9;;2624:13;2605:32;2602:48;;;-1:-1:-1;2649:1:9;2602:48;-1:-1:-1;;;;;2664:10:9;;;;;;:6;:10;;;;;;;;:41;;;;;2685:2;-1:-1:-1;;;;;2678:22:9;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;2664:41;2661:57;;;-1:-1:-1;2717:1:9;2661:57;2732:11;;2729:58;;2744:43;2760:2;2771:4;2777:9;2744:15;:43::i;:::-;2456:339;;2394:401;;;:::o;3909:88::-;3959:4;3984:1;3982;:3;:7;;3988:1;3982:7;;;3986:1;3982:7;3975:14;3909:88;-1:-1:-1;;;3909:88:9:o;3465:96:5:-;3523:7;3549:5;3553:1;3549;:5;:::i;3850:96::-;3908:7;3934:5;3938:1;3934;:5;:::i;3275:531:9:-;3349:16;;;3363:1;3349:16;;;;;;;;3327:21;;3349:16;;;;;;;;-1:-1:-1;;3384:6:9;;3376:7;;;;-1:-1:-1;;;;;;3384:6:9;;3376:7;;-1:-1:-1;3384:6:9;;3376:7;;;;:::i;:::-;-1:-1:-1;;;;;3376:14:9;;;:7;;;;;;;;;:14;3409:6;;3401:7;;3409:6;;;3401:4;;3409:6;;3401:7;;;;;;:::i;:::-;-1:-1:-1;;;;;3401:14:9;;;:7;;;;;;;;;:14;3427:6;;:110;;-1:-1:-1;;;3427:110:9;;:6;;;:57;;:110;;3485:9;;3427:6;;3499:4;;3513;;3521:15;;3427:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3549:11;3561:55;3608:7;;3600;;:15;;;;:::i;:::-;3587:7;;3561:34;;:21;;:25;:34::i;:55::-;3653:9;;3645:41;;3549:67;;-1:-1:-1;3629:13:9;;-1:-1:-1;;;;;3653:9:9;;;;3549:67;;3629:13;3645:41;3629:13;3645:41;3549:67;3653:9;3645:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3722:3:9;;3714:50;;3628:58;;-1:-1:-1;3698:13:9;;-1:-1:-1;;;;;3722:3:9;;;;3738:21;;3698:13;3714:50;3698:13;3714:50;3738:21;3722:3;3714:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;3275:531:9:o;14:548:10:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:10;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:10:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:10;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:10;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2431:344::-;2498:2;2492:9;2540:3;2528:16;;2574:18;2559:34;;2595:22;;;2556:62;2553:185;;;2660:10;2655:3;2651:20;2648:1;2641:31;2695:4;2692:1;2685:15;2723:4;2720:1;2713:15;2553:185;2754:2;2747:22;2431:344;:::o;2780:118::-;2866:5;2859:13;2852:21;2845:5;2842:32;2832:60;;2888:1;2885;2878:12;2903:542;2990:6;3043:3;3031:9;3022:7;3018:23;3014:33;3011:53;;;3060:1;3057;3050:12;3011:53;3086:17;;:::i;:::-;3140:9;3127:23;3159:30;3181:7;3159:30;:::i;:::-;3212:7;3205:5;3198:22;;3280:2;3269:9;3265:18;3252:32;3247:2;3240:5;3236:14;3229:56;3345:2;3334:9;3330:18;3317:32;3312:2;3305:5;3301:14;3294:56;3410:2;3399:9;3395:18;3382:32;3377:2;3370:5;3366:14;3359:56;3434:5;3424:15;;;2903:542;;;;:::o;3450:525::-;3536:6;3544;3552;3560;3613:3;3601:9;3592:7;3588:23;3584:33;3581:53;;;3630:1;3627;3620:12;3581:53;3669:9;3656:23;3688:31;3713:5;3688:31;:::i;:::-;3738:5;-1:-1:-1;3795:2:10;3780:18;;3767:32;3808:33;3767:32;3808:33;:::i;:::-;3450:525;;3860:7;;-1:-1:-1;;;;3914:2:10;3899:18;;3886:32;;3965:2;3950:18;3937:32;;3450:525::o;4584:388::-;4652:6;4660;4713:2;4701:9;4692:7;4688:23;4684:32;4681:52;;;4729:1;4726;4719:12;4681:52;4768:9;4755:23;4787:31;4812:5;4787:31;:::i;:::-;4837:5;-1:-1:-1;4894:2:10;4879:18;;4866:32;4907:33;4866:32;4907:33;:::i;:::-;4959:7;4949:17;;;4584:388;;;;;:::o;4977:466::-;5058:6;5111:3;5099:9;5090:7;5086:23;5082:33;5079:53;;;5128:1;5125;5118:12;5079:53;5154:17;;:::i;:::-;5207:9;5194:23;5187:5;5180:38;5278:2;5267:9;5263:18;5250:32;5245:2;5238:5;5234:14;5227:56;5343:2;5332:9;5328:18;5315:32;5310:2;5303:5;5299:14;5292:56;5408:2;5397:9;5393:18;5380:32;5375:2;5368:5;5364:14;5357:56;5432:5;5422:15;;;4977:466;;;;:::o;5854:380::-;5933:1;5929:12;;;;5976;;;5997:61;;6051:4;6043:6;6039:17;6029:27;;5997:61;6104:2;6096:6;6093:14;6073:18;6070:38;6067:161;;6150:10;6145:3;6141:20;6138:1;6131:31;6185:4;6182:1;6175:15;6213:4;6210:1;6203:15;6067:161;;5854:380;;;:::o;6239:127::-;6300:10;6295:3;6291:20;6288:1;6281:31;6331:4;6328:1;6321:15;6355:4;6352:1;6345:15;6371:125;6436:9;;;6457:10;;;6454:36;;;6470:18;;:::i;6501:251::-;6571:6;6624:2;6612:9;6603:7;6599:23;6595:32;6592:52;;;6640:1;6637;6630:12;6592:52;6672:9;6666:16;6691:31;6716:5;6691:31;:::i;8651:245::-;8718:6;8771:2;8759:9;8750:7;8746:23;8742:32;8739:52;;;8787:1;8784;8777:12;8739:52;8819:9;8813:16;8838:28;8860:5;8838:28;:::i;12052:184::-;12122:6;12175:2;12163:9;12154:7;12150:23;12146:32;12143:52;;;12191:1;12188;12181:12;12143:52;-1:-1:-1;12214:16:10;;12052:184;-1:-1:-1;12052:184:10:o;12241:168::-;12314:9;;;12345;;12362:15;;;12356:22;;12342:37;12332:71;;12383:18;;:::i;12414:217::-;12454:1;12480;12470:132;;12524:10;12519:3;12515:20;12512:1;12505:31;12559:4;12556:1;12549:15;12587:4;12584:1;12577:15;12470:132;-1:-1:-1;12616:9:10;;12414:217::o;12636:127::-;12697:10;12692:3;12688:20;12685:1;12678:31;12728:4;12725:1;12718:15;12752:4;12749:1;12742:15;12768:980;13030:4;13078:3;13067:9;13063:19;13109:6;13098:9;13091:25;13135:2;13173:6;13168:2;13157:9;13153:18;13146:34;13216:3;13211:2;13200:9;13196:18;13189:31;13240:6;13275;13269:13;13306:6;13298;13291:22;13344:3;13333:9;13329:19;13322:26;;13383:2;13375:6;13371:15;13357:29;;13404:1;13414:195;13428:6;13425:1;13422:13;13414:195;;;13493:13;;-1:-1:-1;;;;;13489:39:10;13477:52;;13584:15;;;;13549:12;;;;13525:1;13443:9;13414:195;;;-1:-1:-1;;;;;;;13665:32:10;;;;13660:2;13645:18;;13638:60;-1:-1:-1;;;13729:3:10;13714:19;13707:35;13626:3;12768:980;-1:-1:-1;;;12768:980:10:o

Swarm Source

ipfs://1d2a6f0c23b7c6831d26934d6eb727e835174a917e0c0eb2068aef68d5c4f60c
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.