ETH Price: $3,107.53 (+0.08%)

Token

AntiMEV (AntiMEV)
 

Overview

Max Total Supply

1,123,581,321 AntiMEV

Holders

340

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
72,891.993920011105144171 AntiMEV

Value
$0.00
0x1fC0CB00c2e916B0D7Fba8ddB8E7f0bf78d868Bb
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:
AntiMEV

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-21
*/

// SPDX-License-Identifier: MIT
/*
  AntiMEV token detects and defends against MEV attack bots
  
  Website: https://antimev.io

  Twitter: https://twitter.com/Anti_MEV

  Telegram: https://t.me/antimev
*/
pragma solidity ^0.8.17;

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

  function _msgData() internal view virtual returns (bytes calldata) {
    return msg.data;
  }
}
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);
    }
}
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);
}
interface IUniswapV2Factory {
    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);
}

contract AntiMEV is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => uint256) private _lastTxBlock; // block number for user's last tx
    mapping(address => bool) public isBOT; // MEV bots
    mapping(address => bool) public isVIP; // VIP addresses

    bool public _detectMEV = true; // enable MEV detection features
    uint256 public _mineBlocks = 3; // blocks to mine before 2nd tx
    uint256 public _gasDelta = 25; // increase in gas price to be considered bribe
    uint256 public _avgGasPrice = 1 * 10**9; // initial rolling average gas price
    uint256 private _maxSample = 10; // blocks used to calculate average gas price
    uint256 private _txCounter = 0; // counter used for average gas price

    string private constant _name = unicode"AntiMEV";
    string private constant _symbol = unicode"AntiMEV";
    uint256 public _maxWalletSize =  _tTotal.mul(49).div(1000); // maxWallet is 4.9% supply
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1123581321 * 10**_decimals; // supply is Fibonnaci

    address private _devWallet = 0xc2657176e213DDF18646eFce08F36D656aBE3396;
    address private _burnWallet = 0x8B30998a9492610F074784Aed7aFDd682B23B416;
    address private _airdropWallet = 0xe276d3ea57c5AF859e52d51C2C11f5deCb4C4838;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;

    constructor () {
        _balances[_msgSender()] = _tTotal.mul(90).div(100); // 90%
        _balances[_devWallet] = _tTotal.mul(25).div(1000); // 2.5%
        _balances[_burnWallet] =_tTotal.mul(35).div(1000); // 3.5%
        _balances[_airdropWallet] = _tTotal.mul(40).div(1000); // 4%

        isVIP[owner()] = true;
        isVIP[address(this)] = true;
    }
    function _checkMEV(
        address from,
        address to
    ) private  {
      // test for known bot
      require(!isBOT[from] && !isBOT[to], "AntiMEV: Known MEV Bot");
      // test for sandwich attack
      require(_lastTxBlock[from] + _mineBlocks < block.number,
        "AntiMEV: Detected sandwich attack, mine more blocks");
      _lastTxBlock[from] = block.number;
      // calculate rolling average gas price
      _txCounter += 1;
      _avgGasPrice =
        (_avgGasPrice * (_txCounter - 1)) / _txCounter + tx.gasprice / _txCounter;
      // test for gas bribe (front-run)
      require(
        tx.gasprice <= _avgGasPrice.add(_avgGasPrice.mul(_gasDelta).div(100)),
        "AntiMEV: Detected gas bribe, possible front-run");
    }
    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");
        if (from != owner() && to != owner()) {
            require(tradingOpen,"Trading not open");
            if (_detectMEV) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                      _checkMEV(from, to);
                  }
              }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! isVIP[to] ) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount);
        emit Transfer(from, to, amount);
    }    
    function setMEV(
        bool detectMEV,
        uint256 mineBlocks,
        uint256 gasDelta,
        uint256 maxSample,
        uint256 avgGasPrice
    ) external onlyOwner {
        _detectMEV = detectMEV;
        _mineBlocks = mineBlocks;
        _gasDelta = gasDelta;
        _maxSample = maxSample;
        _avgGasPrice = avgGasPrice;
    }
    function setMaxWallet(uint256 maxWallet) external onlyOwner {
        _maxWalletSize = maxWallet;
    }    
    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 setBOT(address _address, bool _isBot) external onlyOwner{
        require(!isVIP[_address] && _address != uniswapV2Pair && _address != address(uniswapV2Router), 
            "AntiMEV: Cannot set VIP to BOT");
        isBOT[_address] = _isBot;
    }
    function setVIP(address _address, bool _isVIP) external onlyOwner{
        require(!isBOT[_address], "AntiMEV: Cannot set BOT to VIP");
        isVIP[_address] = _isVIP;
    }
    function setWallets(
        address dev,
        address burn,
        address airdrop
    ) external onlyOwner {
        _devWallet = dev;
        _burnWallet = burn;
        _airdropWallet = airdrop;
    }
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
    }
    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":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":"_avgGasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_detectMEV","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_gasDelta","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":"_mineBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBOT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isVIP","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBot","type":"bool"}],"name":"setBOT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"detectMEV","type":"bool"},{"internalType":"uint256","name":"mineBlocks","type":"uint256"},{"internalType":"uint256","name":"gasDelta","type":"uint256"},{"internalType":"uint256","name":"maxSample","type":"uint256"},{"internalType":"uint256","name":"avgGasPrice","type":"uint256"}],"name":"setMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isVIP","type":"bool"}],"name":"setVIP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dev","type":"address"},{"internalType":"address","name":"burn","type":"address"},{"internalType":"address","name":"airdrop","type":"address"}],"name":"setWallets","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff1916600117905560036007556019600855633b9aca00600955600a8080556000600b5562000084906103e89062000070906031906200004c9060129062000499565b6200005c906342f87d89620004aa565b6200026960201b62000b671790919060201c565b6200030060201b62000bf01790919060201c565b600c55600d80546001600160a01b031990811673c2657176e213ddf18646efce08f36d656abe339617909155600e80548216738b30998a9492610f074784aed7afdd682b23b416179055600f805490911673e276d3ea57c5af859e52d51c2c11f5decb4c4838179055348015620000fa57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000156606462000070605a6200004c6012600a62000499565b33600090815260016020526040902055620001816103e86200007060196200004c6012600a62000499565b600d546001600160a01b0316600090815260016020526040902055620001b76103e86200007060236200004c6012600a62000499565b600e546001600160a01b0316600090815260016020526040902055620001ed6103e86200007060286200004c6012600a62000499565b600f546001600160a01b03166000908152600160208190526040822092909255600590620002236000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600590925290208054909116600117905562000537565b6000826000036200027d57506000620002fa565b60006200028b8385620004aa565b9050826200029a8583620004c4565b14620002f75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620002f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200034a60201b60201c565b600081836200036e5760405162461bcd60e51b8152600401620002ee9190620004e7565b5060006200037d8486620004c4565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003dd578160001904821115620003c157620003c162000386565b80851615620003cf57918102915b93841c9390800290620003a1565b509250929050565b600082620003f657506001620002fa565b816200040557506000620002fa565b81600181146200041e5760028114620004295762000449565b6001915050620002fa565b60ff8411156200043d576200043d62000386565b50506001821b620002fa565b5060208310610133831016604e8410600b84101617156200046e575081810a620002fa565b6200047a83836200039c565b806000190482111562000491576200049162000386565b029392505050565b6000620002f760ff841683620003e5565b8082028115828204841417620002fa57620002fa62000386565b600082620004e257634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156200051657858101830151858201604001528201620004f8565b506000604082860101526040601f19601f8301168501019250505092915050565b61181f80620005476000396000f3fe60806040526004361061016a5760003560e01c80638da5cb5b116100d1578063b7cbd9861161008a578063d894914011610064578063d89491401461040e578063dd62ed3e1461043e578063e658423814610484578063f4201c3c146104a457600080fd5b8063b7cbd986146103cd578063c7ee45cc146103e3578063c9567bf9146103f957600080fd5b80638da5cb5b1461033f5780638e717e3a1461035d5780638f9a55c01461037757806394b8fb161461038d57806395d89b4114610176578063a9059cbb146103ad57600080fd5b80635d0044ca116101235780635d0044ca1461027c57806369ab300d1461029e57806370a08231146102be578063715018a6146102f457806375cb1bd11461030957806387c251841461032957600080fd5b806306fdde0314610176578063095ea7b3146101b557806318160ddd146101e557806323b872dd14610208578063313ce5671461022857806349bd5a5e1461024457600080fd5b3661017157005b600080fd5b34801561018257600080fd5b50604080518082018252600781526620b73a34a6a2ab60c91b602082015290516101ac91906113dd565b60405180910390f35b3480156101c157600080fd5b506101d56101d0366004611443565b6104d4565b60405190151581526020016101ac565b3480156101f157600080fd5b506101fa6104eb565b6040519081526020016101ac565b34801561021457600080fd5b506101d561022336600461146f565b61050c565b34801561023457600080fd5b50604051601281526020016101ac565b34801561025057600080fd5b50601154610264906001600160a01b031681565b6040516001600160a01b0390911681526020016101ac565b34801561028857600080fd5b5061029c6102973660046114b0565b610575565b005b3480156102aa57600080fd5b5061029c6102b93660046114d7565b6105ad565b3480156102ca57600080fd5b506101fa6102d9366004611510565b6001600160a01b031660009081526001602052604090205490565b34801561030057600080fd5b5061029c61066b565b34801561031557600080fd5b5061029c61032436600461152d565b6106df565b34801561033557600080fd5b506101fa60085481565b34801561034b57600080fd5b506000546001600160a01b0316610264565b34801561036957600080fd5b506006546101d59060ff1681565b34801561038357600080fd5b506101fa600c5481565b34801561039957600080fd5b5061029c6103a8366004611578565b610748565b3480156103b957600080fd5b506101d56103c8366004611443565b610795565b3480156103d957600080fd5b506101fa60075481565b3480156103ef57600080fd5b506101fa60095481565b34801561040557600080fd5b5061029c6107a2565b34801561041a57600080fd5b506101d5610429366004611510565b60046020526000908152604090205460ff1681565b34801561044a57600080fd5b506101fa6104593660046115bc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049057600080fd5b5061029c61049f3660046114d7565b610a75565b3480156104b057600080fd5b506101d56104bf366004611510565b60056020526000908152604090205460ff1681565b60006104e1338484610c32565b5060015b92915050565b60006104f96012600a6116e4565b610507906342f87d896116f3565b905090565b6000610519848484610d57565b61056b8433610566856040518060600160405280602881526020016117c2602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110b8565b610c32565b5060019392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f9061170a565b60405180910390fd5b600c55565b6000546001600160a01b031633146105d75760405162461bcd60e51b815260040161059f9061170a565b6001600160a01b03821660009081526004602052604090205460ff16156106405760405162461bcd60e51b815260206004820152601e60248201527f416e74694d45563a2043616e6e6f742073657420424f5420746f205649500000604482015260640161059f565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146106955760405162461bcd60e51b815260040161059f9061170a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161059f9061170a565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b6000546001600160a01b031633146107725760405162461bcd60e51b815260040161059f9061170a565b6006805460ff191695151595909517909455600792909255600855600a55600955565b60006104e1338484610d57565b6000546001600160a01b031633146107cc5760405162461bcd60e51b815260040161059f9061170a565b601154600160a01b900460ff161561081d5760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b604482015260640161059f565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108669030906108586012600a6116e4565b610566906342f87d896116f3565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dd919061173f565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610963919061173f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d4919061173f565b601180546001600160a01b0319166001600160a01b0392831690811790915560105460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b3906044016020604051808303816000875af1158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f919061175c565b506011805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b815260040161059f9061170a565b6001600160a01b03821660009081526005602052604090205460ff16158015610ad657506011546001600160a01b03838116911614155b8015610af057506010546001600160a01b03838116911614155b610b3c5760405162461bcd60e51b815260206004820152601e60248201527f416e74694d45563a2043616e6e6f74207365742056495020746f20424f540000604482015260640161059f565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b600082600003610b79575060006104e5565b6000610b8583856116f3565b905082610b928583611779565b14610be95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161059f565b9392505050565b6000610be983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110f2565b6001600160a01b038316610c945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b038216610cf55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610dbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610e1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b60008111610e7f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059f565b6000546001600160a01b03848116911614801590610eab57506000546001600160a01b03838116911614155b1561101257601154600160a01b900460ff16610efc5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161059f565b60065460ff1615610f42576010546001600160a01b03838116911614801590610f3357506011546001600160a01b03838116911614155b15610f4257610f428383611120565b6011546001600160a01b038481169116148015610f6d57506010546001600160a01b03838116911614155b8015610f9257506001600160a01b03821660009081526005602052604090205460ff16155b1561101257600c5481610fba846001600160a01b031660009081526001602052604090205490565b610fc4919061179b565b11156110125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059f565b6001600160a01b038316600090815260016020526040902054611035908261133c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611064908261137e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4a9085815260200190565b600081848411156110dc5760405162461bcd60e51b815260040161059f91906113dd565b5060006110e984866117ae565b95945050505050565b600081836111135760405162461bcd60e51b815260040161059f91906113dd565b5060006110e98486611779565b6001600160a01b03821660009081526004602052604090205460ff1615801561116257506001600160a01b03811660009081526004602052604090205460ff16155b6111a75760405162461bcd60e51b8152602060048201526016602482015275105b9d1a5351558e8812db9bdddb8813515588109bdd60521b604482015260640161059f565b6007546001600160a01b03831660009081526003602052604090205443916111ce9161179b565b106112375760405162461bcd60e51b815260206004820152603360248201527f416e74694d45563a2044657465637465642073616e64776963682061747461636044820152726b2c206d696e65206d6f726520626c6f636b7360681b606482015260840161059f565b6001600160a01b0382166000908152600360205260408120439055600b80546001929061126590849061179b565b9091555050600b54611277903a611779565b600b546112856001826117ae565b60095461129291906116f3565b61129c9190611779565b6112a6919061179b565b60098190556008546112d1916112c8916064916112c291610b67565b90610bf0565b6009549061137e565b3a11156113385760405162461bcd60e51b815260206004820152602f60248201527f416e74694d45563a204465746563746564206761732062726962652c20706f7360448201526e39b4b1363290333937b73a16b93ab760891b606482015260840161059f565b5050565b6000610be983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b8565b60008061138b838561179b565b905083811015610be95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161059f565b600060208083528351808285015260005b8181101561140a578581018301518582016040015282016113ee565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461144057600080fd5b50565b6000806040838503121561145657600080fd5b82356114618161142b565b946020939093013593505050565b60008060006060848603121561148457600080fd5b833561148f8161142b565b9250602084013561149f8161142b565b929592945050506040919091013590565b6000602082840312156114c257600080fd5b5035919050565b801515811461144057600080fd5b600080604083850312156114ea57600080fd5b82356114f58161142b565b91506020830135611505816114c9565b809150509250929050565b60006020828403121561152257600080fd5b8135610be98161142b565b60008060006060848603121561154257600080fd5b833561154d8161142b565b9250602084013561155d8161142b565b9150604084013561156d8161142b565b809150509250925092565b600080600080600060a0868803121561159057600080fd5b853561159b816114c9565b97602087013597506040870135966060810135965060800135945092505050565b600080604083850312156115cf57600080fd5b82356115da8161142b565b915060208301356115058161142b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561163b578160001904821115611621576116216115ea565b8085161561162e57918102915b93841c9390800290611605565b509250929050565b600082611652575060016104e5565b8161165f575060006104e5565b8160018114611675576002811461167f5761169b565b60019150506104e5565b60ff841115611690576116906115ea565b50506001821b6104e5565b5060208310610133831016604e8410600b84101617156116be575081810a6104e5565b6116c88383611600565b80600019048211156116dc576116dc6115ea565b029392505050565b6000610be960ff841683611643565b80820281158282048414176104e5576104e56115ea565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561175157600080fd5b8151610be98161142b565b60006020828403121561176e57600080fd5b8151610be9816114c9565b60008261179657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104e5576104e56115ea565b818103818111156104e5576104e56115ea56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201ecc252b290ab1fb26b9ad157d5fa0607444a707d4b797f2e3cf7edc1c777d4e64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80638da5cb5b116100d1578063b7cbd9861161008a578063d894914011610064578063d89491401461040e578063dd62ed3e1461043e578063e658423814610484578063f4201c3c146104a457600080fd5b8063b7cbd986146103cd578063c7ee45cc146103e3578063c9567bf9146103f957600080fd5b80638da5cb5b1461033f5780638e717e3a1461035d5780638f9a55c01461037757806394b8fb161461038d57806395d89b4114610176578063a9059cbb146103ad57600080fd5b80635d0044ca116101235780635d0044ca1461027c57806369ab300d1461029e57806370a08231146102be578063715018a6146102f457806375cb1bd11461030957806387c251841461032957600080fd5b806306fdde0314610176578063095ea7b3146101b557806318160ddd146101e557806323b872dd14610208578063313ce5671461022857806349bd5a5e1461024457600080fd5b3661017157005b600080fd5b34801561018257600080fd5b50604080518082018252600781526620b73a34a6a2ab60c91b602082015290516101ac91906113dd565b60405180910390f35b3480156101c157600080fd5b506101d56101d0366004611443565b6104d4565b60405190151581526020016101ac565b3480156101f157600080fd5b506101fa6104eb565b6040519081526020016101ac565b34801561021457600080fd5b506101d561022336600461146f565b61050c565b34801561023457600080fd5b50604051601281526020016101ac565b34801561025057600080fd5b50601154610264906001600160a01b031681565b6040516001600160a01b0390911681526020016101ac565b34801561028857600080fd5b5061029c6102973660046114b0565b610575565b005b3480156102aa57600080fd5b5061029c6102b93660046114d7565b6105ad565b3480156102ca57600080fd5b506101fa6102d9366004611510565b6001600160a01b031660009081526001602052604090205490565b34801561030057600080fd5b5061029c61066b565b34801561031557600080fd5b5061029c61032436600461152d565b6106df565b34801561033557600080fd5b506101fa60085481565b34801561034b57600080fd5b506000546001600160a01b0316610264565b34801561036957600080fd5b506006546101d59060ff1681565b34801561038357600080fd5b506101fa600c5481565b34801561039957600080fd5b5061029c6103a8366004611578565b610748565b3480156103b957600080fd5b506101d56103c8366004611443565b610795565b3480156103d957600080fd5b506101fa60075481565b3480156103ef57600080fd5b506101fa60095481565b34801561040557600080fd5b5061029c6107a2565b34801561041a57600080fd5b506101d5610429366004611510565b60046020526000908152604090205460ff1681565b34801561044a57600080fd5b506101fa6104593660046115bc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049057600080fd5b5061029c61049f3660046114d7565b610a75565b3480156104b057600080fd5b506101d56104bf366004611510565b60056020526000908152604090205460ff1681565b60006104e1338484610c32565b5060015b92915050565b60006104f96012600a6116e4565b610507906342f87d896116f3565b905090565b6000610519848484610d57565b61056b8433610566856040518060600160405280602881526020016117c2602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110b8565b610c32565b5060019392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f9061170a565b60405180910390fd5b600c55565b6000546001600160a01b031633146105d75760405162461bcd60e51b815260040161059f9061170a565b6001600160a01b03821660009081526004602052604090205460ff16156106405760405162461bcd60e51b815260206004820152601e60248201527f416e74694d45563a2043616e6e6f742073657420424f5420746f205649500000604482015260640161059f565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146106955760405162461bcd60e51b815260040161059f9061170a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161059f9061170a565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b6000546001600160a01b031633146107725760405162461bcd60e51b815260040161059f9061170a565b6006805460ff191695151595909517909455600792909255600855600a55600955565b60006104e1338484610d57565b6000546001600160a01b031633146107cc5760405162461bcd60e51b815260040161059f9061170a565b601154600160a01b900460ff161561081d5760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b604482015260640161059f565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108669030906108586012600a6116e4565b610566906342f87d896116f3565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dd919061173f565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610963919061173f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d4919061173f565b601180546001600160a01b0319166001600160a01b0392831690811790915560105460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b3906044016020604051808303816000875af1158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f919061175c565b506011805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b815260040161059f9061170a565b6001600160a01b03821660009081526005602052604090205460ff16158015610ad657506011546001600160a01b03838116911614155b8015610af057506010546001600160a01b03838116911614155b610b3c5760405162461bcd60e51b815260206004820152601e60248201527f416e74694d45563a2043616e6e6f74207365742056495020746f20424f540000604482015260640161059f565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b600082600003610b79575060006104e5565b6000610b8583856116f3565b905082610b928583611779565b14610be95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161059f565b9392505050565b6000610be983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110f2565b6001600160a01b038316610c945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b038216610cf55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610dbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610e1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b60008111610e7f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059f565b6000546001600160a01b03848116911614801590610eab57506000546001600160a01b03838116911614155b1561101257601154600160a01b900460ff16610efc5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161059f565b60065460ff1615610f42576010546001600160a01b03838116911614801590610f3357506011546001600160a01b03838116911614155b15610f4257610f428383611120565b6011546001600160a01b038481169116148015610f6d57506010546001600160a01b03838116911614155b8015610f9257506001600160a01b03821660009081526005602052604090205460ff16155b1561101257600c5481610fba846001600160a01b031660009081526001602052604090205490565b610fc4919061179b565b11156110125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059f565b6001600160a01b038316600090815260016020526040902054611035908261133c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611064908261137e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4a9085815260200190565b600081848411156110dc5760405162461bcd60e51b815260040161059f91906113dd565b5060006110e984866117ae565b95945050505050565b600081836111135760405162461bcd60e51b815260040161059f91906113dd565b5060006110e98486611779565b6001600160a01b03821660009081526004602052604090205460ff1615801561116257506001600160a01b03811660009081526004602052604090205460ff16155b6111a75760405162461bcd60e51b8152602060048201526016602482015275105b9d1a5351558e8812db9bdddb8813515588109bdd60521b604482015260640161059f565b6007546001600160a01b03831660009081526003602052604090205443916111ce9161179b565b106112375760405162461bcd60e51b815260206004820152603360248201527f416e74694d45563a2044657465637465642073616e64776963682061747461636044820152726b2c206d696e65206d6f726520626c6f636b7360681b606482015260840161059f565b6001600160a01b0382166000908152600360205260408120439055600b80546001929061126590849061179b565b9091555050600b54611277903a611779565b600b546112856001826117ae565b60095461129291906116f3565b61129c9190611779565b6112a6919061179b565b60098190556008546112d1916112c8916064916112c291610b67565b90610bf0565b6009549061137e565b3a11156113385760405162461bcd60e51b815260206004820152602f60248201527f416e74694d45563a204465746563746564206761732062726962652c20706f7360448201526e39b4b1363290333937b73a16b93ab760891b606482015260840161059f565b5050565b6000610be983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b8565b60008061138b838561179b565b905083811015610be95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161059f565b600060208083528351808285015260005b8181101561140a578581018301518582016040015282016113ee565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461144057600080fd5b50565b6000806040838503121561145657600080fd5b82356114618161142b565b946020939093013593505050565b60008060006060848603121561148457600080fd5b833561148f8161142b565b9250602084013561149f8161142b565b929592945050506040919091013590565b6000602082840312156114c257600080fd5b5035919050565b801515811461144057600080fd5b600080604083850312156114ea57600080fd5b82356114f58161142b565b91506020830135611505816114c9565b809150509250929050565b60006020828403121561152257600080fd5b8135610be98161142b565b60008060006060848603121561154257600080fd5b833561154d8161142b565b9250602084013561155d8161142b565b9150604084013561156d8161142b565b809150509250925092565b600080600080600060a0868803121561159057600080fd5b853561159b816114c9565b97602087013597506040870135966060810135965060800135945092505050565b600080604083850312156115cf57600080fd5b82356115da8161142b565b915060208301356115058161142b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561163b578160001904821115611621576116216115ea565b8085161561162e57918102915b93841c9390800290611605565b509250929050565b600082611652575060016104e5565b8161165f575060006104e5565b8160018114611675576002811461167f5761169b565b60019150506104e5565b60ff841115611690576116906115ea565b50506001821b6104e5565b5060208310610133831016604e8410600b84101617156116be575081810a6104e5565b6116c88383611600565b80600019048211156116dc576116dc6115ea565b029392505050565b6000610be960ff841683611643565b80820281158282048414176104e5576104e56115ea565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561175157600080fd5b8151610be98161142b565b60006020828403121561176e57600080fd5b8151610be9816114c9565b60008261179657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104e5576104e56115ea565b818103818111156104e5576104e56115ea56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201ecc252b290ab1fb26b9ad157d5fa0607444a707d4b797f2e3cf7edc1c777d4e64736f6c63430008120033

Deployed Bytecode Sourcemap

3503:7055:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7702:83;;;;;;;;;;-1:-1:-1;7772:5:0;;;;;;;;;;;-1:-1:-1;;;7772:5:0;;;;7702:83;;;;7772:5;7702:83;:::i;:::-;;;;;;;;8521:161;;;;;;;;;;-1:-1:-1;8521:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8521:161:0;1023:187:1;7973:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7973:95:0;1215:177:1;8688:313:0;;;;;;;;;;-1:-1:-1;8688:313:0;;;;;:::i;:::-;;:::i;7884:83::-;;;;;;;;;;-1:-1:-1;7884:83:0;;4632:2;2000:36:1;;1988:2;1973:18;7884:83:0;1858:184:1;5024:28:0;;;;;;;;;;-1:-1:-1;5024:28:0;;;;-1:-1:-1;;;;;5024:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;5024:28:0;2047:203:1;7587:105:0;;;;;;;;;;-1:-1:-1;7587:105:0;;;;;:::i;:::-;;:::i;:::-;;9615:178;;;;;;;;;;-1:-1:-1;9615:178:0;;;;;:::i;:::-;;:::i;8074:119::-;;;;;;;;;;-1:-1:-1;8074:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8167:18:0;8140:7;8167:18;;;:9;:18;;;;;;;8074:119;2128:148;;;;;;;;;;;;;:::i;9799:216::-;;;;;;;;;;-1:-1:-1;9799:216:0;;;;;:::i;:::-;;:::i;4064:29::-;;;;;;;;;;;;;;;;1918:79;;;;;;;;;;-1:-1:-1;1956:7:0;1983:6;-1:-1:-1;;;;;1983:6:0;1918:79;;3926:29;;;;;;;;;;-1:-1:-1;3926:29:0;;;;;;;;4504:58;;;;;;;;;;;;;;;;7223:358;;;;;;;;;;-1:-1:-1;7223:358:0;;;;;:::i;:::-;;:::i;8199:167::-;;;;;;;;;;-1:-1:-1;8199:167:0;;;;;:::i;:::-;;:::i;3995:30::-;;;;;;;;;;;;;;;;4148:39;;;;;;;;;;;;;;;;10021:499;;;;;;;;;;;;;:::i;3807:37::-;;;;;;;;;;-1:-1:-1;3807:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8372:143;;;;;;;;;;-1:-1:-1;8372:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8480:18:0;;;8453:7;8480:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8372:143;9348:261;;;;;;;;;;-1:-1:-1;9348:261:0;;;;;:::i;:::-;;:::i;3863:37::-;;;;;;;;;;-1:-1:-1;3863:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8521:161;8596:4;8613:39;351:10;8636:7;8645:6;8613:8;:39::i;:::-;-1:-1:-1;8670:4:0;8521:161;;;;;:::o;7973:95::-;8026:7;4689:13;4632:2;4689;:13;:::i;:::-;4676:26;;:10;:26;:::i;:::-;8046:14;;7973:95;:::o;8688:313::-;8786:4;8803:36;8813:6;8821:9;8832:6;8803:9;:36::i;:::-;8850:121;8859:6;351:10;8881:89;8919:6;8881:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8881:19:0;;;;;;:11;:19;;;;;;;;351:10;8881:33;;;;;;;;;;:37;:89::i;:::-;8850:8;:121::i;:::-;-1:-1:-1;8989:4:0;8688:313;;;;;:::o;7587:105::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;;;;;;;;;7658:14:::1;:26:::0;7587:105::o;9615:178::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9700:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;9699:16;9691:59;;;::::0;-1:-1:-1;;;9691:59:0;;6900:2:1;9691:59:0::1;::::0;::::1;6882:21:1::0;6939:2;6919:18;;;6912:30;6978:32;6958:18;;;6951:60;7028:18;;9691:59:0::1;6698:354:1::0;9691:59:0::1;-1:-1:-1::0;;;;;9761:15:0;;;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;9761:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9615:178::o;2128:148::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;2235:1:::1;2219:6:::0;;2198:40:::1;::::0;-1:-1:-1;;;;;2219:6:0;;::::1;::::0;2198:40:::1;::::0;2235:1;;2198:40:::1;2266:1;2249:19:::0;;-1:-1:-1;;;;;;2249:19:0::1;::::0;;2128:148::o;9799:216::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;9927:10:::1;:16:::0;;-1:-1:-1;;;;;9927:16:0;;::::1;-1:-1:-1::0;;;;;;9927:16:0;;::::1;;::::0;;;9954:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;9983:14:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;9799:216::o;7223:358::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;7415:10:::1;:22:::0;;-1:-1:-1;;7415:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;7448:11:::1;:24:::0;;;;7483:9:::1;:20:::0;7514:10:::1;:22:::0;7547:12:::1;:26:::0;7223:358::o;8199:167::-;8277:4;8294:42;351:10;8318:9;8329:6;8294:9;:42::i;10021:499::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;10085:11:::1;::::0;-1:-1:-1;;;10085:11:0;::::1;;;10084:12;10076:44;;;::::0;-1:-1:-1;;;10076:44:0;;7259:2:1;10076:44:0::1;::::0;::::1;7241:21:1::0;7298:2;7278:18;;;7271:30;-1:-1:-1;;;7317:18:1;;;7310:50;7377:18;;10076:44:0::1;7057:344:1::0;10076:44:0::1;10131:15;:80:::0;;-1:-1:-1;;;;;;10131:80:0::1;10168:42;10131:80:::0;;::::1;::::0;;;10222:58:::1;::::0;10239:4:::1;::::0;4689:13:::1;4632:2;4689;:13;:::i;:::-;4676:26;::::0;:10:::1;:26;:::i;10222:58::-;10325:15;;;;;;;;;-1:-1:-1::0;;;;;10325:15:0::1;-1:-1:-1::0;;;;;10325:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10307:55:0::1;;10371:4;10378:15;;;;;;;;;-1:-1:-1::0;;;;;10378:15:0::1;-1:-1:-1::0;;;;;10378:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10307:94;::::0;-1:-1:-1;;;;;;10307:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7892:15:1;;;10307:94:0::1;::::0;::::1;7874:34:1::0;7944:15;;7924:18;;;7917:43;7809:18;;10307:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10291:13;:110:::0;;-1:-1:-1;;;;;;10291:110:0::1;-1:-1:-1::0;;;;;10291:110:0;;::::1;::::0;;::::1;::::0;;;10450:15:::1;::::0;10412:71:::1;::::0;-1:-1:-1;;;10412:71:0;;10450:15;::::1;10412:71;::::0;::::1;8145:51:1::0;-1:-1:-1;;8212:18:1;;;8205:34;10291:110:0;10412:29:::1;::::0;8118:18:1;;10412:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10494:11:0::1;:18:::0;;-1:-1:-1;;;;10494:18:0::1;-1:-1:-1::0;;;10494:18:0::1;::::0;;10021:499::o;9348:261::-;2043:6;;-1:-1:-1;;;;;2043:6:0;351:10;2043:22;2035:67;;;;-1:-1:-1;;;2035:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9433:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;9432:16;:45:::0;::::1;;;-1:-1:-1::0;9464:13:0::1;::::0;-1:-1:-1;;;;;9452:25:0;;::::1;9464:13:::0;::::1;9452:25;;9432:45;:85;;;;-1:-1:-1::0;9501:15:0::1;::::0;-1:-1:-1;;;;;9481:36:0;;::::1;9501:15:::0;::::1;9481:36;;9432:85;9424:142;;;::::0;-1:-1:-1;;;9424:142:0;;8702:2:1;9424:142:0::1;::::0;::::1;8684:21:1::0;8741:2;8721:18;;;8714:30;8780:32;8760:18;;;8753:60;8830:18;;9424:142:0::1;8500:354:1::0;9424:142:0::1;-1:-1:-1::0;;;;;9577:15:0;;;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;9577:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9348:261::o;1020:246::-;1078:7;1102:1;1107;1102:6;1098:47;;-1:-1:-1;1132:1:0;1125:8;;1098:47;1155:9;1167:5;1171:1;1167;:5;:::i;:::-;1155:17;-1:-1:-1;1200:1:0;1191:5;1195:1;1155:17;1191:5;:::i;:::-;:10;1183:56;;;;-1:-1:-1;;;1183:56:0;;9283:2:1;1183:56:0;;;9265:21:1;9322:2;9302:18;;;9295:30;9361:34;9341:18;;;9334:62;-1:-1:-1;;;9412:18:1;;;9405:31;9453:19;;1183:56:0;9081:397:1;1183:56:0;1257:1;1020:246;-1:-1:-1;;;1020:246:0:o;1272:132::-;1330:7;1357:39;1361:1;1364;1357:39;;;;;;;;;;;;;;;;;:3;:39::i;9007:335::-;-1:-1:-1;;;;;9100:19:0;;9092:68;;;;-1:-1:-1;;;9092:68:0;;9685:2:1;9092:68:0;;;9667:21:1;9724:2;9704:18;;;9697:30;9763:34;9743:18;;;9736:62;-1:-1:-1;;;9814:18:1;;;9807:34;9858:19;;9092:68:0;9483:400:1;9092:68:0;-1:-1:-1;;;;;9179:21:0;;9171:68;;;;-1:-1:-1;;;9171:68:0;;10090:2:1;9171:68:0;;;10072:21:1;10129:2;10109:18;;;10102:30;10168:34;10148:18;;;10141:62;-1:-1:-1;;;10219:18:1;;;10212:32;10261:19;;9171:68:0;9888:398:1;9171:68:0;-1:-1:-1;;;;;9250:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9302:32;;1361:25:1;;;9302:32:0;;1334:18:1;9302:32:0;;;;;;;;9007:335;;;:::o;6239:974::-;-1:-1:-1;;;;;6327:18:0;;6319:68;;;;-1:-1:-1;;;6319:68:0;;10493:2:1;6319:68:0;;;10475:21:1;10532:2;10512:18;;;10505:30;10571:34;10551:18;;;10544:62;-1:-1:-1;;;10622:18:1;;;10615:35;10667:19;;6319:68:0;10291:401:1;6319:68:0;-1:-1:-1;;;;;6406:16:0;;6398:64;;;;-1:-1:-1;;;6398:64:0;;10899:2:1;6398:64:0;;;10881:21:1;10938:2;10918:18;;;10911:30;10977:34;10957:18;;;10950:62;-1:-1:-1;;;11028:18:1;;;11021:33;11071:19;;6398:64:0;10697:399:1;6398:64:0;6490:1;6481:6;:10;6473:64;;;;-1:-1:-1;;;6473:64:0;;11303:2:1;6473:64:0;;;11285:21:1;11342:2;11322:18;;;11315:30;11381:34;11361:18;;;11354:62;-1:-1:-1;;;11432:18:1;;;11425:39;11481:19;;6473:64:0;11101:405:1;6473:64:0;1956:7;1983:6;-1:-1:-1;;;;;6552:15:0;;;1983:6;;6552:15;;;;:32;;-1:-1:-1;1956:7:0;1983:6;-1:-1:-1;;;;;6571:13:0;;;1983:6;;6571:13;;6552:32;6548:512;;;6609:11;;-1:-1:-1;;;6609:11:0;;;;6601:39;;;;-1:-1:-1;;;6601:39:0;;11713:2:1;6601:39:0;;;11695:21:1;11752:2;11732:18;;;11725:30;-1:-1:-1;;;11771:18:1;;;11764:46;11827:18;;6601:39:0;11511:340:1;6601:39:0;6659:10;;;;6655:189;;;6710:15;;-1:-1:-1;;;;;6696:30:0;;;6710:15;;6696:30;;;;:62;;-1:-1:-1;6744:13:0;;-1:-1:-1;;;;;6730:28:0;;;6744:13;;6730:28;;6696:62;6692:135;;;6786:19;6796:4;6802:2;6786:9;:19::i;:::-;6870:13;;-1:-1:-1;;;;;6862:21:0;;;6870:13;;6862:21;:55;;;;-1:-1:-1;6901:15:0;;-1:-1:-1;;;;;6887:30:0;;;6901:15;;6887:30;;6862:55;:70;;;;-1:-1:-1;;;;;;6923:9:0;;;;;;:5;:9;;;;;;;;6921:11;6862:70;6858:191;;;6988:14;;6978:6;6962:13;6972:2;-1:-1:-1;;;;;8167:18:0;8140:7;8167:18;;;:9;:18;;;;;;;8074:119;6962:13;:22;;;;:::i;:::-;:40;;6954:79;;;;-1:-1:-1;;;6954:79:0;;12188:2:1;6954:79:0;;;12170:21:1;12227:2;12207:18;;;12200:30;12266:28;12246:18;;;12239:56;12312:18;;6954:79:0;11986:350:1;6954:79:0;-1:-1:-1;;;;;7086:15:0;;;;;;:9;:15;;;;;;:27;;7106:6;7086:19;:27::i;:::-;-1:-1:-1;;;;;7070:15:0;;;;;;;:9;:15;;;;;;:43;;;;7138:13;;;;;;;:25;;7156:6;7138:17;:25::i;:::-;-1:-1:-1;;;;;7124:13:0;;;;;;;:9;:13;;;;;;;:39;;;;7179:26;;;;;;;;;;7198:6;1361:25:1;;1349:2;1334:18;;1215:177;824:190:0;910:7;946:12;938:6;;;;930:29;;;;-1:-1:-1;;;930:29:0;;;;;;;;:::i;:::-;-1:-1:-1;970:9:0;982:5;986:1;982;:5;:::i;:::-;970:17;824:190;-1:-1:-1;;;;;824:190:0:o;1410:189::-;1496:7;1531:12;1524:5;1516:28;;;;-1:-1:-1;;;1516:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1555:9:0;1567:5;1571:1;1567;:5;:::i;5467:766::-;-1:-1:-1;;;;;5593:11:0;;;;;;:5;:11;;;;;;;;5592:12;:26;;;;-1:-1:-1;;;;;;5609:9:0;;;;;;:5;:9;;;;;;;;5608:10;5592:26;5584:61;;;;-1:-1:-1;;;5584:61:0;;12676:2:1;5584:61:0;;;12658:21:1;12715:2;12695:18;;;12688:30;-1:-1:-1;;;12734:18:1;;;12727:52;12796:18;;5584:61:0;12474:346:1;5584:61:0;5718:11;;-1:-1:-1;;;;;5697:18:0;;;;;;:12;:18;;;;;;5732:12;;5697:32;;;:::i;:::-;:47;5689:120;;;;-1:-1:-1;;;5689:120:0;;13027:2:1;5689:120:0;;;13009:21:1;13066:2;13046:18;;;13039:30;13105:34;13085:18;;;13078:62;-1:-1:-1;;;13156:18:1;;;13149:49;13215:19;;5689:120:0;12825:415:1;5689:120:0;-1:-1:-1;;;;;5818:18:0;;;;;;:12;:18;;;;;5839:12;5818:33;;5906:10;:15;;5920:1;;5818:18;5906:15;;5920:1;;5906:15;:::i;:::-;;;;-1:-1:-1;;6017:10:0;;6003:24;;:11;:24;:::i;:::-;5990:10;;5971:14;5984:1;5990:10;5971:14;:::i;:::-;5955:12;;:31;;;;:::i;:::-;5954:46;;;;:::i;:::-;:73;;;;:::i;:::-;5930:12;:97;;;6144:9;;6110:54;;6127:36;;6159:3;;6127:27;;:16;:27::i;:::-;:31;;:36::i;:::-;6110:12;;;:16;:54::i;:::-;6095:11;:69;;6077:148;;;;-1:-1:-1;;;6077:148:0;;13447:2:1;6077:148:0;;;13429:21:1;13486:2;13466:18;;;13459:30;13525:34;13505:18;;;13498:62;-1:-1:-1;;;13576:18:1;;;13569:45;13631:19;;6077:148:0;13245:411:1;6077:148:0;5467:766;;:::o;682:136::-;740:7;767:43;771:1;774;767:43;;;;;;;;;;;;;;;;;:3;:43::i;497:179::-;555:7;;587:5;591:1;587;:5;:::i;:::-;575:17;;616:1;611;:6;;603:46;;;;-1:-1:-1;;;603:46:0;;13863:2:1;603:46:0;;;13845:21:1;13902:2;13882:18;;;13875:30;13941:29;13921:18;;;13914:57;13988:18;;603:46:0;13661:351:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:180::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;-1:-1:-1;2406:23:1;;2255:180;-1:-1:-1;2255:180:1:o;2440:118::-;2526:5;2519:13;2512:21;2505:5;2502:32;2492:60;;2548:1;2545;2538:12;2563:382;2628:6;2636;2689:2;2677:9;2668:7;2664:23;2660:32;2657:52;;;2705:1;2702;2695:12;2657:52;2744:9;2731:23;2763:31;2788:5;2763:31;:::i;:::-;2813:5;-1:-1:-1;2870:2:1;2855:18;;2842:32;2883:30;2842:32;2883:30;:::i;:::-;2932:7;2922:17;;;2563:382;;;;;:::o;2950:247::-;3009:6;3062:2;3050:9;3041:7;3037:23;3033:32;3030:52;;;3078:1;3075;3068:12;3030:52;3117:9;3104:23;3136:31;3161:5;3136:31;:::i;3202:529::-;3279:6;3287;3295;3348:2;3336:9;3327:7;3323:23;3319:32;3316:52;;;3364:1;3361;3354:12;3316:52;3403:9;3390:23;3422:31;3447:5;3422:31;:::i;:::-;3472:5;-1:-1:-1;3529:2:1;3514:18;;3501:32;3542:33;3501:32;3542:33;:::i;:::-;3594:7;-1:-1:-1;3653:2:1;3638:18;;3625:32;3666:33;3625:32;3666:33;:::i;:::-;3718:7;3708:17;;;3202:529;;;;;:::o;3736:515::-;3828:6;3836;3844;3852;3860;3913:3;3901:9;3892:7;3888:23;3884:33;3881:53;;;3930:1;3927;3920:12;3881:53;3969:9;3956:23;3988:28;4010:5;3988:28;:::i;:::-;4035:5;4087:2;4072:18;;4059:32;;-1:-1:-1;4138:2:1;4123:18;;4110:32;;4189:2;4174:18;;4161:32;;-1:-1:-1;4240:3:1;4225:19;4212:33;;-1:-1:-1;3736:515:1;-1:-1:-1;;;3736:515:1:o;4256:388::-;4324:6;4332;4385:2;4373:9;4364:7;4360:23;4356:32;4353:52;;;4401:1;4398;4391:12;4353:52;4440:9;4427:23;4459:31;4484:5;4459:31;:::i;:::-;4509:5;-1:-1:-1;4566:2:1;4551:18;;4538:32;4579:33;4538:32;4579:33;:::i;4649:127::-;4710:10;4705:3;4701:20;4698:1;4691:31;4741:4;4738:1;4731:15;4765:4;4762:1;4755:15;4781:422;4870:1;4913:5;4870:1;4927:270;4948:7;4938:8;4935:21;4927:270;;;5007:4;5003:1;4999:6;4995:17;4989:4;4986:27;4983:53;;;5016:18;;:::i;:::-;5066:7;5056:8;5052:22;5049:55;;;5086:16;;;;5049:55;5165:22;;;;5125:15;;;;4927:270;;;4931:3;4781:422;;;;;:::o;5208:806::-;5257:5;5287:8;5277:80;;-1:-1:-1;5328:1:1;5342:5;;5277:80;5376:4;5366:76;;-1:-1:-1;5413:1:1;5427:5;;5366:76;5458:4;5476:1;5471:59;;;;5544:1;5539:130;;;;5451:218;;5471:59;5501:1;5492:10;;5515:5;;;5539:130;5576:3;5566:8;5563:17;5560:43;;;5583:18;;:::i;:::-;-1:-1:-1;;5639:1:1;5625:16;;5654:5;;5451:218;;5753:2;5743:8;5740:16;5734:3;5728:4;5725:13;5721:36;5715:2;5705:8;5702:16;5697:2;5691:4;5688:12;5684:35;5681:77;5678:159;;;-1:-1:-1;5790:19:1;;;5822:5;;5678:159;5869:34;5894:8;5888:4;5869:34;:::i;:::-;5939:6;5935:1;5931:6;5927:19;5918:7;5915:32;5912:58;;;5950:18;;:::i;:::-;5988:20;;5208:806;-1:-1:-1;;;5208:806:1:o;6019:140::-;6077:5;6106:47;6147:4;6137:8;6133:19;6127:4;6106:47;:::i;6164:168::-;6237:9;;;6268;;6285:15;;;6279:22;;6265:37;6255:71;;6306:18;;:::i;6337:356::-;6539:2;6521:21;;;6558:18;;;6551:30;6617:34;6612:2;6597:18;;6590:62;6684:2;6669:18;;6337:356::o;7406:251::-;7476:6;7529:2;7517:9;7508:7;7504:23;7500:32;7497:52;;;7545:1;7542;7535:12;7497:52;7577:9;7571:16;7596:31;7621:5;7596:31;:::i;8250:245::-;8317:6;8370:2;8358:9;8349:7;8345:23;8341:32;8338:52;;;8386:1;8383;8376:12;8338:52;8418:9;8412:16;8437:28;8459:5;8437:28;:::i;8859:217::-;8899:1;8925;8915:132;;8969:10;8964:3;8960:20;8957:1;8950:31;9004:4;9001:1;8994:15;9032:4;9029:1;9022:15;8915:132;-1:-1:-1;9061:9:1;;8859:217::o;11856:125::-;11921:9;;;11942:10;;;11939:36;;;11955:18;;:::i;12341:128::-;12408:9;;;12429:11;;;12426:37;;;12443:18;;:::i

Swarm Source

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