ETH Price: $3,409.32 (-0.69%)

Token

OCTOPUS AI TRADING (OCTAI)
 

Overview

Max Total Supply

100,000,000,000 OCTAI

Holders

203

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
368,280,425.439971653 OCTAI

Value
$0.00
0x34b607bad9f161f18bd8f2c7ae2802094e1d7be1
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:
OCTOPUSAI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-14
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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

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;
        return c;
    }

}

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 {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract OCTOPUSAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    mapping (uint256 => uint256) private perBuyCount;
    address payable private _taxWallet;
    uint256 private firstBlock = 0;

    uint256 private _initialBuyTax=50;
    uint256 private _initialSellTax=100;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;

    uint256 private _reduceBuyTaxAt=35;

    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=35;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"OCTOPUS AI TRADING";
    string private constant _symbol = unicode"OCTAI";
    uint256 public _maxTxAmount =   1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000000 * 10**_decimals;


    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 private sellsPerBlock = 3;
    uint256 private buysFirstBlock = 85;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    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");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(1000);

            if(block.number == firstBlock){
               require(perBuyCount[block.number] < buysFirstBlock, "Exceeds buys on the first block.");
               perBuyCount[block.number]++;
            }

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _initialSellTax).div(1000);
            }

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < sellsPerBlock);
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function rescueETH() external {
        require(_msgSender() == _taxWallet);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueTokens(address _tokenAddr, uint _amount) external {
        require(_msgSender() == _taxWallet);
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"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"},{"stateMutability":"payable","type":"receive"}]

60806040525f600755603260085560646009556003600a556003600b556023600c556023600d556023600e555f600f555f6010555f6011556009600a6100459190610644565b61005390633b9aca00610659565b6012556100626009600a610644565b61007090633b9aca00610659565b60135561007f6009600a610644565b61008d90633b9aca00610659565b60145561009c6009600a610644565b6100aa90633b9aca00610659565b60155560036018556055601955601a805461ffff191690553480156100cd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319163317905561012c6009600a610644565b61013b9064174876e800610659565b335f9081526001602081905260408220929092556003906101635f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556017549091168352912080549092161790556101c03390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101f76009600a610644565b6102069064174876e800610659565b60405190815260200160405180910390a3601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556102669030906102526009600a610644565b6102619064174876e800610659565b610426565b60165f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102da9190610670565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610339573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035d9190610670565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156103a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610670565b601780546001600160a01b0319166001600160a01b0392831690811782555f908152600460209081526040808320805460ff199081166001908117909255945490951683526003909152902080549091169091179055610696565b6001600160a01b03831661048d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104ee5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610484565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561059c57815f19048211156105825761058261054e565b8085161561058f57918102915b93841c9390800290610567565b509250929050565b5f826105b25750600161063e565b816105be57505f61063e565b81600181146105d457600281146105de576105fa565b600191505061063e565b60ff8411156105ef576105ef61054e565b50506001821b61063e565b5060208310610133831016604e8410600b841016171561061d575081810a61063e565b6106278383610562565b805f190482111561063a5761063a61054e565b0290505b92915050565b5f61065260ff8416836105a4565b9392505050565b808202811582820484141761063e5761063e61054e565b5f60208284031215610680575f80fd5b81516001600160a01b0381168114610652575f80fd5b612273806106a35f395ff3fe608060405260043610610170575f3560e01c8063751039fc116100c657806395d89b411161007c578063dd62ed3e11610057578063dd62ed3e14610441578063f2fde38b14610492578063f5b3c3bf146104b1575f80fd5b806395d89b41146103c8578063a9059cbb1461040d578063bf474bed1461042c575f80fd5b80638a8c523c116100ac5780638a8c523c146103765780638da5cb5b1461038a5780638f9a55c0146103b3575f80fd5b8063751039fc1461034d5780637d1db4a514610361575f80fd5b806323b872dd11610126578063573761981161010157806357376198146102d957806370a08231146102f8578063715018a614610339575f80fd5b806323b872dd1461024e578063313ce5671461026d57806349bd5a5e14610288575f80fd5b80630faee56f116101565780630faee56f1461020157806318160ddd1461022457806320800a0014610238575f80fd5b806306fdde031461017b578063095ea7b3146101d2575f80fd5b3661017757005b5f80fd5b348015610186575f80fd5b5060408051808201909152601281527f4f43544f5055532041492054524144494e47000000000000000000000000000060208201525b6040516101c99190611dc5565b60405180910390f35b3480156101dd575f80fd5b506101f16101ec366004611e39565b6104df565b60405190151581526020016101c9565b34801561020c575f80fd5b5061021660155481565b6040519081526020016101c9565b34801561022f575f80fd5b506102166104f5565b348015610243575f80fd5b5061024c610516565b005b348015610259575f80fd5b506101f1610268366004611e63565b610595565b348015610278575f80fd5b50604051600981526020016101c9565b348015610293575f80fd5b506017546102b49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c9565b3480156102e4575f80fd5b5061024c6102f3366004611e39565b610609565b348015610303575f80fd5b50610216610312366004611ea1565b73ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b348015610344575f80fd5b5061024c6106e1565b348015610358575f80fd5b5061024c6107d3565b34801561036c575f80fd5b5061021660125481565b348015610381575f80fd5b5061024c6108de565b348015610395575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff166102b4565b3480156103be575f80fd5b5061021660135481565b3480156103d3575f80fd5b5060408051808201909152600581527f4f4354414900000000000000000000000000000000000000000000000000000060208201526101bc565b348015610418575f80fd5b506101f1610427366004611e39565b610c2e565b348015610437575f80fd5b5061021660145481565b34801561044c575f80fd5b5061021661045b366004611ebc565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260026020908152604080832093909416825291909152205490565b34801561049d575f80fd5b5061024c6104ac366004611ea1565b610c3a565b3480156104bc575f80fd5b506101f16104cb366004611ea1565b60046020525f908152604090205460ff1681565b5f6104eb338484610de8565b5060015b92915050565b5f6105026009600a61203e565b6105119064174876e80061204c565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054f575f80fd5b60065460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02915f818181858888f19350505050158015610592573d5f803e3d5ffd5b50565b5f6105a1848484610f9a565b6105ff84336105fa856040518060600160405280602881526020016122166028913973ffffffffffffffffffffffffffffffffffffffff8a165f9081526002602090815260408083203384529091529020549190611920565b610de8565b5060019392505050565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610642575f80fd5b6006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156106b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106dc9190612063565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b61085f6009600a61203e565b61086e9064174876e80061204c565b60125561087d6009600a61203e565b61088c9064174876e80061204c565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108bc6009600a61203e565b6108cb9064174876e80061204c565b60405190815260200160405180910390a1565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b60175474010000000000000000000000000000000000000000900460ff16156109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161075d565b60165473ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a2e8173ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b5f80610a4e5f5473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ad9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610afe9190612082565b50506017546016546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610b98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bbc9190612063565b50601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055601780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905543600755565b5f6104eb338484610f9a565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b73ffffffffffffffffffffffffffffffffffffffff8116610d5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161075d565b5f805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161075d565b73ffffffffffffffffffffffffffffffffffffffff8216610f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161075d565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161075d565b73ffffffffffffffffffffffffffffffffffffffff82166110e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161075d565b5f811161116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161075d565b5f805473ffffffffffffffffffffffffffffffffffffffff8581169116148015906111b457505f5473ffffffffffffffffffffffffffffffffffffffff848116911614155b156117a2576111e66103e86111e0600c54600f54116111d5576008546111d9565b600a545b8590611972565b90611a2d565b9050600754430361128a57601954435f908152600560205260409020541061126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e604482015260640161075d565b435f908152600560205260408120805491611284836120ad565b91905055505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff1680156112d9575060165473ffffffffffffffffffffffffffffffffffffffff848116911614155b801561130a575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b156114315760125482111561137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161075d565b601354826113aa8573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b6113b491906120e4565b111561141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161075d565b600f8054905f61142b836120ad565b91905055505b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff1615801561148b575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b1561153157601354826114bf8573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b6114c991906120e4565b1115611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161075d565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16801561157b575073ffffffffffffffffffffffffffffffffffffffff84163014155b156115a9576115a66103e86111e0600d54600f541161159c576009546111d9565b600b548590611972565b90505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff16158015611603575073ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16155b8015611625575073ffffffffffffffffffffffffffffffffffffffff84163014155b1561162d57505f5b305f90815260016020526040902054601a5460ff16158015611673575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b80156116865750601a54610100900460ff165b8015611693575060145481115b80156116a25750600e54600f54115b15611710576011544311156116b6575f6010555b601854601054106116c5575f80fd5b6116e26116dd846116d884601554611a6e565b611a6e565b611a82565b4780156116f2576116f247611c7e565b60108054905f611701836120ad565b909155505043601155506117a0565b601a5460ff16158015611747575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b801561175a5750601a54610100900460ff165b8015611767575060145481115b80156117765750600e54600f54115b156117a05761178e6116dd846116d884601554611a6e565b47801561179e5761179e47611c7e565b505b505b801561182757305f908152600160205260409020546117c19082611cc6565b305f818152600160205260409081902092909255905173ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061181e9085815260200190565b60405180910390a35b73ffffffffffffffffffffffffffffffffffffffff84165f908152600160205260409020546118569083611d3e565b73ffffffffffffffffffffffffffffffffffffffff85165f908152600160205260409020556118b36118888383611d3e565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604090205490611cc6565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119098585611d3e565b60405190815260200160405180910390a350505050565b5f818484111561195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190611dc5565b505f61196984866120f7565b95945050505050565b5f825f0361198157505f6104ef565b5f61198c838561204c565b905082611999858361210a565b14611a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161075d565b9392505050565b5f611a2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d7f565b5f818311611a7c5782611a26565b50919050565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ae057611ae0612142565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b81919061216f565b81600181518110611b9457611b94612142565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152601654611bc79130911684610de8565b6016546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac94790611c259085905f9086903090429060040161218a565b5f604051808303815f87803b158015611c3c575f80fd5b505af1158015611c4e573d5f803e3d5ffd5b5050601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050565b60065460405173ffffffffffffffffffffffffffffffffffffffff9091169082156108fc029083905f818181858888f19350505050158015611cc2573d5f803e3d5ffd5b5050565b5f80611cd283856120e4565b905083811015611a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161075d565b5f611a2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611920565b5f8183611db9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190611dc5565b505f611969848661210a565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610592575f80fd5b5f8060408385031215611e4a575f80fd5b8235611e5581611e18565b946020939093013593505050565b5f805f60608486031215611e75575f80fd5b8335611e8081611e18565b92506020840135611e9081611e18565b929592945050506040919091013590565b5f60208284031215611eb1575f80fd5b8135611a2681611e18565b5f8060408385031215611ecd575f80fd5b8235611ed881611e18565b91506020830135611ee881611e18565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611f7957817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611f5f57611f5f611ef3565b80851615611f6c57918102915b93841c9390800290611f25565b509250929050565b5f82611f8f575060016104ef565b81611f9b57505f6104ef565b8160018114611fb15760028114611fbb57611fd7565b60019150506104ef565b60ff841115611fcc57611fcc611ef3565b50506001821b6104ef565b5060208310610133831016604e8410600b8410161715611ffa575081810a6104ef565b6120048383611f20565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561203657612036611ef3565b029392505050565b5f611a2660ff841683611f81565b80820281158282048414176104ef576104ef611ef3565b5f60208284031215612073575f80fd5b81518015158114611a26575f80fd5b5f805f60608486031215612094575f80fd5b8351925060208401519150604084015190509250925092565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120dd576120dd611ef3565b5060010190565b808201808211156104ef576104ef611ef3565b818103818111156104ef576104ef611ef3565b5f8261213d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561217f575f80fd5b8151611a2681611e18565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121e757845173ffffffffffffffffffffffffffffffffffffffff16835293830193918301916001016121b5565b505073ffffffffffffffffffffffffffffffffffffffff96909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c76e8bb1b6708310ef9902ee410404385b1670ff7b8336206c6def90e6f3e24764736f6c63430008190033

Deployed Bytecode

0x608060405260043610610170575f3560e01c8063751039fc116100c657806395d89b411161007c578063dd62ed3e11610057578063dd62ed3e14610441578063f2fde38b14610492578063f5b3c3bf146104b1575f80fd5b806395d89b41146103c8578063a9059cbb1461040d578063bf474bed1461042c575f80fd5b80638a8c523c116100ac5780638a8c523c146103765780638da5cb5b1461038a5780638f9a55c0146103b3575f80fd5b8063751039fc1461034d5780637d1db4a514610361575f80fd5b806323b872dd11610126578063573761981161010157806357376198146102d957806370a08231146102f8578063715018a614610339575f80fd5b806323b872dd1461024e578063313ce5671461026d57806349bd5a5e14610288575f80fd5b80630faee56f116101565780630faee56f1461020157806318160ddd1461022457806320800a0014610238575f80fd5b806306fdde031461017b578063095ea7b3146101d2575f80fd5b3661017757005b5f80fd5b348015610186575f80fd5b5060408051808201909152601281527f4f43544f5055532041492054524144494e47000000000000000000000000000060208201525b6040516101c99190611dc5565b60405180910390f35b3480156101dd575f80fd5b506101f16101ec366004611e39565b6104df565b60405190151581526020016101c9565b34801561020c575f80fd5b5061021660155481565b6040519081526020016101c9565b34801561022f575f80fd5b506102166104f5565b348015610243575f80fd5b5061024c610516565b005b348015610259575f80fd5b506101f1610268366004611e63565b610595565b348015610278575f80fd5b50604051600981526020016101c9565b348015610293575f80fd5b506017546102b49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c9565b3480156102e4575f80fd5b5061024c6102f3366004611e39565b610609565b348015610303575f80fd5b50610216610312366004611ea1565b73ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b348015610344575f80fd5b5061024c6106e1565b348015610358575f80fd5b5061024c6107d3565b34801561036c575f80fd5b5061021660125481565b348015610381575f80fd5b5061024c6108de565b348015610395575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff166102b4565b3480156103be575f80fd5b5061021660135481565b3480156103d3575f80fd5b5060408051808201909152600581527f4f4354414900000000000000000000000000000000000000000000000000000060208201526101bc565b348015610418575f80fd5b506101f1610427366004611e39565b610c2e565b348015610437575f80fd5b5061021660145481565b34801561044c575f80fd5b5061021661045b366004611ebc565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260026020908152604080832093909416825291909152205490565b34801561049d575f80fd5b5061024c6104ac366004611ea1565b610c3a565b3480156104bc575f80fd5b506101f16104cb366004611ea1565b60046020525f908152604090205460ff1681565b5f6104eb338484610de8565b5060015b92915050565b5f6105026009600a61203e565b6105119064174876e80061204c565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054f575f80fd5b60065460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02915f818181858888f19350505050158015610592573d5f803e3d5ffd5b50565b5f6105a1848484610f9a565b6105ff84336105fa856040518060600160405280602881526020016122166028913973ffffffffffffffffffffffffffffffffffffffff8a165f9081526002602090815260408083203384529091529020549190611920565b610de8565b5060019392505050565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610642575f80fd5b6006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156106b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106dc9190612063565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b61085f6009600a61203e565b61086e9064174876e80061204c565b60125561087d6009600a61203e565b61088c9064174876e80061204c565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108bc6009600a61203e565b6108cb9064174876e80061204c565b60405190815260200160405180910390a1565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b60175474010000000000000000000000000000000000000000900460ff16156109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161075d565b60165473ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a2e8173ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b5f80610a4e5f5473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ad9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610afe9190612082565b50506017546016546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610b98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bbc9190612063565b50601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055601780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905543600755565b5f6104eb338484610f9a565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b73ffffffffffffffffffffffffffffffffffffffff8116610d5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161075d565b5f805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161075d565b73ffffffffffffffffffffffffffffffffffffffff8216610f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161075d565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161075d565b73ffffffffffffffffffffffffffffffffffffffff82166110e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161075d565b5f811161116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161075d565b5f805473ffffffffffffffffffffffffffffffffffffffff8581169116148015906111b457505f5473ffffffffffffffffffffffffffffffffffffffff848116911614155b156117a2576111e66103e86111e0600c54600f54116111d5576008546111d9565b600a545b8590611972565b90611a2d565b9050600754430361128a57601954435f908152600560205260409020541061126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e604482015260640161075d565b435f908152600560205260408120805491611284836120ad565b91905055505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff1680156112d9575060165473ffffffffffffffffffffffffffffffffffffffff848116911614155b801561130a575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b156114315760125482111561137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161075d565b601354826113aa8573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b6113b491906120e4565b111561141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161075d565b600f8054905f61142b836120ad565b91905055505b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff1615801561148b575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b1561153157601354826114bf8573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b6114c991906120e4565b1115611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161075d565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16801561157b575073ffffffffffffffffffffffffffffffffffffffff84163014155b156115a9576115a66103e86111e0600d54600f541161159c576009546111d9565b600b548590611972565b90505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff16158015611603575073ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16155b8015611625575073ffffffffffffffffffffffffffffffffffffffff84163014155b1561162d57505f5b305f90815260016020526040902054601a5460ff16158015611673575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b80156116865750601a54610100900460ff165b8015611693575060145481115b80156116a25750600e54600f54115b15611710576011544311156116b6575f6010555b601854601054106116c5575f80fd5b6116e26116dd846116d884601554611a6e565b611a6e565b611a82565b4780156116f2576116f247611c7e565b60108054905f611701836120ad565b909155505043601155506117a0565b601a5460ff16158015611747575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b801561175a5750601a54610100900460ff165b8015611767575060145481115b80156117765750600e54600f54115b156117a05761178e6116dd846116d884601554611a6e565b47801561179e5761179e47611c7e565b505b505b801561182757305f908152600160205260409020546117c19082611cc6565b305f818152600160205260409081902092909255905173ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061181e9085815260200190565b60405180910390a35b73ffffffffffffffffffffffffffffffffffffffff84165f908152600160205260409020546118569083611d3e565b73ffffffffffffffffffffffffffffffffffffffff85165f908152600160205260409020556118b36118888383611d3e565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604090205490611cc6565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119098585611d3e565b60405190815260200160405180910390a350505050565b5f818484111561195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190611dc5565b505f61196984866120f7565b95945050505050565b5f825f0361198157505f6104ef565b5f61198c838561204c565b905082611999858361210a565b14611a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161075d565b9392505050565b5f611a2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d7f565b5f818311611a7c5782611a26565b50919050565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ae057611ae0612142565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b81919061216f565b81600181518110611b9457611b94612142565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152601654611bc79130911684610de8565b6016546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac94790611c259085905f9086903090429060040161218a565b5f604051808303815f87803b158015611c3c575f80fd5b505af1158015611c4e573d5f803e3d5ffd5b5050601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050565b60065460405173ffffffffffffffffffffffffffffffffffffffff9091169082156108fc029083905f818181858888f19350505050158015611cc2573d5f803e3d5ffd5b5050565b5f80611cd283856120e4565b905083811015611a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161075d565b5f611a2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611920565b5f8183611db9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190611dc5565b505f611969848661210a565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610592575f80fd5b5f8060408385031215611e4a575f80fd5b8235611e5581611e18565b946020939093013593505050565b5f805f60608486031215611e75575f80fd5b8335611e8081611e18565b92506020840135611e9081611e18565b929592945050506040919091013590565b5f60208284031215611eb1575f80fd5b8135611a2681611e18565b5f8060408385031215611ecd575f80fd5b8235611ed881611e18565b91506020830135611ee881611e18565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611f7957817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611f5f57611f5f611ef3565b80851615611f6c57918102915b93841c9390800290611f25565b509250929050565b5f82611f8f575060016104ef565b81611f9b57505f6104ef565b8160018114611fb15760028114611fbb57611fd7565b60019150506104ef565b60ff841115611fcc57611fcc611ef3565b50506001821b6104ef565b5060208310610133831016604e8410600b8410161715611ffa575081810a6104ef565b6120048383611f20565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561203657612036611ef3565b029392505050565b5f611a2660ff841683611f81565b80820281158282048414176104ef576104ef611ef3565b5f60208284031215612073575f80fd5b81518015158114611a26575f80fd5b5f805f60608486031215612094575f80fd5b8351925060208401519150604084015190509250925092565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120dd576120dd611ef3565b5060010190565b808201808211156104ef576104ef611ef3565b818103818111156104ef576104ef611ef3565b5f8261213d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561217f575f80fd5b8151611a2681611e18565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121e757845173ffffffffffffffffffffffffffffffffffffffff16835293830193918301916001016121b5565b505073ffffffffffffffffffffffffffffffffffffffff96909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c76e8bb1b6708310ef9902ee410404385b1670ff7b8336206c6def90e6f3e24764736f6c63430008190033

Deployed Bytecode Sourcemap

3723:8843:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6186:83;;;;;;;;;;-1:-1:-1;6256:5:0;;;;;;;;;;;;;;;;;6186:83;;;;;;;:::i;:::-;;;;;;;;7019:161;;;;;;;;;;-1:-1:-1;7019:161:0;;;;;:::i;:::-;;:::i;:::-;;;1140:14:1;;1133:22;1115:41;;1103:2;1088:18;7019:161:0;975:187:1;5003:54:0;;;;;;;;;;;;;;;;;;;1313:25:1;;;1301:2;1286:18;5003:54:0;1167:177:1;6463:95:0;;;;;;;;;;;;;:::i;11591:146::-;;;;;;;;;;;;;:::i;:::-;;7188:313;;;;;;;;;;-1:-1:-1;7188:313:0;;;;;:::i;:::-;;:::i;6372:83::-;;;;;;;;;;-1:-1:-1;6372:83:0;;4607:1;1952:36:1;;1940:2;1925:18;6372:83:0;1810:184:1;5117:28:0;;;;;;;;;;-1:-1:-1;5117:28:0;;;;;;;;;;;2175:42:1;2163:55;;;2145:74;;2133:2;2118:18;5117:28:0;1999:226:1;11745:178:0;;;;;;;;;;-1:-1:-1;11745:178:0;;;;;:::i;:::-;;:::i;6566:119::-;;;;;;;;;;-1:-1:-1;6566:119:0;;;;;:::i;:::-;6659:18;;6632:7;6659:18;;;:9;:18;;;;;;;6566:119;2554:148;;;;;;;;;;;;;:::i;11931:159::-;;;;;;;;;;;;;:::i;4806:58::-;;;;;;;;;;;;;;;;12098:428;;;;;;;;;;;;;:::i;2340:79::-;;;;;;;;;;-1:-1:-1;2378:7:0;2405:6;;;2340:79;;4871:58;;;;;;;;;;;;;;;;6277:87;;;;;;;;;;-1:-1:-1;6349:7:0;;;;;;;;;;;;;;;;;6277:87;;6693:167;;;;;;;;;;-1:-1:-1;6693:167:0;;;;;:::i;:::-;;:::i;4936:60::-;;;;;;;;;;;;;;;;6868:143;;;;;;;;;;-1:-1:-1;6868:143:0;;;;;:::i;:::-;6976:18;;;;6949:7;6976:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6868:143;2710:244;;;;;;;;;;-1:-1:-1;2710:244:0;;;;;:::i;:::-;;:::i;3987:43::-;;;;;;;;;;-1:-1:-1;3987:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7019:161;7094:4;7111:39;175:10;7134:7;7143:6;7111:8;:39::i;:::-;-1:-1:-1;7168:4:0;7019:161;;;;;:::o;6463:95::-;6516:7;4665:13;4607:1;4665:2;:13;:::i;:::-;4650:28;;:12;:28;:::i;:::-;6536:14;;6463:95;:::o;11591:146::-;11656:10;;;;175;11640:26;;;11632:35;;;;;;11686:10;;11678:51;;11686:10;;;;;11707:21;11678:51;;;;;11686:10;11678:51;11686:10;11678:51;11707:21;11686:10;11678:51;;;;;;;;;;;;;;;;;;;;;11591:146::o;7188:313::-;7286:4;7303:36;7313:6;7321:9;7332:6;7303:9;:36::i;:::-;7350:121;7359:6;175:10;7381:89;7419:6;7381:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;;;175:10;7381:33;;;;;;;;;;:37;:89::i;:::-;7350:8;:121::i;:::-;-1:-1:-1;7489:4:0;7188:313;;;;;:::o;11745:178::-;11845:10;;;;175;11829:26;;;11821:35;;;;;;11895:10;;11867:48;;;;;:27;11895:10;;;11867:48;;;4916:74:1;5006:18;;;4999:34;;;11867:27:0;;;;;;4889:18:1;;11867:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11745:178;;:::o;2554:148::-;2467:6;;:22;:6;175:10;2467:22;2459:67;;;;;;;5528:2:1;2459:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2459:67:0;;;;;;;;;2661:1:::1;2645:6:::0;;2624:40:::1;::::0;::::1;2645:6:::0;;::::1;::::0;2624:40:::1;::::0;2661:1;;2624:40:::1;2692:1;2675:19:::0;;;::::1;::::0;;2554:148::o;11931:159::-;2467:6;;:22;:6;175:10;2467:22;2459:67;;;;;;;5528:2:1;2459:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2459:67:0;5326:356:1;2459:67:0;4665:13:::1;4607:1;4665:2;:13;:::i;:::-;4650:28;::::0;:12:::1;:28;:::i;:::-;11984:12;:22:::0;4665:13:::1;4607:1;4665:2;:13;:::i;:::-;4650:28;::::0;:12:::1;:28;:::i;:::-;12017:14;:22:::0;12055:27:::1;4665:13;4607:1;4665:2;:13;:::i;:::-;4650:28;::::0;:12:::1;:28;:::i;:::-;12055:27;::::0;1313:25:1;;;1301:2;1286:18;12055:27:0::1;;;;;;;11931:159::o:0;12098:428::-;2467:6;;:22;:6;175:10;2467:22;2459:67;;;;;;;5528:2:1;2459:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2459:67:0;5326:356:1;2459:67:0;12164:11:::1;::::0;;;::::1;;;12163:12;12155:47;;;::::0;::::1;::::0;;5889:2:1;12155:47:0::1;::::0;::::1;5871:21:1::0;5928:2;5908:18;;;5901:30;5967:25;5947:18;;;5940:53;6010:18;;12155:47:0::1;5687:347:1::0;12155:47:0::1;12213:15;::::0;::::1;;:31;12252:21;12283:4;12289:24;12283:4:::0;6659:18;;6632:7;6659:18;;;:9;:18;;;;;;;6566:119;12289:24:::1;12314:1;12316::::0;12318:7:::1;2378::::0;2405:6;;;;2340:79;12318:7:::1;12213:129;::::0;::::1;::::0;;;;;;;6352:42:1;6421:15;;;12213:129:0::1;::::0;::::1;6403:34:1::0;6453:18;;;6446:34;;;;6496:18;;;6489:34;;;;6539:18;;;6532:34;6603:15;;;6582:19;;;6575:44;12326:15:0::1;6635:19:1::0;;;6628:35;6314:19;;12213:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12360:13:0::1;::::0;12391:15:::1;::::0;12353:71:::1;::::0;;;;12360:13:::1;12391:15:::0;;::::1;12353:71;::::0;::::1;4916:74:1::0;12409:14:0::1;5006:18:1::0;;;4999:34;12360:13:0;::::1;::::0;-1:-1:-1;12353:29:0::1;::::0;4889:18:1;;12353:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12435:11:0::1;:18:::0;;;::::1;;;::::0;;12464:11:::1;:18:::0;;;::::1;::::0;::::1;::::0;;12506:12:::1;12493:10;:25:::0;12098:428::o;6693:167::-;6771:4;6788:42;175:10;6812:9;6823:6;6788:9;:42::i;2710:244::-;2467:6;;:22;:6;175:10;2467:22;2459:67;;;;;;;5528:2:1;2459:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2459:67:0;5326:356:1;2459:67:0;2799:22:::1;::::0;::::1;2791:73;;;::::0;::::1;::::0;;7489:2:1;2791:73:0::1;::::0;::::1;7471:21:1::0;7528:2;7508:18;;;7501:30;7567:34;7547:18;;;7540:62;7638:8;7618:18;;;7611:36;7664:19;;2791:73:0::1;7287:402:1::0;2791:73:0::1;2901:6;::::0;;2880:38:::1;::::0;::::1;::::0;;::::1;::::0;2901:6;::::1;::::0;2880:38:::1;::::0;::::1;2929:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2710:244::o;7509:335::-;7602:19;;;7594:68;;;;;;;7896:2:1;7594:68:0;;;7878:21:1;7935:2;7915:18;;;7908:30;7974:34;7954:18;;;7947:62;8045:6;8025:18;;;8018:34;8069:19;;7594:68:0;7694:400:1;7594:68:0;7681:21;;;7673:68;;;;;;;8301:2:1;7673:68:0;;;8283:21:1;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;8450:4;8430:18;;;8423:32;8472:19;;7673:68:0;8099:398:1;7673:68:0;7752:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7804:32;;1313:25:1;;;7804:32:0;;1286:18:1;7804:32:0;;;;;;;7509:335;;;:::o;7852:3032::-;7940:18;;;7932:68;;;;;;;8704:2:1;7932:68:0;;;8686:21:1;8743:2;8723:18;;;8716:30;8782:34;8762:18;;;8755:62;8853:7;8833:18;;;8826:35;8878:19;;7932:68:0;8502:401:1;7932:68:0;8019:16;;;8011:64;;;;;;;9110:2:1;8011:64:0;;;9092:21:1;9149:2;9129:18;;;9122:30;9188:34;9168:18;;;9161:62;9259:5;9239:18;;;9232:33;9282:19;;8011:64:0;8908:399:1;8011:64:0;8103:1;8094:6;:10;8086:64;;;;;;;9514:2:1;8086:64:0;;;9496:21:1;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;9663:11;9643:18;;;9636:39;9692:19;;8086:64:0;9312:405:1;8086:64:0;8161:17;2405:6;;;8197:15;;;2405:6;;8197:15;;;;:32;;-1:-1:-1;2378:7:0;2405:6;;8216:13;;;2405:6;;8216:13;;8197:32;8193:2335;;;8258:80;8333:4;8258:70;8281:15;;8270:9;;:26;8269:58;;8313:14;;8269:58;;;8299:12;;8269:58;8258:6;;:10;:70::i;:::-;:74;;:80::i;:::-;8246:92;;8374:10;;8358:12;:26;8355:196;;8439:14;;8423:12;8411:25;;;;:11;:25;;;;;;:42;8403:87;;;;;;;9924:2:1;8403:87:0;;;9906:21:1;;;9943:18;;;9936:30;10002:34;9982:18;;;9975:62;10054:18;;8403:87:0;9722:356:1;8403:87:0;8520:12;8508:25;;;;:11;:25;;;;;:27;;;;;;:::i;:::-;;;;;;8355:196;8571:16;;;;;;;:10;:16;;;;;;;;:50;;;;-1:-1:-1;8605:15:0;;;8591:30;;;8605:15;;8591:30;;8571:50;:67;;;;-1:-1:-1;8627:11:0;;;;;;;:7;:11;;;;;;;;8625:13;8571:67;8567:297;;;8678:12;;8668:6;:22;;8660:60;;;;;;;10485:2:1;8660:60:0;;;10467:21:1;10524:2;10504:18;;;10497:30;10563:27;10543:18;;;10536:55;10608:18;;8660:60:0;10283:349:1;8660:60:0;8773:14;;8763:6;8747:13;8757:2;6659:18;;6632:7;6659:18;;;:9;:18;;;;;;;6566:119;8747:13;:22;;;;:::i;:::-;:40;;8739:79;;;;;;;10969:2:1;8739:79:0;;;10951:21:1;11008:2;10988:18;;;10981:30;11047:28;11027:18;;;11020:56;11093:18;;8739:79:0;10767:350:1;8739:79:0;8837:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8567:297;8885:14;;;;;;;:10;:14;;;;;;;;8884:15;:32;;;;-1:-1:-1;8905:11:0;;;;;;;:7;:11;;;;;;;;8903:13;8884:32;8880:152;;;8971:14;;8961:6;8945:13;8955:2;6659:18;;6632:7;6659:18;;;:9;:18;;;;;;;6566:119;8945:13;:22;;;;:::i;:::-;:40;;8937:79;;;;;;;10969:2:1;8937:79:0;;;10951:21:1;11008:2;10988:18;;;10981:30;11047:28;11027:18;;;11020:56;11093:18;;8937:79:0;10767:350:1;8937:79:0;9051:14;;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;9069:20:0;;;9084:4;9069:20;;9051:38;9048:173;;;9122:83;9200:4;9122:73;9145:16;;9134:9;;:27;9133:61;;9179:15;;9133:61;;;9164:13;;9122:6;;:10;:73::i;:83::-;9110:95;;9048:173;9235:16;;;;;;;:10;:16;;;;;;;;9234:17;:36;;;;-1:-1:-1;9256:14:0;;;;;;;:10;:14;;;;;;;;9255:15;9234:36;:60;;;;-1:-1:-1;9274:20:0;;;9289:4;9274:20;;9234:60;9230:115;;;-1:-1:-1;9328:1:0;9230:115;9410:4;9361:28;6659:18;;;:9;:18;;;;;;9436:6;;;;9435:7;:25;;;;-1:-1:-1;9446:14:0;;;;;;;:10;:14;;;;;;;;9435:25;:40;;;;-1:-1:-1;9464:11:0;;;;;;;9435:40;:82;;;;;9500:17;;9479:20;:38;9435:82;:114;;;;;9531:18;;9521:9;;:28;9435:114;9431:1086;;;9589:13;;9574:12;:28;9570:90;;;9639:1;9627:9;:13;9570:90;9698:13;;9686:9;;:25;9678:34;;;;;;9731:67;9748:49;9752:6;9759:37;9763:20;9784:11;;9759:3;:37::i;:::-;9748:3;:49::i;:::-;9731:16;:67::i;:::-;9846:21;9889:22;;9886:105;;9936:35;9949:21;9936:12;:35::i;:::-;10009:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10055:12:0;10039:13;:28;-1:-1:-1;9431:1086:0;;;10108:6;;;;10107:7;:25;;;;-1:-1:-1;10118:14:0;;;;;;;:10;:14;;;;;;;;10107:25;:40;;;;-1:-1:-1;10136:11:0;;;;;;;10107:40;:82;;;;;10172:17;;10151:20;:38;10107:82;:114;;;;;10203:18;;10193:9;;:28;10107:114;10104:413;;;10242:67;10259:49;10263:6;10270:37;10274:20;10295:11;;10270:3;:37::i;10242:67::-;10357:21;10400:22;;10397:105;;10447:35;10460:21;10447:12;:35::i;:::-;10223:294;10104:413;8231:2297;8193:2335;10543:11;;10540:161;;10611:4;10593:24;;;;:9;:24;;;;;;:39;;10622:9;10593:28;:39::i;:::-;10586:4;10568:24;;;;:9;:24;;;;;;;:64;;;;10650:39;;10568:24;10650:39;;;;;;;10679:9;1313:25:1;;1301:2;1286:18;;1167:177;10650:39:0;;;;;;;;10540:161;10727:15;;;;;;;:9;:15;;;;;;:27;;10747:6;10727:19;:27::i;:::-;10711:15;;;;;;;:9;:15;;;;;:43;10779:40;10797:21;:6;10808:9;10797:10;:21::i;:::-;10779:13;;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;10765:13;;;;;;;;:9;:13;;;;;:54;;;;10835:41;;;10854:21;:6;10865:9;10854:10;:21::i;:::-;10835:41;;1313:25:1;;;1301:2;1286:18;10835:41:0;;;;;;;7921:2963;7852:3032;;;:::o;1232:190::-;1318:7;1354:12;1346:6;;;;1338:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1378:9:0;1390:5;1394:1;1390;:5;:::i;:::-;1378:17;1232:190;-1:-1:-1;;;;;1232:190:0:o;1430:246::-;1488:7;1512:1;1517;1512:6;1508:47;;-1:-1:-1;1542:1:0;1535:8;;1508:47;1565:9;1577:5;1581:1;1577;:5;:::i;:::-;1565:17;-1:-1:-1;1610:1:0;1601:5;1605:1;1565:17;1601:5;:::i;:::-;:10;1593:56;;;;;;;11736:2:1;1593:56:0;;;11718:21:1;11775:2;11755:18;;;11748:30;11814:34;11794:18;;;11787:62;11885:3;11865:18;;;11858:31;11906:19;;1593:56:0;11534:397:1;1593:56:0;1667:1;1430:246;-1:-1:-1;;;1430:246:0:o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;10894:98::-;10951:7;10978:1;10976;:3;10975:9;;10983:1;10975:9;;;-1:-1:-1;10981:1:0;10894:98;-1:-1:-1;10894:98:0:o;11000:483::-;5422:6;:13;;;;5431:4;5422:13;;;11102:16:::1;::::0;;11116:1:::1;11102:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11102:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11102:16:0::1;11078:40;;11147:4;11129;11134:1;11129:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11173:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11129:7;;11173:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11163:4;11168:1;11163:7;;;;;;;;:::i;:::-;:32;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11238:15:::1;::::0;11206:62:::1;::::0;11223:4:::1;::::0;11238:15:::1;11256:11:::0;11206:8:::1;:62::i;:::-;11279:15;::::0;:196:::1;::::0;;;;:15:::1;::::0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11360:11;;11279:15:::1;::::0;11402:4;;11429::::1;::::0;11449:15:::1;::::0;11279:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5458:6:0;:14;;;;;;-1:-1:-1;;;;11000:483:0:o;11491:92::-;11548:10;;:27;;:10;;;;;:27;;;;;11568:6;;11548:10;:27;:10;:27;11568:6;11548:10;:27;;;;;;;;;;;;;;;;;;;;;11491:92;:::o;901:179::-;959:7;;991:5;995:1;991;:5;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;;;;13803:2:1;1007:46:0;;;13785:21:1;13842:2;13822:18;;;13815:30;13881:29;13861:18;;;13854:57;13928:18;;1007:46:0;13601:351:1;1088:136:0;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;1824:189::-;1910:7;1945:12;1938:5;1930:28;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1969:9:0;1981:5;1985:1;1981;:5;:::i;14:477:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;482:2;412:66;407:2;399:6;395:15;391:88;380:9;376:104;372:113;364:121;;;14:477;;;;:::o;496:154::-;582:42;575:5;571:54;564:5;561:65;551:93;;640:1;637;630:12;655:315;723:6;731;784:2;772:9;763:7;759:23;755:32;752:52;;;800:1;797;790:12;752:52;839:9;826:23;858:31;883:5;858:31;:::i;:::-;908:5;960:2;945:18;;;;932:32;;-1:-1:-1;;;655:315:1:o;1349:456::-;1426:6;1434;1442;1495:2;1483:9;1474:7;1470:23;1466:32;1463:52;;;1511:1;1508;1501:12;1463:52;1550:9;1537:23;1569:31;1594:5;1569:31;:::i;:::-;1619:5;-1:-1:-1;1676:2:1;1661:18;;1648:32;1689:33;1648:32;1689:33;:::i;:::-;1349:456;;1741:7;;-1:-1:-1;;;1795:2:1;1780:18;;;;1767:32;;1349:456::o;2230:247::-;2289:6;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;2397:9;2384:23;2416:31;2441:5;2416:31;:::i;2482:388::-;2550:6;2558;2611:2;2599:9;2590:7;2586:23;2582:32;2579:52;;;2627:1;2624;2617:12;2579:52;2666:9;2653:23;2685:31;2710:5;2685:31;:::i;:::-;2735:5;-1:-1:-1;2792:2:1;2777:18;;2764:32;2805:33;2764:32;2805:33;:::i;:::-;2857:7;2847:17;;;2482:388;;;;;:::o;2875:184::-;2927:77;2924:1;2917:88;3024:4;3021:1;3014:15;3048:4;3045:1;3038:15;3064:476;3153:1;3190:5;3153:1;3204:330;3225:7;3215:8;3212:21;3204:330;;;3344:4;3276:66;3272:77;3266:4;3263:87;3260:113;;;3353:18;;:::i;:::-;3403:7;3393:8;3389:22;3386:55;;;3423:16;;;;3386:55;3502:22;;;;3462:15;;;;3204:330;;;3208:3;3064:476;;;;;:::o;3545:866::-;3594:5;3624:8;3614:80;;-1:-1:-1;3665:1:1;3679:5;;3614:80;3713:4;3703:76;;-1:-1:-1;3750:1:1;3764:5;;3703:76;3795:4;3813:1;3808:59;;;;3881:1;3876:130;;;;3788:218;;3808:59;3838:1;3829:10;;3852:5;;;3876:130;3913:3;3903:8;3900:17;3897:43;;;3920:18;;:::i;:::-;-1:-1:-1;;3976:1:1;3962:16;;3991:5;;3788:218;;4090:2;4080:8;4077:16;4071:3;4065:4;4062:13;4058:36;4052:2;4042:8;4039:16;4034:2;4028:4;4025:12;4021:35;4018:77;4015:159;;;-1:-1:-1;4127:19:1;;;4159:5;;4015:159;4206:34;4231:8;4225:4;4206:34;:::i;:::-;4336:6;4268:66;4264:79;4255:7;4252:92;4249:118;;;4347:18;;:::i;:::-;4385:20;;3545:866;-1:-1:-1;;;3545:866:1:o;4416:140::-;4474:5;4503:47;4544:4;4534:8;4530:19;4524:4;4503:47;:::i;4561:168::-;4634:9;;;4665;;4682:15;;;4676:22;;4662:37;4652:71;;4703:18;;:::i;5044:277::-;5111:6;5164:2;5152:9;5143:7;5139:23;5135:32;5132:52;;;5180:1;5177;5170:12;5132:52;5212:9;5206:16;5265:5;5258:13;5251:21;5244:5;5241:32;5231:60;;5287:1;5284;5277:12;6674:306;6762:6;6770;6778;6831:2;6819:9;6810:7;6806:23;6802:32;6799:52;;;6847:1;6844;6837:12;6799:52;6876:9;6870:16;6860:26;;6926:2;6915:9;6911:18;6905:25;6895:35;;6970:2;6959:9;6955:18;6949:25;6939:35;;6674:306;;;;;:::o;10083:195::-;10122:3;10153:66;10146:5;10143:77;10140:103;;10223:18;;:::i;:::-;-1:-1:-1;10270:1:1;10259:13;;10083:195::o;10637:125::-;10702:9;;;10723:10;;;10720:36;;;10736:18;;:::i;11122:128::-;11189:9;;;11210:11;;;11207:37;;;11224:18;;:::i;11255:274::-;11295:1;11321;11311:189;;11356:77;11353:1;11346:88;11457:4;11454:1;11447:15;11485:4;11482:1;11475:15;11311:189;-1:-1:-1;11514:9:1;;11255:274::o;12125:184::-;12177:77;12174:1;12167:88;12274:4;12271:1;12264:15;12298:4;12295:1;12288:15;12314:251;12384:6;12437:2;12425:9;12416:7;12412:23;12408:32;12405:52;;;12453:1;12450;12443:12;12405:52;12485:9;12479:16;12504:31;12529:5;12504:31;:::i;12570:1026::-;12832:4;12880:3;12869:9;12865:19;12911:6;12900:9;12893:25;12937:2;12975:6;12970:2;12959:9;12955:18;12948:34;13018:3;13013:2;13002:9;12998:18;12991:31;13042:6;13077;13071:13;13108:6;13100;13093:22;13146:3;13135:9;13131:19;13124:26;;13185:2;13177:6;13173:15;13159:29;;13206:1;13216:218;13230:6;13227:1;13224:13;13216:218;;;13295:13;;13310:42;13291:62;13279:75;;13409:15;;;;13374:12;;;;13252:1;13245:9;13216:218;;;-1:-1:-1;;13502:42:1;13490:55;;;;13485:2;13470:18;;13463:83;-1:-1:-1;;;13577:3:1;13562:19;13555:35;13451:3;12570:1026;-1:-1:-1;;;12570:1026:1:o

Swarm Source

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