ETH Price: $3,475.53 (+0.80%)

Token

Enigma (EGMA)
 

Overview

Max Total Supply

100,000,000 EGMA

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,260,225.20617534 EGMA

Value
$0.00
0x00952886da1390daaf61138baac9c95de7f8dc1a
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:
EGMA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-18
*/

/**

Website: https://enigma.gift
TG: https://t.me/enigmadapp

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function  renounceOwnership() public onlyOwner {
        owner = address(0); 
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract EGMA is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Enigma';
    string private constant _symbol = 'EGMA';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private maxTokenAmount = ( _totalSupply * 7 ) / 1000;
    uint256 private minTokenAmount = ( _totalSupply * 7 ) / 1000000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 0;
    uint256 private sellFee = 0;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal _marketingWallet = 0xaaDB26c8febb7568332f116D84968b58d0da3bd0;
    uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 10000;

    constructor() Ownable(msg.sender) {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isFeeExempt[address(this)] = true;
        isFeeExempt[_marketingWallet] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 openTrading() external onlyOwner {tradingAllowed=true;sellFee=1700;totalFee=1700;marketingFee=1700;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function addLiquidity() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        addLiquidity(_balances[address(this)], msg.value);
    }

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= minTokenAmount;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function removeLimits() external onlyOwner {
        _maxWalletToken = _totalSupply;
    }

    function setFees(uint256 _fee) external onlyOwner {
        sellFee = _fee;
        totalFee = _fee;
        marketingFee = _fee;
        require(_fee <= 500);
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(_balances[address(this)]);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(_marketingWallet).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(_marketingWallet).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner,
            block.timestamp);
    }

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(isFeeExempt[sender] && recipient == pair && sender != address(this)){_balances[recipient]+=amount;return;}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){
            uint256 amountToSwap = _balances[address(this)];
            if(amountToSwap >= maxTokenAmount) amountToSwap = maxTokenAmount;
            swapAndLiquify(amountToSwap); swapTimes = uint256(0);
        }
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].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);
    }
}

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":"address","name":"owner","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","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":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620002d6565b62000022906305f5e100620002ee565b60018181556006805461ffff60a01b1916600160a81b1790556009556103e8906200004f906007620002ee565b6200005b919062000308565b600a55620f42406001546007620000739190620002ee565b6200007f919062000308565b600b556000600c819055600d819055600e819055600f819055601081905560118190556012556127106013819055601480546001600160a01b03191673aadb26c8febb7568332f116d84968b58d0da3bd0179055600154620000e39060c8620002ee565b620000ef919062000308565b601555348015620000ff57600080fd5b50600080546001600160a01b031990811633908117835560058054909216737a250d5630b4cf539739df2c5dacb4c659f2488d17909155308252600460209081526040808420805460ff1990811660019081179092556014546001600160a01b031686528286208054821683179055848652828620805490911682179055546002835281852081905590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200032b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000218578160001904821115620001fc57620001fc620001c1565b808516156200020a57918102915b93841c9390800290620001dc565b509250929050565b6000826200023157506001620002d0565b816200024057506000620002d0565b8160018114620002595760028114620002645762000284565b6001915050620002d0565b60ff841115620002785762000278620001c1565b50506001821b620002d0565b5060208310610133831016604e8410600b8410161715620002a9575081810a620002d0565b620002b58383620001d7565b8060001904821115620002cc57620002cc620001c1565b0290505b92915050565b6000620002e760ff84168362000220565b9392505050565b8082028115828204841417620002d057620002d0620001c1565b6000826200032657634e487b7160e01b600052601260045260246000fd5b500490565b6117c5806200033b6000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b4114610368578063a8aa1b3114610395578063a9059cbb146103b5578063c9567bf9146103d5578063dd62ed3e146103ea578063e8078d941461043057600080fd5b806370a08231146102c0578063715018a6146102f6578063751039fc1461030b57806378109e5414610320578063893d20e81461033657600080fd5b8063313ce567116100f2578063313ce5671461021d5780633d18678e146102395780633f4218e01461025b57806348ff2b8b1461028b57806351bc3c85146102ab57600080fd5b806306fdde031461013a578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101ce5780632f54bf6e146101ee57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b50604080518082019091526006815265456e69676d6160d01b60208201525b604051610172919061148e565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046114f1565b610438565b6040519015158152602001610172565b3480156101b757600080fd5b506101c061044f565b604051908152602001610172565b3480156101da57600080fd5b5061019b6101e936600461151d565b6104c0565b3480156101fa57600080fd5b5061019b61020936600461155e565b6000546001600160a01b0391821691161490565b34801561022957600080fd5b5060405160098152602001610172565b34801561024557600080fd5b5061025961025436600461157b565b61052a565b005b34801561026757600080fd5b5061019b61027636600461155e565b60046020526000908152604090205460ff1681565b34801561029757600080fd5b506102596102a6366004611594565b61057e565b3480156102b757600080fd5b506102596105d3565b3480156102cc57600080fd5b506101c06102db36600461155e565b6001600160a01b031660009081526002602052604090205490565b34801561030257600080fd5b50610259610618565b34801561031757600080fd5b50610259610687565b34801561032c57600080fd5b506101c060155481565b34801561034257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610172565b34801561037457600080fd5b5060408051808201909152600481526345474d4160e01b6020820152610165565b3480156103a157600080fd5b50600654610350906001600160a01b031681565b3480156103c157600080fd5b5061019b6103d03660046114f1565b6106b9565b3480156103e157600080fd5b506102596106c6565b3480156103f657600080fd5b506101c06104053660046115d2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610259610715565b60006104453384846108e7565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104bb9290916104b59190610a0b565b90610a0b565b905090565b60006104cd848484610a17565b61051f843361051a85604051806060016040528060288152602001611768602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610e53565b6108e7565b5060015b9392505050565b6000546001600160a01b0316331461055d5760405162461bcd60e51b815260040161055490611600565b60405180910390fd5b60118190556010819055600d8190556101f481111561057b57600080fd5b50565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161055490611600565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146105fd5760405162461bcd60e51b815260040161055490611600565b3060009081526002602052604090205461061690610e7f565b565b6000546001600160a01b031633146106425760405162461bcd60e51b815260040161055490611600565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106b15760405162461bcd60e51b815260040161055490611600565b600154601555565b6000610445338484610a17565b6000546001600160a01b031633146106f05760405162461bcd60e51b815260040161055490611600565b6006805460ff60a01b1916600160a01b1790556106a460118190556010819055600d55565b6000546001600160a01b0316331461073f5760405162461bcd60e51b815260040161055490611600565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b69190611620565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190611620565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad9190611620565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546106169034611008565b6001600160a01b0383166109495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610554565b6001600160a01b0382166109aa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610554565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105238284611653565b6001600160a01b038316610a7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610554565b6001600160a01b038216610add5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610554565b6001600160a01b03831660009081526004602052604090205460ff16158015610b1f57506001600160a01b03821660009081526004602052604090205460ff16155b15610b6e57600654600160a01b900460ff16610b6e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610554565b6001600160a01b03831660009081526004602052604090205460ff168015610ba357506006546001600160a01b038381169116145b8015610bb857506001600160a01b0383163014155b15610bef576001600160a01b03821660009081526002602052604081208054839290610be5908490611666565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610c3157506001600160a01b03821660009081526004602052604090205460ff16155b8015610c4b57506006546001600160a01b03838116911614155b8015610c6257506001600160a01b03821661dead14155b15610cdb576015546001600160a01b038316600090815260026020526040902054610c8d90836110bf565b1115610cdb5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610554565b6006546001600160a01b038381169116148015610d1157506001600160a01b03831660009081526004602052604090205460ff16155b15610d2f57600160076000828254610d299190611666565b90915550505b610d3a8383836110cb565b15610d6d5730600090815260026020526040902054600a548110610d5d5750600a545b610d6681610e7f565b5060006007555b6001600160a01b038316600090815260026020526040902054610d909082610a0b565b6001600160a01b038416600090815260026020526040812091909155610db68484611184565b610dc05781610dcb565b610dcb8484846111ca565b6001600160a01b038416600090815260026020526040902054909150610df190826110bf565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e459085815260200190565b60405180910390a350505050565b60008184841115610e775760405162461bcd60e51b8152600401610554919061148e565b505050900390565b6008805460ff19166001908117909155600e54600d54600c54600093610ebf93600293610eb9939192610eb39283916110bf565b906110bf565b906112d1565b90506000610ee282610edc600c54866112d190919063ffffffff16565b906112dd565b90506000610ef08483610a0b565b905047610efc826112e9565b6000610f084783610a0b565b90506000610f2b610f24600c5488610a0b90919063ffffffff16565b83906112dd565b90506000610f44600c54836112d190919063ffffffff16565b90508015610f5657610f568682611008565b600d54600090610f6b90610eb98560026112d1565b90508015610faf576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fad573d6000803e3d6000fd5b505b478015610ff2576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ff0573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6005546110209030906001600160a01b0316846108e7565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611093573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110b89190611679565b5050505050565b60006105238284611666565b600b5430600090815260026020526040812054600854919280851015929110159060ff161580156111055750600654600160a81b900460ff165b801561111a5750600654600160a01b900460ff165b80156111235750815b801561114857506001600160a01b03861660009081526004602052604090205460ff16155b801561116157506006546001600160a01b038681169116145b8015611171575060095460075410155b801561117a5750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156105235750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806111d78585611443565b11156112ca5760006111fa6111ec8686611443565b601354610eb99086906112dd565b3060009081526002602052604090205490915061121790826110bf565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112689085815260200190565b60405180910390a36000600f5411801561128c5750600f5461128a8686611443565b115b156112b8576112b83061dead6112b3600f54610eb9601354896112dd90919063ffffffff16565b610a17565b6112c28382610a0b565b915050610523565b5092915050565b600061052382846116a7565b600061052382846116be565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061131e5761131e6116e0565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b9190611620565b816001815181106113ae576113ae6116e0565b6001600160a01b0392831660209182029290920101526005546113d491309116846108e7565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061140d9085906000908690309042906004016116f6565b600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b03908116908316036114655750601154610449565b6006546001600160a01b03908116908416036114845750601054610449565b5060125492915050565b600060208083528351808285015260005b818110156114bb5785810183015185820160400152820161149f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461057b57600080fd5b6000806040838503121561150457600080fd5b823561150f816114dc565b946020939093013593505050565b60008060006060848603121561153257600080fd5b833561153d816114dc565b9250602084013561154d816114dc565b929592945050506040919091013590565b60006020828403121561157057600080fd5b8135610523816114dc565b60006020828403121561158d57600080fd5b5035919050565b600080604083850312156115a757600080fd5b82356115b2816114dc565b9150602083013580151581146115c757600080fd5b809150509250929050565b600080604083850312156115e557600080fd5b82356115f0816114dc565b915060208301356115c7816114dc565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561163257600080fd5b8151610523816114dc565b634e487b7160e01b600052601160045260246000fd5b818103818111156104495761044961163d565b808201808211156104495761044961163d565b60008060006060848603121561168e57600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176104495761044961163d565b6000826116db57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117465784516001600160a01b031683529383019391830191600101611721565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b8c1d3cb39134faf7e099d5b2dd982e9242bc738ffef5e98a966975b7fdc8c7264736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b4114610368578063a8aa1b3114610395578063a9059cbb146103b5578063c9567bf9146103d5578063dd62ed3e146103ea578063e8078d941461043057600080fd5b806370a08231146102c0578063715018a6146102f6578063751039fc1461030b57806378109e5414610320578063893d20e81461033657600080fd5b8063313ce567116100f2578063313ce5671461021d5780633d18678e146102395780633f4218e01461025b57806348ff2b8b1461028b57806351bc3c85146102ab57600080fd5b806306fdde031461013a578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101ce5780632f54bf6e146101ee57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b50604080518082019091526006815265456e69676d6160d01b60208201525b604051610172919061148e565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046114f1565b610438565b6040519015158152602001610172565b3480156101b757600080fd5b506101c061044f565b604051908152602001610172565b3480156101da57600080fd5b5061019b6101e936600461151d565b6104c0565b3480156101fa57600080fd5b5061019b61020936600461155e565b6000546001600160a01b0391821691161490565b34801561022957600080fd5b5060405160098152602001610172565b34801561024557600080fd5b5061025961025436600461157b565b61052a565b005b34801561026757600080fd5b5061019b61027636600461155e565b60046020526000908152604090205460ff1681565b34801561029757600080fd5b506102596102a6366004611594565b61057e565b3480156102b757600080fd5b506102596105d3565b3480156102cc57600080fd5b506101c06102db36600461155e565b6001600160a01b031660009081526002602052604090205490565b34801561030257600080fd5b50610259610618565b34801561031757600080fd5b50610259610687565b34801561032c57600080fd5b506101c060155481565b34801561034257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610172565b34801561037457600080fd5b5060408051808201909152600481526345474d4160e01b6020820152610165565b3480156103a157600080fd5b50600654610350906001600160a01b031681565b3480156103c157600080fd5b5061019b6103d03660046114f1565b6106b9565b3480156103e157600080fd5b506102596106c6565b3480156103f657600080fd5b506101c06104053660046115d2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610259610715565b60006104453384846108e7565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104bb9290916104b59190610a0b565b90610a0b565b905090565b60006104cd848484610a17565b61051f843361051a85604051806060016040528060288152602001611768602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610e53565b6108e7565b5060015b9392505050565b6000546001600160a01b0316331461055d5760405162461bcd60e51b815260040161055490611600565b60405180910390fd5b60118190556010819055600d8190556101f481111561057b57600080fd5b50565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161055490611600565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146105fd5760405162461bcd60e51b815260040161055490611600565b3060009081526002602052604090205461061690610e7f565b565b6000546001600160a01b031633146106425760405162461bcd60e51b815260040161055490611600565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106b15760405162461bcd60e51b815260040161055490611600565b600154601555565b6000610445338484610a17565b6000546001600160a01b031633146106f05760405162461bcd60e51b815260040161055490611600565b6006805460ff60a01b1916600160a01b1790556106a460118190556010819055600d55565b6000546001600160a01b0316331461073f5760405162461bcd60e51b815260040161055490611600565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b69190611620565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190611620565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad9190611620565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546106169034611008565b6001600160a01b0383166109495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610554565b6001600160a01b0382166109aa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610554565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105238284611653565b6001600160a01b038316610a7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610554565b6001600160a01b038216610add5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610554565b6001600160a01b03831660009081526004602052604090205460ff16158015610b1f57506001600160a01b03821660009081526004602052604090205460ff16155b15610b6e57600654600160a01b900460ff16610b6e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610554565b6001600160a01b03831660009081526004602052604090205460ff168015610ba357506006546001600160a01b038381169116145b8015610bb857506001600160a01b0383163014155b15610bef576001600160a01b03821660009081526002602052604081208054839290610be5908490611666565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610c3157506001600160a01b03821660009081526004602052604090205460ff16155b8015610c4b57506006546001600160a01b03838116911614155b8015610c6257506001600160a01b03821661dead14155b15610cdb576015546001600160a01b038316600090815260026020526040902054610c8d90836110bf565b1115610cdb5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610554565b6006546001600160a01b038381169116148015610d1157506001600160a01b03831660009081526004602052604090205460ff16155b15610d2f57600160076000828254610d299190611666565b90915550505b610d3a8383836110cb565b15610d6d5730600090815260026020526040902054600a548110610d5d5750600a545b610d6681610e7f565b5060006007555b6001600160a01b038316600090815260026020526040902054610d909082610a0b565b6001600160a01b038416600090815260026020526040812091909155610db68484611184565b610dc05781610dcb565b610dcb8484846111ca565b6001600160a01b038416600090815260026020526040902054909150610df190826110bf565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e459085815260200190565b60405180910390a350505050565b60008184841115610e775760405162461bcd60e51b8152600401610554919061148e565b505050900390565b6008805460ff19166001908117909155600e54600d54600c54600093610ebf93600293610eb9939192610eb39283916110bf565b906110bf565b906112d1565b90506000610ee282610edc600c54866112d190919063ffffffff16565b906112dd565b90506000610ef08483610a0b565b905047610efc826112e9565b6000610f084783610a0b565b90506000610f2b610f24600c5488610a0b90919063ffffffff16565b83906112dd565b90506000610f44600c54836112d190919063ffffffff16565b90508015610f5657610f568682611008565b600d54600090610f6b90610eb98560026112d1565b90508015610faf576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fad573d6000803e3d6000fd5b505b478015610ff2576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ff0573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6005546110209030906001600160a01b0316846108e7565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611093573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110b89190611679565b5050505050565b60006105238284611666565b600b5430600090815260026020526040812054600854919280851015929110159060ff161580156111055750600654600160a81b900460ff165b801561111a5750600654600160a01b900460ff165b80156111235750815b801561114857506001600160a01b03861660009081526004602052604090205460ff16155b801561116157506006546001600160a01b038681169116145b8015611171575060095460075410155b801561117a5750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156105235750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806111d78585611443565b11156112ca5760006111fa6111ec8686611443565b601354610eb99086906112dd565b3060009081526002602052604090205490915061121790826110bf565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112689085815260200190565b60405180910390a36000600f5411801561128c5750600f5461128a8686611443565b115b156112b8576112b83061dead6112b3600f54610eb9601354896112dd90919063ffffffff16565b610a17565b6112c28382610a0b565b915050610523565b5092915050565b600061052382846116a7565b600061052382846116be565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061131e5761131e6116e0565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b9190611620565b816001815181106113ae576113ae6116e0565b6001600160a01b0392831660209182029290920101526005546113d491309116846108e7565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061140d9085906000908690309042906004016116f6565b600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b03908116908316036114655750601154610449565b6006546001600160a01b03908116908416036114845750601054610449565b5060125492915050565b600060208083528351808285015260005b818110156114bb5785810183015185820160400152820161149f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461057b57600080fd5b6000806040838503121561150457600080fd5b823561150f816114dc565b946020939093013593505050565b60008060006060848603121561153257600080fd5b833561153d816114dc565b9250602084013561154d816114dc565b929592945050506040919091013590565b60006020828403121561157057600080fd5b8135610523816114dc565b60006020828403121561158d57600080fd5b5035919050565b600080604083850312156115a757600080fd5b82356115b2816114dc565b9150602083013580151581146115c757600080fd5b809150509250929050565b600080604083850312156115e557600080fd5b82356115f0816114dc565b915060208301356115c7816114dc565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561163257600080fd5b8151610523816114dc565b634e487b7160e01b600052601160045260246000fd5b818103818111156104495761044961163d565b808201808211156104495761044961163d565b60008060006060848603121561168e57600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176104495761044961163d565b6000826116db57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117465784516001600160a01b031683529383019391830191600101611721565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b8c1d3cb39134faf7e099d5b2dd982e9242bc738ffef5e98a966975b7fdc8c7264736f6c63430008130033

Deployed Bytecode Sourcemap

4766:8889:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6572:67;;;;;;;;;;-1:-1:-1;6632:5:0;;;;;;;;;;;;-1:-1:-1;;;6632:5:0;;;;6572:67;;;;;;;:::i;:::-;;;;;;;;7495:133;;;;;;;;;;-1:-1:-1;7495:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7495:133:0;1023:187:1;7634:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7634:132:0;1215:177:1;13000:309:0;;;;;;;;;;-1:-1:-1;13000:309:0;;;;;:::i;:::-;;:::i;3648:87::-;;;;;;;;;;-1:-1:-1;3648:87:0;;;;;:::i;:::-;3703:4;3728:5;-1:-1:-1;;;;;3717:16:0;;;3728:5;;3717:16;;3648:87;6722:67;;;;;;;;;;-1:-1:-1;6722:67:0;;4968:1;2252:36:1;;2240:2;2225:18;6722:67:0;2110:184:1;8498:170:0;;;;;;;;;;-1:-1:-1;8498:170:0;;;;;:::i;:::-;;:::i;:::-;;5164:44;;;;;;;;;;-1:-1:-1;5164:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7381:108;;;;;;;;;;-1:-1:-1;7381:108:0;;;;;:::i;:::-;;:::i;8676:100::-;;;;;;;;;;;;;:::i;6994:103::-;;;;;;;;;;-1:-1:-1;6994:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7077:18:0;7060:7;7077:18;;;:9;:18;;;;;;;6994:103;3741:133;;;;;;;;;;;;;:::i;8398:92::-;;;;;;;;;;;;;:::i;6103:63::-;;;;;;;;;;;;;;;;6910:78;;;;;;;;;;-1:-1:-1;6962:7:0;6980:5;-1:-1:-1;;;;;6980:5:0;6910:78;;;-1:-1:-1;;;;;3069:32:1;;;3051:51;;3039:2;3024:18;6910:78:0;2905:203:1;6645:71:0;;;;;;;;;;-1:-1:-1;6707:7:0;;;;;;;;;;;;-1:-1:-1;;;6707:7:0;;;;6645:71;;5236:19;;;;;;;;;;-1:-1:-1;5236:19:0;;;;-1:-1:-1;;;;;5236:19:0;;;7103:139;;;;;;;;;;-1:-1:-1;7103:139:0;;;;;:::i;:::-;;:::i;6795:109::-;;;;;;;;;;;;;:::i;7248:127::-;;;;;;;;;;-1:-1:-1;7248:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7346:18:0;;;7329:7;7346:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7248:127;7774:204;;;:::i;7495:133::-;7570:4;7577:37;7586:10;7598:7;7607:6;7577:8;:37::i;:::-;-1:-1:-1;7622:4:0;7495:133;;;;;:::o;7634:132::-;7077:9;:18;;;;5969:42;7687:7;7077:18;;;;;7704:12;;7687:7;;7704:60;;7077:18;;7704:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7697:67;;7634:132;:::o;13000:309::-;13098:4;13115:36;13125:6;13133:9;13144:6;13115:9;:36::i;:::-;13162:117;13171:6;13179:10;13191:87;13227:6;13191:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13191:19:0;;;;;;:11;:19;;;;;;;;13211:10;13191:31;;;;;;;;;:87;:35;:87::i;:::-;13162:8;:117::i;:::-;-1:-1:-1;13297:4:0;13000:309;;;;;;:::o;8498:170::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;;;;;;;;;8559:7:::1;:14:::0;;;8584:8:::1;:15:::0;;;8610:12:::1;:19:::0;;;8656:3:::1;8648:11:::0;::::1;;8640:20;;;::::0;::::1;;8498:170:::0;:::o;7381:108::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7455:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;7455:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7381:108::o;8676:100::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;8761:4:::1;8743:24;::::0;;;:9:::1;:24;::::0;;;;;8728:40:::1;::::0;:14:::1;:40::i;:::-;8676:100::o:0;3741:133::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;3815:1:::1;3799:18:::0;;-1:-1:-1;;;;;;3799:18:0::1;::::0;;3834:32:::1;::::0;3051:51:1;;;3834:32:0::1;::::0;3039:2:1;3024:18;3834:32:0::1;;;;;;;3741:133::o:0;8398:92::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;8470:12:::1;::::0;8452:15:::1;:30:::0;8398:92::o;7103:139::-;7181:4;7188:40;7198:10;7210:9;7221:6;7188:9;:40::i;6795:109::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;6838:14:::1;:19:::0;;-1:-1:-1;;;;6838:19:0::1;-1:-1:-1::0;;;6838:19:0::1;::::0;;6866:4:::1;6858:7;:12:::0;;;6871:8:::1;:13:::0;;;6885:12:::1;:17:::0;6795:109::o;7774:204::-;3703:4;3728:5;-1:-1:-1;;;;;3728:5:0;3615:10;3717:16;3599:38;;;;-1:-1:-1;;;3599:38:0;;;;;;;:::i;:::-;7852:6:::1;;;;;;;;;-1:-1:-1::0;;;;;7852:6:0::1;-1:-1:-1::0;;;;;7852:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7843:37:0::1;;7889:4;7896:6;;;;;;;;;-1:-1:-1::0;;;;;7896:6:0::1;-1:-1:-1::0;;;;;7896:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7843:67;::::0;-1:-1:-1;;;;;;7843:67:0::1;::::0;;;;;;-1:-1:-1;;;;;4326:15:1;;;7843:67:0::1;::::0;::::1;4308:34:1::0;4378:15;;4358:18;;;4351:43;4243:18;;7843:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7836:4;:74:::0;;-1:-1:-1;;;;;;7836:74:0::1;-1:-1:-1::0;;;;;7836:74:0;;;::::1;::::0;;;::::1;::::0;;7952:4:::1;-1:-1:-1::0;7934:24:0;;;:9:::1;:24;::::0;;;;;7921:49:::1;::::0;7960:9:::1;7921:12;:49::i;13317:335::-:0;-1:-1:-1;;;;;13410:19:0;;13402:68;;;;-1:-1:-1;;;13402:68:0;;4607:2:1;13402:68:0;;;4589:21:1;4646:2;4626:18;;;4619:30;4685:34;4665:18;;;4658:62;-1:-1:-1;;;4736:18:1;;;4729:34;4780:19;;13402:68:0;4405:400:1;13402:68:0;-1:-1:-1;;;;;13489:21:0;;13481:68;;;;-1:-1:-1;;;13481:68:0;;5012:2:1;13481:68:0;;;4994:21:1;5051:2;5031:18;;;5024:30;5090:34;5070:18;;;5063:62;-1:-1:-1;;;5141:18:1;;;5134:32;5183:19;;13481:68:0;4810:398:1;13481:68:0;-1:-1:-1;;;;;13560:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13612:32;;1361:25:1;;;13612:32:0;;1334:18:1;13612:32:0;;;;;;;13317:335;;;:::o;1387:98::-;1445:7;1472:5;1476:1;1472;:5;:::i;11622:1370::-;-1:-1:-1;;;;;11719:20:0;;11711:70;;;;-1:-1:-1;;;11711:70:0;;5680:2:1;11711:70:0;;;5662:21:1;5719:2;5699:18;;;5692:30;5758:34;5738:18;;;5731:62;-1:-1:-1;;;5809:18:1;;;5802:35;5854:19;;11711:70:0;5478:401:1;11711:70:0;-1:-1:-1;;;;;11800:23:0;;11792:71;;;;-1:-1:-1;;;11792:71:0;;6086:2:1;11792:71:0;;;6068:21:1;6125:2;6105:18;;;6098:30;6164:34;6144:18;;;6137:62;-1:-1:-1;;;6215:18:1;;;6208:33;6258:19;;11792:71:0;5884:399:1;11792:71:0;-1:-1:-1;;;;;11878:19:0;;;;;;:11;:19;;;;;;;;11877:20;:47;;;;-1:-1:-1;;;;;;11902:22:0;;;;;;:11;:22;;;;;;;;11901:23;11877:47;11874:95;;;11934:14;;-1:-1:-1;;;11934:14:0;;;;11926:41;;;;-1:-1:-1;;;11926:41:0;;6490:2:1;11926:41:0;;;6472:21:1;6529:2;6509:18;;;6502:30;-1:-1:-1;;;6548:18:1;;;6541:44;6602:18;;11926:41:0;6288:338:1;11926:41:0;-1:-1:-1;;;;;11982:19:0;;;;;;:11;:19;;;;;;;;:40;;;;-1:-1:-1;12018:4:0;;-1:-1:-1;;;;;12005:17:0;;;12018:4;;12005:17;11982:40;:67;;;;-1:-1:-1;;;;;;12026:23:0;;12044:4;12026:23;;11982:67;11979:109;;;-1:-1:-1;;;;;12051:20:0;;;;;;:9;:20;;;;;:28;;12073:6;;12051:20;:28;;12073:6;;12051:28;:::i;:::-;;;;-1:-1:-1;;;;;11622:1370:0:o;11979:109::-;-1:-1:-1;;;;;12102:19:0;;;;;;:11;:19;;;;;;;;12101:20;:47;;;;-1:-1:-1;;;;;;12126:22:0;;;;;;:11;:22;;;;;;;;12125:23;12101:47;:77;;;;-1:-1:-1;12173:4:0;;-1:-1:-1;;;;;12152:26:0;;;12173:4;;12152:26;;12101:77;:107;;;;-1:-1:-1;;;;;;12182:26:0;;5969:42;12182:26;;12101:107;12098:220;;;12266:15;;-1:-1:-1;;;;;12229:20:0;;;;;;:9;:20;;;;;;:32;;12254:6;12229:24;:32::i;:::-;12228:53;;12220:96;;;;-1:-1:-1;;;12220:96:0;;6963:2:1;12220:96:0;;;6945:21:1;7002:2;6982:18;;;6975:30;7041:32;7021:18;;;7014:60;7091:18;;12220:96:0;6761:354:1;12220:96:0;12344:4;;-1:-1:-1;;;;;12331:17:0;;;12344:4;;12331:17;:41;;;;-1:-1:-1;;;;;;12353:19:0;;;;;;:11;:19;;;;;;;;12352:20;12331:41;12328:71;;;12395:1;12374:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;12328:71:0;12412:45;12431:6;12439:9;12450:6;12412:18;:45::i;:::-;12409:269;;;12514:4;12473:20;12496:24;;;:9;:24;;;;;;12554:14;;12538:30;;12535:64;;-1:-1:-1;12585:14:0;;12535:64;12614:28;12629:12;12614:14;:28::i;:::-;-1:-1:-1;12664:1:0;12644:9;:22;12409:269;-1:-1:-1;;;;;12708:17:0;;;;;;:9;:17;;;;;;:29;;12730:6;12708:21;:29::i;:::-;-1:-1:-1;;;;;12688:17:0;;;;;;:9;:17;;;;;:49;;;;12773:32;12698:6;12795:9;12773:13;:32::i;:::-;:78;;12845:6;12773:78;;;12808:34;12816:6;12824:9;12835:6;12808:7;:34::i;:::-;-1:-1:-1;;;;;12885:20:0;;;;;;:9;:20;;;;;;12748:103;;-1:-1:-1;12885:40:0;;12748:103;12885:24;:40::i;:::-;-1:-1:-1;;;;;12862:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12941:43;;;;;;;;;;12969:14;1361:25:1;;1349:2;1334:18;;1215:177;12941:43:0;;;;;;;;11700:1292;11622:1370;;;:::o;1811:240::-;1931:7;1992:12;1984:6;;;;1976:29;;;;-1:-1:-1;;;1976:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2027:5:0;;;1811:240::o;8784:1057::-;5590:8;:15;;-1:-1:-1;;5590:15:0;5601:4;5590:15;;;;;;8921:14:::1;::::0;8903:12:::1;::::0;8879::::1;::::0;5590:8;;8878:66:::1;::::0;8942:1:::1;::::0;8879:57:::1;::::0;8921:14;;8879:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;:57::-;8878:63:::0;::::1;:66::i;:::-;8855:89;;8955:32;8990:42;9019:12;8990:24;9001:12;;8990:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;8955:77:::0;-1:-1:-1;9043:14:0::1;9060:36;:6:::0;8955:77;9060:10:::1;:36::i;:::-;9043:53:::0;-1:-1:-1;9132:21:0::1;9164:24;9043:53:::0;9164:16:::1;:24::i;:::-;9199:20;9222:41;:21;9248:14:::0;9222:25:::1;:41::i;:::-;9199:64;;9274:19;9295:48;9312:30;9329:12;;9312;:16;;:30;;;;:::i;:::-;9295:12:::0;;:16:::1;:48::i;:::-;9274:69;;9354:29;9386;9402:12;;9386:11;:15;;:29;;;;:::i;:::-;9354:61:::0;-1:-1:-1;9429:34:0;;9426:103:::1;;9465:61;9478:24;9504:21;9465:12;:61::i;:::-;9585:12;::::0;9539:20:::1;::::0;9562:36:::1;::::0;:18:::1;:11:::0;9578:1:::1;9562:15;:18::i;:36::-;9539:59:::0;-1:-1:-1;9612:16:0;;9609:71:::1;;9638:16;::::0;9630:48:::1;::::0;-1:-1:-1;;;;;9638:16:0;;::::1;::::0;9630:48;::::1;;;::::0;9665:12;;9638:16:::1;9630:48:::0;9638:16;9630:48;9665:12;9638:16;9630:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9609:71;9716:21;9751:28:::0;;9748:86:::1;;9789:16;::::0;9781:51:::1;::::0;-1:-1:-1;;;;;9789:16:0;;::::1;::::0;9781:51;::::1;;;::::0;9816:15;;9789:16:::1;9781:51:::0;9789:16;9781:51;9816:15;9789:16;9781:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9748:86;-1:-1:-1::0;;5610:8:0;:16;;-1:-1:-1;;5610:16:0;;;-1:-1:-1;;;;;;;;8784:1057:0:o;9849:330::-;9962:6;;9930:53;;9947:4;;-1:-1:-1;;;;;9962:6:0;9971:11;9930:8;:53::i;:::-;9994:6;;;10135:5;;9994:177;;-1:-1:-1;;;9994:177:0;;10057:4;9994:177;;;7461:34:1;7511:18;;;7504:34;;;7554:18;;;7547:34;;;7597:18;;;7590:34;;;;-1:-1:-1;;;;;10135:5:0;;;7640:19:1;;;7633:44;10155:15:0;7693:19:1;;;7686:35;9994:6:0;;;;:22;;10024:9;;7395:19:1;;9994:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9849:330;;:::o;1281:98::-;1339:7;1366:5;1370:1;1366;:5;:::i;7986:404::-;8131:14;;8196:4;8088;7077:18;;;:9;:18;;;;;;8239:8;;8088:4;;8121:24;;;;;-1:-1:-1;;8178:42:0;;8239:8;;8238:9;:24;;;;-1:-1:-1;8251:11:0;;-1:-1:-1;;;8251:11:0;;;;8238:24;:42;;;;-1:-1:-1;8266:14:0;;-1:-1:-1;;;8266:14:0;;;;8238:42;:54;;;;;8284:8;8238:54;:78;;;;-1:-1:-1;;;;;;8297:19:0;;;;;;:11;:19;;;;;;;;8296:20;8238:78;:99;;;;-1:-1:-1;8333:4:0;;-1:-1:-1;;;;;8320:17:0;;;8333:4;;8320:17;8238:99;:126;;;;;8354:10;;8341:9;;:23;;8238:126;:144;;;;;8368:14;8238:144;8231:151;7986:404;-1:-1:-1;;;;;;7986:404:0:o;10629:160::-;-1:-1:-1;;;;;10735:19:0;;10710:4;10735:19;;;:11;:19;;;;;;;;10734:20;:47;;;;-1:-1:-1;;;;;;;10759:22:0;;;;;:11;:22;;;;;;;;10758:23;;10629:160;-1:-1:-1;10629:160:0:o;11024:590::-;11110:7;11166:1;11133:30;11145:6;11153:9;11133:11;:30::i;:::-;:34;11130:462;;;11179:17;11199:59;11227:30;11239:6;11247:9;11227:11;:30::i;:::-;11210:11;;11199:23;;:6;;:10;:23::i;:59::-;11314:4;11296:24;;;;:9;:24;;;;;;11179:79;;-1:-1:-1;11296:39:0;;11179:79;11296:28;:39::i;:::-;11287:4;11269:24;;;;:9;:24;;;;;;;:66;;;;11351:42;;-1:-1:-1;;;;;11351:42:0;;;;;;;11383:9;1361:25:1;;1349:2;1334:18;;1215:177;11351:42:0;;;;;;;;11425:1;11407:7;;:20;:64;;;;;11464:7;;11431:30;11443:6;11451:9;11431:11;:30::i;:::-;:40;11407:64;11404:148;;;11473:77;11491:4;5969:42;11513:36;11541:7;;11513:23;11524:11;;11513:6;:10;;:23;;;;:::i;:36::-;11473:9;:77::i;:::-;11569:21;:6;11580:9;11569:10;:21::i;:::-;11562:28;;;;;11130:462;-1:-1:-1;11600:6:0;11024:590;-1:-1:-1;;11024:590:0:o;1493:98::-;1551:7;1578:5;1582:1;1578;:5;:::i;1599:98::-;1657:7;1684:5;1688:1;1684;:5;:::i;10187:434::-;10277:16;;;10291:1;10277:16;;;;;;;;10253:21;;10277:16;;;;;;;;;;-1:-1:-1;10277:16:0;10253:40;;10322:4;10304;10309:1;10304:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10304:23:0;;;:7;;;;;;;;;;:23;;;;10348:6;;:13;;;-1:-1:-1;;;10348:13:0;;;;:6;;;;;:11;;:13;;;;;10304:7;;10348:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10338:4;10343:1;10338:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10338:23:0;;;:7;;;;;;;;;:23;10404:6;;10372:53;;10389:4;;10404:6;10413:11;10372:8;:53::i;:::-;10436:6;;:177;;-1:-1:-1;;;10436:177:0;;-1:-1:-1;;;;;10436:6:0;;;;:57;;:177;;10508:11;;10436:6;;10550:4;;10577;;10597:15;;10436:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10242:379;10187:434;:::o;10797:219::-;10912:4;;10876:7;;-1:-1:-1;;;;;10912:4:0;;;10899:17;;;;10896:38;;-1:-1:-1;10925:7:0;;10918:14;;10896:38;10957:4;;-1:-1:-1;;;;;10957:4:0;;;10947:14;;;;10944:36;;-1:-1:-1;10970:8:0;;10963:15;;10944:36;-1:-1:-1;10997:11:0;;10797:219;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;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;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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2484:416::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2833:15;;2826:23;2814:36;;2804:64;;2864:1;2861;2854:12;2804:64;2887:7;2877:17;;;2484:416;;;;;:::o;3113:388::-;3181:6;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3297:9;3284:23;3316:31;3341:5;3316:31;:::i;:::-;3366:5;-1:-1:-1;3423:2:1;3408:18;;3395:32;3436:33;3395:32;3436:33;:::i;3506:329::-;3708:2;3690:21;;;3747:1;3727:18;;;3720:29;-1:-1:-1;;;3780:2:1;3765:18;;3758:36;3826:2;3811:18;;3506:329::o;3840:251::-;3910:6;3963:2;3951:9;3942:7;3938:23;3934:32;3931:52;;;3979:1;3976;3969:12;3931:52;4011:9;4005:16;4030:31;4055:5;4030:31;:::i;5213:127::-;5274:10;5269:3;5265:20;5262:1;5255:31;5305:4;5302:1;5295:15;5329:4;5326:1;5319:15;5345:128;5412:9;;;5433:11;;;5430:37;;;5447:18;;:::i;6631:125::-;6696:9;;;6717:10;;;6714:36;;;6730:18;;:::i;7732:306::-;7820:6;7828;7836;7889:2;7877:9;7868:7;7864:23;7860:32;7857:52;;;7905:1;7902;7895:12;7857:52;7934:9;7928:16;7918:26;;7984:2;7973:9;7969:18;7963:25;7953:35;;8028:2;8017:9;8013:18;8007:25;7997:35;;7732:306;;;;;:::o;8043:168::-;8116:9;;;8147;;8164:15;;;8158:22;;8144:37;8134:71;;8185:18;;:::i;8216:217::-;8256:1;8282;8272:132;;8326:10;8321:3;8317:20;8314:1;8307:31;8361:4;8358:1;8351:15;8389:4;8386:1;8379:15;8272:132;-1:-1:-1;8418:9:1;;8216:217::o;8570:127::-;8631:10;8626:3;8622:20;8619:1;8612:31;8662:4;8659:1;8652:15;8686:4;8683:1;8676:15;8702:980;8964:4;9012:3;9001:9;8997:19;9043:6;9032:9;9025:25;9069:2;9107:6;9102:2;9091:9;9087:18;9080:34;9150:3;9145:2;9134:9;9130:18;9123:31;9174:6;9209;9203:13;9240:6;9232;9225:22;9278:3;9267:9;9263:19;9256:26;;9317:2;9309:6;9305:15;9291:29;;9338:1;9348:195;9362:6;9359:1;9356:13;9348:195;;;9427:13;;-1:-1:-1;;;;;9423:39:1;9411:52;;9518:15;;;;9483:12;;;;9459:1;9377:9;9348:195;;;-1:-1:-1;;;;;;;9599:32:1;;;;9594:2;9579:18;;9572:60;-1:-1:-1;;;9663:3:1;9648:19;9641:35;9560:3;8702:980;-1:-1:-1;;;8702:980:1:o

Swarm Source

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