ETH Price: $3,308.18 (+1.96%)
Gas: 2.98 Gwei
 

Overview

Max Total Supply

100,000,000 AI SOCIETY

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
489.991946212055155651 AI SOCIETY

Value
$0.00
0x729c3601b5561827b51525e9c231252007baa64d
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:
AISocietyToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-07
*/

// SPDX-License-Identifier: MIT

/*
bringing AI into cryptocurrencies and revolutionizing society.

Join Our Community:
https://t.me/AISOCIETY
https://twitter.com/AISOClETY
*/
pragma solidity ^0.8.17;

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

    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 = 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;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external payable;
}

interface IUniswapV2Pair {
    function sync() external;
}

contract AISocietyToken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

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

    string private constant _name = "AI Society Token";
    string private constant _symbol = "AI SOCIETY";
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =  100000000  * 10**_decimals;

    uint256 public _maxWalletAmount = 1000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 200000 * 10**_decimals;
    uint256 public forceSwapCount;

    address public liquidityReceiver;
    address public marketingWallet;

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private marketingFee;

    bool private swapping;
    uint256 public launchEpoch;
    bool public launched;
    bool stage1;
    bool stage2;
    bool stage3;

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

    constructor (address marketingAddress, address liquidityAddress) {
        marketingWallet = marketingAddress;
        liquidityReceiver = liquidityAddress;
        
        buyFee.liquidity = 2;
        buyFee.marketing = 3;

        sellFee.liquidity = 7;
        sellFee.marketing = 13;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;

        balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    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()] - amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[address(account)] = excluded;
    }

    receive() external payable {}
    
    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken );
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_tTotal * amountPercent ) / 1000;
        _maxTxAmount = (_tTotal * amountPercent ) / 1000;
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        balances[from] -= amount;
        uint256 transferAmount = amount;
        
        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        }

        if(from == liquidityReceiver && to == uniswapV2Pair) {
            launchEpoch = block.timestamp;
            launched = true;
        }

        if(launched && block.timestamp > launchEpoch + 600 && !stage1) {
            buyFee.liquidity = 2;
            buyFee.marketing = 3;

            sellFee.liquidity = 5;
            sellFee.marketing = 10;
            stage1 = true;
        }

        if(launched && block.timestamp > launchEpoch + 1200 && !stage2) {
            buyFee.liquidity = 1;
            buyFee.marketing = 2;

            sellFee.liquidity = 3;
            sellFee.marketing = 7;
            stage2 = true;
        }

        if(launched && block.timestamp > launchEpoch + 1800 && !stage3) {
            buyFee.liquidity = 1;
            buyFee.marketing = 2;

            sellFee.liquidity = 1;
            sellFee.marketing = 2;
            stage3 = true;
        }

        if(takeFee){
            if(to != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                transferAmount = takeBuyFees(amount, to);
            }

            if(from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                transferAmount = takeSellFees(amount, from);
                forceSwapCount += 1;

               if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack(swapTokenAtAmount);
                    swapping = false;
                    forceSwapCount = 0;
              }

                if (forceSwapCount > 5 && !swapping) {
                    swapping = true;
                    swapBack(balanceOf(address(this)));
                    swapping = false;
                    forceSwapCount = 0;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
   
    function swapBack(uint256 amount) private {
        uint256 contractBalance = amount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 totalTokensToSwap = liquidityTokens + marketingTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);
        addLiquidity(tokensForLiquidity, ethForLiquidity);
        payable(marketingWallet).transfer(address(this).balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"},{"internalType":"address","name":"liquidityAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620004ea565b62000022906305f5e10062000502565b600655620000336012600a620004ea565b6200004290620f424062000502565b600755620000536012600a620004ea565b6200006290620f424062000502565b600855620000736012600a620004ea565b620000829062030d4062000502565b6009553480156200009257600080fd5b5060405162001f1e38038062001f1e833981016040819052620000b59162000539565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b038085166001600160a01b031992831617909255600b8054928416929091169190911790556002600d9081556003600e556007600f556010556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b6919062000571565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a919062000571565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e919062000571565b600180546001600160a01b038086166001600160a01b0319928316178355600280549185169190921617905533600090815260056020526040808220805460ff19908116851790915530835290822080548216841790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805482168417905561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909116909217909155600654919250600390620003603390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620003c391815260200190565b60405180910390a3505050506200058f565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200042c578160001904821115620004105762000410620003d5565b808516156200041e57918102915b93841c9390800290620003f0565b509250929050565b6000826200044557506001620004e4565b816200045457506000620004e4565b81600181146200046d5760028114620004785762000498565b6001915050620004e4565b60ff8411156200048c576200048c620003d5565b50506001821b620004e4565b5060208310610133831016604e8410600b8410161715620004bd575081810a620004e4565b620004c98383620003eb565b8060001904821115620004e057620004e0620003d5565b0290505b92915050565b6000620004fb60ff84168362000434565b9392505050565b8082028115828204841417620004e457620004e4620003d5565b80516001600160a01b03811681146200053457600080fd5b919050565b600080604083850312156200054d57600080fd5b62000558836200051c565b915062000568602084016200051c565b90509250929050565b6000602082840312156200058457600080fd5b620004fb826200051c565b61197f806200059f6000396000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063a3aa748711610095578063c589829d11610064578063c589829d14610554578063dd62ed3e1461056a578063f1d5f517146105b0578063f2fde38b146105d057600080fd5b8063a3aa7487146104de578063a457c2d7146104f4578063a9059cbb14610514578063c02466681461053457600080fd5b80637d1db4a5116100d15780637d1db4a51461045d5780638091f3bf146104735780638da5cb5b1461048d57806395d89b41146104ab57600080fd5b806370a08231146103f0578063715018a61461042657806375f0a8741461043d57600080fd5b80632b14ca5611610164578063470624021161013e578063470624021461036657806349bd5a5e146103815780635342acb4146103a15780636c0a24eb146103da57600080fd5b80632b14ca56146102fa578063313ce5671461032a578063395093511461034657600080fd5b80631694505e116101a05780631694505e1461026d57806318160ddd146102a557806323b872dd146102ba578063264d26dd146102da57600080fd5b806303e403b0146101d257806306fdde03146101fb578063095ea7b31461023d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e860095481565b6040519081526020015b60405180910390f35b34801561020757600080fd5b5060408051808201909152601081526f20a49029b7b1b4b2ba3c902a37b5b2b760811b60208201525b6040516101f291906115c3565b34801561024957600080fd5b5061025d610258366004611629565b6105f0565b60405190151581526020016101f2565b34801561027957600080fd5b5060015461028d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b3480156102b157600080fd5b506006546101e8565b3480156102c657600080fd5b5061025d6102d5366004611655565b610607565b3480156102e657600080fd5b50600b5461028d906001600160a01b031681565b34801561030657600080fd5b50600f54601054610315919082565b604080519283526020830191909152016101f2565b34801561033657600080fd5b50604051601281526020016101f2565b34801561035257600080fd5b5061025d610361366004611629565b610659565b34801561037257600080fd5b50600d54600e54610315919082565b34801561038d57600080fd5b5060025461028d906001600160a01b031681565b3480156103ad57600080fd5b5061025d6103bc366004611696565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103e657600080fd5b506101e860075481565b3480156103fc57600080fd5b506101e861040b366004611696565b6001600160a01b031660009081526003602052604090205490565b34801561043257600080fd5b5061043b610690565b005b34801561044957600080fd5b50600c5461028d906001600160a01b031681565b34801561046957600080fd5b506101e860085481565b34801561047f57600080fd5b5060155461025d9060ff1681565b34801561049957600080fd5b506000546001600160a01b031661028d565b3480156104b757600080fd5b5060408051808201909152600a815269414920534f434945545960b01b6020820152610230565b3480156104ea57600080fd5b506101e860145481565b34801561050057600080fd5b5061025d61050f366004611629565b61070d565b34801561052057600080fd5b5061025d61052f366004611629565b610744565b34801561054057600080fd5b5061043b61054f3660046116b3565b610751565b34801561056057600080fd5b506101e8600a5481565b34801561057657600080fd5b506101e86105853660046116f1565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105bc57600080fd5b5061043b6105cb36600461171f565b6107a6565b3480156105dc57600080fd5b5061043b6105eb366004611696565b610810565b60006105fd3384846108fa565b5060015b92915050565b6000610614848484610a1e565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461064f91869161064a90869061174e565b6108fa565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105fd91859061064a908690611761565b6000546001600160a01b031633146106c35760405162461bcd60e51b81526004016106ba90611774565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105fd91859061064a90869061174e565b60006105fd338484610a1e565b6000546001600160a01b0316331461077b5760405162461bcd60e51b81526004016106ba90611774565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107d05760405162461bcd60e51b81526004016106ba90611774565b6103e8816006546107e191906117a9565b6107eb91906117c0565b6007556006546103e8906108009083906117a9565b61080a91906117c0565b60085550565b6000546001600160a01b0316331461083a5760405162461bcd60e51b81526004016106ba90611774565b6001600160a01b03811661089f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ba565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661095c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ba565b6001600160a01b0382166109bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ba565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ba565b6001600160a01b038216610ae45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ba565b60008111610b465760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ba565b6001600160a01b03831660009081526003602052604081208054839290610b6e90849061174e565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610bb857506001600160a01b03841660009081526005602052604090205460ff16155b15610bc1575060015b600b546001600160a01b038681169116148015610beb57506002546001600160a01b038581169116145b15610c0257426014556015805460ff191660011790555b60155460ff168015610c215750601454610c1e90610258611761565b42115b8015610c355750601554610100900460ff16155b15610c5e576002600d556003600e556005600f55600a6010556015805461ff0019166101001790555b60155460ff168015610c7d5750601454610c7a906104b0611761565b42115b8015610c92575060155462010000900460ff16155b15610cbd576001600d556002600e556003600f5560076010556015805462ff00001916620100001790555b60155460ff168015610cdc5750601454610cd990610708611761565b42115b8015610cf257506015546301000000900460ff16155b15610d22576001600d8190556002600e819055600f919091556010556015805463ff000000191663010000001790555b8015610f60576002546001600160a01b03858116911614610db757600854831115610d5f5760405162461bcd60e51b81526004016106ba906117e2565b60075483610d82866001600160a01b031660009081526003602052604090205490565b610d8c9190611761565b1115610daa5760405162461bcd60e51b81526004016106ba9061182b565b610db48385610fe3565b91505b6002546001600160a01b03868116911614610ec257600854831115610dee5760405162461bcd60e51b81526004016106ba906117e2565b610df883866110ba565b91506001600a6000828254610e0d9190611761565b90915550506009543060009081526003602052604090205410158015610e36575060135460ff16155b15610e64576013805460ff19166001179055600954610e54906110f1565b6013805460ff191690556000600a555b6005600a54118015610e79575060135460ff16155b15610ec2576013805460ff19166001179055610eb2610ead306001600160a01b031660009081526003602052604090205490565b6110f1565b6013805460ff191690556000600a555b6002546001600160a01b03858116911614801590610eee57506002546001600160a01b03868116911614155b15610f6057600854831115610f155760405162461bcd60e51b81526004016106ba906117e2565b60075483610f38866001600160a01b031660009081526003602052604090205490565b610f429190611761565b1115610f605760405162461bcd60e51b81526004016106ba9061182b565b6001600160a01b03841660009081526003602052604081208054849290610f88908490611761565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fd491815260200190565b60405180910390a35050505050565b6000806064600d6000015485610ff991906117a9565b61100391906117c0565b905060006064600d600101548661101a91906117a9565b61102491906117c0565b90506110308183611761565b306000908152600360205260408120805490919061104f908490611761565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61108b8585611761565b60405190815260200160405180910390a3806110a7838761174e565b6110b1919061174e565b95945050505050565b6000806064600f60000154856110d091906117a9565b6110da91906117c0565b905060006064600f600101548661101a91906117a9565b600f54601054600d54600e548493600093909290916111109190611761565b61111a9190611761565b6111249190611761565b600f54600d546111349190611761565b61113e90846117a9565b61114891906117c0565b600f54601054600d54600e549394506000936111649190611761565b61116e9190611761565b6111789190611761565b601054600e546111889190611761565b61119290856117a9565b61119c91906117c0565b905060006111aa8284611761565b905060006111b9846002611249565b905060006111c78683611292565b9050476111d3826112d4565b60006111df4783611292565b905060006111f7866111f1848b61142e565b90611249565b905061120385826114b0565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561123c573d6000803e3d6000fd5b5050505050505050505050565b600061128b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611564565b9392505050565b600061128b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611592565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061130957611309611877565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611362573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611386919061188d565b8160018151811061139957611399611877565b6001600160a01b0392831660209182029290920101526001546113bf91309116846108fa565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f89085906000908690309042906004016118aa565b600060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b505050505050565b60008260000361144057506000610601565b600061144c83856117a9565b90508261145985836117c0565b1461128b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ba565b6001546114c89030906001600160a01b0316846108fa565b600154600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611538573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061155d919061191b565b5050505050565b600081836115855760405162461bcd60e51b81526004016106ba91906115c3565b5060006110b184866117c0565b600081848411156115b65760405162461bcd60e51b81526004016106ba91906115c3565b5060006110b1848661174e565b600060208083528351808285015260005b818110156115f0578581018301518582016040015282016115d4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461162657600080fd5b50565b6000806040838503121561163c57600080fd5b823561164781611611565b946020939093013593505050565b60008060006060848603121561166a57600080fd5b833561167581611611565b9250602084013561168581611611565b929592945050506040919091013590565b6000602082840312156116a857600080fd5b813561128b81611611565b600080604083850312156116c657600080fd5b82356116d181611611565b9150602083013580151581146116e657600080fd5b809150509250929050565b6000806040838503121561170457600080fd5b823561170f81611611565b915060208301356116e681611611565b60006020828403121561173157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561060157610601611738565b8082018082111561060157610601611738565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761060157610601611738565b6000826117dd57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526029908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152681e1b9cd05b5bdd5b9d60ba1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561189f57600080fd5b815161128b81611611565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118fa5784516001600160a01b0316835293830193918301916001016118d5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220fb365919ed491f6409e94b4d49ed3ed5268fbf10ede8e5f4c7f350c5d1fd17ea64736f6c634300081100330000000000000000000000008f1cb0238811689b4a4f9d0aaa879d7e1e3806bd0000000000000000000000001e09175c7c72313ed0273b61fe721143987c965f

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370a08231116100f7578063a3aa748711610095578063c589829d11610064578063c589829d14610554578063dd62ed3e1461056a578063f1d5f517146105b0578063f2fde38b146105d057600080fd5b8063a3aa7487146104de578063a457c2d7146104f4578063a9059cbb14610514578063c02466681461053457600080fd5b80637d1db4a5116100d15780637d1db4a51461045d5780638091f3bf146104735780638da5cb5b1461048d57806395d89b41146104ab57600080fd5b806370a08231146103f0578063715018a61461042657806375f0a8741461043d57600080fd5b80632b14ca5611610164578063470624021161013e578063470624021461036657806349bd5a5e146103815780635342acb4146103a15780636c0a24eb146103da57600080fd5b80632b14ca56146102fa578063313ce5671461032a578063395093511461034657600080fd5b80631694505e116101a05780631694505e1461026d57806318160ddd146102a557806323b872dd146102ba578063264d26dd146102da57600080fd5b806303e403b0146101d257806306fdde03146101fb578063095ea7b31461023d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e860095481565b6040519081526020015b60405180910390f35b34801561020757600080fd5b5060408051808201909152601081526f20a49029b7b1b4b2ba3c902a37b5b2b760811b60208201525b6040516101f291906115c3565b34801561024957600080fd5b5061025d610258366004611629565b6105f0565b60405190151581526020016101f2565b34801561027957600080fd5b5060015461028d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b3480156102b157600080fd5b506006546101e8565b3480156102c657600080fd5b5061025d6102d5366004611655565b610607565b3480156102e657600080fd5b50600b5461028d906001600160a01b031681565b34801561030657600080fd5b50600f54601054610315919082565b604080519283526020830191909152016101f2565b34801561033657600080fd5b50604051601281526020016101f2565b34801561035257600080fd5b5061025d610361366004611629565b610659565b34801561037257600080fd5b50600d54600e54610315919082565b34801561038d57600080fd5b5060025461028d906001600160a01b031681565b3480156103ad57600080fd5b5061025d6103bc366004611696565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103e657600080fd5b506101e860075481565b3480156103fc57600080fd5b506101e861040b366004611696565b6001600160a01b031660009081526003602052604090205490565b34801561043257600080fd5b5061043b610690565b005b34801561044957600080fd5b50600c5461028d906001600160a01b031681565b34801561046957600080fd5b506101e860085481565b34801561047f57600080fd5b5060155461025d9060ff1681565b34801561049957600080fd5b506000546001600160a01b031661028d565b3480156104b757600080fd5b5060408051808201909152600a815269414920534f434945545960b01b6020820152610230565b3480156104ea57600080fd5b506101e860145481565b34801561050057600080fd5b5061025d61050f366004611629565b61070d565b34801561052057600080fd5b5061025d61052f366004611629565b610744565b34801561054057600080fd5b5061043b61054f3660046116b3565b610751565b34801561056057600080fd5b506101e8600a5481565b34801561057657600080fd5b506101e86105853660046116f1565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105bc57600080fd5b5061043b6105cb36600461171f565b6107a6565b3480156105dc57600080fd5b5061043b6105eb366004611696565b610810565b60006105fd3384846108fa565b5060015b92915050565b6000610614848484610a1e565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461064f91869161064a90869061174e565b6108fa565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105fd91859061064a908690611761565b6000546001600160a01b031633146106c35760405162461bcd60e51b81526004016106ba90611774565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105fd91859061064a90869061174e565b60006105fd338484610a1e565b6000546001600160a01b0316331461077b5760405162461bcd60e51b81526004016106ba90611774565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107d05760405162461bcd60e51b81526004016106ba90611774565b6103e8816006546107e191906117a9565b6107eb91906117c0565b6007556006546103e8906108009083906117a9565b61080a91906117c0565b60085550565b6000546001600160a01b0316331461083a5760405162461bcd60e51b81526004016106ba90611774565b6001600160a01b03811661089f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ba565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661095c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ba565b6001600160a01b0382166109bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ba565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ba565b6001600160a01b038216610ae45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ba565b60008111610b465760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ba565b6001600160a01b03831660009081526003602052604081208054839290610b6e90849061174e565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610bb857506001600160a01b03841660009081526005602052604090205460ff16155b15610bc1575060015b600b546001600160a01b038681169116148015610beb57506002546001600160a01b038581169116145b15610c0257426014556015805460ff191660011790555b60155460ff168015610c215750601454610c1e90610258611761565b42115b8015610c355750601554610100900460ff16155b15610c5e576002600d556003600e556005600f55600a6010556015805461ff0019166101001790555b60155460ff168015610c7d5750601454610c7a906104b0611761565b42115b8015610c92575060155462010000900460ff16155b15610cbd576001600d556002600e556003600f5560076010556015805462ff00001916620100001790555b60155460ff168015610cdc5750601454610cd990610708611761565b42115b8015610cf257506015546301000000900460ff16155b15610d22576001600d8190556002600e819055600f919091556010556015805463ff000000191663010000001790555b8015610f60576002546001600160a01b03858116911614610db757600854831115610d5f5760405162461bcd60e51b81526004016106ba906117e2565b60075483610d82866001600160a01b031660009081526003602052604090205490565b610d8c9190611761565b1115610daa5760405162461bcd60e51b81526004016106ba9061182b565b610db48385610fe3565b91505b6002546001600160a01b03868116911614610ec257600854831115610dee5760405162461bcd60e51b81526004016106ba906117e2565b610df883866110ba565b91506001600a6000828254610e0d9190611761565b90915550506009543060009081526003602052604090205410158015610e36575060135460ff16155b15610e64576013805460ff19166001179055600954610e54906110f1565b6013805460ff191690556000600a555b6005600a54118015610e79575060135460ff16155b15610ec2576013805460ff19166001179055610eb2610ead306001600160a01b031660009081526003602052604090205490565b6110f1565b6013805460ff191690556000600a555b6002546001600160a01b03858116911614801590610eee57506002546001600160a01b03868116911614155b15610f6057600854831115610f155760405162461bcd60e51b81526004016106ba906117e2565b60075483610f38866001600160a01b031660009081526003602052604090205490565b610f429190611761565b1115610f605760405162461bcd60e51b81526004016106ba9061182b565b6001600160a01b03841660009081526003602052604081208054849290610f88908490611761565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fd491815260200190565b60405180910390a35050505050565b6000806064600d6000015485610ff991906117a9565b61100391906117c0565b905060006064600d600101548661101a91906117a9565b61102491906117c0565b90506110308183611761565b306000908152600360205260408120805490919061104f908490611761565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61108b8585611761565b60405190815260200160405180910390a3806110a7838761174e565b6110b1919061174e565b95945050505050565b6000806064600f60000154856110d091906117a9565b6110da91906117c0565b905060006064600f600101548661101a91906117a9565b600f54601054600d54600e548493600093909290916111109190611761565b61111a9190611761565b6111249190611761565b600f54600d546111349190611761565b61113e90846117a9565b61114891906117c0565b600f54601054600d54600e549394506000936111649190611761565b61116e9190611761565b6111789190611761565b601054600e546111889190611761565b61119290856117a9565b61119c91906117c0565b905060006111aa8284611761565b905060006111b9846002611249565b905060006111c78683611292565b9050476111d3826112d4565b60006111df4783611292565b905060006111f7866111f1848b61142e565b90611249565b905061120385826114b0565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561123c573d6000803e3d6000fd5b5050505050505050505050565b600061128b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611564565b9392505050565b600061128b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611592565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061130957611309611877565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611362573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611386919061188d565b8160018151811061139957611399611877565b6001600160a01b0392831660209182029290920101526001546113bf91309116846108fa565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f89085906000908690309042906004016118aa565b600060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b505050505050565b60008260000361144057506000610601565b600061144c83856117a9565b90508261145985836117c0565b1461128b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ba565b6001546114c89030906001600160a01b0316846108fa565b600154600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611538573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061155d919061191b565b5050505050565b600081836115855760405162461bcd60e51b81526004016106ba91906115c3565b5060006110b184866117c0565b600081848411156115b65760405162461bcd60e51b81526004016106ba91906115c3565b5060006110b1848661174e565b600060208083528351808285015260005b818110156115f0578581018301518582016040015282016115d4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461162657600080fd5b50565b6000806040838503121561163c57600080fd5b823561164781611611565b946020939093013593505050565b60008060006060848603121561166a57600080fd5b833561167581611611565b9250602084013561168581611611565b929592945050506040919091013590565b6000602082840312156116a857600080fd5b813561128b81611611565b600080604083850312156116c657600080fd5b82356116d181611611565b9150602083013580151581146116e657600080fd5b809150509250929050565b6000806040838503121561170457600080fd5b823561170f81611611565b915060208301356116e681611611565b60006020828403121561173157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561060157610601611738565b8082018082111561060157610601611738565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761060157610601611738565b6000826117dd57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526029908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152681e1b9cd05b5bdd5b9d60ba1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561189f57600080fd5b815161128b81611611565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118fa5784516001600160a01b0316835293830193918301916001016118d5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220fb365919ed491f6409e94b4d49ed3ed5268fbf10ede8e5f4c7f350c5d1fd17ea64736f6c63430008110033

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

0000000000000000000000008f1cb0238811689b4a4f9d0aaa879d7e1e3806bd0000000000000000000000001e09175c7c72313ed0273b61fe721143987c965f

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x8F1cB0238811689b4a4f9D0AAa879d7E1e3806bd
Arg [1] : liquidityAddress (address): 0x1E09175c7C72313ED0273b61fE721143987c965f

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008f1cb0238811689b4a4f9d0aaa879d7e1e3806bd
Arg [1] : 0000000000000000000000001e09175c7c72313ed0273b61fe721143987c965f


Deployed Bytecode Sourcemap

4794:10919:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5506:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5506:57:0;;;;;;;;7199:83;;;;;;;;;;-1:-1:-1;7269:5:0;;;;;;;;;;;;-1:-1:-1;;;7269:5:0;;;;7199:83;;;;;;;:::i;8031:161::-;;;;;;;;;;-1:-1:-1;8031:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8031:161:0;1205:187:1;4886:41:0;;;;;;;;;;-1:-1:-1;4886:41:0;;;;-1:-1:-1;;;;;4886:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4886:41:0;1397:229:1;7476:95:0;;;;;;;;;;-1:-1:-1;7556:7:0;;7476:95;;8200:266;;;;;;;;;;-1:-1:-1;8200:266:0;;;;;:::i;:::-;;:::i;5608:32::-;;;;;;;;;;-1:-1:-1;5608:32:0;;;;-1:-1:-1;;;;;5608:32:0;;;5887:23;;;;;;;;;;-1:-1:-1;5887:23:0;;;;;;;;;;;;;2474:25:1;;;2530:2;2515:18;;2508:34;;;;2447:18;5887:23:0;2300:248:1;7385:83:0;;;;;;;;;;-1:-1:-1;7385:83:0;;5311:2;2695:36:1;;2683:2;2668:18;7385:83:0;2553:184:1;8474:215:0;;;;;;;;;;-1:-1:-1;8474:215:0;;;;;:::i;:::-;;:::i;5859:21::-;;;;;;;;;;-1:-1:-1;5859:21:0;;;;;;;;;4936:28;;;;;;;;;;-1:-1:-1;4936:28:0;;;;-1:-1:-1;;;;;4936:28:0;;;10055:123;;;;;;;;;;-1:-1:-1;10055:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10143:27:0;10119:4;10143:27;;;:18;:27;;;;;;;;;10055:123;5382:57;;;;;;;;;;;;;;;;7579:118;;;;;;;;;;-1:-1:-1;7579:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7672:17:0;7645:7;7672:17;;;:8;:17;;;;;;;7579:118;3255:148;;;;;;;;;;;;;:::i;:::-;;5647:30;;;;;;;;;;-1:-1:-1;5647:30:0;;;;-1:-1:-1;;;;;5647:30:0;;;5446:53;;;;;;;;;;;;;;;;6052:20;;;;;;;;;;-1:-1:-1;6052:20:0;;;;;;;;3041:79;;;;;;;;;;-1:-1:-1;3079:7:0;3106:6;-1:-1:-1;;;;;3106:6:0;3041:79;;7290:87;;;;;;;;;;-1:-1:-1;7362:7:0;;;;;;;;;;;;-1:-1:-1;;;7362:7:0;;;;7290:87;;6019:26;;;;;;;;;;;;;;;;8697:225;;;;;;;;;;-1:-1:-1;8697:225:0;;;;;:::i;:::-;;:::i;7705:167::-;;;;;;;;;;-1:-1:-1;7705:167:0;;;;;:::i;:::-;;:::i;8934:140::-;;;;;;;;;;-1:-1:-1;8934:140:0;;;;;:::i;:::-;;:::i;5570:29::-;;;;;;;;;;;;;;;;7880:143;;;;;;;;;;-1:-1:-1;7880:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7988:18:0;;;7961:7;7988:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7880:143;10186:196;;;;;;;;;;-1:-1:-1;10186:196:0;;;;;:::i;:::-;;:::i;3411:244::-;;;;;;;;;;-1:-1:-1;3411:244:0;;;;;:::i;:::-;;:::i;8031:161::-;8106:4;8123:39;2573:10;8146:7;8155:6;8123:8;:39::i;:::-;-1:-1:-1;8180:4:0;8031:161;;;;;:::o;8200:266::-;8298:4;8315:36;8325:6;8333:9;8344:6;8315:9;:36::i;:::-;-1:-1:-1;;;;;8393:19:0;;;;;;:11;:19;;;;;;;;2573:10;8393:33;;;;;;;;;8362:74;;8371:6;;8393:42;;8429:6;;8393:42;:::i;:::-;8362:8;:74::i;:::-;-1:-1:-1;8454:4:0;8200:266;;;;;:::o;8474:215::-;2573:10;8562:4;8611:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8611:34:0;;;;;;;;;;8562:4;;8579:80;;8602:7;;8611:47;;8648:10;;8611:47;:::i;3255:148::-;3168:6;;-1:-1:-1;;;;;3168:6:0;2573:10;3168:22;3160:67;;;;-1:-1:-1;;;3160:67:0;;;;;;;:::i;:::-;;;;;;;;;3362:1:::1;3346:6:::0;;3325:40:::1;::::0;-1:-1:-1;;;;;3346:6:0;;::::1;::::0;3325:40:::1;::::0;3362:1;;3325:40:::1;3393:1;3376:19:::0;;-1:-1:-1;;;;;;3376:19:0::1;::::0;;3255:148::o;8697:225::-;2573:10;8790:4;8839:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8839:34:0;;;;;;;;;;8790:4;;8807:85;;8830:7;;8839:52;;8876:15;;8839:52;:::i;7705:167::-;7783:4;7800:42;2573:10;7824:9;7835:6;7800:9;:42::i;8934:140::-;3168:6;;-1:-1:-1;;;;;3168:6:0;2573:10;3168:22;3160:67;;;;-1:-1:-1;;;3160:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9019:36:0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;-1:-1:-1;;9019:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8934:140::o;10186:196::-;3168:6;;-1:-1:-1;;;;;3168:6:0;2573:10;3168:22;3160:67;;;;-1:-1:-1;;;3160:67:0;;;;;;;:::i;:::-;10311:4:::1;10293:13;10283:7;;:23;;;;:::i;:::-;10282:33;;;;:::i;:::-;10263:16;:52:::0;10342:7:::1;::::0;10370:4:::1;::::0;10342:23:::1;::::0;10352:13;;10342:23:::1;:::i;:::-;10341:33;;;;:::i;:::-;10326:12;:48:::0;-1:-1:-1;10186:196:0:o;3411:244::-;3168:6;;-1:-1:-1;;;;;3168:6:0;2573:10;3168:22;3160:67;;;;-1:-1:-1;;;3160:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3500:22:0;::::1;3492:73;;;::::0;-1:-1:-1;;;3492:73:0;;5346:2:1;3492:73:0::1;::::0;::::1;5328:21:1::0;5385:2;5365:18;;;5358:30;5424:34;5404:18;;;5397:62;-1:-1:-1;;;5475:18:1;;;5468:36;5521:19;;3492:73:0::1;5144:402:1::0;3492:73:0::1;3602:6;::::0;;3581:38:::1;::::0;-1:-1:-1;;;;;3581:38:0;;::::1;::::0;3602:6;::::1;::::0;3581:38:::1;::::0;::::1;3630:6;:17:::0;;-1:-1:-1;;;;;;3630:17:0::1;-1:-1:-1::0;;;;;3630:17:0;;;::::1;::::0;;;::::1;::::0;;3411:244::o;10390:337::-;-1:-1:-1;;;;;10483:19:0;;10475:68;;;;-1:-1:-1;;;10475:68:0;;5753:2:1;10475:68:0;;;5735:21:1;5792:2;5772:18;;;5765:30;5831:34;5811:18;;;5804:62;-1:-1:-1;;;5882:18:1;;;5875:34;5926:19;;10475:68:0;5551:400:1;10475:68:0;-1:-1:-1;;;;;10562:21:0;;10554:68;;;;-1:-1:-1;;;10554:68:0;;6158:2:1;10554:68:0;;;6140:21:1;6197:2;6177:18;;;6170:30;6236:34;6216:18;;;6209:62;-1:-1:-1;;;6287:18:1;;;6280:32;6329:19;;10554:68:0;5956:398:1;10554:68:0;-1:-1:-1;;;;;10635:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10687:32;;160:25:1;;;10687:32:0;;133:18:1;10687:32:0;;;;;;;10390:337;;;:::o;10735:3025::-;-1:-1:-1;;;;;10857:18:0;;10849:68;;;;-1:-1:-1;;;10849:68:0;;6561:2:1;10849:68:0;;;6543:21:1;6600:2;6580:18;;;6573:30;6639:34;6619:18;;;6612:62;-1:-1:-1;;;6690:18:1;;;6683:35;6735:19;;10849:68:0;6359:401:1;10849:68:0;-1:-1:-1;;;;;10936:16:0;;10928:64;;;;-1:-1:-1;;;10928:64:0;;6967:2:1;10928:64:0;;;6949:21:1;7006:2;6986:18;;;6979:30;7045:34;7025:18;;;7018:62;-1:-1:-1;;;7096:18:1;;;7089:33;7139:19;;10928:64:0;6765:399:1;10928:64:0;11020:1;11011:6;:10;11003:64;;;;-1:-1:-1;;;11003:64:0;;7371:2:1;11003:64:0;;;7353:21:1;7410:2;7390:18;;;7383:30;7449:34;7429:18;;;7422:62;-1:-1:-1;;;7500:18:1;;;7493:39;7549:19;;11003:64:0;7169:405:1;11003:64:0;-1:-1:-1;;;;;11088:14:0;;;;;;:8;:14;;;;;:24;;11106:6;;11088:14;:24;;11106:6;;11088:24;:::i;:::-;;;;-1:-1:-1;;;;;;;11204:24:0;;11123:22;11204:24;;;:18;:24;;;;;;11148:6;;11123:22;11204:24;;11203:25;:52;;;;-1:-1:-1;;;;;;11233:22:0;;;;;;:18;:22;;;;;;;;11232:23;11203:52;11200:97;;;-1:-1:-1;11281:4:0;11200:97;11320:17;;-1:-1:-1;;;;;11312:25:0;;;11320:17;;11312:25;:48;;;;-1:-1:-1;11347:13:0;;-1:-1:-1;;;;;11341:19:0;;;11347:13;;11341:19;11312:48;11309:139;;;11391:15;11377:11;:29;11421:8;:15;;-1:-1:-1;;11421:15:0;11432:4;11421:15;;;11309:139;11463:8;;;;:47;;;;-1:-1:-1;11493:11:0;;:17;;11507:3;11493:17;:::i;:::-;11475:15;:35;11463:47;:58;;;;-1:-1:-1;11515:6:0;;;;;;;11514:7;11463:58;11460:248;;;11557:1;11538:6;:20;11592:1;11573:16;:20;11630:1;11610:7;:21;11666:2;11646:17;:22;11683:6;:13;;-1:-1:-1;;11683:13:0;;;;;11460:248;11723:8;;;;:48;;;;-1:-1:-1;11753:11:0;;:18;;11767:4;11753:18;:::i;:::-;11735:15;:36;11723:48;:59;;;;-1:-1:-1;11776:6:0;;;;;;;11775:7;11723:59;11720:248;;;11818:1;11799:6;:20;11853:1;11834:16;:20;11891:1;11871:7;:21;11927:1;11907:17;:21;11943:6;:13;;-1:-1:-1;;11943:13:0;;;;;11720:248;11983:8;;;;:48;;;;-1:-1:-1;12013:11:0;;:18;;12027:4;12013:18;:::i;:::-;11995:15;:36;11983:48;:59;;;;-1:-1:-1;12036:6:0;;;;;;;12035:7;11983:59;11980:248;;;12078:1;12059:6;:20;;;12113:1;12094:16;:20;;;12131:7;:21;;;;12167:17;:21;12203:6;:13;;-1:-1:-1;;12203:13:0;;;;;11980:248;12243:7;12240:1412;;;12275:13;;-1:-1:-1;;;;;12269:19:0;;;12275:13;;12269:19;12266:311;;12326:12;;12316:6;:22;;12308:76;;;;-1:-1:-1;;;12308:76:0;;;;;;;:::i;:::-;12437:16;;12427:6;12411:13;12421:2;-1:-1:-1;;;;;7672:17:0;7645:7;7672:17;;;:8;:17;;;;;;;7579:118;12411:13;:22;;;;:::i;:::-;:42;;12403:99;;;;-1:-1:-1;;;12403:99:0;;;;;;;:::i;:::-;12538:23;12550:6;12558:2;12538:11;:23::i;:::-;12521:40;;12266:311;12604:13;;-1:-1:-1;;;;;12596:21:0;;;12604:13;;12596:21;12593:755;;12655:12;;12645:6;:22;;12637:76;;;;-1:-1:-1;;;12637:76:0;;;;;;;:::i;:::-;12749:26;12762:6;12770:4;12749:12;:26::i;:::-;12732:43;;12812:1;12794:14;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;;12865:17:0;;12855:4;7645:7;7672:17;;;:8;:17;;;;;;12837:45;;:58;;;;-1:-1:-1;12887:8:0;;;;12886:9;12837:58;12833:250;;;12920:8;:15;;-1:-1:-1;;12920:15:0;12931:4;12920:15;;;12967:17;;12958:27;;:8;:27::i;:::-;13008:8;:16;;-1:-1:-1;;13008:16:0;;;13019:5;13047:14;:18;12833:250;13124:1;13107:14;;:18;:31;;;;-1:-1:-1;13130:8:0;;;;13129:9;13107:31;13103:230;;;13163:8;:15;;-1:-1:-1;;13163:15:0;13174:4;13163:15;;;13201:34;13210:24;13228:4;-1:-1:-1;;;;;7672:17:0;7645:7;7672:17;;;:8;:17;;;;;;;7579:118;13210:24;13201:8;:34::i;:::-;13258:8;:16;;-1:-1:-1;;13258:16:0;;;13269:5;13297:14;:18;13103:230;13373:13;;-1:-1:-1;;;;;13367:19:0;;;13373:13;;13367:19;;;;:44;;-1:-1:-1;13398:13:0;;-1:-1:-1;;;;;13390:21:0;;;13398:13;;13390:21;;13367:44;13364:277;;;13449:12;;13439:6;:22;;13431:76;;;;-1:-1:-1;;;13431:76:0;;;;;;;:::i;:::-;13560:16;;13550:6;13534:13;13544:2;-1:-1:-1;;;;;7672:17:0;7645:7;7672:17;;;:8;:17;;;;;;;7579:118;13534:13;:22;;;;:::i;:::-;:42;;13526:99;;;;-1:-1:-1;;;13526:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13672:12:0;;;;;;:8;:12;;;;;:30;;13688:14;;13672:12;:30;;13688:14;;13672:30;:::i;:::-;;;;;;;;13733:2;-1:-1:-1;;;;;13718:34:0;13727:4;-1:-1:-1;;;;;13718:34:0;;13737:14;13718:34;;;;160:25:1;;148:2;133:18;;14:177;13718:34:0;;;;;;;;10838:2922;;10735:3025;;;:::o;9123:456::-;9191:7;9211:25;9267:3;9248:6;:16;;;9239:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9211:59;;9282:26;9339:3;9320:6;:16;;;9311:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9282:60;-1:-1:-1;9382:38:0;9282:60;9382:17;:38;:::i;:::-;9372:4;9355:23;;;;:8;:23;;;;;:65;;:23;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;9460:4:0;;-1:-1:-1;;;;;;9436:70:0;;;9467:38;9488:17;9467:18;:38;:::i;:::-;9436:70;;160:25:1;;;148:2;133:18;9436:70:0;;;;;;;9552:18;9525:25;9533:17;9525:6;:25;:::i;:::-;:45;;;;:::i;:::-;9517:54;9123:456;-1:-1:-1;;;;;9123:456:0:o;9587:460::-;9656:7;9676:25;9733:3;9713:7;:17;;;9704:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9676:60;;9748:26;9806:3;9786:7;:17;;;9777:6;:26;;;;:::i;13771:1074::-;14011:7;:17;13991;;13972:6;:16;13953;;13850:6;;13824:23;;14011:17;;13991;;13953:35;;13972:16;13953:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;13931:7;:17;13912:6;:16;:36;;13931:17;13912:36;:::i;:::-;13893:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;14184:7;:17;14164;;14145:6;:16;14126;;13867:162;;-1:-1:-1;14040:23:0;;14126:35;;14145:16;14126:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;14104:17;;14085:16;;:36;;14104:17;14085:36;:::i;:::-;14066:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;14040:162;-1:-1:-1;14213:25:0;14241:33;14040:162;14241:15;:33;:::i;:::-;14213:61;-1:-1:-1;14295:26:0;14324:22;:15;14344:1;14324:19;:22::i;:::-;14295:51;-1:-1:-1;14357:26:0;14386:39;:15;14295:51;14386:19;:39::i;:::-;14357:68;-1:-1:-1;14464:21:0;14496:36;14357:68;14496:16;:36::i;:::-;14544:18;14565:44;:21;14591:17;14565:25;:44::i;:::-;14544:65;-1:-1:-1;14630:23:0;14656:54;14692:17;14656:31;14544:65;14671:15;14656:14;:31::i;:::-;:35;;:54::i;:::-;14630:80;;14721:49;14734:18;14754:15;14721:12;:49::i;:::-;14789:15;;14781:56;;-1:-1:-1;;;;;14789:15:0;;;;14815:21;14781:56;;;;;14789:15;14781:56;14789:15;14781:56;14815:21;14789:15;14781:56;;;;;;;;;;;;;;;;;;;;;13813:1032;;;;;;;;;13771:1074;:::o;1707:132::-;1765:7;1792:39;1796:1;1799;1792:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1785:46;1707:132;-1:-1:-1;;;1707:132:0:o;1105:136::-;1163:7;1190:43;1194:1;1197;1190:43;;;;;;;;;;;;;;;;;:3;:43::i;14853:475::-;14943:16;;;14957:1;14943:16;;;;;;;;14919:21;;14943:16;;;;;;;;;;-1:-1:-1;14943:16:0;14919:40;;14988:4;14970;14975:1;14970:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14970:23:0;;;:7;;;;;;;;;;:23;;;;15014:15;;:22;;;-1:-1:-1;;;15014:22:0;;;;:15;;;;;:20;;:22;;;;;14970:7;;15014:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15004:4;15009:1;15004:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15004:32:0;;;:7;;;;;;;;;:32;15081:15;;15049:62;;15066:4;;15081:15;15099:11;15049:8;:62::i;:::-;15124:15;;:196;;-1:-1:-1;;;15124:196:0;;-1:-1:-1;;;;;15124:15:0;;;;:66;;:196;;15205:11;;15124:15;;15247:4;;15274;;15294:15;;15124:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14908:420;14853:475;:::o;1449:250::-;1507:7;1531:1;1536;1531:6;1527:47;;-1:-1:-1;1561:1:0;1554:8;;1527:47;1586:9;1598:5;1602:1;1598;:5;:::i;:::-;1586:17;-1:-1:-1;1631:1:0;1622:5;1626:1;1586:17;1622:5;:::i;:::-;:10;1614:56;;;;-1:-1:-1;;;1614:56:0;;10109:2:1;1614:56:0;;;10091:21:1;10148:2;10128:18;;;10121:30;10187:34;10167:18;;;10160:62;-1:-1:-1;;;10238:18:1;;;10231:31;10279:19;;1614:56:0;9907:397:1;15336:374:0;15449:15;;15417:62;;15434:4;;-1:-1:-1;;;;;15449:15:0;15467:11;15417:8;:62::i;:::-;15492:15;;15644:17;;15492:210;;-1:-1:-1;;;15492:210:0;;15566:4;15492:210;;;10650:34:1;10700:18;;;10693:34;;;15492:15:0;10743:18:1;;;10736:34;;;10786:18;;;10779:34;-1:-1:-1;;;;;15644:17:0;;;10829:19:1;;;10822:44;15676:15:0;10882:19:1;;;10875:35;15492:15:0;;;:31;;15532:9;;10584:19:1;;15492:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15336:374;;:::o;1847:278::-;1933:7;1968:12;1961:5;1953:28;;;;-1:-1:-1;;;1953:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1992:9:0;2004:5;2008:1;2004;:5;:::i;1249:192::-;1335:7;1371:12;1363:6;;;;1355:29;;;;-1:-1:-1;;;1355:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1395:9:0;1407:5;1411:1;1407;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;2994:416::-;3059:6;3067;3120:2;3108:9;3099:7;3095:23;3091:32;3088:52;;;3136:1;3133;3126:12;3088:52;3175:9;3162:23;3194:31;3219:5;3194:31;:::i;:::-;3244:5;-1:-1:-1;3301:2:1;3286:18;;3273:32;3343:15;;3336:23;3324:36;;3314:64;;3374:1;3371;3364:12;3314:64;3397:7;3387:17;;;2994:416;;;;;:::o;3415:388::-;3483:6;3491;3544:2;3532:9;3523:7;3519:23;3515:32;3512:52;;;3560:1;3557;3550:12;3512:52;3599:9;3586:23;3618:31;3643:5;3618:31;:::i;:::-;3668:5;-1:-1:-1;3725:2:1;3710:18;;3697:32;3738:33;3697:32;3738:33;:::i;3808:180::-;3867:6;3920:2;3908:9;3899:7;3895:23;3891:32;3888:52;;;3936:1;3933;3926:12;3888:52;-1:-1:-1;3959:23:1;;3808:180;-1:-1:-1;3808:180:1:o;3993:127::-;4054:10;4049:3;4045:20;4042:1;4035:31;4085:4;4082:1;4075:15;4109:4;4106:1;4099:15;4125:128;4192:9;;;4213:11;;;4210:37;;;4227:18;;:::i;4258:125::-;4323:9;;;4344:10;;;4341:36;;;4357:18;;:::i;4388:356::-;4590:2;4572:21;;;4609:18;;;4602:30;4668:34;4663:2;4648:18;;4641:62;4735:2;4720:18;;4388:356::o;4749:168::-;4822:9;;;4853;;4870:15;;;4864:22;;4850:37;4840:71;;4891:18;;:::i;4922:217::-;4962:1;4988;4978:132;;5032:10;5027:3;5023:20;5020:1;5013:31;5067:4;5064:1;5057:15;5095:4;5092:1;5085:15;4978:132;-1:-1:-1;5124:9:1;;4922:217::o;7579:405::-;7781:2;7763:21;;;7820:2;7800:18;;;7793:30;7859:34;7854:2;7839:18;;7832:62;-1:-1:-1;;;7925:2:1;7910:18;;7903:39;7974:3;7959:19;;7579:405::o;7989:408::-;8191:2;8173:21;;;8230:2;8210:18;;;8203:30;8269:34;8264:2;8249:18;;8242:62;-1:-1:-1;;;8335:2:1;8320:18;;8313:42;8387:3;8372:19;;7989:408::o;8534:127::-;8595:10;8590:3;8586:20;8583:1;8576:31;8626:4;8623:1;8616:15;8650:4;8647:1;8640:15;8666:251;8736:6;8789:2;8777:9;8768:7;8764:23;8760:32;8757:52;;;8805:1;8802;8795:12;8757:52;8837:9;8831:16;8856:31;8881:5;8856:31;:::i;8922:980::-;9184:4;9232:3;9221:9;9217:19;9263:6;9252:9;9245:25;9289:2;9327:6;9322:2;9311:9;9307:18;9300:34;9370:3;9365:2;9354:9;9350:18;9343:31;9394:6;9429;9423:13;9460:6;9452;9445:22;9498:3;9487:9;9483:19;9476:26;;9537:2;9529:6;9525:15;9511:29;;9558:1;9568:195;9582:6;9579:1;9576:13;9568:195;;;9647:13;;-1:-1:-1;;;;;9643:39:1;9631:52;;9738:15;;;;9703:12;;;;9679:1;9597:9;9568:195;;;-1:-1:-1;;;;;;;9819:32:1;;;;9814:2;9799:18;;9792:60;-1:-1:-1;;;9883:3:1;9868:19;9861:35;9780:3;8922:980;-1:-1:-1;;;8922:980:1:o;10921:306::-;11009:6;11017;11025;11078:2;11066:9;11057:7;11053:23;11049:32;11046:52;;;11094:1;11091;11084:12;11046:52;11123:9;11117:16;11107:26;;11173:2;11162:9;11158:18;11152:25;11142:35;;11217:2;11206:9;11202:18;11196:25;11186:35;;10921:306;;;;;:::o

Swarm Source

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