ETH Price: $2,361.33 (+0.90%)

Token

PEEPEE (PEEPEE)
 

Overview

Max Total Supply

100,000,000 PEEPEE

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.472368444 PEEPEE

Value
$0.00
0x61afeb68eb87b762562934e26050d703e5f5ac5d
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:
PEEPEE

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-09
*/

/**
* https://www.bigdickenergy.app
* https://t.me/peepeeETH
*/

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    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
        );

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = payable(address(0));
    }

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

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

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;

    string private _name = "PEEPEE";
    string private _symbol = "PEEPEE";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 100_000_000 * 1e9;

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    IDexRouter public dexRouter;
    address public dexPair;
    address public liquidityReceiverWallet;
    address public marketingWallet;
    address public BuyBackWallet;

    uint256 public minTokenToSwap = _totalSupply.div(1e5); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply; // this is the max wallet holding limit
    uint256 public maxTxnLimit = _totalSupply; // this is the max transaction limit
    uint256 public percentDivider = 1000;
    uint256 public snipingTime = 15 seconds;

    uint256 public launchedAt;



    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus = true; // enable by default
    bool public trading; // once enabled, can't be disable afterwards

    uint256 public LaunchTax = 1000; //this tax will be used only once for snipers and bots during launch

    uint256 public liquidityFeeOnBuying = 20; // 2% will be added to the liquidity
    uint256 public marketingFeeOnBuying = 20; // 2% will be added to the marketing address
    uint256 public BuyBackFeeOnBuying = 20; // 2% will be added to the NFT rewards address

    uint256 public liquidityFeeOnSelling = 20; // 2% will be added to the liquidity
    uint256 public marketingFeeOnSelling = 20; // 2% will be added to the marketing address
    uint256 public BuyBackFeeOnSelling = 20; // 2% will be added to the NFT rewards address

    uint256 liquidityFeeCounter = 0;
    uint256 marketingFeeCounter = 0;
    uint256 BuyBackFeeCounter = 0;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _totalSupply;
         liquidityReceiverWallet = address(0);
         marketingWallet = address(0x044a937c3EA25545A7AC413835017a5289241c70);
         BuyBackWallet = address(0x1E33FC2978a5360a3d77a380cFbb4F12f470F84c);

        IDexRouter _dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;
        isExcludedFromMaxHolding[BuyBackWallet] = true;

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

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

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

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

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

    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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "Transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "Decreased allowance or below zero"
            )
        );
        return true;
    }

    function includeOrExcludeFromFee(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxHolding[account] = value;
    }


    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0,"Can't be 0");
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        maxHoldLimit = _amount;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        maxTxnLimit = _amount;
    }

    function setBuyFeePercent(uint256 _lwFee, uint256 _marketingFee, uint256 _BuyBackFee)
        external
        onlyOwner
    {
        marketingFeeOnBuying = _marketingFee;
        BuyBackFeeOnBuying = _BuyBackFee;
        liquidityFeeOnBuying = _lwFee;
    }

    function setSellFeePercent(uint256 _lwFee, uint256 _marketingFee, uint256 _BuyBackFee)
        external
        onlyOwner
    {
        marketingFeeOnSelling = _marketingFee;
        BuyBackFeeOnSelling = _BuyBackFee;
        liquidityFeeOnSelling = _lwFee;
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function updateAddresses(address _marketingWallet, address _BuyBackWallet, address _liquidityReceiverWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
        BuyBackWallet = _BuyBackWallet;
        liquidityReceiverWallet = _liquidityReceiverWallet;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "Already enabled");
        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount.mul(marketingFeeOnBuying.add(liquidityFeeOnBuying).add(BuyBackFeeOnBuying)).div(
            percentDivider
        );
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnSelling.add(liquidityFeeOnSelling).add(BuyBackFeeOnSelling))
            .div(percentDivider);
        return fee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Approve from the zero address");
        require(spender != address(0), "Approve to the zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Transfer from the zero address");
        require(to != address(0), "Transfer to the zero address");
        require(amount > 0, "Amount must be greater than zero");
 

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "Max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "Trading is disabled"
                );
            }
            // antibot
            if (
                block.timestamp < launchedAt + snipingTime &&
                from != address(dexRouter)
            ) {
                if (dexPair == from) {
                   LaunchTax;
                } else if (dexPair == to) {
                    LaunchTax;
                }
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "Max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee = totalBuyFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(amount,"Insufficient balance");
            _balances[recipient] = _balances[recipient].add(tTransferAmount);

            emit Transfer(sender, recipient, tTransferAmount);
            takeTokenFee(sender, allFee);
            setFeeCountersOnBuying(amount);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(amount,"Insufficient balance");
            _balances[recipient] = _balances[recipient].add(tTransferAmount);

            emit Transfer(sender, recipient, tTransferAmount);
            takeTokenFee(sender, allFee);
            setFeeCountersOnSelling(amount);
        } else {
            _balances[sender] = _balances[sender].sub(amount,"Insufficient balance");
            _balances[recipient] = _balances[recipient].add(amount);

            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function setFeeCountersOnBuying(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnBuying).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnBuying).div(percentDivider);
        BuyBackFeeCounter += amount.mul(BuyBackFeeOnBuying).div(percentDivider);
    }

    function setFeeCountersOnSelling(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnSelling).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnSelling).div(percentDivider);
        BuyBackFeeCounter += amount.mul(BuyBackFeeOnSelling).div(percentDivider);
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == address(dexPair)) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), contractTokenBalance);

            uint256 halfLiquidity = liquidityFeeCounter.div(2);
            uint256 otherHalfLiquidity = liquidityFeeCounter.sub(halfLiquidity);

            uint256 tokenAmountToBeSwapped = contractTokenBalance.sub(
                otherHalfLiquidity
            );

            uint256 balanceBefore = address(this).balance;

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), tokenAmountToBeSwapped);

            uint256 deltaBalance = address(this).balance.sub(balanceBefore);
            uint256 ethToBeAddedToLiquidity = deltaBalance
                .mul(halfLiquidity)
                .div(tokenAmountToBeSwapped);
            uint256 ethFormarketing = deltaBalance.mul(marketingFeeCounter).div(
                tokenAmountToBeSwapped
            );
            uint256 ethForBuyBack = deltaBalance.sub(ethToBeAddedToLiquidity).sub(
                ethFormarketing
            );

            // add liquidity to Dex
            if (ethToBeAddedToLiquidity > 0) {
                Utils.addLiquidity(
                    address(dexRouter),
                    liquidityReceiverWallet,
                    otherHalfLiquidity,
                    ethToBeAddedToLiquidity
                );

                emit SwapAndLiquify(
                    halfLiquidity,
                    ethToBeAddedToLiquidity,
                    otherHalfLiquidity
                );
            }

            // sending eth to marketing wallet
            if (ethFormarketing > 0) payable(marketingWallet).transfer(ethFormarketing);

            // sending eth to NFT rewards wallet
            if (ethForBuyBack > 0) payable(BuyBackWallet).transfer(ethForBuyBack);

            // Reset all fee counters
            liquidityFeeCounter = 0;
            marketingFeeCounter = 0;
            BuyBackFeeCounter = 0;
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

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

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 sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"BuyBackFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyBackFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyBackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LaunchTax","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":"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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiverWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lwFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_BuyBackFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lwFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_BuyBackFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_BuyBackWallet","type":"address"},{"internalType":"address","name":"_liquidityReceiverWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600660808190526550454550454560d01b60a090815262000027919081620005a7565b506040805180820190915260068082526550454550454560d01b60209092019182526200005791600791620005a7565b5060088054600960ff19909116811790915567016345785d8a0000908190556200009190620186a062000511602090811b6200115c17901c565b600f556009546010556009546011556103e8601255600f6013556001601560016101000a81548160ff0219169083151502179055506103e86016556014601755601460185560146019556014601a556014601b556014601c556000601d556000601e556000601f553480156200010657600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460016000620001606000546001600160a01b031690565b6001600160a01b031681526020808201929092526040908101600090812093909355600c80546001600160a01b0319908116909155600d8054821673044a937c3ea25545a7ac413835017a5289241c70179055600e8054909116731e33fc2978a5360a3d77a380cfbb4f12f470f84c179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024691906200064d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba91906200064d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000308573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032e91906200064d565b600b80546001600160a01b038084166001600160a01b031992831617909255600a8054928616929091169190911790559050600160036000620003796000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526003909252812080549092166001908117909255600490620003d26000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260049092528120805490921660019081179092556005906200042b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600b54821684528284208054861682179055600d54821684528284208054861682179055600e54909116835291208054909216179055620004b96000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200050191815260200190565b60405180910390a3505062000730565b60006200055b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056260201b60201c565b9392505050565b600081836200058f5760405162461bcd60e51b815260040162000586919062000678565b60405180910390fd5b5060006200059e8486620006d0565b95945050505050565b828054620005b590620006f3565b90600052602060002090601f016020900481019282620005d9576000855562000624565b82601f10620005f457805160ff191683800117855562000624565b8280016001018555821562000624579182015b828111156200062457825182559160200191906001019062000607565b506200063292915062000636565b5090565b5b8082111562000632576000815560010162000637565b6000602082840312156200066057600080fd5b81516001600160a01b03811681146200055b57600080fd5b600060208083528351808285015260005b81811015620006a75785810183015185820160400152820162000689565b81811115620006ba576000604083870101525b50601f01601f1916929092016040019392505050565b600082620006ee57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806200070857607f821691505b602082108114156200072a57634e487b7160e01b600052602260045260246000fd5b50919050565b6124cf80620007406000396000f3fe60806040526004361061031e5760003560e01c806384ea21bc116101ab578063b0a30f6a116100f7578063ec44acf211610095578063f242ab411161006f578063f242ab411461094e578063f2fde38b1461096e578063f4b3dbc31461098e578063fe6f1b05146109ae57600080fd5b8063ec44acf2146108ee578063ed4214291461090e578063f097ea1a1461092e57600080fd5b8063bf56b371116100d1578063bf56b3711461085c578063dd62ed3e14610872578063e6c84dc6146108b8578063ea5b9e85146108ce57600080fd5b8063b0a30f6a146107fc578063b0bc2a2d1461081c578063be19674b1461083c57600080fd5b806399b102b5116101645780639b6a27501161013e5780639b6a27501461077c578063a457c2d71461079c578063a7c29b40146107bc578063a9059cbb146107dc57600080fd5b806399b102b5146107205780639a36dfa1146107505780639a3ff2161461076657600080fd5b806384ea21bc146106695780638756aabd14610699578063879dd3c5146106b95780638a8c523c146106d85780638da5cb5b146106ed57806395d89b411461070b57600080fd5b8063395093511161026a57806370a082311161022357806379777b4e116101fd57806379777b4e1461060d5780637c6a9a9c146106275780637d99c66d1461063d578063844af78e1461065357600080fd5b806370a08231146105a2578063715018a6146105d857806375f0a874146105ed57600080fd5b806339509351146104e6578063453f931d146105065780635342acb41461051c578063679a3c591461054c578063681aa3621461056c5780636e94312d1461058257600080fd5b806318160ddd116102d75780632d129390116102b15780632d1293901461046e578063313ce5671461048e5780633326d7f2146104b0578063334c1439146104c657600080fd5b806318160ddd146104235780631884f1e61461043857806323b872dd1461044e57600080fd5b806306fdde031461032a5780630758d92414610355578063095ea7b31461038d5780630a2d140c146103bd578063151cd1c2146103df578063156c38b1146103ff57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061033f6109c4565b60405161034c919061204a565b60405180910390f35b34801561036157600080fd5b50600a54610375906001600160a01b031681565b6040516001600160a01b03909116815260200161034c565b34801561039957600080fd5b506103ad6103a83660046120b7565b610a56565b604051901515815260200161034c565b3480156103c957600080fd5b506103dd6103d83660046120f8565b610a6d565b005b3480156103eb57600080fd5b506103dd6103fa366004612113565b610ab3565b34801561040b57600080fd5b5061041560195481565b60405190815260200161034c565b34801561042f57600080fd5b50600954610415565b34801561044457600080fd5b50610415600f5481565b34801561045a57600080fd5b506103ad61046936600461213f565b610aeb565b34801561047a57600080fd5b506103dd610489366004612180565b610b54565b34801561049a57600080fd5b5060085460405160ff909116815260200161034c565b3480156104bc57600080fd5b5061041560175481565b3480156104d257600080fd5b506103dd6104e13660046121b5565b610ba9565b3480156104f257600080fd5b506103ad6105013660046120b7565b610c12565b34801561051257600080fd5b50610415601c5481565b34801561052857600080fd5b506103ad610537366004612200565b60036020526000908152604090205460ff1681565b34801561055857600080fd5b506103dd610567366004612200565b610c48565b34801561057857600080fd5b5061041560115481565b34801561058e57600080fd5b50600e54610375906001600160a01b031681565b3480156105ae57600080fd5b506104156105bd366004612200565b6001600160a01b031660009081526001602052604090205490565b3480156105e457600080fd5b506103dd610cab565b3480156105f957600080fd5b50600d54610375906001600160a01b031681565b34801561061957600080fd5b506015546103ad9060ff1681565b34801561063357600080fd5b5061041560185481565b34801561064957600080fd5b5061041560135481565b34801561065f57600080fd5b50610415601b5481565b34801561067557600080fd5b506103ad610684366004612200565b60056020526000908152604090205460ff1681565b3480156106a557600080fd5b506103dd6106b436600461221d565b610d1f565b3480156106c557600080fd5b506015546103ad90610100900460ff1681565b3480156106e457600080fd5b506103dd610d4e565b3480156106f957600080fd5b506000546001600160a01b0316610375565b34801561071757600080fd5b5061033f610dda565b34801561072c57600080fd5b506103ad61073b366004612200565b60046020526000908152604090205460ff1681565b34801561075c57600080fd5b5061041560105481565b34801561077257600080fd5b5061041560165481565b34801561078857600080fd5b506103dd61079736600461221d565b610de9565b3480156107a857600080fd5b506103ad6107b73660046120b7565b610e18565b3480156107c857600080fd5b506103dd6107d7366004612180565b610e67565b3480156107e857600080fd5b506103ad6107f73660046120b7565b610ebc565b34801561080857600080fd5b50600c54610375906001600160a01b031681565b34801561082857600080fd5b506103dd6108373660046120f8565b610ec9565b34801561084857600080fd5b506103dd610857366004612113565b610f0d565b34801561086857600080fd5b5061041560145481565b34801561087e57600080fd5b5061041561088d366004612236565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108c457600080fd5b50610415601a5481565b3480156108da57600080fd5b506103dd6108e9366004612180565b610f45565b3480156108fa57600080fd5b506015546103ad9062010000900460ff1681565b34801561091a57600080fd5b5061041561092936600461221d565b610f9a565b34801561093a57600080fd5b506103dd61094936600461221d565b610fdd565b34801561095a57600080fd5b50600b54610375906001600160a01b031681565b34801561097a57600080fd5b506103dd610989366004612200565b611049565b34801561099a57600080fd5b506104156109a936600461221d565b611133565b3480156109ba57600080fd5b5061041560125481565b6060600680546109d39061226f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ff9061226f565b8015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b5050505050905090565b6000610a6333848461119e565b5060015b92915050565b6000546001600160a01b03163314610aa05760405162461bcd60e51b8152600401610a97906122aa565b60405180910390fd5b6015805460ff1916911515919091179055565b6000546001600160a01b03163314610add5760405162461bcd60e51b8152600401610a97906122aa565b601b91909155601c55601a55565b6000610af88484846112ab565b610b4a8433610b4585604051806060016040528060218152602001612438602191396001600160a01b038a16600090815260026020908152604080832033845290915290205491906115eb565b61119e565b5060019392505050565b6000546001600160a01b03163314610b7e5760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bd35760405162461bcd60e51b8152600401610a97906122aa565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600c8054919093169116179055565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a63918590610b459086611625565b6000546001600160a01b03163314610c725760405162461bcd60e51b8152600401610a97906122aa565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ca7573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610cd55760405162461bcd60e51b8152600401610a97906122aa565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d495760405162461bcd60e51b8152600401610a97906122aa565b601055565b6000546001600160a01b03163314610d785760405162461bcd60e51b8152600401610a97906122aa565b60155462010000900460ff1615610dc35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610a97565b6015805462ffffff19166201010117905542601455565b6060600780546109d39061226f565b6000546001600160a01b03163314610e135760405162461bcd60e51b8152600401610a97906122aa565b601155565b6000610a633384610b4585604051806060016040528060218152602001612479602191393360009081526002602090815260408083206001600160a01b038d16845290915290205491906115eb565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000610a633384846112ab565b6000546001600160a01b03163314610ef35760405162461bcd60e51b8152600401610a97906122aa565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610f375760405162461bcd60e51b8152600401610a97906122aa565b601891909155601955601755565b6000546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b600080610fd6601254610fd0610fc9601954610fc360175460185461162590919063ffffffff16565b90611625565b8690611684565b9061115c565b9392505050565b6000546001600160a01b031633146110075760405162461bcd60e51b8152600401610a97906122aa565b600081116110445760405162461bcd60e51b815260206004820152600a602482015269043616e277420626520360b41b6044820152606401610a97565b600f55565b6000546001600160a01b031633146110735760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b0381166110d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a97565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610fd6601254610fd0610fc9601c54610fc3601a54601b5461162590919063ffffffff16565b6000610fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611703565b6001600160a01b0383166111f45760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f20616464726573730000006044820152606401610a97565b6001600160a01b03821661124a5760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610a97565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113015760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610a97565b6001600160a01b0382166113575760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610a97565b600081116113a75760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610a97565b6001600160a01b03831660009081526004602052604090205460ff161580156113e957506001600160a01b03821660009081526004602052604090205460ff16155b156114e4576011548111156114385760405162461bcd60e51b81526020600482015260156024820152744d61782074786e206c696d6974206578636565647360581b6044820152606401610a97565b60155462010000900460ff166114b657600b546001600160a01b038481169116148015906114745750600b546001600160a01b03838116911614155b6114b65760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610a97565b6013546014546114c691906122f5565b421080156114e25750600a546001600160a01b03848116911614155b505b6001600160a01b03821660009081526005602052604090205460ff166115715760105461152a82610fc3856001600160a01b031660009081526001602052604090205490565b11156115715760405162461bcd60e51b81526020600482015260166024820152754d617820686f6c64206c696d6974206578636565647360501b6044820152606401610a97565b61157b8383611731565b6001600160a01b03831660009081526003602052604090205460019060ff16806115bd57506001600160a01b03831660009081526003602052604090205460ff165b806115d05750601554610100900460ff16155b156115d9575060005b6115e58484848461196b565b50505050565b6000818484111561160f5760405162461bcd60e51b8152600401610a97919061204a565b50600061161c848661230d565b95945050505050565b60008061163283856122f5565b905083811015610fd65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a97565b60008261169357506000610a67565b600061169f8385612324565b9050826116ac8583612343565b14610fd65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a97565b600081836117245760405162461bcd60e51b8152600401610a97919061204a565b50600061161c8486612343565b30600090815260016020526040902054600f54811080159081906117635750600b546001600160a01b03858116911614155b8015611771575060155460ff165b801561179f57506001600160a01b0384163014801561179d5750600b546001600160a01b038481169116145b155b156115e557600a546117bc9030906001600160a01b03168461119e565b601d546000906117cd90600261115c565b905060006117e682601d54611c9b90919063ffffffff16565b905060006117f48583611c9b565b600a54909150479061180f906001600160a01b031683611cdd565b600061181b4783611c9b565b9050600061182d84610fd08489611684565b9050600061184a85610fd0601e548661168490919063ffffffff16565b905060006118628261185c8686611c9b565b90611c9b565b905082156118ca57600a54600c54611888916001600160a01b0390811691168986611e31565b60408051898152602081018590529081018890527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b811561190c57600d546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561190a573d6000803e3d6000fd5b505b801561194e57600e546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561194c573d6000803e3d6000fd5b505b50506000601d819055601e819055601f5550505050505050505050565b600b546001600160a01b0385811691161480156119855750805b15611a9e57600061199583610f9a565b905060006119a38483611c9b565b9050611a0b8460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b03168152602001908152602001600020546115eb9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611a3a9082611625565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061245983398151915290611a7c9085815260200190565b60405180910390a3611a8e8683611ee6565b611a9784611f4b565b50506115e5565b600b546001600160a01b038481169116148015611ab85750805b15611bca576000611ac883611133565b90506000611ad68483611c9b565b9050611b3e8460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b03168152602001908152602001600020546115eb9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611b6d9082611625565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061245983398151915290611baf9085815260200190565b60405180910390a3611bc18683611ee6565b611a9784611fd7565b6040805180820182526014815273496e73756666696369656e742062616c616e636560601b6020808301919091526001600160a01b038716600090815260019091529190912054611c1c9184906115eb565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611c4b9083611625565b6001600160a01b03808516600081815260016020526040908190209390935591519086169060008051602061245983398151915290611c8d9086815260200190565b60405180910390a350505050565b6000610fd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115eb565b604080516002808252606082018352849260009291906020830190803683370190505090503081600081518110611d1657611d16612365565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d98919061237b565b81600181518110611dab57611dab612365565b6001600160a01b039283166020918202929092010152821663791ac9478460008430611dd94261012c6122f5565b6040518663ffffffff1660e01b8152600401611df9959493929190612398565b600060405180830381600087803b158015611e1357600080fd5b505af1158015611e27573d6000803e3d6000fd5b5050505050505050565b836001600160a01b03811663f305d7198330866000808a611e544261012c6122f5565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015611ec1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e279190612409565b30600090815260016020526040902054611f009082611625565b30600081815260016020526040908190209290925590516001600160a01b0384169060008051602061245983398151915290611f3f9085815260200190565b60405180910390a35050565b611f66601254610fd06017548461168490919063ffffffff16565b601d6000828254611f7791906122f5565b9091555050601254601854611f929190610fd0908490611684565b601e6000828254611fa391906122f5565b9091555050601254601954611fbe9190610fd0908490611684565b601f6000828254611fcf91906122f5565b909155505050565b611ff2601254610fd0601a548461168490919063ffffffff16565b601d600082825461200391906122f5565b9091555050601254601b5461201e9190610fd0908490611684565b601e600082825461202f91906122f5565b9091555050601254601c54611fbe9190610fd0908490611684565b600060208083528351808285015260005b818110156120775785810183015185820160400152820161205b565b81811115612089576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146120b457600080fd5b50565b600080604083850312156120ca57600080fd5b82356120d58161209f565b946020939093013593505050565b803580151581146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b610fd6826120e3565b60008060006060848603121561212857600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561215457600080fd5b833561215f8161209f565b9250602084013561216f8161209f565b929592945050506040919091013590565b6000806040838503121561219357600080fd5b823561219e8161209f565b91506121ac602084016120e3565b90509250929050565b6000806000606084860312156121ca57600080fd5b83356121d58161209f565b925060208401356121e58161209f565b915060408401356121f58161209f565b809150509250925092565b60006020828403121561221257600080fd5b8135610fd68161209f565b60006020828403121561222f57600080fd5b5035919050565b6000806040838503121561224957600080fd5b82356122548161209f565b915060208301356122648161209f565b809150509250929050565b600181811c9082168061228357607f821691505b602082108114156122a457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612308576123086122df565b500190565b60008282101561231f5761231f6122df565b500390565b600081600019048311821515161561233e5761233e6122df565b500290565b60008261236057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561238d57600080fd5b8151610fd68161209f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123e85784516001600160a01b0316835293830193918301916001016123c3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561241e57600080fd5b835192506020840151915060408401519050925092509256fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef44656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa264697066735822122033da78770741082b38c8f1188d44973357226689513b149c8c818f1e3ecade9564736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c806384ea21bc116101ab578063b0a30f6a116100f7578063ec44acf211610095578063f242ab411161006f578063f242ab411461094e578063f2fde38b1461096e578063f4b3dbc31461098e578063fe6f1b05146109ae57600080fd5b8063ec44acf2146108ee578063ed4214291461090e578063f097ea1a1461092e57600080fd5b8063bf56b371116100d1578063bf56b3711461085c578063dd62ed3e14610872578063e6c84dc6146108b8578063ea5b9e85146108ce57600080fd5b8063b0a30f6a146107fc578063b0bc2a2d1461081c578063be19674b1461083c57600080fd5b806399b102b5116101645780639b6a27501161013e5780639b6a27501461077c578063a457c2d71461079c578063a7c29b40146107bc578063a9059cbb146107dc57600080fd5b806399b102b5146107205780639a36dfa1146107505780639a3ff2161461076657600080fd5b806384ea21bc146106695780638756aabd14610699578063879dd3c5146106b95780638a8c523c146106d85780638da5cb5b146106ed57806395d89b411461070b57600080fd5b8063395093511161026a57806370a082311161022357806379777b4e116101fd57806379777b4e1461060d5780637c6a9a9c146106275780637d99c66d1461063d578063844af78e1461065357600080fd5b806370a08231146105a2578063715018a6146105d857806375f0a874146105ed57600080fd5b806339509351146104e6578063453f931d146105065780635342acb41461051c578063679a3c591461054c578063681aa3621461056c5780636e94312d1461058257600080fd5b806318160ddd116102d75780632d129390116102b15780632d1293901461046e578063313ce5671461048e5780633326d7f2146104b0578063334c1439146104c657600080fd5b806318160ddd146104235780631884f1e61461043857806323b872dd1461044e57600080fd5b806306fdde031461032a5780630758d92414610355578063095ea7b31461038d5780630a2d140c146103bd578063151cd1c2146103df578063156c38b1146103ff57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061033f6109c4565b60405161034c919061204a565b60405180910390f35b34801561036157600080fd5b50600a54610375906001600160a01b031681565b6040516001600160a01b03909116815260200161034c565b34801561039957600080fd5b506103ad6103a83660046120b7565b610a56565b604051901515815260200161034c565b3480156103c957600080fd5b506103dd6103d83660046120f8565b610a6d565b005b3480156103eb57600080fd5b506103dd6103fa366004612113565b610ab3565b34801561040b57600080fd5b5061041560195481565b60405190815260200161034c565b34801561042f57600080fd5b50600954610415565b34801561044457600080fd5b50610415600f5481565b34801561045a57600080fd5b506103ad61046936600461213f565b610aeb565b34801561047a57600080fd5b506103dd610489366004612180565b610b54565b34801561049a57600080fd5b5060085460405160ff909116815260200161034c565b3480156104bc57600080fd5b5061041560175481565b3480156104d257600080fd5b506103dd6104e13660046121b5565b610ba9565b3480156104f257600080fd5b506103ad6105013660046120b7565b610c12565b34801561051257600080fd5b50610415601c5481565b34801561052857600080fd5b506103ad610537366004612200565b60036020526000908152604090205460ff1681565b34801561055857600080fd5b506103dd610567366004612200565b610c48565b34801561057857600080fd5b5061041560115481565b34801561058e57600080fd5b50600e54610375906001600160a01b031681565b3480156105ae57600080fd5b506104156105bd366004612200565b6001600160a01b031660009081526001602052604090205490565b3480156105e457600080fd5b506103dd610cab565b3480156105f957600080fd5b50600d54610375906001600160a01b031681565b34801561061957600080fd5b506015546103ad9060ff1681565b34801561063357600080fd5b5061041560185481565b34801561064957600080fd5b5061041560135481565b34801561065f57600080fd5b50610415601b5481565b34801561067557600080fd5b506103ad610684366004612200565b60056020526000908152604090205460ff1681565b3480156106a557600080fd5b506103dd6106b436600461221d565b610d1f565b3480156106c557600080fd5b506015546103ad90610100900460ff1681565b3480156106e457600080fd5b506103dd610d4e565b3480156106f957600080fd5b506000546001600160a01b0316610375565b34801561071757600080fd5b5061033f610dda565b34801561072c57600080fd5b506103ad61073b366004612200565b60046020526000908152604090205460ff1681565b34801561075c57600080fd5b5061041560105481565b34801561077257600080fd5b5061041560165481565b34801561078857600080fd5b506103dd61079736600461221d565b610de9565b3480156107a857600080fd5b506103ad6107b73660046120b7565b610e18565b3480156107c857600080fd5b506103dd6107d7366004612180565b610e67565b3480156107e857600080fd5b506103ad6107f73660046120b7565b610ebc565b34801561080857600080fd5b50600c54610375906001600160a01b031681565b34801561082857600080fd5b506103dd6108373660046120f8565b610ec9565b34801561084857600080fd5b506103dd610857366004612113565b610f0d565b34801561086857600080fd5b5061041560145481565b34801561087e57600080fd5b5061041561088d366004612236565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108c457600080fd5b50610415601a5481565b3480156108da57600080fd5b506103dd6108e9366004612180565b610f45565b3480156108fa57600080fd5b506015546103ad9062010000900460ff1681565b34801561091a57600080fd5b5061041561092936600461221d565b610f9a565b34801561093a57600080fd5b506103dd61094936600461221d565b610fdd565b34801561095a57600080fd5b50600b54610375906001600160a01b031681565b34801561097a57600080fd5b506103dd610989366004612200565b611049565b34801561099a57600080fd5b506104156109a936600461221d565b611133565b3480156109ba57600080fd5b5061041560125481565b6060600680546109d39061226f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ff9061226f565b8015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b5050505050905090565b6000610a6333848461119e565b5060015b92915050565b6000546001600160a01b03163314610aa05760405162461bcd60e51b8152600401610a97906122aa565b60405180910390fd5b6015805460ff1916911515919091179055565b6000546001600160a01b03163314610add5760405162461bcd60e51b8152600401610a97906122aa565b601b91909155601c55601a55565b6000610af88484846112ab565b610b4a8433610b4585604051806060016040528060218152602001612438602191396001600160a01b038a16600090815260026020908152604080832033845290915290205491906115eb565b61119e565b5060019392505050565b6000546001600160a01b03163314610b7e5760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bd35760405162461bcd60e51b8152600401610a97906122aa565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600c8054919093169116179055565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a63918590610b459086611625565b6000546001600160a01b03163314610c725760405162461bcd60e51b8152600401610a97906122aa565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ca7573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610cd55760405162461bcd60e51b8152600401610a97906122aa565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d495760405162461bcd60e51b8152600401610a97906122aa565b601055565b6000546001600160a01b03163314610d785760405162461bcd60e51b8152600401610a97906122aa565b60155462010000900460ff1615610dc35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610a97565b6015805462ffffff19166201010117905542601455565b6060600780546109d39061226f565b6000546001600160a01b03163314610e135760405162461bcd60e51b8152600401610a97906122aa565b601155565b6000610a633384610b4585604051806060016040528060218152602001612479602191393360009081526002602090815260408083206001600160a01b038d16845290915290205491906115eb565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000610a633384846112ab565b6000546001600160a01b03163314610ef35760405162461bcd60e51b8152600401610a97906122aa565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610f375760405162461bcd60e51b8152600401610a97906122aa565b601891909155601955601755565b6000546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b600080610fd6601254610fd0610fc9601954610fc360175460185461162590919063ffffffff16565b90611625565b8690611684565b9061115c565b9392505050565b6000546001600160a01b031633146110075760405162461bcd60e51b8152600401610a97906122aa565b600081116110445760405162461bcd60e51b815260206004820152600a602482015269043616e277420626520360b41b6044820152606401610a97565b600f55565b6000546001600160a01b031633146110735760405162461bcd60e51b8152600401610a97906122aa565b6001600160a01b0381166110d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a97565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610fd6601254610fd0610fc9601c54610fc3601a54601b5461162590919063ffffffff16565b6000610fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611703565b6001600160a01b0383166111f45760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f20616464726573730000006044820152606401610a97565b6001600160a01b03821661124a5760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610a97565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113015760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610a97565b6001600160a01b0382166113575760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610a97565b600081116113a75760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610a97565b6001600160a01b03831660009081526004602052604090205460ff161580156113e957506001600160a01b03821660009081526004602052604090205460ff16155b156114e4576011548111156114385760405162461bcd60e51b81526020600482015260156024820152744d61782074786e206c696d6974206578636565647360581b6044820152606401610a97565b60155462010000900460ff166114b657600b546001600160a01b038481169116148015906114745750600b546001600160a01b03838116911614155b6114b65760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610a97565b6013546014546114c691906122f5565b421080156114e25750600a546001600160a01b03848116911614155b505b6001600160a01b03821660009081526005602052604090205460ff166115715760105461152a82610fc3856001600160a01b031660009081526001602052604090205490565b11156115715760405162461bcd60e51b81526020600482015260166024820152754d617820686f6c64206c696d6974206578636565647360501b6044820152606401610a97565b61157b8383611731565b6001600160a01b03831660009081526003602052604090205460019060ff16806115bd57506001600160a01b03831660009081526003602052604090205460ff165b806115d05750601554610100900460ff16155b156115d9575060005b6115e58484848461196b565b50505050565b6000818484111561160f5760405162461bcd60e51b8152600401610a97919061204a565b50600061161c848661230d565b95945050505050565b60008061163283856122f5565b905083811015610fd65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a97565b60008261169357506000610a67565b600061169f8385612324565b9050826116ac8583612343565b14610fd65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a97565b600081836117245760405162461bcd60e51b8152600401610a97919061204a565b50600061161c8486612343565b30600090815260016020526040902054600f54811080159081906117635750600b546001600160a01b03858116911614155b8015611771575060155460ff165b801561179f57506001600160a01b0384163014801561179d5750600b546001600160a01b038481169116145b155b156115e557600a546117bc9030906001600160a01b03168461119e565b601d546000906117cd90600261115c565b905060006117e682601d54611c9b90919063ffffffff16565b905060006117f48583611c9b565b600a54909150479061180f906001600160a01b031683611cdd565b600061181b4783611c9b565b9050600061182d84610fd08489611684565b9050600061184a85610fd0601e548661168490919063ffffffff16565b905060006118628261185c8686611c9b565b90611c9b565b905082156118ca57600a54600c54611888916001600160a01b0390811691168986611e31565b60408051898152602081018590529081018890527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b811561190c57600d546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561190a573d6000803e3d6000fd5b505b801561194e57600e546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561194c573d6000803e3d6000fd5b505b50506000601d819055601e819055601f5550505050505050505050565b600b546001600160a01b0385811691161480156119855750805b15611a9e57600061199583610f9a565b905060006119a38483611c9b565b9050611a0b8460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b03168152602001908152602001600020546115eb9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611a3a9082611625565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061245983398151915290611a7c9085815260200190565b60405180910390a3611a8e8683611ee6565b611a9784611f4b565b50506115e5565b600b546001600160a01b038481169116148015611ab85750805b15611bca576000611ac883611133565b90506000611ad68483611c9b565b9050611b3e8460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b03168152602001908152602001600020546115eb9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611b6d9082611625565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061245983398151915290611baf9085815260200190565b60405180910390a3611bc18683611ee6565b611a9784611fd7565b6040805180820182526014815273496e73756666696369656e742062616c616e636560601b6020808301919091526001600160a01b038716600090815260019091529190912054611c1c9184906115eb565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611c4b9083611625565b6001600160a01b03808516600081815260016020526040908190209390935591519086169060008051602061245983398151915290611c8d9086815260200190565b60405180910390a350505050565b6000610fd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115eb565b604080516002808252606082018352849260009291906020830190803683370190505090503081600081518110611d1657611d16612365565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d98919061237b565b81600181518110611dab57611dab612365565b6001600160a01b039283166020918202929092010152821663791ac9478460008430611dd94261012c6122f5565b6040518663ffffffff1660e01b8152600401611df9959493929190612398565b600060405180830381600087803b158015611e1357600080fd5b505af1158015611e27573d6000803e3d6000fd5b5050505050505050565b836001600160a01b03811663f305d7198330866000808a611e544261012c6122f5565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015611ec1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e279190612409565b30600090815260016020526040902054611f009082611625565b30600081815260016020526040908190209290925590516001600160a01b0384169060008051602061245983398151915290611f3f9085815260200190565b60405180910390a35050565b611f66601254610fd06017548461168490919063ffffffff16565b601d6000828254611f7791906122f5565b9091555050601254601854611f929190610fd0908490611684565b601e6000828254611fa391906122f5565b9091555050601254601954611fbe9190610fd0908490611684565b601f6000828254611fcf91906122f5565b909155505050565b611ff2601254610fd0601a548461168490919063ffffffff16565b601d600082825461200391906122f5565b9091555050601254601b5461201e9190610fd0908490611684565b601e600082825461202f91906122f5565b9091555050601254601c54611fbe9190610fd0908490611684565b600060208083528351808285015260005b818110156120775785810183015185820160400152820161205b565b81811115612089576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146120b457600080fd5b50565b600080604083850312156120ca57600080fd5b82356120d58161209f565b946020939093013593505050565b803580151581146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b610fd6826120e3565b60008060006060848603121561212857600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561215457600080fd5b833561215f8161209f565b9250602084013561216f8161209f565b929592945050506040919091013590565b6000806040838503121561219357600080fd5b823561219e8161209f565b91506121ac602084016120e3565b90509250929050565b6000806000606084860312156121ca57600080fd5b83356121d58161209f565b925060208401356121e58161209f565b915060408401356121f58161209f565b809150509250925092565b60006020828403121561221257600080fd5b8135610fd68161209f565b60006020828403121561222f57600080fd5b5035919050565b6000806040838503121561224957600080fd5b82356122548161209f565b915060208301356122648161209f565b809150509250929050565b600181811c9082168061228357607f821691505b602082108114156122a457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612308576123086122df565b500190565b60008282101561231f5761231f6122df565b500390565b600081600019048311821515161561233e5761233e6122df565b500290565b60008261236057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561238d57600080fd5b8151610fd68161209f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123e85784516001600160a01b0316835293830193918301916001016123c3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561241e57600080fd5b835192506020840151915060408401519050925092509256fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef44656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa264697066735822122033da78770741082b38c8f1188d44973357226689513b149c8c818f1e3ecade9564736f6c634300080a0033

Deployed Bytecode Sourcemap

3246:16216:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7109:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3912:27;;;;;;;;;;-1:-1:-1;3912:27:0;;;;-1:-1:-1;;;;;3912:27:0;;;;;;-1:-1:-1;;;;;798:32:1;;;780:51;;768:2;753:18;3912:27:0;616:221:1;8020:193:0;;;;;;;;;;-1:-1:-1;8020:193:0;;;;;:::i;:::-;;:::i;:::-;;;1463:14:1;;1456:22;1438:41;;1426:2;1411:18;8020:193:0;1298:187:1;10825:115:0;;;;;;;;;;-1:-1:-1;10825:115:0;;;;;:::i;:::-;;:::i;:::-;;10547:270;;;;;;;;;;-1:-1:-1;10547:270:0;;;;;:::i;:::-;;:::i;5016:38::-;;;;;;;;;;;;;;;;;;;2307:25:1;;;2295:2;2280:18;5016:38:0;2161:177:1;7386:100:0;;;;;;;;;;-1:-1:-1;7466:12:0;;7386:100;;4094:53;;;;;;;;;;;;;;;;8221:439;;;;;;;;;;-1:-1:-1;8221:439:0;;;;;:::i;:::-;;:::i;9716:171::-;;;;;;;;;;-1:-1:-1;9716:171:0;;;;;:::i;:::-;;:::i;7295:83::-;;;;;;;;;;-1:-1:-1;7361:9:0;;7295:83;;7361:9;;;;3266:36:1;;3254:2;3239:18;7295:83:0;3124:184:1;4840:40:0;;;;;;;;;;;;;;;;11192:283;;;;;;;;;;-1:-1:-1;11192:283:0;;;;;:::i;:::-;;:::i;8668:300::-;;;;;;;;;;-1:-1:-1;8668:300:0;;;;;:::i;:::-;;:::i;5288:39::-;;;;;;;;;;;;;;;;3460:49;;;;;;;;;;-1:-1:-1;3460:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11055:129;;;;;;;;;;-1:-1:-1;11055:129:0;;;;;:::i;:::-;;:::i;4291:41::-;;;;;;;;;;;;;;;;4057:28;;;;;;;;;;-1:-1:-1;4057:28:0;;;;-1:-1:-1;;;;;4057:28:0;;;7494:119;;;;;;;;;;-1:-1:-1;7494:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7587:18:0;7560:7;7587:18;;;:9;:18;;;;;;;7494:119;2793:157;;;;;;;;;;;;;:::i;4020:30::-;;;;;;;;;;-1:-1:-1;4020:30:0;;;;-1:-1:-1;;;;;4020:30:0;;;4505:38;;;;;;;;;;-1:-1:-1;4505:38:0;;;;;;;;4924:40;;;;;;;;;;;;;;;;4419:39;;;;;;;;;;;;;;;;5195:41;;;;;;;;;;;;;;;;3575:56;;;;;;;;;;-1:-1:-1;3575:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10055:102;;;;;;;;;;-1:-1:-1;10055:102:0;;;;;:::i;:::-;;:::i;4601:29::-;;;;;;;;;;-1:-1:-1;4601:29:0;;;;;;;;;;;11483:235;;;;;;;;;;;;;:::i;2579:79::-;;;;;;;;;;-1:-1:-1;2617:7:0;2644:6;-1:-1:-1;;;;;2644:6:0;2579:79;;7200:87;;;;;;;;;;;;;:::i;3516:52::-;;;;;;;;;;-1:-1:-1;3516:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4202:42;;;;;;;;;;;;;;;;4731:31;;;;;;;;;;;;;;;;10165:100;;;;;;;;;;-1:-1:-1;10165:100:0;;;;;:::i;:::-;;:::i;8976:396::-;;;;;;;;;;-1:-1:-1;8976:396:0;;;;;:::i;:::-;;:::i;9545:163::-;;;;;;;;;;-1:-1:-1;9545:163:0;;;;;:::i;:::-;;:::i;7621:199::-;;;;;;;;;;-1:-1:-1;7621:199:0;;;;;:::i;:::-;;:::i;3975:38::-;;;;;;;;;;-1:-1:-1;3975:38:0;;;;-1:-1:-1;;;;;3975:38:0;;;10948:99;;;;;;;;;;-1:-1:-1;10948:99:0;;;;;:::i;:::-;;:::i;10273:266::-;;;;;;;;;;-1:-1:-1;10273:266:0;;;;;:::i;:::-;;:::i;4467:25::-;;;;;;;;;;;;;;;;7828:184;;;;;;;;;;-1:-1:-1;7828:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7977:18:0;;;7945:7;7977:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7828:184;5110:41;;;;;;;;;;;;;;;;9380:157;;;;;;;;;;-1:-1:-1;9380:157:0;;;;;:::i;:::-;;:::i;4658:19::-;;;;;;;;;;-1:-1:-1;4658:19:0;;;;;;;;;;;11726:252;;;;;;;;;;-1:-1:-1;11726:252:0;;;;;:::i;:::-;;:::i;9897:150::-;;;;;;;;;;-1:-1:-1;9897:150:0;;;;;:::i;:::-;;:::i;3946:22::-;;;;;;;;;;-1:-1:-1;3946:22:0;;;;-1:-1:-1;;;;;3946:22:0;;;2958:281;;;;;;;;;;-1:-1:-1;2958:281:0;;;;;:::i;:::-;;:::i;11986:260::-;;;;;;;;;;-1:-1:-1;11986:260:0;;;;;:::i;:::-;;:::i;4376:36::-;;;;;;;;;;;;;;;;7109:83;7146:13;7179:5;7172:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7109:83;:::o;8020:193::-;8122:4;8144:39;2011:10;8167:7;8176:6;8144:8;:39::i;:::-;-1:-1:-1;8201:4:0;8020:193;;;;;:::o;10825:115::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;;;;;;;;;10897:26:::1;:35:::0;;-1:-1:-1;;10897:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10825:115::o;10547:270::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;10687:21:::1;:37:::0;;;;10735:19:::1;:33:::0;10779:21:::1;:30:::0;10547:270::o;8221:439::-;8353:4;8370:36;8380:6;8388:9;8399:6;8370:9;:36::i;:::-;8417:213;8440:6;2011:10;8488:131;8544:6;8488:131;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8488:19:0;;;;;;:11;:19;;;;;;;;2011:10;8488:33;;;;;;;;;;:37;:131::i;:::-;8417:8;:213::i;:::-;-1:-1:-1;8648:4:0;8221:439;;;;;:::o;9716:171::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9838:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;9838:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9716:171::o;11192:283::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;11331:15:::1;:34:::0;;-1:-1:-1;;;;;11331:34:0;;::::1;-1:-1:-1::0;;;;;;11331:34:0;;::::1;;::::0;;;11376:13:::1;:30:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;11417:23:::1;:50:::0;;;;;::::1;::::0;::::1;;::::0;;11192:283::o;8668:300::-;2011:10;8783:4;8877:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8877:34:0;;;;;;;;;;8783:4;;8805:133;;8855:7;;8877:50;;8916:10;8877:38;:50::i;11055:129::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;11126:50:::1;::::0;-1:-1:-1;;;;;11126:27:0;::::1;::::0;11154:21:::1;11126:50:::0;::::1;;;::::0;::::1;::::0;;;11154:21;11126:27;:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11055:129:::0;:::o;2793:157::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;2900:1:::1;2884:6:::0;;2863:40:::1;::::0;-1:-1:-1;;;;;2884:6:0;;::::1;::::0;2863:40:::1;::::0;2900:1;;2863:40:::1;2939:1;2914:28:::0;;-1:-1:-1;;;;;;2914:28:0::1;::::0;;2793:157::o;10055:102::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;10127:12:::1;:22:::0;10055:102::o;11483:235::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;11547:7:::1;::::0;;;::::1;;;11546:8;11538:36;;;::::0;-1:-1:-1;;;11538:36:0;;5833:2:1;11538:36:0::1;::::0;::::1;5815:21:1::0;5872:2;5852:18;;;5845:30;-1:-1:-1;;;5891:18:1;;;5884:45;5946:18;;11538:36:0::1;5631:339:1::0;11538:36:0::1;11585:7;:14:::0;;-1:-1:-1;;11638:33:0;;;;;11695:15:::1;11682:10;:28:::0;11483:235::o;7200:87::-;7239:13;7272:7;7265:14;;;;;:::i;10165:100::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;10236:11:::1;:21:::0;10165:100::o;8976:396::-;9096:4;9118:224;2011:10;9168:7;9190:141;9247:15;9190:141;;;;;;;;;;;;;;;;;2011:10;9190:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9190:34:0;;;;;;;;;;;;:38;:141::i;9545:163::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9663:29:0;;;::::1;;::::0;;;:20:::1;:29;::::0;;;;:37;;-1:-1:-1;;9663:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9545:163::o;7621:199::-;7726:4;7748:42;2011:10;7772:9;7783:6;7748:9;:42::i;10948:99::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;11020:10:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;11020:19:0;;::::1;::::0;;;::::1;::::0;;10948:99::o;10273:266::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;10412:20:::1;:36:::0;;;;10459:18:::1;:32:::0;10502:20:::1;:29:::0;10273:266::o;9380:157::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9495:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;9495:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9380:157::o;11726:252::-;11789:7;11809:11;11823:126;11924:14;;11823:82;11834:70;11885:18;;11834:46;11859:20;;11834;;:24;;:46;;;;:::i;:::-;:50;;:70::i;:::-;11823:6;;:10;:82::i;:::-;:86;;:126::i;:::-;11809:140;11726:252;-1:-1:-1;;;11726:252:0:o;9897:150::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;9989:1:::1;9979:7;:11;9971:33;;;::::0;-1:-1:-1;;;9971:33:0;;6177:2:1;9971:33:0::1;::::0;::::1;6159:21:1::0;6216:2;6196:18;;;6189:30;-1:-1:-1;;;6235:18:1;;;6228:40;6285:18;;9971:33:0::1;5975:334:1::0;9971:33:0::1;10015:14;:24:::0;9897:150::o;2958:281::-;2706:6;;-1:-1:-1;;;;;2706:6:0;2011:10;2706:22;2698:67;;;;-1:-1:-1;;;2698:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3061:22:0;::::1;3039:110;;;::::0;-1:-1:-1;;;3039:110:0;;6516:2:1;3039:110:0::1;::::0;::::1;6498:21:1::0;6555:2;6535:18;;;6528:30;6594:34;6574:18;;;6567:62;-1:-1:-1;;;6645:18:1;;;6638:36;6691:19;;3039:110:0::1;6314:402:1::0;3039:110:0::1;3186:6;::::0;;3165:38:::1;::::0;-1:-1:-1;;;;;3165:38:0;;::::1;::::0;3186:6;::::1;::::0;3165:38:::1;::::0;::::1;3214:6;:17:::0;;-1:-1:-1;;;;;;3214:17:0::1;-1:-1:-1::0;;;;;3214:17:0;;;::::1;::::0;;;::::1;::::0;;2958:281::o;11986:260::-;12050:7;12070:11;12084:133;12202:14;;12084:99;12109:73;12162:19;;12109:48;12135:21;;12109;;:25;;:48;;;;:::i;21758:132::-;21816:7;21843:39;21847:1;21850;21843:39;;;;;;;;;;;;;;;;;:3;:39::i;12254:357::-;-1:-1:-1;;;;;12381:19:0;;12373:61;;;;-1:-1:-1;;;12373:61:0;;6923:2:1;12373:61:0;;;6905:21:1;6962:2;6942:18;;;6935:30;7001:31;6981:18;;;6974:59;7050:18;;12373:61:0;6721:353:1;12373:61:0;-1:-1:-1;;;;;12453:21:0;;12445:61;;;;-1:-1:-1;;;12445:61:0;;7281:2:1;12445:61:0;;;7263:21:1;7320:2;7300:18;;;7293:30;7359:29;7339:18;;;7332:57;7406:18;;12445:61:0;7079:351:1;12445:61:0;-1:-1:-1;;;;;12519:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12571:32;;2307:25:1;;;12571:32:0;;2280:18:1;12571:32:0;;;;;;;12254:357;;;:::o;12619:1748::-;-1:-1:-1;;;;;12741:18:0;;12733:61;;;;-1:-1:-1;;;12733:61:0;;7637:2:1;12733:61:0;;;7619:21:1;7676:2;7656:18;;;7649:30;7715:32;7695:18;;;7688:60;7765:18;;12733:61:0;7435:354:1;12733:61:0;-1:-1:-1;;;;;12813:16:0;;12805:57;;;;-1:-1:-1;;;12805:57:0;;7996:2:1;12805:57:0;;;7978:21:1;8035:2;8015:18;;;8008:30;8074;8054:18;;;8047:58;8122:18;;12805:57:0;7794:352:1;12805:57:0;12890:1;12881:6;:10;12873:55;;;;-1:-1:-1;;;12873:55:0;;8353:2:1;12873:55:0;;;8335:21:1;;;8372:18;;;8365:30;8431:34;8411:18;;;8404:62;8483:18;;12873:55:0;8151:356:1;12873:55:0;-1:-1:-1;;;;;12949:26:0;;;;;;:20;:26;;;;;;;;12948:27;:56;;;;-1:-1:-1;;;;;;12980:24:0;;;;;;:20;:24;;;;;;;;12979:25;12948:56;12944:726;;;13039:11;;13029:6;:21;;13021:55;;;;-1:-1:-1;;;13021:55:0;;8714:2:1;13021:55:0;;;8696:21:1;8753:2;8733:18;;;8726:30;-1:-1:-1;;;8772:18:1;;;8765:51;8833:18;;13021:55:0;8512:345:1;13021:55:0;13142:7;;;;;;;13137:174;;13200:7;;-1:-1:-1;;;;;13200:15:0;;;:7;;:15;;;;:32;;-1:-1:-1;13219:7:0;;-1:-1:-1;;;;;13219:13:0;;;:7;;:13;;13200:32;13170:125;;;;-1:-1:-1;;;13170:125:0;;9064:2:1;13170:125:0;;;9046:21:1;9103:2;9083:18;;;9076:30;-1:-1:-1;;;9122:18:1;;;9115:49;9181:18;;13170:125:0;8862:343:1;13170:125:0;13402:11;;13389:10;;:24;;;;:::i;:::-;13371:15;:42;:89;;;;-1:-1:-1;13450:9:0;;-1:-1:-1;;;;;13434:26:0;;;13450:9;;13434:26;;13371:89;13349:310;13495:149;-1:-1:-1;;;;;13687:28:0;;;;;;:24;:28;;;;;;;;13682:187;;13787:12;;13758:25;13776:6;13758:13;13768:2;-1:-1:-1;;;;;7587:18:0;7560:7;7587:18;;;:9;:18;;;;;;;7494:119;13758:25;:41;;13732:125;;;;-1:-1:-1;;;13732:125:0;;9677:2:1;13732:125:0;;;9659:21:1;9716:2;9696:18;;;9689:30;-1:-1:-1;;;9735:18:1;;;9728:52;9797:18;;13732:125:0;9475:346:1;13732:125:0;13910:30;13931:4;13937:2;13910:20;:30::i;:::-;-1:-1:-1;;;;;14133:23:0;;14014:12;14133:23;;;:17;:23;;;;;;14029:4;;14133:23;;;:48;;-1:-1:-1;;;;;;14160:21:0;;;;;;:17;:21;;;;;;;;14133:48;:63;;;-1:-1:-1;14186:10:0;;;;;;;14185:11;14133:63;14129:111;;;-1:-1:-1;14223:5:0;14129:111;14318:41;14333:4;14339:2;14343:6;14351:7;14318:14;:41::i;:::-;12722:1645;12619:1748;;;:::o;21045:226::-;21165:7;21201:12;21193:6;;;;21185:29;;;;-1:-1:-1;;;21185:29:0;;;;;;;;:::i;:::-;-1:-1:-1;21225:9:0;21237:5;21241:1;21237;:5;:::i;:::-;21225:17;21045:226;-1:-1:-1;;;;;21045:226:0:o;20712:181::-;20770:7;;20802:5;20806:1;20802;:5;:::i;:::-;20790:17;;20831:1;20826;:6;;20818:46;;;;-1:-1:-1;;;20818:46:0;;10158:2:1;20818:46:0;;;10140:21:1;10197:2;10177:18;;;10170:30;10236:29;10216:18;;;10209:57;10283:18;;20818:46:0;9956:351:1;21279:471:0;21337:7;21582:6;21578:47;;-1:-1:-1;21612:1:0;21605:8;;21578:47;21637:9;21649:5;21653:1;21649;:5;:::i;:::-;21637:17;-1:-1:-1;21682:1:0;21673:5;21677:1;21637:17;21673:5;:::i;:::-;:10;21665:56;;;;-1:-1:-1;;;21665:56:0;;10909:2:1;21665:56:0;;;10891:21:1;10948:2;10928:18;;;10921:30;10987:34;10967:18;;;10960:62;-1:-1:-1;;;11038:18:1;;;11031:31;11079:19;;21665:56:0;10707:397:1;21898:312:0;22018:7;22053:12;22046:5;22038:28;;;;-1:-1:-1;;;22038:28:0;;;;;;;;:::i;:::-;-1:-1:-1;22077:9:0;22089:5;22093:1;22089;:5;:::i;16732:2727::-;17134:4;17085:28;7587:18;;;:9;:18;;;;;;17195:14;;17171:38;;;;;;;17240:42;;-1:-1:-1;17275:7:0;;-1:-1:-1;;;;;17267:15:0;;;17275:7;;17267:15;;17240:42;:85;;;;-1:-1:-1;17299:26:0;;;;17240:85;:152;;;;-1:-1:-1;;;;;;17344:21:0;;17360:4;17344:21;:47;;;;-1:-1:-1;17383:7:0;;-1:-1:-1;;;;;17369:22:0;;;17383:7;;17369:22;17344:47;17342:50;17240:152;17222:2230;;;17499:9;;17467:65;;17484:4;;-1:-1:-1;;;;;17499:9:0;17511:20;17467:8;:65::i;:::-;17573:19;;17549:21;;17573:26;;17597:1;17573:23;:26::i;:::-;17549:50;;17614:26;17643:38;17667:13;17643:19;;:23;;:38;;;;:::i;:::-;17614:67;-1:-1:-1;17698:30:0;17731:76;:20;17614:67;17731:24;:76::i;:::-;17967:9;;17698:109;;-1:-1:-1;17848:21:0;;17936:66;;-1:-1:-1;;;;;17967:9:0;17698:109;17936:22;:66::i;:::-;18019:20;18042:40;:21;18068:13;18042:25;:40::i;:::-;18019:63;-1:-1:-1;18097:31:0;18131:95;18203:22;18131:49;18019:63;18166:13;18131:34;:49::i;:95::-;18097:129;;18241:23;18267:97;18327:22;18267:37;18284:19;;18267:12;:16;;:37;;;;:::i;:97::-;18241:123;-1:-1:-1;18379:21:0;18403:94;18241:123;18403:41;:12;18420:23;18403:16;:41::i;:::-;:45;;:94::i;:::-;18379:118;-1:-1:-1;18555:27:0;;18551:461;;18652:9;;18685:23;;18603:211;;-1:-1:-1;;;;;18652:9:0;;;;18685:23;18731:18;18772:23;18603:18;:211::i;:::-;18840:156;;;11311:25:1;;;11367:2;11352:18;;11345:34;;;11395:18;;;11388:34;;;18840:156:0;;11299:2:1;11284:18;18840:156:0;;;;;;;18551:461;19080:19;;19076:75;;19109:15;;19101:50;;-1:-1:-1;;;;;19109:15:0;;;;19101:50;;;;;19135:15;;19109;19101:50;19109:15;19101:50;19135:15;19109;19101:50;;;;;;;;;;;;;;;;;;;;;19076:75;19222:17;;19218:69;;19249:13;;19241:46;;-1:-1:-1;;;;;19249:13:0;;;;19241:46;;;;;19273:13;;19249;19241:46;19249:13;19241:46;19273:13;19249;19241:46;;;;;;;;;;;;;;;;;;;;;19218:69;-1:-1:-1;;19365:1:0;19343:19;:23;;;19381:19;:23;;;19419:17;:21;-1:-1:-1;;;;;;16796:2663:0;;16732:2727;;:::o;14448:1363::-;14603:7;;-1:-1:-1;;;;;14603:17:0;;;:7;;:17;:28;;;;;14624:7;14603:28;14599:1205;;;14648:14;14665:24;14682:6;14665:16;:24::i;:::-;14648:41;-1:-1:-1;14704:23:0;14730:18;:6;14648:41;14730:10;:18::i;:::-;14704:44;;14783:52;14805:6;14783:52;;;;;;;;;;;;;-1:-1:-1;;;14783:52:0;;;:9;:17;14793:6;-1:-1:-1;;;;;14783:17:0;-1:-1:-1;;;;;14783:17:0;;;;;;;;;;;;;:21;;:52;;;;;:::i;:::-;-1:-1:-1;;;;;14763:17:0;;;;;;;:9;:17;;;;;;:72;;;;14873:20;;;;;;;:41;;14898:15;14873:24;:41::i;:::-;-1:-1:-1;;;;;14850:20:0;;;;;;;:9;:20;;;;;;;:64;;;;14936:44;;;;;;-1:-1:-1;;;;;;;;;;;14936:44:0;;;14964:15;2307:25:1;;2295:2;2280:18;;2161:177;14936:44:0;;;;;;;;14995:28;15008:6;15016;14995:12;:28::i;:::-;15038:30;15061:6;15038:22;:30::i;:::-;14633:447;;14599:1205;;;15090:7;;-1:-1:-1;;;;;15090:20:0;;;:7;;:20;:31;;;;;15114:7;15090:31;15086:718;;;15138:14;15155:25;15173:6;15155:17;:25::i;:::-;15138:42;-1:-1:-1;15195:23:0;15221:18;:6;15138:42;15221:10;:18::i;:::-;15195:44;;15274:52;15296:6;15274:52;;;;;;;;;;;;;-1:-1:-1;;;15274:52:0;;;:9;:17;15284:6;-1:-1:-1;;;;;15274:17:0;-1:-1:-1;;;;;15274:17:0;;;;;;;;;;;;;:21;;:52;;;;;:::i;:::-;-1:-1:-1;;;;;15254:17:0;;;;;;;:9;:17;;;;;;:72;;;;15364:20;;;;;;;:41;;15389:15;15364:24;:41::i;:::-;-1:-1:-1;;;;;15341:20:0;;;;;;;:9;:20;;;;;;;:64;;;;15427:44;;;;;;-1:-1:-1;;;;;;;;;;;15427:44:0;;;15455:15;2307:25:1;;2295:2;2280:18;;2161:177;15427:44:0;;;;;;;;15486:28;15499:6;15507;15486:12;:28::i;:::-;15529:31;15553:6;15529:23;:31::i;15086:718::-;15613:52;;;;;;;;;;;-1:-1:-1;;;15613:52:0;;;;;;;;-1:-1:-1;;;;;15613:17:0;;-1:-1:-1;15613:17:0;;;:9;:17;;;;;;;;:52;;15635:6;;15613:21;:52::i;:::-;-1:-1:-1;;;;;15593:17:0;;;;;;;:9;:17;;;;;;:72;;;;15703:20;;;;;;;:32;;15728:6;15703:24;:32::i;:::-;-1:-1:-1;;;;;15680:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15757:35;;;;;;-1:-1:-1;;;;;;;;;;;15757:35:0;;;15785:6;2307:25:1;;2295:2;2280:18;;2161:177;15757:35:0;;;;;;;;14448:1363;;;;:::o;20901:136::-;20959:7;20986:43;20990:1;20993;20986:43;;;;;;;;;;;;;;;;;:3;:43::i;19558:603::-;19803:16;;;19817:1;19803:16;;;;;;;;19696:13;;19662:20;;19803:16;19817:1;19803:16;;;;;;;;;;-1:-1:-1;19803:16:0;19779:40;;19848:4;19830;19835:1;19830:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19830:23:0;;;-1:-1:-1;;;;;19830:23:0;;;;;19874:9;-1:-1:-1;;;;;19874:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19864:4;19869:1;19864:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19864:26:0;;;:7;;;;;;;;;:26;19929:60;;;20004:11;20030:1;20074:4;20101;20121:21;:15;20139:3;20121:21;:::i;:::-;19929:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19651:510;;19558:603;;:::o;20169:512::-;20366:13;-1:-1:-1;;;;;20423:25:0;;;20456:9;20489:4;20509:11;20332:20;;20621:5;20641:21;:15;20659:3;20641:21;:::i;:::-;20423:250;;;;;;-1:-1:-1;;;;;;20423:250:0;;;-1:-1:-1;;;;;13297:15:1;;;20423:250:0;;;13279:34:1;13329:18;;;13322:34;;;;13372:18;;;13365:34;;;;13415:18;;;13408:34;;;;13479:15;;;13458:19;;;13451:44;13511:19;;;13504:35;;;;13213:19;;20423:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15819:201::-;15937:4;15919:24;;;;:9;:24;;;;;;:36;;15948:6;15919:28;:36::i;:::-;15910:4;15892:24;;;;:9;:24;;;;;;;:63;;;;15973:39;;-1:-1:-1;;;;;15973:39:0;;;-1:-1:-1;;;;;;;;;;;15973:39:0;;;16005:6;2307:25:1;;2295:2;2280:18;;2161:177;15973:39:0;;;;;;;;15819:201;;:::o;16028:342::-;16118:76;16169:14;;16118:32;16129:20;;16118:6;:10;;:32;;;;:::i;:76::-;16095:19;;:99;;;;;;;:::i;:::-;;;;-1:-1:-1;;16265:14:0;;16239:20;;16228:52;;16265:14;16228:32;;:6;;:10;:32::i;:52::-;16205:19;;:75;;;;;;;:::i;:::-;;;;-1:-1:-1;;16347:14:0;;16323:18;;16312:50;;16347:14;16312:30;;:6;;:10;:30::i;:50::-;16291:17;;:71;;;;;;;:::i;:::-;;;;-1:-1:-1;;;16028:342:0:o;16378:346::-;16469:77;16521:14;;16469:33;16480:21;;16469:6;:10;;:33;;;;:::i;:77::-;16446:19;;:100;;;;;;;:::i;:::-;;;;-1:-1:-1;;16618:14:0;;16591:21;;16580:53;;16618:14;16580:33;;:6;;:10;:33::i;:53::-;16557:19;;:76;;;;;;;:::i;:::-;;;;-1:-1:-1;;16701:14:0;;16676:19;;16665:51;;16701:14;16665:31;;:6;;:10;:31::i;14:597:1:-;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;842:131::-;-1:-1:-1;;;;;917:31:1;;907:42;;897:70;;963:1;960;953:12;897:70;842:131;:::o;978:315::-;1046:6;1054;1107:2;1095:9;1086:7;1082:23;1078:32;1075:52;;;1123:1;1120;1113:12;1075:52;1162:9;1149:23;1181:31;1206:5;1181:31;:::i;:::-;1231:5;1283:2;1268:18;;;;1255:32;;-1:-1:-1;;;978:315:1:o;1490:160::-;1555:20;;1611:13;;1604:21;1594:32;;1584:60;;1640:1;1637;1630:12;1584:60;1490:160;;;:::o;1655:180::-;1711:6;1764:2;1752:9;1743:7;1739:23;1735:32;1732:52;;;1780:1;1777;1770:12;1732:52;1803:26;1819:9;1803:26;:::i;1840:316::-;1917:6;1925;1933;1986:2;1974:9;1965:7;1961:23;1957:32;1954:52;;;2002:1;1999;1992:12;1954:52;-1:-1:-1;;2025:23:1;;;2095:2;2080:18;;2067:32;;-1:-1:-1;2146:2:1;2131:18;;;2118:32;;1840:316;-1:-1:-1;1840:316:1:o;2343:456::-;2420:6;2428;2436;2489:2;2477:9;2468:7;2464:23;2460:32;2457:52;;;2505:1;2502;2495:12;2457:52;2544:9;2531:23;2563:31;2588:5;2563:31;:::i;:::-;2613:5;-1:-1:-1;2670:2:1;2655:18;;2642:32;2683:33;2642:32;2683:33;:::i;:::-;2343:456;;2735:7;;-1:-1:-1;;;2789:2:1;2774:18;;;;2761:32;;2343:456::o;2804:315::-;2869:6;2877;2930:2;2918:9;2909:7;2905:23;2901:32;2898:52;;;2946:1;2943;2936:12;2898:52;2985:9;2972:23;3004:31;3029:5;3004:31;:::i;:::-;3054:5;-1:-1:-1;3078:35:1;3109:2;3094:18;;3078:35;:::i;:::-;3068:45;;2804:315;;;;;:::o;3313:529::-;3390:6;3398;3406;3459:2;3447:9;3438:7;3434:23;3430:32;3427:52;;;3475:1;3472;3465:12;3427:52;3514:9;3501:23;3533:31;3558:5;3533:31;:::i;:::-;3583:5;-1:-1:-1;3640:2:1;3625:18;;3612:32;3653:33;3612:32;3653:33;:::i;:::-;3705:7;-1:-1:-1;3764:2:1;3749:18;;3736:32;3777:33;3736:32;3777:33;:::i;:::-;3829:7;3819:17;;;3313:529;;;;;:::o;3847:247::-;3906:6;3959:2;3947:9;3938:7;3934:23;3930:32;3927:52;;;3975:1;3972;3965:12;3927:52;4014:9;4001:23;4033:31;4058:5;4033:31;:::i;4307:180::-;4366:6;4419:2;4407:9;4398:7;4394:23;4390:32;4387:52;;;4435:1;4432;4425:12;4387:52;-1:-1:-1;4458:23:1;;4307:180;-1:-1:-1;4307:180:1:o;4492:388::-;4560:6;4568;4621:2;4609:9;4600:7;4596:23;4592:32;4589:52;;;4637:1;4634;4627:12;4589:52;4676:9;4663:23;4695:31;4720:5;4695:31;:::i;:::-;4745:5;-1:-1:-1;4802:2:1;4787:18;;4774:32;4815:33;4774:32;4815:33;:::i;:::-;4867:7;4857:17;;;4492:388;;;;;:::o;4885:380::-;4964:1;4960:12;;;;5007;;;5028:61;;5082:4;5074:6;5070:17;5060:27;;5028:61;5135:2;5127:6;5124:14;5104:18;5101:38;5098:161;;;5181:10;5176:3;5172:20;5169:1;5162:31;5216:4;5213:1;5206:15;5244:4;5241:1;5234:15;5098:161;;4885:380;;;:::o;5270:356::-;5472:2;5454:21;;;5491:18;;;5484:30;5550:34;5545:2;5530:18;;5523:62;5617:2;5602:18;;5270:356::o;9210:127::-;9271:10;9266:3;9262:20;9259:1;9252:31;9302:4;9299:1;9292:15;9326:4;9323:1;9316:15;9342:128;9382:3;9413:1;9409:6;9406:1;9403:13;9400:39;;;9419:18;;:::i;:::-;-1:-1:-1;9455:9:1;;9342:128::o;9826:125::-;9866:4;9894:1;9891;9888:8;9885:34;;;9899:18;;:::i;:::-;-1:-1:-1;9936:9:1;;9826:125::o;10312:168::-;10352:7;10418:1;10414;10410:6;10406:14;10403:1;10400:21;10395:1;10388:9;10381:17;10377:45;10374:71;;;10425:18;;:::i;:::-;-1:-1:-1;10465:9:1;;10312:168::o;10485:217::-;10525:1;10551;10541:132;;10595:10;10590:3;10586:20;10583:1;10576:31;10630:4;10627:1;10620:15;10658:4;10655:1;10648:15;10541:132;-1:-1:-1;10687:9:1;;10485:217::o;11565:127::-;11626:10;11621:3;11617:20;11614:1;11607:31;11657:4;11654:1;11647:15;11681:4;11678:1;11671:15;11697:251;11767:6;11820:2;11808:9;11799:7;11795:23;11791:32;11788:52;;;11836:1;11833;11826:12;11788:52;11868:9;11862:16;11887:31;11912:5;11887:31;:::i;11953:980::-;12215:4;12263:3;12252:9;12248:19;12294:6;12283:9;12276:25;12320:2;12358:6;12353:2;12342:9;12338:18;12331:34;12401:3;12396:2;12385:9;12381:18;12374:31;12425:6;12460;12454:13;12491:6;12483;12476:22;12529:3;12518:9;12514:19;12507:26;;12568:2;12560:6;12556:15;12542:29;;12589:1;12599:195;12613:6;12610:1;12607:13;12599:195;;;12678:13;;-1:-1:-1;;;;;12674:39:1;12662:52;;12769:15;;;;12734:12;;;;12710:1;12628:9;12599:195;;;-1:-1:-1;;;;;;;12850:32:1;;;;12845:2;12830:18;;12823:60;-1:-1:-1;;;12914:3:1;12899:19;12892:35;12811:3;11953:980;-1:-1:-1;;;11953:980:1:o;13550:306::-;13638:6;13646;13654;13707:2;13695:9;13686:7;13682:23;13678:32;13675:52;;;13723:1;13720;13713:12;13675:52;13752:9;13746:16;13736:26;;13802:2;13791:9;13787:18;13781:25;13771:35;;13846:2;13835:9;13831:18;13825:25;13815:35;;13550:306;;;;;:::o

Swarm Source

ipfs://33da78770741082b38c8f1188d44973357226689513b149c8c818f1e3ecade95
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.