ETH Price: $3,135.84 (+0.20%)

Token

Blackder AI (BLD)
 

Overview

Max Total Supply

100,000,000 BLD

Holders

369 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$13,427.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

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

OVERVIEW

Blackder AI - The new standard for create content development. 20 + utility. Generate text , video , name and more.

Market

Volume (24H):$64.88
Market Capitalization:$0.00
Circulating Supply:0.00 BLD
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BlackderAi

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 7 : token.sol
import "@openzeppelin/[email protected]/access/Ownable.sol";
import "@openzeppelin/contracts/interfaces/IERC20.sol";
import "./IUniswapV2Router02.sol";
import "./safeMath.sol";

/*
   Website: https://blackder.ai/
   Twitter(X): https://twitter.com/blackder_ai
   Telegram: https://t.me/blackder_ai
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.25;

contract BlackderAi is 
    Context,
    IERC20,
    Ownable
{
    using SafeMath for uint256;

    uint256 private _rTotal = (MAX - (MAX % _totalSupply));
    uint256 private constant MAX = ~uint256(0);

    uint256 private _feeOnBuy = 5;
    uint256 private _feeOnSell = 5;

    uint256 private _tempFee = _fee;
    uint256 private _fee = _feeOnSell;

    address payable private _marketingWallet =
        payable(0xe85e3a6EA4432f2CD44d3FCc8C73828d7ab89149); 

    mapping(address => uint256) private _rOwned;

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

    uint8 private constant _decimals = 9;

    string private constant _name = "Blackder AI"; 
    string private constant _symbol = "BLD"; 

    bool private _maxTxn = false;
    bool private _maxWallet = false;

    IUniswapV2Router02 public uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;

    bool private autoSwapEnabled = true;
    bool private inSwap = false;
    bool private _tradingOpen;

    uint256 private constant _totalSupply = 100_000_000 * 10**9; 
    uint256 public _maxTxnSize = 1_000_000 * 10**9;
    uint256 public _maxHoldSize = 2_000_000 * 10**9;
    uint256 public _minSwappableAmount = 1000 * 10**9;

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

    constructor() {
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_marketingWallet] = true;

        _rOwned[_msgSender()] = _rTotal;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

    function excludeMultipleAccountsFromFees(
        address[] calldata accounts,
        bool excluded
    ) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

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

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

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

    function _getTValues(uint256 tAmount, uint256 fee)
        private
        pure
        returns (uint256, uint256)
    {
        uint256 tTeam = tAmount.mul(fee).div(100);
        uint256 tTransferAmount = tAmount.sub(tTeam);
        return (tTransferAmount, tTeam);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        return (_rTotal, _totalSupply);
    }

    function toggleautoSwapEnabled(bool _autoSwapEnabled) public onlyOwner {
        autoSwapEnabled = _autoSwapEnabled;
    }

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount has to be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function switchTrading(bool __tradingOpen) public onlyOwner {
        _tradingOpen = __tradingOpen;
    }

    function dropFee() private {
        if (_fee == 0) return;

        _tempFee = _fee;

        _fee = 0;
    }

    function restoreFee() private {
        _fee = _tempFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Can't approve from zero address");
        require(spender != address(0), "Can't approve to zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");

        if (from != owner() && to != owner()) {
            //Trade start check
            if (!_tradingOpen) {
                require(
                    from == owner(),
                    "Only owner can trade before trading activation"
                );
            }

            require(amount <= _maxTxnSize, "Exceeded max transaction limit");

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxHoldSize,
                    "Exceeds max hold balance"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool swapAllowed = contractTokenBalance >= _minSwappableAmount;

            if (contractTokenBalance >= _maxTxnSize) {
                contractTokenBalance = _maxTxnSize;
            }

            if (
                swapAllowed &&
                autoSwapEnabled &&
                from != uniswapV2Pair &&
                !_isExcludedFromFee[from] &&
                !inSwap &&
                !_isExcludedFromFee[to]
            ) {
                swap2Eth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    _sendFeesToMarketing(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        if (
            (_isExcludedFromFee[to] || _isExcludedFromFee[from]) ||
            (to != uniswapV2Pair && from != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _fee = _feeOnBuy;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _fee = _feeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swap2Eth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function manualswap() external {
        require(_msgSender() == _marketingWallet);
        uint256 contractBalance = balanceOf(address(this));
        swap2Eth(contractBalance);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "the transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function setMinSwapTokensThreshold(uint256 minSwappableAmount)
        public
        onlyOwner
    {
        _minSwappableAmount = minSwappableAmount;
    }

    function setFees(uint256 feeOnBuy, uint256 feeOnSell) public onlyOwner {
        require(
            feeOnBuy >= 0 && feeOnBuy <= 95,
            "Buy tax must be between 0% and 95%"
        );
        require(
            feeOnSell >= 0 && feeOnSell <= 95,
            "Sell tax must be between 0% and 95%"
        );

        _feeOnBuy = feeOnBuy;
        _feeOnSell = feeOnSell;
    }

    function _transferApplyingFees(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getFeeValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _transferFeeDev(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) dropFee();
        _transferApplyingFees(sender, recipient, amount);
        if (!takeFee) restoreFee();
    }

    function _transferFeeDev(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _getFeeValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tTeam) = _getTValues(tAmount, _fee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount) = _getRValues(
            tAmount,
            tTeam,
            currentRate
        );
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxnSize = maxTxAmount;
    }

    receive() external payable {}

    function setMaxHoldSize(uint256 maxHoldSize) public onlyOwner {
        _maxHoldSize = maxHoldSize;
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tTeam,
        uint256 currentRate
    ) private pure returns (uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTeam);
        return (rAmount, rTransferAmount);
    }

    function _sendFeesToMarketing(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function manualSwap() external {
        require(_msgSender() == _marketingWallet);
        uint256 contractETHBalance = address(this).balance;
        _sendFeesToMarketing(contractETHBalance);
    }

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

File 2 of 7 : safeMath.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
}

File 3 of 7 : IUniswapV2Router02.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

File 4 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)

pragma solidity ^0.8.20;

import {IERC20} from "../token/ERC20/IERC20.sol";

File 5 of 7 : 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 6 of 7 : 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 7 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @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 value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` 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 value) external returns (bool);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxHoldSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minSwappableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeOnBuy","type":"uint256"},{"internalType":"uint256","name":"feeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxHoldSize","type":"uint256"}],"name":"setMaxHoldSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minSwappableAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"__tradingOpen","type":"bool"}],"name":"switchTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_autoSwapEnabled","type":"bool"}],"name":"toggleautoSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00005f19610019919061068e565b5f1961002591906106eb565b6001556005600255600560035560055460045560035460055573e85e3a6ea4432f2cd44d3fcc8c73828d7ab8914960065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a5f6101000a81548160ff0219169083151502179055505f600a60016101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60146101000a81548160ff0219169083151502179055505f600b60156101000a81548160ff02191690831515021790555066038d7ea4c68000600c5566071afd498d0000600d5564e8d4a51000600e55348015610179575f80fd5b5061019661018b61056960201b60201c565b61057060201b60201c565b600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f6101fe61063160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060015460075f6102d761056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a3919061077c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061077c565b6040518363ffffffff1660e01b815260040161046b9291906107b6565b6020604051808303815f875af1158015610487573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ab919061077c565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506104f861056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405161055c91906107ec565b60405180910390a3610805565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61069882610658565b91506106a383610658565b9250826106b3576106b2610661565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106f582610658565b915061070083610658565b9250828203905081811115610718576107176106be565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61074b82610722565b9050919050565b61075b81610741565b8114610765575f80fd5b50565b5f8151905061077681610752565b92915050565b5f602082840312156107915761079061071e565b5b5f61079e84828501610768565b91505092915050565b6107b081610741565b82525050565b5f6040820190506107c95f8301856107a7565b6107d660208301846107a7565b9392505050565b6107e681610658565b82525050565b5f6020820190506107ff5f8301846107dd565b92915050565b612f29806108125f395ff3fe608060405260043610610184575f3560e01c806374010ece116100d0578063a9059cbb11610089578063c492f04611610063578063c492f0461461052b578063dd62ed3e14610553578063e5c436331461058f578063f2fde38b146105b95761018b565b8063a9059cbb146104b1578063b2021e0a146104ed578063c3c8cd80146105155761018b565b806374010ece146103bb578063874949c9146103e35780638da5cb5b1461040b57806395d89b411461043557806398a5c3151461045f5780639e0ba25d146104875761018b565b8063313ce5671161013d578063577009e411610117578063577009e4146103175780636279c6941461033f57806370a0823114610369578063715018a6146103a55761018b565b8063313ce567146102ad57806349bd5a5e146102d757806351bc3c85146103015761018b565b806306fdde031461018f578063095ea7b3146101b95780630b78f9c0146101f55780631694505e1461021d57806318160ddd1461024757806323b872dd146102715761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e1565b6040516101b0919061206d565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612122565b61061e565b6040516101ec919061217a565b60405180910390f35b348015610200575f80fd5b5061021b60048036038101906102169190612193565b61063b565b005b348015610228575f80fd5b506102316106f5565b60405161023e919061222c565b60405180910390f35b348015610252575f80fd5b5061025b61071b565b6040516102689190612254565b60405180910390f35b34801561027c575f80fd5b506102976004803603810190610292919061226d565b61072a565b6040516102a4919061217a565b60405180910390f35b3480156102b8575f80fd5b506102c16107fe565b6040516102ce91906122d8565b60405180910390f35b3480156102e2575f80fd5b506102eb610806565b6040516102f89190612300565b60405180910390f35b34801561030c575f80fd5b5061031561082b565b005b348015610322575f80fd5b5061033d60048036038101906103389190612319565b61089a565b005b34801561034a575f80fd5b506103536108ac565b6040516103609190612254565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a9190612344565b6108b2565b60405161039c9190612254565b60405180910390f35b3480156103b0575f80fd5b506103b9610900565b005b3480156103c6575f80fd5b506103e160048036038101906103dc9190612319565b610913565b005b3480156103ee575f80fd5b5061040960048036038101906104049190612399565b610925565b005b348015610416575f80fd5b5061041f61094a565b60405161042c9190612300565b60405180910390f35b348015610440575f80fd5b50610449610971565b604051610456919061206d565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190612319565b6109ae565b005b348015610492575f80fd5b5061049b6109c0565b6040516104a89190612254565b60405180910390f35b3480156104bc575f80fd5b506104d760048036038101906104d29190612122565b6109c6565b6040516104e4919061217a565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190612399565b6109e3565b005b348015610520575f80fd5b50610529610a08565b005b348015610536575f80fd5b50610551600480360381019061054c9190612425565b610a7f565b005b34801561055e575f80fd5b5061057960048036038101906105749190612482565b610b22565b6040516105869190612254565b60405180910390f35b34801561059a575f80fd5b506105a3610ba4565b6040516105b09190612254565b60405180910390f35b3480156105c4575f80fd5b506105df60048036038101906105da9190612344565b610baa565b005b60606040518060400160405280600b81526020017f426c61636b646572204149000000000000000000000000000000000000000000815250905090565b5f61063161062a610c2c565b8484610c33565b6001905092915050565b610643610df6565b5f82101580156106545750605f8211155b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612530565b60405180910390fd5b5f81101580156106a45750605f8111155b6106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da906125be565b60405180910390fd5b81600281905550806003819055505050565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f610736848484610e74565b6107f384610742610c2c565b6107ee85604051806060016040528060258152602001612ecf6025913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107a5610c2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115e99092919063ffffffff16565b610c33565b600190509392505050565b5f6009905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086b610c2c565b73ffffffffffffffffffffffffffffffffffffffff161461088a575f80fd5b5f4790506108978161164b565b50565b6108a2610df6565b80600d8190555050565b600d5481565b5f6108f960075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116b3565b9050919050565b610908610df6565b6109115f61171f565b565b61091b610df6565b80600c8190555050565b61092d610df6565b80600b60146101000a81548160ff02191690831515021790555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f424c440000000000000000000000000000000000000000000000000000000000815250905090565b6109b6610df6565b80600e8190555050565b600c5481565b5f6109d96109d2610c2c565b8484610e74565b6001905092915050565b6109eb610df6565b80600b60166101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a48610c2c565b73ffffffffffffffffffffffffffffffffffffffff1614610a67575f80fd5b5f610a71306108b2565b9050610a7c816117e0565b50565b610a87610df6565b5f5b83839050811015610b1c578160095f868685818110610aab57610aaa6125dc565b5b9050602002016020810190610ac09190612344565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610a89565b50505050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b610bb2610df6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790612679565b60405180910390fd5b610c298161171f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c98906126e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690612749565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610de99190612254565b60405180910390a3505050565b610dfe610c2c565b73ffffffffffffffffffffffffffffffffffffffff16610e1c61094a565b73ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e69906127b1565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990612819565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790612881565b60405180910390fd5b5f8111610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906128e9565b60405180910390fd5b610f9a61094a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110085750610fd861094a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561130657600b60169054906101000a900460ff166110975761102961094a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90612977565b60405180910390fd5b5b600c548111156110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d3906129df565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461118857600d548161113d846108b2565b6111479190612a2a565b10611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90612aa7565b60405180910390fd5b5b5f611192306108b2565b90505f600e548210159050600c5482106111ac57600c5491505b8080156111c55750600b60149054906101000a900460ff165b801561121e5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611271575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561128a5750600b60159054906101000a900460ff16155b80156112dd575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611303576112eb826117e0565b5f4790505f811115611301576113004761164b565b5b505b50505b5f6001905060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806113a6575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806114575750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114565750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15611464575f90506115d7565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561150e5750600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561151d576002546005819055505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115c75750600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115d6576003546005819055505b5b6115e384848484611a4e565b50505050565b5f838311158290611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627919061206d565b60405180910390fd5b505f838561163e9190612ac5565b9050809150509392505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156116af573d5f803e3d5ffd5b5050565b5f6001548211156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612b68565b60405180910390fd5b5f611702611a7b565b90506117178184611aa490919063ffffffff16565b915050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600b60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561181757611816612b86565b5b6040519080825280602002602001820160405280156118455781602001602082028036833780820191505090505b50905030815f8151811061185c5761185b6125dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611901573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119259190612bc7565b81600181518110611939576119386125dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119a030600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c33565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a03959493929190612ce2565b5f604051808303815f87803b158015611a1a575f80fd5b505af1158015611a2c573d5f803e3d5ffd5b50505050505f600b60156101000a81548160ff02191690831515021790555050565b80611a5c57611a5b611aed565b5b611a67848484611b0a565b80611a7557611a74611cb8565b5b50505050565b5f805f611a86611cc3565b91509150611a9d8183611aa490919063ffffffff16565b9250505090565b5f611ae583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cd9565b905092915050565b5f6005540315611b08576005546004819055505f6005819055505b565b5f805f80611b1785611d3a565b9350935093509350611b6f8460075f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8490919063ffffffff16565b60075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c008360075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcd90919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c4a81611e2a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ca79190612254565b60405180910390a350505050505050565b600454600581905550565b5f8060015467016345785d8a0000915091509091565b5f8083118290611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d16919061206d565b60405180910390fd5b505f8385611d2d9190612d67565b9050809150509392505050565b5f805f805f80611d4c87600554611ee1565b915091505f611d59611a7b565b90505f80611d688a8585611f31565b9150915081818686985098509850985050505050509193509193565b5f611dc583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e9565b905092915050565b5f808284611ddb9190612a2a565b905083811015611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1790612de1565b60405180910390fd5b8091505092915050565b5f611e33611a7b565b90505f611e498284611f8690919063ffffffff16565b9050611e9b8160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcd90919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f611f0a6064611efc8688611f8690919063ffffffff16565b611aa490919063ffffffff16565b90505f611f208287611d8490919063ffffffff16565b905080829350935050509250929050565b5f805f611f478487611f8690919063ffffffff16565b90505f611f5d8587611f8690919063ffffffff16565b90505f611f738284611d8490919063ffffffff16565b9050828194509450505050935093915050565b5f808303611f96575f9050611ff7565b5f8284611fa39190612dff565b9050828482611fb29190612d67565b14611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe990612eb0565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203f82611ffd565b6120498185612007565b9350612059818560208601612017565b61206281612025565b840191505092915050565b5f6020820190508181035f8301526120858184612035565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120be82612095565b9050919050565b6120ce816120b4565b81146120d8575f80fd5b50565b5f813590506120e9816120c5565b92915050565b5f819050919050565b612101816120ef565b811461210b575f80fd5b50565b5f8135905061211c816120f8565b92915050565b5f80604083850312156121385761213761208d565b5b5f612145858286016120db565b92505060206121568582860161210e565b9150509250929050565b5f8115159050919050565b61217481612160565b82525050565b5f60208201905061218d5f83018461216b565b92915050565b5f80604083850312156121a9576121a861208d565b5b5f6121b68582860161210e565b92505060206121c78582860161210e565b9150509250929050565b5f819050919050565b5f6121f46121ef6121ea84612095565b6121d1565b612095565b9050919050565b5f612205826121da565b9050919050565b5f612216826121fb565b9050919050565b6122268161220c565b82525050565b5f60208201905061223f5f83018461221d565b92915050565b61224e816120ef565b82525050565b5f6020820190506122675f830184612245565b92915050565b5f805f606084860312156122845761228361208d565b5b5f612291868287016120db565b93505060206122a2868287016120db565b92505060406122b38682870161210e565b9150509250925092565b5f60ff82169050919050565b6122d2816122bd565b82525050565b5f6020820190506122eb5f8301846122c9565b92915050565b6122fa816120b4565b82525050565b5f6020820190506123135f8301846122f1565b92915050565b5f6020828403121561232e5761232d61208d565b5b5f61233b8482850161210e565b91505092915050565b5f602082840312156123595761235861208d565b5b5f612366848285016120db565b91505092915050565b61237881612160565b8114612382575f80fd5b50565b5f813590506123938161236f565b92915050565b5f602082840312156123ae576123ad61208d565b5b5f6123bb84828501612385565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126123e5576123e46123c4565b5b8235905067ffffffffffffffff811115612402576124016123c8565b5b60208301915083602082028301111561241e5761241d6123cc565b5b9250929050565b5f805f6040848603121561243c5761243b61208d565b5b5f84013567ffffffffffffffff81111561245957612458612091565b5b612465868287016123d0565b9350935050602061247886828701612385565b9150509250925092565b5f80604083850312156124985761249761208d565b5b5f6124a5858286016120db565b92505060206124b6858286016120db565b9150509250929050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f61251a602283612007565b9150612525826124c0565b604082019050919050565b5f6020820190508181035f8301526125478161250e565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b5f6125a8602383612007565b91506125b38261254e565b604082019050919050565b5f6020820190508181035f8301526125d58161259c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612663602683612007565b915061266e82612609565b604082019050919050565b5f6020820190508181035f83015261269081612657565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f6126cb601f83612007565b91506126d682612697565b602082019050919050565b5f6020820190508181035f8301526126f8816126bf565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f612733601d83612007565b915061273e826126ff565b602082019050919050565b5f6020820190508181035f83015261276081612727565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61279b602083612007565b91506127a682612767565b602082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f005f82015250565b5f612803601f83612007565b915061280e826127cf565b602082019050919050565b5f6020820190508181035f830152612830816127f7565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f61286b601d83612007565b915061287682612837565b602082019050919050565b5f6020820190508181035f8301526128988161285f565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f6128d3601b83612007565b91506128de8261289f565b602082019050919050565b5f6020820190508181035f830152612900816128c7565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f612961602e83612007565b915061296c82612907565b604082019050919050565b5f6020820190508181035f83015261298e81612955565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f6129c9601e83612007565b91506129d482612995565b602082019050919050565b5f6020820190508181035f8301526129f6816129bd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a34826120ef565b9150612a3f836120ef565b9250828201905080821115612a5757612a566129fd565b5b92915050565b7f45786365656473206d617820686f6c642062616c616e636500000000000000005f82015250565b5f612a91601883612007565b9150612a9c82612a5d565b602082019050919050565b5f6020820190508181035f830152612abe81612a85565b9050919050565b5f612acf826120ef565b9150612ada836120ef565b9250828203905081811115612af257612af16129fd565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f612b52602c83612007565b9150612b5d82612af8565b604082019050919050565b5f6020820190508181035f830152612b7f81612b46565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612bc1816120c5565b92915050565b5f60208284031215612bdc57612bdb61208d565b5b5f612be984828501612bb3565b91505092915050565b5f819050919050565b5f612c15612c10612c0b84612bf2565b6121d1565b6120ef565b9050919050565b612c2581612bfb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c5d816120b4565b82525050565b5f612c6e8383612c54565b60208301905092915050565b5f602082019050919050565b5f612c9082612c2b565b612c9a8185612c35565b9350612ca583612c45565b805f5b83811015612cd5578151612cbc8882612c63565b9750612cc783612c7a565b925050600181019050612ca8565b5085935050505092915050565b5f60a082019050612cf55f830188612245565b612d026020830187612c1c565b8181036040830152612d148186612c86565b9050612d2360608301856122f1565b612d306080830184612245565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d71826120ef565b9150612d7c836120ef565b925082612d8c57612d8b612d3a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612dcb601b83612007565b9150612dd682612d97565b602082019050919050565b5f6020820190508181035f830152612df881612dbf565b9050919050565b5f612e09826120ef565b9150612e14836120ef565b9250828202612e22816120ef565b91508282048414831517612e3957612e386129fd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e9a602183612007565b9150612ea582612e40565b604082019050919050565b5f6020820190508181035f830152612ec781612e8e565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208acbcd9b8859c669f7e069baa24d18df479737b815e99a8fae0bcb0a876effa164736f6c63430008190033

Deployed Bytecode

0x608060405260043610610184575f3560e01c806374010ece116100d0578063a9059cbb11610089578063c492f04611610063578063c492f0461461052b578063dd62ed3e14610553578063e5c436331461058f578063f2fde38b146105b95761018b565b8063a9059cbb146104b1578063b2021e0a146104ed578063c3c8cd80146105155761018b565b806374010ece146103bb578063874949c9146103e35780638da5cb5b1461040b57806395d89b411461043557806398a5c3151461045f5780639e0ba25d146104875761018b565b8063313ce5671161013d578063577009e411610117578063577009e4146103175780636279c6941461033f57806370a0823114610369578063715018a6146103a55761018b565b8063313ce567146102ad57806349bd5a5e146102d757806351bc3c85146103015761018b565b806306fdde031461018f578063095ea7b3146101b95780630b78f9c0146101f55780631694505e1461021d57806318160ddd1461024757806323b872dd146102715761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e1565b6040516101b0919061206d565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612122565b61061e565b6040516101ec919061217a565b60405180910390f35b348015610200575f80fd5b5061021b60048036038101906102169190612193565b61063b565b005b348015610228575f80fd5b506102316106f5565b60405161023e919061222c565b60405180910390f35b348015610252575f80fd5b5061025b61071b565b6040516102689190612254565b60405180910390f35b34801561027c575f80fd5b506102976004803603810190610292919061226d565b61072a565b6040516102a4919061217a565b60405180910390f35b3480156102b8575f80fd5b506102c16107fe565b6040516102ce91906122d8565b60405180910390f35b3480156102e2575f80fd5b506102eb610806565b6040516102f89190612300565b60405180910390f35b34801561030c575f80fd5b5061031561082b565b005b348015610322575f80fd5b5061033d60048036038101906103389190612319565b61089a565b005b34801561034a575f80fd5b506103536108ac565b6040516103609190612254565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a9190612344565b6108b2565b60405161039c9190612254565b60405180910390f35b3480156103b0575f80fd5b506103b9610900565b005b3480156103c6575f80fd5b506103e160048036038101906103dc9190612319565b610913565b005b3480156103ee575f80fd5b5061040960048036038101906104049190612399565b610925565b005b348015610416575f80fd5b5061041f61094a565b60405161042c9190612300565b60405180910390f35b348015610440575f80fd5b50610449610971565b604051610456919061206d565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190612319565b6109ae565b005b348015610492575f80fd5b5061049b6109c0565b6040516104a89190612254565b60405180910390f35b3480156104bc575f80fd5b506104d760048036038101906104d29190612122565b6109c6565b6040516104e4919061217a565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190612399565b6109e3565b005b348015610520575f80fd5b50610529610a08565b005b348015610536575f80fd5b50610551600480360381019061054c9190612425565b610a7f565b005b34801561055e575f80fd5b5061057960048036038101906105749190612482565b610b22565b6040516105869190612254565b60405180910390f35b34801561059a575f80fd5b506105a3610ba4565b6040516105b09190612254565b60405180910390f35b3480156105c4575f80fd5b506105df60048036038101906105da9190612344565b610baa565b005b60606040518060400160405280600b81526020017f426c61636b646572204149000000000000000000000000000000000000000000815250905090565b5f61063161062a610c2c565b8484610c33565b6001905092915050565b610643610df6565b5f82101580156106545750605f8211155b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612530565b60405180910390fd5b5f81101580156106a45750605f8111155b6106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da906125be565b60405180910390fd5b81600281905550806003819055505050565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f610736848484610e74565b6107f384610742610c2c565b6107ee85604051806060016040528060258152602001612ecf6025913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107a5610c2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115e99092919063ffffffff16565b610c33565b600190509392505050565b5f6009905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086b610c2c565b73ffffffffffffffffffffffffffffffffffffffff161461088a575f80fd5b5f4790506108978161164b565b50565b6108a2610df6565b80600d8190555050565b600d5481565b5f6108f960075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116b3565b9050919050565b610908610df6565b6109115f61171f565b565b61091b610df6565b80600c8190555050565b61092d610df6565b80600b60146101000a81548160ff02191690831515021790555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f424c440000000000000000000000000000000000000000000000000000000000815250905090565b6109b6610df6565b80600e8190555050565b600c5481565b5f6109d96109d2610c2c565b8484610e74565b6001905092915050565b6109eb610df6565b80600b60166101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a48610c2c565b73ffffffffffffffffffffffffffffffffffffffff1614610a67575f80fd5b5f610a71306108b2565b9050610a7c816117e0565b50565b610a87610df6565b5f5b83839050811015610b1c578160095f868685818110610aab57610aaa6125dc565b5b9050602002016020810190610ac09190612344565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610a89565b50505050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b610bb2610df6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790612679565b60405180910390fd5b610c298161171f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c98906126e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690612749565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610de99190612254565b60405180910390a3505050565b610dfe610c2c565b73ffffffffffffffffffffffffffffffffffffffff16610e1c61094a565b73ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e69906127b1565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990612819565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790612881565b60405180910390fd5b5f8111610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906128e9565b60405180910390fd5b610f9a61094a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110085750610fd861094a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561130657600b60169054906101000a900460ff166110975761102961094a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90612977565b60405180910390fd5b5b600c548111156110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d3906129df565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461118857600d548161113d846108b2565b6111479190612a2a565b10611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90612aa7565b60405180910390fd5b5b5f611192306108b2565b90505f600e548210159050600c5482106111ac57600c5491505b8080156111c55750600b60149054906101000a900460ff165b801561121e5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611271575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561128a5750600b60159054906101000a900460ff16155b80156112dd575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611303576112eb826117e0565b5f4790505f811115611301576113004761164b565b5b505b50505b5f6001905060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806113a6575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806114575750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114565750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15611464575f90506115d7565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561150e5750600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561151d576002546005819055505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115c75750600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115d6576003546005819055505b5b6115e384848484611a4e565b50505050565b5f838311158290611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627919061206d565b60405180910390fd5b505f838561163e9190612ac5565b9050809150509392505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156116af573d5f803e3d5ffd5b5050565b5f6001548211156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612b68565b60405180910390fd5b5f611702611a7b565b90506117178184611aa490919063ffffffff16565b915050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600b60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561181757611816612b86565b5b6040519080825280602002602001820160405280156118455781602001602082028036833780820191505090505b50905030815f8151811061185c5761185b6125dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611901573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119259190612bc7565b81600181518110611939576119386125dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119a030600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c33565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a03959493929190612ce2565b5f604051808303815f87803b158015611a1a575f80fd5b505af1158015611a2c573d5f803e3d5ffd5b50505050505f600b60156101000a81548160ff02191690831515021790555050565b80611a5c57611a5b611aed565b5b611a67848484611b0a565b80611a7557611a74611cb8565b5b50505050565b5f805f611a86611cc3565b91509150611a9d8183611aa490919063ffffffff16565b9250505090565b5f611ae583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cd9565b905092915050565b5f6005540315611b08576005546004819055505f6005819055505b565b5f805f80611b1785611d3a565b9350935093509350611b6f8460075f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d8490919063ffffffff16565b60075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c008360075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcd90919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c4a81611e2a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ca79190612254565b60405180910390a350505050505050565b600454600581905550565b5f8060015467016345785d8a0000915091509091565b5f8083118290611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d16919061206d565b60405180910390fd5b505f8385611d2d9190612d67565b9050809150509392505050565b5f805f805f80611d4c87600554611ee1565b915091505f611d59611a7b565b90505f80611d688a8585611f31565b9150915081818686985098509850985050505050509193509193565b5f611dc583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e9565b905092915050565b5f808284611ddb9190612a2a565b905083811015611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1790612de1565b60405180910390fd5b8091505092915050565b5f611e33611a7b565b90505f611e498284611f8690919063ffffffff16565b9050611e9b8160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcd90919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f611f0a6064611efc8688611f8690919063ffffffff16565b611aa490919063ffffffff16565b90505f611f208287611d8490919063ffffffff16565b905080829350935050509250929050565b5f805f611f478487611f8690919063ffffffff16565b90505f611f5d8587611f8690919063ffffffff16565b90505f611f738284611d8490919063ffffffff16565b9050828194509450505050935093915050565b5f808303611f96575f9050611ff7565b5f8284611fa39190612dff565b9050828482611fb29190612d67565b14611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe990612eb0565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203f82611ffd565b6120498185612007565b9350612059818560208601612017565b61206281612025565b840191505092915050565b5f6020820190508181035f8301526120858184612035565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120be82612095565b9050919050565b6120ce816120b4565b81146120d8575f80fd5b50565b5f813590506120e9816120c5565b92915050565b5f819050919050565b612101816120ef565b811461210b575f80fd5b50565b5f8135905061211c816120f8565b92915050565b5f80604083850312156121385761213761208d565b5b5f612145858286016120db565b92505060206121568582860161210e565b9150509250929050565b5f8115159050919050565b61217481612160565b82525050565b5f60208201905061218d5f83018461216b565b92915050565b5f80604083850312156121a9576121a861208d565b5b5f6121b68582860161210e565b92505060206121c78582860161210e565b9150509250929050565b5f819050919050565b5f6121f46121ef6121ea84612095565b6121d1565b612095565b9050919050565b5f612205826121da565b9050919050565b5f612216826121fb565b9050919050565b6122268161220c565b82525050565b5f60208201905061223f5f83018461221d565b92915050565b61224e816120ef565b82525050565b5f6020820190506122675f830184612245565b92915050565b5f805f606084860312156122845761228361208d565b5b5f612291868287016120db565b93505060206122a2868287016120db565b92505060406122b38682870161210e565b9150509250925092565b5f60ff82169050919050565b6122d2816122bd565b82525050565b5f6020820190506122eb5f8301846122c9565b92915050565b6122fa816120b4565b82525050565b5f6020820190506123135f8301846122f1565b92915050565b5f6020828403121561232e5761232d61208d565b5b5f61233b8482850161210e565b91505092915050565b5f602082840312156123595761235861208d565b5b5f612366848285016120db565b91505092915050565b61237881612160565b8114612382575f80fd5b50565b5f813590506123938161236f565b92915050565b5f602082840312156123ae576123ad61208d565b5b5f6123bb84828501612385565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126123e5576123e46123c4565b5b8235905067ffffffffffffffff811115612402576124016123c8565b5b60208301915083602082028301111561241e5761241d6123cc565b5b9250929050565b5f805f6040848603121561243c5761243b61208d565b5b5f84013567ffffffffffffffff81111561245957612458612091565b5b612465868287016123d0565b9350935050602061247886828701612385565b9150509250925092565b5f80604083850312156124985761249761208d565b5b5f6124a5858286016120db565b92505060206124b6858286016120db565b9150509250929050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f61251a602283612007565b9150612525826124c0565b604082019050919050565b5f6020820190508181035f8301526125478161250e565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b5f6125a8602383612007565b91506125b38261254e565b604082019050919050565b5f6020820190508181035f8301526125d58161259c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612663602683612007565b915061266e82612609565b604082019050919050565b5f6020820190508181035f83015261269081612657565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f6126cb601f83612007565b91506126d682612697565b602082019050919050565b5f6020820190508181035f8301526126f8816126bf565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f612733601d83612007565b915061273e826126ff565b602082019050919050565b5f6020820190508181035f83015261276081612727565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61279b602083612007565b91506127a682612767565b602082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f005f82015250565b5f612803601f83612007565b915061280e826127cf565b602082019050919050565b5f6020820190508181035f830152612830816127f7565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f61286b601d83612007565b915061287682612837565b602082019050919050565b5f6020820190508181035f8301526128988161285f565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f6128d3601b83612007565b91506128de8261289f565b602082019050919050565b5f6020820190508181035f830152612900816128c7565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f612961602e83612007565b915061296c82612907565b604082019050919050565b5f6020820190508181035f83015261298e81612955565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f6129c9601e83612007565b91506129d482612995565b602082019050919050565b5f6020820190508181035f8301526129f6816129bd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a34826120ef565b9150612a3f836120ef565b9250828201905080821115612a5757612a566129fd565b5b92915050565b7f45786365656473206d617820686f6c642062616c616e636500000000000000005f82015250565b5f612a91601883612007565b9150612a9c82612a5d565b602082019050919050565b5f6020820190508181035f830152612abe81612a85565b9050919050565b5f612acf826120ef565b9150612ada836120ef565b9250828203905081811115612af257612af16129fd565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f612b52602c83612007565b9150612b5d82612af8565b604082019050919050565b5f6020820190508181035f830152612b7f81612b46565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612bc1816120c5565b92915050565b5f60208284031215612bdc57612bdb61208d565b5b5f612be984828501612bb3565b91505092915050565b5f819050919050565b5f612c15612c10612c0b84612bf2565b6121d1565b6120ef565b9050919050565b612c2581612bfb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c5d816120b4565b82525050565b5f612c6e8383612c54565b60208301905092915050565b5f602082019050919050565b5f612c9082612c2b565b612c9a8185612c35565b9350612ca583612c45565b805f5b83811015612cd5578151612cbc8882612c63565b9750612cc783612c7a565b925050600181019050612ca8565b5085935050505092915050565b5f60a082019050612cf55f830188612245565b612d026020830187612c1c565b8181036040830152612d148186612c86565b9050612d2360608301856122f1565b612d306080830184612245565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d71826120ef565b9150612d7c836120ef565b925082612d8c57612d8b612d3a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612dcb601b83612007565b9150612dd682612d97565b602082019050919050565b5f6020820190508181035f830152612df881612dbf565b9050919050565b5f612e09826120ef565b9150612e14836120ef565b9250828202612e22816120ef565b91508282048414831517612e3957612e386129fd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e9a602183612007565b9150612ea582612e40565b604082019050919050565b5f6020820190508181035f830152612ec781612e8e565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208acbcd9b8859c669f7e069baa24d18df479737b815e99a8fae0bcb0a876effa164736f6c63430008190033

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.