ETH Price: $4,003.43 (+2.95%)

Token

ERC-20: Enterprise Pepecoin Alliance (EPA)
 

Overview

Max Total Supply

420,690,000,000,000 EPA

Holders

363

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*五毛钱鸡饭.eth
Balance
0.000685491 EPA

Value
$0.00
0x5b0badc2f66aa438f4755ede9ac579b19cf2ffed
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:
EPA

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed


// https://pepecoin.net


pragma solidity 0.8.26;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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 EPA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isUnrestricted;
    mapping (address => bool) private _isBlocked;

    uint8 private constant _decimals = 9;
    uint256 private constant _totalTokens = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"Enterprise Pepecoin Alliance";
    string private constant _symbol = unicode"EPA";
    uint256 public maxTransferLimit = (_totalTokens * 20) / 1000;
    uint256 public maxSellLimit = (_totalTokens * 20) / 1000;
    uint256 public maxHoldingLimit = (_totalTokens * 20) / 1000;
    
    IUniswapV2Router02 private dexRouter;
    address private liquidityPool;
    uint256 public marketStartBlock = 9999999999;
    uint256 private transactionsThisBlock = 0;
    uint256 private currentBlockNum = 0;
    
    event LimitsUpdated(uint newLimit);
    event MarketEnabled(uint256 timestamp, uint256 blockNumber);
    event AccessStateUpdated(address indexed account, bool status);

    constructor () {
        _isUnrestricted[owner()] = true;
        _isUnrestricted[address(this)] = true;
        
        _balances[_msgSender()] = _totalTokens;
        emit Transfer(address(0), _msgSender(), _totalTokens);
    }

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

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address 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");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isBlocked[sender] && !_isBlocked[recipient], "Address cannot trade");
        
        if (block.number < marketStartBlock) {
            require(
                _isUnrestricted[sender] || _isUnrestricted[recipient],
                "Market not active - unauthorized transfer"
            );
        }

        if (sender != owner() && recipient != owner() && !_isUnrestricted[sender] && !_isUnrestricted[recipient]) {
            if (sender == liquidityPool) {
                require(amount <= maxTransferLimit, "Amount exceeds transfer limit");
                require(balanceOf(recipient) + amount <= maxHoldingLimit, "Would exceed holding limit");
            }

            if (recipient == liquidityPool) {
                if (block.number > currentBlockNum) {
                    transactionsThisBlock = 0;
                }
                require(transactionsThisBlock < 3, "Transaction limit per block reached");
                require(amount <= maxSellLimit, "Amount exceeds sell limit");
                transactionsThisBlock++;
                currentBlockNum = block.number;
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function removeLimits() external onlyOwner {
        maxTransferLimit = _totalTokens;
        maxHoldingLimit = _totalTokens;
        maxSellLimit = _totalTokens;
        emit LimitsUpdated(_totalTokens);
    }

    function enableMarket() external onlyOwner() {
        require(marketStartBlock > block.number, "Market already enabled");
        dexRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(dexRouter), _totalTokens);
        liquidityPool = IUniswapV2Factory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
        dexRouter.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(liquidityPool).approve(address(dexRouter), type(uint).max);
        marketStartBlock = block.number;
        emit MarketEnabled(block.timestamp, block.number);
    }

    function setUnrestricted(address account, bool status) external onlyOwner {
        require(account != address(0), "Cannot set zero address");
        _isUnrestricted[account] = status;
    }

    function bulkSetUnrestricted(address[] calldata accounts, bool status) external onlyOwner {
        require(accounts.length > 0, "Empty array");
        for (uint256 i = 0; i < accounts.length; i++) {
            require(accounts[i] != address(0), "Cannot set zero address");
            _isUnrestricted[accounts[i]] = status;
        }
    }

    function updateBlockStatus(address account, bool status) external onlyOwner {
        require(account != address(0), "Cannot update zero address");
        require(account != owner(), "Cannot update owner status");
        require(account != address(this), "Cannot update contract status");
        require(_isBlocked[account] != status, "Status already set");
        _isBlocked[account] = status;
        emit AccessStateUpdated(account, status);
    }

    function bulkUpdateBlockStatus(address[] calldata accounts, bool status) external onlyOwner {
        require(accounts.length > 0, "Empty array");
        for (uint256 i = 0; i < accounts.length; i++) {
            require(accounts[i] != address(0), "Cannot update zero address");
            require(accounts[i] != owner(), "Cannot update owner status");
            require(accounts[i] != address(this), "Cannot update contract status");
            if (_isBlocked[accounts[i]] != status) {
                _isBlocked[accounts[i]] = status;
                emit AccessStateUpdated(accounts[i], status);
            }
        }
    }

    function getBlockStatus(address account) external view returns (bool) {
        return _isBlocked[account];
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AccessStateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"LimitsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"MarketEnabled","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":[{"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"bulkSetUnrestricted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"bulkUpdateBlockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getBlockStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketStartBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setUnrestricted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"updateBlockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526103e86100136009600a6102db565b6100249066017e9d8602b4006102f0565b61002f9060146102f0565b6100399190610307565b6005556103e861004b6009600a6102db565b61005c9066017e9d8602b4006102f0565b6100679060146102f0565b6100719190610307565b6006556103e86100836009600a6102db565b6100949066017e9d8602b4006102f0565b61009f9060146102f0565b6100a99190610307565b6007556402540be3ff600a555f600b555f600c553480156100c8575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160035f61011f5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152600390925290208054909116600117905561016a6009600a6102db565b61017b9066017e9d8602b4006102f0565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101bb6009600a6102db565b6101cc9066017e9d8602b4006102f0565b60405190815260200160405180910390a3610326565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561023157808504811115610215576102156101e2565b600184161561022357908102905b60019390931c9280026101fa565b935093915050565b5f82610247575060016102d5565b8161025357505f6102d5565b816001811461026957600281146102735761028f565b60019150506102d5565b60ff841115610284576102846101e2565b50506001821b6102d5565b5060208310610133831016604e8410600b84101617156102b2575081810a6102d5565b6102be5f1984846101f6565b805f19048211156102d1576102d16101e2565b0290505b92915050565b5f6102e960ff841683610239565b9392505050565b80820281158282048414176102d5576102d56101e2565b5f8261032157634e487b7160e01b5f52601260045260245ffd5b500490565b611c62806103335f395ff3fe608060405260043610610134575f3560e01c806370a08231116100a8578063a9059cbb1161006d578063a9059cbb14610384578063b10fc89d146103a3578063b8106b99146103c2578063bd85e93b146103e1578063dd62ed3e146103f6578063f6c16d351461043a575f80fd5b806370a08231146102d7578063715018a61461030b578063751039fc1461031f5780638da5cb5b1461033357806395d89b4114610359575f80fd5b8063313ce567116100f9578063313ce56714610227578063348e4774146102425780633e594aa4146102795780634ac6c63b1461028e5780635154f136146102ad578063652e2f04146102c2575f80fd5b806302f377fc1461013f57806306fdde0314610160578063095ea7b3146101b757806318160ddd146101e657806323b872dd14610208575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015e61015936600461184f565b61044e565b005b34801561016b575f80fd5b5060408051808201909152601c81527f456e74657270726973652050657065636f696e20416c6c69616e63650000000060208201525b6040516101ae91906118d1565b60405180910390f35b3480156101c2575f80fd5b506101d66101d136600461191a565b610765565b60405190151581526020016101ae565b3480156101f1575f80fd5b506101fa61077b565b6040519081526020016101ae565b348015610213575f80fd5b506101d6610222366004611944565b61079e565b348015610232575f80fd5b50604051600981526020016101ae565b34801561024d575f80fd5b506101d661025c366004611982565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610284575f80fd5b506101fa600a5481565b348015610299575f80fd5b5061015e6102a836600461184f565b610805565b3480156102b8575f80fd5b506101fa60075481565b3480156102cd575f80fd5b506101fa60065481565b3480156102e2575f80fd5b506101fa6102f1366004611982565b6001600160a01b03165f9081526001602052604090205490565b348015610316575f80fd5b5061015e610945565b34801561032a575f80fd5b5061015e6109b6565b34801561033e575f80fd5b505f546040516001600160a01b0390911681526020016101ae565b348015610364575f80fd5b5060408051808201909152600381526245504160e81b60208201526101a1565b34801561038f575f80fd5b506101d661039e36600461191a565b610a91565b3480156103ae575f80fd5b5061015e6103bd36600461199d565b610a9d565b3480156103cd575f80fd5b5061015e6103dc36600461199d565b610ca1565b3480156103ec575f80fd5b506101fa60055481565b348015610401575f80fd5b506101fa6104103660046119d4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610445575f80fd5b5061015e610d44565b5f546001600160a01b031633146104805760405162461bcd60e51b815260040161047790611a00565b60405180910390fd5b816104bb5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f8484838181106104d8576104d8611a35565b90506020020160208101906104ed9190611982565b6001600160a01b0316036105435760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b031684848381811061056057610560611a35565b90506020020160208101906105759190611982565b6001600160a01b0316036105cb5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b308484838181106105de576105de611a35565b90506020020160208101906105f39190611982565b6001600160a01b0316036106495760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b81151560045f86868581811061066157610661611a35565b90506020020160208101906106769190611982565b6001600160a01b0316815260208101919091526040015f205460ff16151514610757578160045f8686858181106106af576106af611a35565b90506020020160208101906106c49190611982565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558383828181106106fd576106fd611a35565b90506020020160208101906107129190611982565b6001600160a01b03167fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a553198360405161074e911515815260200190565b60405180910390a25b6001016104bd565b50505050565b5f610771338484611104565b5060015b92915050565b5f6107886009600a611b40565b6107999066017e9d8602b400611b4e565b905090565b5f6107aa848484611228565b6107fb84336107f685604051806060016040528060288152602001611c05602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611761565b611104565b5060019392505050565b5f546001600160a01b0316331461082e5760405162461bcd60e51b815260040161047790611a00565b816108695760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f84848381811061088657610886611a35565b905060200201602081019061089b9190611982565b6001600160a01b0316036108eb5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b8160035f86868581811061090157610901611a35565b90506020020160208101906109169190611982565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161086b565b5f546001600160a01b0316331461096e5760405162461bcd60e51b815260040161047790611a00565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109df5760405162461bcd60e51b815260040161047790611a00565b6109eb6009600a611b40565b6109fc9066017e9d8602b400611b4e565b600555610a0b6009600a611b40565b610a1c9066017e9d8602b400611b4e565b600755610a2b6009600a611b40565b610a3c9066017e9d8602b400611b4e565b6006557f9da1d91fa7d0082eb55c343a33f4ea427cbaab2ff539d2c0bf4bc5d536e4bcc6610a6c6009600a611b40565b610a7d9066017e9d8602b400611b4e565b6040519081526020015b60405180910390a1565b5f610771338484611228565b5f546001600160a01b03163314610ac65760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b03166001600160a01b0316826001600160a01b031603610b875760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b306001600160a01b03831603610bdf5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b6001600160a01b0382165f9081526004602052604090205481151560ff909116151503610c435760405162461bcd60e51b815260206004820152601260248201527114dd185d1d5cc8185b1c9958591e481cd95d60721b6044820152606401610477565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a55319910160405180910390a25050565b5f546001600160a01b03163314610cca5760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610d1a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161047790611a00565b43600a5411610db75760405162461bcd60e51b815260206004820152601660248201527513585c9ad95d08185b1c9958591e48195b98589b195960521b6044820152606401610477565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e03903090610df26009600a611b40565b6107f69066017e9d8602b400611b4e565b60085f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e779190611b65565b6001600160a01b031663c9c653963060085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efa9190611b65565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610f44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f689190611b65565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d7194730610faf816001600160a01b03165f9081526001602052604090205490565b5f80610fc25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611028573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104d9190611b80565b505060095460085460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156110a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c69190611bab565b5043600a8190556040805142815260208101929092527fb5ab7082c95178f2fb913db100315ace1a06a9de710260741e25d2da8beb169c9101610a87565b6001600160a01b0383166111665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b0382166111c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661128c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b0382166112ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b5f811161134f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6001600160a01b0383165f9081526004602052604090205460ff1615801561138f57506001600160a01b0382165f9081526004602052604090205460ff16155b6113d25760405162461bcd60e51b8152602060048201526014602482015273416464726573732063616e6e6f7420747261646560601b6044820152606401610477565b600a54431015611477576001600160a01b0383165f9081526003602052604090205460ff168061141957506001600160a01b0382165f9081526003602052604090205460ff165b6114775760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574206e6f7420616374697665202d20756e617574686f72697a6564604482015268103a3930b739b332b960b91b6064820152608401610477565b5f546001600160a01b038481169116148015906114a157505f546001600160a01b03838116911614155b80156114c557506001600160a01b0383165f9081526003602052604090205460ff16155b80156114e957506001600160a01b0382165f9081526003602052604090205460ff16155b156116be576009546001600160a01b03908116908416036115d0576005548111156115565760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e742065786365656473207472616e73666572206c696d69740000006044820152606401610477565b60075481611578846001600160a01b03165f9081526001602052604090205490565b6115829190611bc6565b11156115d05760405162461bcd60e51b815260206004820152601a60248201527f576f756c642065786365656420686f6c64696e67206c696d69740000000000006044820152606401610477565b6009546001600160a01b03908116908316036116be57600c544311156115f5575f600b555b6003600b54106116535760405162461bcd60e51b815260206004820152602360248201527f5472616e73616374696f6e206c696d69742070657220626c6f636b20726561636044820152621a195960ea1b6064820152608401610477565b6006548111156116a55760405162461bcd60e51b815260206004820152601960248201527f416d6f756e7420657863656564732073656c6c206c696d6974000000000000006044820152606401610477565b600b8054905f6116b483611bd9565b909155505043600c555b6001600160a01b0383165f908152600160205260409020546116e09082611799565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461170e90826117e1565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121b9085815260200190565b5f81848411156117845760405162461bcd60e51b815260040161047791906118d1565b505f6117908486611bf1565b95945050505050565b5f6117da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611761565b9392505050565b5f806117ed8385611bc6565b9050838110156117da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b801515811461184c575f80fd5b50565b5f805f60408486031215611861575f80fd5b833567ffffffffffffffff811115611877575f80fd5b8401601f81018613611887575f80fd5b803567ffffffffffffffff81111561189d575f80fd5b8660208260051b84010111156118b1575f80fd5b6020918201945092508401356118c68161183f565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461184c575f80fd5b5f806040838503121561192b575f80fd5b823561193681611906565b946020939093013593505050565b5f805f60608486031215611956575f80fd5b833561196181611906565b9250602084013561197181611906565b929592945050506040919091013590565b5f60208284031215611992575f80fd5b81356117da81611906565b5f80604083850312156119ae575f80fd5b82356119b981611906565b915060208301356119c98161183f565b809150509250929050565b5f80604083850312156119e5575f80fd5b82356119f081611906565b915060208301356119c981611906565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611a9857808504811115611a7c57611a7c611a49565b6001841615611a8a57908102905b60019390931c928002611a61565b935093915050565b5f82611aae57506001610775565b81611aba57505f610775565b8160018114611ad05760028114611ada57611af6565b6001915050610775565b60ff841115611aeb57611aeb611a49565b50506001821b610775565b5060208310610133831016604e8410600b8410161715611b19575081810a610775565b611b255f198484611a5d565b805f1904821115611b3857611b38611a49565b029392505050565b5f6117da60ff841683611aa0565b808202811582820484141761077557610775611a49565b5f60208284031215611b75575f80fd5b81516117da81611906565b5f805f60608486031215611b92575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611bbb575f80fd5b81516117da8161183f565b8082018082111561077557610775611a49565b5f60018201611bea57611bea611a49565b5060010190565b8181038181111561077557610775611a4956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220206dc29b71c4680936e9ca279be11ded83dd654cd65d74d847802d2b2939235764736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806370a08231116100a8578063a9059cbb1161006d578063a9059cbb14610384578063b10fc89d146103a3578063b8106b99146103c2578063bd85e93b146103e1578063dd62ed3e146103f6578063f6c16d351461043a575f80fd5b806370a08231146102d7578063715018a61461030b578063751039fc1461031f5780638da5cb5b1461033357806395d89b4114610359575f80fd5b8063313ce567116100f9578063313ce56714610227578063348e4774146102425780633e594aa4146102795780634ac6c63b1461028e5780635154f136146102ad578063652e2f04146102c2575f80fd5b806302f377fc1461013f57806306fdde0314610160578063095ea7b3146101b757806318160ddd146101e657806323b872dd14610208575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015e61015936600461184f565b61044e565b005b34801561016b575f80fd5b5060408051808201909152601c81527f456e74657270726973652050657065636f696e20416c6c69616e63650000000060208201525b6040516101ae91906118d1565b60405180910390f35b3480156101c2575f80fd5b506101d66101d136600461191a565b610765565b60405190151581526020016101ae565b3480156101f1575f80fd5b506101fa61077b565b6040519081526020016101ae565b348015610213575f80fd5b506101d6610222366004611944565b61079e565b348015610232575f80fd5b50604051600981526020016101ae565b34801561024d575f80fd5b506101d661025c366004611982565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610284575f80fd5b506101fa600a5481565b348015610299575f80fd5b5061015e6102a836600461184f565b610805565b3480156102b8575f80fd5b506101fa60075481565b3480156102cd575f80fd5b506101fa60065481565b3480156102e2575f80fd5b506101fa6102f1366004611982565b6001600160a01b03165f9081526001602052604090205490565b348015610316575f80fd5b5061015e610945565b34801561032a575f80fd5b5061015e6109b6565b34801561033e575f80fd5b505f546040516001600160a01b0390911681526020016101ae565b348015610364575f80fd5b5060408051808201909152600381526245504160e81b60208201526101a1565b34801561038f575f80fd5b506101d661039e36600461191a565b610a91565b3480156103ae575f80fd5b5061015e6103bd36600461199d565b610a9d565b3480156103cd575f80fd5b5061015e6103dc36600461199d565b610ca1565b3480156103ec575f80fd5b506101fa60055481565b348015610401575f80fd5b506101fa6104103660046119d4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610445575f80fd5b5061015e610d44565b5f546001600160a01b031633146104805760405162461bcd60e51b815260040161047790611a00565b60405180910390fd5b816104bb5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f8484838181106104d8576104d8611a35565b90506020020160208101906104ed9190611982565b6001600160a01b0316036105435760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b031684848381811061056057610560611a35565b90506020020160208101906105759190611982565b6001600160a01b0316036105cb5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b308484838181106105de576105de611a35565b90506020020160208101906105f39190611982565b6001600160a01b0316036106495760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b81151560045f86868581811061066157610661611a35565b90506020020160208101906106769190611982565b6001600160a01b0316815260208101919091526040015f205460ff16151514610757578160045f8686858181106106af576106af611a35565b90506020020160208101906106c49190611982565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558383828181106106fd576106fd611a35565b90506020020160208101906107129190611982565b6001600160a01b03167fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a553198360405161074e911515815260200190565b60405180910390a25b6001016104bd565b50505050565b5f610771338484611104565b5060015b92915050565b5f6107886009600a611b40565b6107999066017e9d8602b400611b4e565b905090565b5f6107aa848484611228565b6107fb84336107f685604051806060016040528060288152602001611c05602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611761565b611104565b5060019392505050565b5f546001600160a01b0316331461082e5760405162461bcd60e51b815260040161047790611a00565b816108695760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610477565b5f5b8281101561075f575f84848381811061088657610886611a35565b905060200201602081019061089b9190611982565b6001600160a01b0316036108eb5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b8160035f86868581811061090157610901611a35565b90506020020160208101906109169190611982565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161086b565b5f546001600160a01b0316331461096e5760405162461bcd60e51b815260040161047790611a00565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109df5760405162461bcd60e51b815260040161047790611a00565b6109eb6009600a611b40565b6109fc9066017e9d8602b400611b4e565b600555610a0b6009600a611b40565b610a1c9066017e9d8602b400611b4e565b600755610a2b6009600a611b40565b610a3c9066017e9d8602b400611b4e565b6006557f9da1d91fa7d0082eb55c343a33f4ea427cbaab2ff539d2c0bf4bc5d536e4bcc6610a6c6009600a611b40565b610a7d9066017e9d8602b400611b4e565b6040519081526020015b60405180910390a1565b5f610771338484611228565b5f546001600160a01b03163314610ac65760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465207a65726f20616464726573730000000000006044820152606401610477565b5f546001600160a01b03166001600160a01b0316826001600160a01b031603610b875760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420757064617465206f776e6572207374617475730000000000006044820152606401610477565b306001600160a01b03831603610bdf5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742075706461746520636f6e7472616374207374617475730000006044820152606401610477565b6001600160a01b0382165f9081526004602052604090205481151560ff909116151503610c435760405162461bcd60e51b815260206004820152601260248201527114dd185d1d5cc8185b1c9958591e481cd95d60721b6044820152606401610477565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527fa9c983df23f186d1e36d912f72f1e147d84f7c1614787f88eabb701834a55319910160405180910390a25050565b5f546001600160a01b03163314610cca5760405162461bcd60e51b815260040161047790611a00565b6001600160a01b038216610d1a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b6044820152606401610477565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161047790611a00565b43600a5411610db75760405162461bcd60e51b815260206004820152601660248201527513585c9ad95d08185b1c9958591e48195b98589b195960521b6044820152606401610477565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e03903090610df26009600a611b40565b6107f69066017e9d8602b400611b4e565b60085f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e779190611b65565b6001600160a01b031663c9c653963060085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efa9190611b65565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610f44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f689190611b65565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d7194730610faf816001600160a01b03165f9081526001602052604090205490565b5f80610fc25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611028573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104d9190611b80565b505060095460085460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156110a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c69190611bab565b5043600a8190556040805142815260208101929092527fb5ab7082c95178f2fb913db100315ace1a06a9de710260741e25d2da8beb169c9101610a87565b6001600160a01b0383166111665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b0382166111c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661128c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b0382166112ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b5f811161134f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6001600160a01b0383165f9081526004602052604090205460ff1615801561138f57506001600160a01b0382165f9081526004602052604090205460ff16155b6113d25760405162461bcd60e51b8152602060048201526014602482015273416464726573732063616e6e6f7420747261646560601b6044820152606401610477565b600a54431015611477576001600160a01b0383165f9081526003602052604090205460ff168061141957506001600160a01b0382165f9081526003602052604090205460ff165b6114775760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574206e6f7420616374697665202d20756e617574686f72697a6564604482015268103a3930b739b332b960b91b6064820152608401610477565b5f546001600160a01b038481169116148015906114a157505f546001600160a01b03838116911614155b80156114c557506001600160a01b0383165f9081526003602052604090205460ff16155b80156114e957506001600160a01b0382165f9081526003602052604090205460ff16155b156116be576009546001600160a01b03908116908416036115d0576005548111156115565760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e742065786365656473207472616e73666572206c696d69740000006044820152606401610477565b60075481611578846001600160a01b03165f9081526001602052604090205490565b6115829190611bc6565b11156115d05760405162461bcd60e51b815260206004820152601a60248201527f576f756c642065786365656420686f6c64696e67206c696d69740000000000006044820152606401610477565b6009546001600160a01b03908116908316036116be57600c544311156115f5575f600b555b6003600b54106116535760405162461bcd60e51b815260206004820152602360248201527f5472616e73616374696f6e206c696d69742070657220626c6f636b20726561636044820152621a195960ea1b6064820152608401610477565b6006548111156116a55760405162461bcd60e51b815260206004820152601960248201527f416d6f756e7420657863656564732073656c6c206c696d6974000000000000006044820152606401610477565b600b8054905f6116b483611bd9565b909155505043600c555b6001600160a01b0383165f908152600160205260409020546116e09082611799565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461170e90826117e1565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121b9085815260200190565b5f81848411156117845760405162461bcd60e51b815260040161047791906118d1565b505f6117908486611bf1565b95945050505050565b5f6117da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611761565b9392505050565b5f806117ed8385611bc6565b9050838110156117da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b801515811461184c575f80fd5b50565b5f805f60408486031215611861575f80fd5b833567ffffffffffffffff811115611877575f80fd5b8401601f81018613611887575f80fd5b803567ffffffffffffffff81111561189d575f80fd5b8660208260051b84010111156118b1575f80fd5b6020918201945092508401356118c68161183f565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461184c575f80fd5b5f806040838503121561192b575f80fd5b823561193681611906565b946020939093013593505050565b5f805f60608486031215611956575f80fd5b833561196181611906565b9250602084013561197181611906565b929592945050506040919091013590565b5f60208284031215611992575f80fd5b81356117da81611906565b5f80604083850312156119ae575f80fd5b82356119b981611906565b915060208301356119c98161183f565b809150509250929050565b5f80604083850312156119e5575f80fd5b82356119f081611906565b915060208301356119c981611906565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611a9857808504811115611a7c57611a7c611a49565b6001841615611a8a57908102905b60019390931c928002611a61565b935093915050565b5f82611aae57506001610775565b81611aba57505f610775565b8160018114611ad05760028114611ada57611af6565b6001915050610775565b60ff841115611aeb57611aeb611a49565b50506001821b610775565b5060208310610133831016604e8410600b8410161715611b19575081810a610775565b611b255f198484611a5d565b805f1904821115611b3857611b38611a49565b029392505050565b5f6117da60ff841683611aa0565b808202811582820484141761077557610775611a49565b5f60208284031215611b75575f80fd5b81516117da81611906565b5f805f60608486031215611b92575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611bbb575f80fd5b81516117da8161183f565b8082018082111561077557610775611a49565b5f60018201611bea57611bea611a49565b5060010190565b8181038181111561077557610775611a4956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220206dc29b71c4680936e9ca279be11ded83dd654cd65d74d847802d2b2939235764736f6c634300081a0033

Deployed Bytecode Sourcemap

3294:7535:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10021:645;;;;;;;;;;-1:-1:-1;10021:645:0;;;;;:::i;:::-;;:::i;:::-;;4713:83;;;;;;;;;;-1:-1:-1;4783:5:0;;;;;;;;;;;;;;;;;4713:83;;;;;;;:::i;:::-;;;;;;;;5551:161;;;;;;;;;;-1:-1:-1;5551:161:0;;;;;:::i;:::-;;:::i;:::-;;;1983:14:1;;1976:22;1958:41;;1946:2;1931:18;5551:161:0;1818:187:1;4990:100:0;;;;;;;;;;;;;:::i;:::-;;;2156:25:1;;;2144:2;2129:18;4990:100:0;2010:177:1;5720:313:0;;;;;;;;;;-1:-1:-1;5720:313:0;;;;;:::i;:::-;;:::i;4899:83::-;;;;;;;;;;-1:-1:-1;4899:83:0;;3648:1;2847:36:1;;2835:2;2820:18;4899:83:0;2705:184:1;10674:115:0;;;;;;;;;;-1:-1:-1;10674:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;10762:19:0;10738:4;10762:19;;;:10;:19;;;;;;;;;10674:115;4144:44;;;;;;;;;;;;;;;;9196:348;;;;;;;;;;-1:-1:-1;9196:348:0;;;;;:::i;:::-;;:::i;3993:59::-;;;;;;;;;;;;;;;;3930:56;;;;;;;;;;;;;;;;5098:119;;;;;;;;;;-1:-1:-1;5098:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5191:18:0;5164:7;5191:18;;;:9;:18;;;;;;;5098:119;2590:148;;;;;;;;;;;;;:::i;8054:215::-;;;;;;;;;;;;;:::i;2376:79::-;;;;;;;;;;-1:-1:-1;2414:7:0;2441:6;2376:79;;-1:-1:-1;;;;;2441:6:0;;;3292:51:1;;3280:2;3265:18;2376:79:0;3146:203:1;4804:87:0;;;;;;;;;;-1:-1:-1;4876:7:0;;;;;;;;;;;;-1:-1:-1;;;4876:7:0;;;;4804:87;;5225:167;;;;;;;;;;-1:-1:-1;5225:167:0;;;;;:::i;:::-;;:::i;9552:461::-;;;;;;;;;;-1:-1:-1;9552:461:0;;;;;:::i;:::-;;:::i;8994:194::-;;;;;;;;;;-1:-1:-1;8994:194:0;;;;;:::i;:::-;;:::i;3863:60::-;;;;;;;;;;;;;;;;5400:143;;;;;;;;;;-1:-1:-1;5400:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5508:18:0;;;5481:7;5508:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5400:143;8277:709;;;;;;;;;;;;;:::i;10021:645::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;;;;;;;;;10132:19;10124:43:::1;;;::::0;-1:-1:-1;;;10124:43:0;;4697:2:1;10124:43:0::1;::::0;::::1;4679:21:1::0;4736:2;4716:18;;;4709:30;-1:-1:-1;;;4755:18:1;;;4748:41;4806:18;;10124:43:0::1;4495:335:1::0;10124:43:0::1;10183:9;10178:481;10198:19:::0;;::::1;10178:481;;;10270:1;10247:8:::0;;10256:1;10247:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10247:25:0::1;::::0;10239:64:::1;;;::::0;-1:-1:-1;;;10239:64:0;;5169:2:1;10239:64:0::1;::::0;::::1;5151:21:1::0;5208:2;5188:18;;;5181:30;5247:28;5227:18;;;5220:56;5293:18;;10239:64:0::1;4967:350:1::0;10239:64:0::1;2414:7:::0;2441:6;-1:-1:-1;;;;;2441:6:0;10326:8;;10335:1;10326:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10326:22:0::1;::::0;10318:61:::1;;;::::0;-1:-1:-1;;;10318:61:0;;5524:2:1;10318:61:0::1;::::0;::::1;5506:21:1::0;5563:2;5543:18;;;5536:30;5602:28;5582:18;;;5575:56;5648:18;;10318:61:0::1;5322:350:1::0;10318:61:0::1;10425:4;10402:8:::0;;10411:1;10402:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10402:28:0::1;::::0;10394:70:::1;;;::::0;-1:-1:-1;;;10394:70:0;;5879:2:1;10394:70:0::1;::::0;::::1;5861:21:1::0;5918:2;5898:18;;;5891:30;5957:31;5937:18;;;5930:59;6006:18;;10394:70:0::1;5677:353:1::0;10394:70:0::1;10510:6;10483:33;;:10;:23;10494:8;;10503:1;10494:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10483:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10483:23:0;;::::1;;:33;;;10479:169;;10563:6;10537:10;:23;10548:8;;10557:1;10548:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10537:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10537:23:0;:32;;-1:-1:-1;;10537:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10612:8;;10621:1;10612:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10593:39:0::1;;10625:6;10593:39;;;;1983:14:1::0;1976:22;1958:41;;1946:2;1931:18;;1818:187;10593:39:0::1;;;;;;;;10479:169;10219:3;;10178:481;;;;10021:645:::0;;;:::o;5551:161::-;5626:4;5643:39;213:10;5666:7;5675:6;5643:8;:39::i;:::-;-1:-1:-1;5700:4:0;5551:161;;;;;:::o;4990:100::-;5043:7;3714:13;3648:1;3714:2;:13;:::i;:::-;3696:31;;:15;:31;:::i;:::-;5063:19;;4990:100;:::o;5720:313::-;5818:4;5835:36;5845:6;5853:9;5864:6;5835:9;:36::i;:::-;5882:121;5891:6;213:10;5913:89;5951:6;5913:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5913:19:0;;;;;;:11;:19;;;;;;;;213:10;5913:33;;;;;;;;;;:37;:89::i;:::-;5882:8;:121::i;:::-;-1:-1:-1;6021:4:0;5720:313;;;;;:::o;9196:348::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;9305:19;9297:43:::1;;;::::0;-1:-1:-1;;;9297:43:0;;4697:2:1;9297:43:0::1;::::0;::::1;4679:21:1::0;4736:2;4716:18;;;4709:30;-1:-1:-1;;;4755:18:1;;;4748:41;4806:18;;9297:43:0::1;4495:335:1::0;9297:43:0::1;9356:9;9351:186;9371:19:::0;;::::1;9351:186;;;9443:1;9420:8:::0;;9429:1;9420:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9420:25:0::1;::::0;9412:61:::1;;;::::0;-1:-1:-1;;;9412:61:0;;7974:2:1;9412:61:0::1;::::0;::::1;7956:21:1::0;8013:2;7993:18;;;7986:30;-1:-1:-1;;;8032:18:1;;;8025:53;8095:18;;9412:61:0::1;7772:347:1::0;9412:61:0::1;9519:6;9488:15;:28;9504:8;;9513:1;9504:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9488:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9488:28:0;:37;;-1:-1:-1;;9488:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;9392:3:0::1;9351:186;;2590:148:::0;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;2697:1:::1;2681:6:::0;;2660:40:::1;::::0;-1:-1:-1;;;;;2681:6:0;;::::1;::::0;2660:40:::1;::::0;2697:1;;2660:40:::1;2728:1;2711:19:::0;;-1:-1:-1;;;;;;2711:19:0::1;::::0;;2590:148::o;8054:215::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8108:16;:31:::0;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8150:15;:30:::0;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8191:12;:27:::0;8234::::1;3714:13;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;:::-;8234:27;::::0;2156:25:1;;;2144:2;2129:18;8234:27:0::1;;;;;;;;8054:215::o:0;5225:167::-;5303:4;5320:42;213:10;5344:9;5355:6;5320:9;:42::i;9552:461::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9647:21:0;::::1;9639:60;;;::::0;-1:-1:-1;;;9639:60:0;;5169:2:1;9639:60:0::1;::::0;::::1;5151:21:1::0;5208:2;5188:18;;;5181:30;5247:28;5227:18;;;5220:56;5293:18;;9639:60:0::1;4967:350:1::0;9639:60:0::1;2414:7:::0;2441:6;-1:-1:-1;;;;;2441:6:0;-1:-1:-1;;;;;9718:18:0::1;:7;-1:-1:-1::0;;;;;9718:18:0::1;::::0;9710:57:::1;;;::::0;-1:-1:-1;;;9710:57:0;;5524:2:1;9710:57:0::1;::::0;::::1;5506:21:1::0;5563:2;5543:18;;;5536:30;5602:28;5582:18;;;5575:56;5648:18;;9710:57:0::1;5322:350:1::0;9710:57:0::1;9805:4;-1:-1:-1::0;;;;;9786:24:0;::::1;::::0;9778:66:::1;;;::::0;-1:-1:-1;;;9778:66:0;;5879:2:1;9778:66:0::1;::::0;::::1;5861:21:1::0;5918:2;5898:18;;;5891:30;5957:31;5937:18;;;5930:59;6006:18;;9778:66:0::1;5677:353:1::0;9778:66:0::1;-1:-1:-1::0;;;;;9863:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;:29;::::1;;:19;::::0;;::::1;:29;;::::0;9855:60:::1;;;::::0;-1:-1:-1;;;9855:60:0;;8326:2:1;9855:60:0::1;::::0;::::1;8308:21:1::0;8365:2;8345:18;;;8338:30;-1:-1:-1;;;8384:18:1;;;8377:48;8442:18;;9855:60:0::1;8124:342:1::0;9855:60:0::1;-1:-1:-1::0;;;;;9926:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;9926:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;9970:35;;1958:41:1;;;9970:35:0::1;::::0;1931:18:1;9970:35:0::1;;;;;;;9552:461:::0;;:::o;8994:194::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9087:21:0;::::1;9079:57;;;::::0;-1:-1:-1;;;9079:57:0;;7974:2:1;9079:57:0::1;::::0;::::1;7956:21:1::0;8013:2;7993:18;;;7986:30;-1:-1:-1;;;8032:18:1;;;8025:53;8095:18;;9079:57:0::1;7772:347:1::0;9079:57:0::1;-1:-1:-1::0;;;;;9147:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:33;;-1:-1:-1;;9147:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8994:194::o;8277:709::-;2503:6;;-1:-1:-1;;;;;2503:6:0;213:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;;;;;;:::i;:::-;8360:12:::1;8341:16;;:31;8333:66;;;::::0;-1:-1:-1;;;8333:66:0;;8673:2:1;8333:66:0::1;::::0;::::1;8655:21:1::0;8712:2;8692:18;;;8685:30;-1:-1:-1;;;8731:18:1;;;8724:52;8793:18;;8333:66:0::1;8471:346:1::0;8333:66:0::1;8410:9;:74:::0;;-1:-1:-1;;;;;;8410:74:0::1;8441:42;8410:74:::0;;::::1;::::0;;;8495:57:::1;::::0;8512:4:::1;::::0;3714:13:::1;3648:1;3714:2;:13;:::i;:::-;3696:31;::::0;:15:::1;:31;:::i;8495:57::-;8597:9;;;;;;;;;-1:-1:-1::0;;;;;8597:9:0::1;-1:-1:-1::0;;;;;8597:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8579:49:0::1;;8637:4;8644:9;;;;;;;;;-1:-1:-1::0;;;;;8644:9:0::1;-1:-1:-1::0;;;;;8644:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8579:82;::::0;-1:-1:-1;;;;;;8579:82:0::1;::::0;;;;;;-1:-1:-1;;;;;9270:32:1;;;8579:82:0::1;::::0;::::1;9252:51:1::0;9339:32;;9319:18;;;9312:60;9225:18;;8579:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8563:13;:98:::0;;-1:-1:-1;;;;;8563:98:0;;::::1;-1:-1:-1::0;;;;;;8563:98:0;;::::1;;::::0;;8672:9:::1;::::0;::::1;:25;8705:21;8736:4;8743:24;8736:4:::0;-1:-1:-1;;;;;5191:18:0;5164:7;5191:18;;;:9;:18;;;;;;;5098:119;8743:24:::1;8769:1;8772::::0;8775:7:::1;2414::::0;2441:6;-1:-1:-1;;;;;2441:6:0;;2376:79;8775:7:::1;8672:128;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8672:128:0;;;-1:-1:-1;;;;;9704:32:1;;;8672:128:0::1;::::0;::::1;9686:51:1::0;9753:18;;;9746:34;;;;9796:18;;;9789:34;;;;9839:18;;;9832:34;9903:32;;;9882:19;;;9875:61;8784:15:0::1;9952:19:1::0;;;9945:35;9658:19;;8672:128:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8818:13:0::1;::::0;8849:9:::1;::::0;8811:65:::1;::::0;-1:-1:-1;;;8811:65:0;;-1:-1:-1;;;;;8849:9:0;;::::1;8811:65;::::0;::::1;10626:51:1::0;-1:-1:-1;;10693:18:1;;;10686:34;8818:13:0;::::1;::::0;-1:-1:-1;8811:29:0::1;::::0;10599:18:1;;8811:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8906:12:0::1;8887:16;:31:::0;;;8934:44:::1;::::0;;8948:15:::1;11155:25:1::0;;11211:2;11196:18;;11189:34;;;;8934:44:0::1;::::0;11128:18:1;8934:44:0::1;10981:248:1::0;6041:335:0;-1:-1:-1;;;;;6134:19:0;;6126:68;;;;-1:-1:-1;;;6126:68:0;;11436:2:1;6126:68:0;;;11418:21:1;11475:2;11455:18;;;11448:30;11514:34;11494:18;;;11487:62;-1:-1:-1;;;11565:18:1;;;11558:34;11609:19;;6126:68:0;11234:400:1;6126:68:0;-1:-1:-1;;;;;6213:21:0;;6205:68;;;;-1:-1:-1;;;6205:68:0;;11841:2:1;6205:68:0;;;11823:21:1;11880:2;11860:18;;;11853:30;11919:34;11899:18;;;11892:62;-1:-1:-1;;;11970:18:1;;;11963:32;12012:19;;6205:68:0;11639:398:1;6205:68:0;-1:-1:-1;;;;;6284:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6336:32;;2156:25:1;;;6336:32:0;;2129:18:1;6336:32:0;;;;;;;;6041:335;;;:::o;6384:1662::-;-1:-1:-1;;;;;6481:20:0;;6473:70;;;;-1:-1:-1;;;6473:70:0;;12244:2:1;6473:70:0;;;12226:21:1;12283:2;12263:18;;;12256:30;12322:34;12302:18;;;12295:62;-1:-1:-1;;;12373:18:1;;;12366:35;12418:19;;6473:70:0;12042:401:1;6473:70:0;-1:-1:-1;;;;;6562:23:0;;6554:71;;;;-1:-1:-1;;;6554:71:0;;12650:2:1;6554:71:0;;;12632:21:1;12689:2;12669:18;;;12662:30;12728:34;12708:18;;;12701:62;-1:-1:-1;;;12779:18:1;;;12772:33;12822:19;;6554:71:0;12448:399:1;6554:71:0;6653:1;6644:6;:10;6636:64;;;;-1:-1:-1;;;6636:64:0;;13054:2:1;6636:64:0;;;13036:21:1;13093:2;13073:18;;;13066:30;13132:34;13112:18;;;13105:62;-1:-1:-1;;;13183:18:1;;;13176:39;13232:19;;6636:64:0;12852:405:1;6636:64:0;-1:-1:-1;;;;;6720:18:0;;;;;;:10;:18;;;;;;;;6719:19;:45;;;;-1:-1:-1;;;;;;6743:21:0;;;;;;:10;:21;;;;;;;;6742:22;6719:45;6711:78;;;;-1:-1:-1;;;6711:78:0;;13464:2:1;6711:78:0;;;13446:21:1;13503:2;13483:18;;;13476:30;-1:-1:-1;;;13522:18:1;;;13515:50;13582:18;;6711:78:0;13262:344:1;6711:78:0;6829:16;;6814:12;:31;6810:220;;;-1:-1:-1;;;;;6888:23:0;;;;;;:15;:23;;;;;;;;;:53;;-1:-1:-1;;;;;;6915:26:0;;;;;;:15;:26;;;;;;;;6888:53;6862:156;;;;-1:-1:-1;;;6862:156:0;;13813:2:1;6862:156:0;;;13795:21:1;13852:2;13832:18;;;13825:30;13891:34;13871:18;;;13864:62;-1:-1:-1;;;13942:18:1;;;13935:39;13991:19;;6862:156:0;13611:405:1;6862:156:0;2414:7;2441:6;-1:-1:-1;;;;;7046:17:0;;;2441:6;;7046:17;;;;:41;;-1:-1:-1;2414:7:0;2441:6;-1:-1:-1;;;;;7067:20:0;;;2441:6;;7067:20;;7046:41;:69;;;;-1:-1:-1;;;;;;7092:23:0;;;;;;:15;:23;;;;;;;;7091:24;7046:69;:100;;;;-1:-1:-1;;;;;;7120:26:0;;;;;;:15;:26;;;;;;;;7119:27;7046:100;7042:818;;;7177:13;;-1:-1:-1;;;;;7177:13:0;;;7167:23;;;;7163:238;;7229:16;;7219:6;:26;;7211:68;;;;-1:-1:-1;;;7211:68:0;;14223:2:1;7211:68:0;;;14205:21:1;14262:2;14242:18;;;14235:30;14301:31;14281:18;;;14274:59;14350:18;;7211:68:0;14021:353:1;7211:68:0;7339:15;;7329:6;7306:20;7316:9;-1:-1:-1;;;;;5191:18:0;5164:7;5191:18;;;:9;:18;;;;;;;5098:119;7306:20;:29;;;;:::i;:::-;:48;;7298:87;;;;-1:-1:-1;;;7298:87:0;;14711:2:1;7298:87:0;;;14693:21:1;14750:2;14730:18;;;14723:30;14789:28;14769:18;;;14762:56;14835:18;;7298:87:0;14509:350:1;7298:87:0;7434:13;;-1:-1:-1;;;;;7434:13:0;;;7421:26;;;;7417:432;;7487:15;;7472:12;:30;7468:104;;;7551:1;7527:21;:25;7468:104;7622:1;7598:21;;:25;7590:73;;;;-1:-1:-1;;;7590:73:0;;15066:2:1;7590:73:0;;;15048:21:1;15105:2;15085:18;;;15078:30;15144:34;15124:18;;;15117:62;-1:-1:-1;;;15195:18:1;;;15188:33;15238:19;;7590:73:0;14864:399:1;7590:73:0;7700:12;;7690:6;:22;;7682:60;;;;-1:-1:-1;;;7682:60:0;;15470:2:1;7682:60:0;;;15452:21:1;15509:2;15489:18;;;15482:30;15548:27;15528:18;;;15521:55;15593:18;;7682:60:0;15268:349:1;7682:60:0;7761:21;:23;;;:21;:23;;;:::i;:::-;;;;-1:-1:-1;;7821:12:0;7803:15;:30;7417:432;-1:-1:-1;;;;;7892:17:0;;;;;;:9;:17;;;;;;:29;;7914:6;7892:21;:29::i;:::-;-1:-1:-1;;;;;7872:17:0;;;;;;;:9;:17;;;;;;:49;;;;7955:20;;;;;;;:32;;7980:6;7955:24;:32::i;:::-;-1:-1:-1;;;;;7932:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8003:35;;;;;;;;;;8031:6;2156:25:1;;2144:2;2129:18;;2010:177;1270:190:0;1356:7;1392:12;1384:6;;;;1376:29;;;;-1:-1:-1;;;1376:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1416:9:0;1428:5;1432:1;1428;:5;:::i;:::-;1416:17;1270:190;-1:-1:-1;;;;;1270:190:0:o;1126:136::-;1184:7;1211:43;1215:1;1218;1211:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1204:50;1126:136;-1:-1:-1;;;1126:136:0:o;939:179::-;997:7;;1029:5;1033:1;1029;:5;:::i;:::-;1017:17;;1058:1;1053;:6;;1045:46;;;;-1:-1:-1;;;1045:46:0;;16097:2:1;1045:46:0;;;16079:21:1;16136:2;16116:18;;;16109:30;16175:29;16155:18;;;16148:57;16222:18;;1045:46:0;15895:351:1;14:118;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:745::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;387:18;379:6;376:30;373:50;;;419:1;416;409:12;373:50;442:22;;495:4;487:13;;483:27;-1:-1:-1;473:55:1;;524:1;521;514:12;473:55;564:2;551:16;590:18;582:6;579:30;576:50;;;622:1;619;612:12;576:50;677:7;670:4;660:6;657:1;653:14;649:2;645:23;641:34;638:47;635:67;;;698:1;695;688:12;635:67;729:4;721:13;;;;-1:-1:-1;753:6:1;-1:-1:-1;794:20:1;;781:34;824:28;781:34;824:28;:::i;:::-;871:5;861:15;;;137:745;;;;;:::o;887:418::-;1036:2;1025:9;1018:21;999:4;1068:6;1062:13;1111:6;1106:2;1095:9;1091:18;1084:34;1170:6;1165:2;1157:6;1153:15;1148:2;1137:9;1133:18;1127:50;1226:1;1221:2;1212:6;1201:9;1197:22;1193:31;1186:42;1296:2;1289;1285:7;1280:2;1272:6;1268:15;1264:29;1253:9;1249:45;1245:54;1237:62;;;887:418;;;;:::o;1310:131::-;-1:-1:-1;;;;;1385:31:1;;1375:42;;1365:70;;1431:1;1428;1421:12;1446:367;1514:6;1522;1575:2;1563:9;1554:7;1550:23;1546:32;1543:52;;;1591:1;1588;1581:12;1543:52;1630:9;1617:23;1649:31;1674:5;1649:31;:::i;:::-;1699:5;1777:2;1762:18;;;;1749:32;;-1:-1:-1;;;1446:367:1:o;2192:508::-;2269:6;2277;2285;2338:2;2326:9;2317:7;2313:23;2309:32;2306:52;;;2354:1;2351;2344:12;2306:52;2393:9;2380:23;2412:31;2437:5;2412:31;:::i;:::-;2462:5;-1:-1:-1;2519:2:1;2504:18;;2491:32;2532:33;2491:32;2532:33;:::i;:::-;2192:508;;2584:7;;-1:-1:-1;;;2664:2:1;2649:18;;;;2636:32;;2192:508::o;2894:247::-;2953:6;3006:2;2994:9;2985:7;2981:23;2977:32;2974:52;;;3022:1;3019;3012:12;2974:52;3061:9;3048:23;3080:31;3105:5;3080:31;:::i;3354:382::-;3419:6;3427;3480:2;3468:9;3459:7;3455:23;3451:32;3448:52;;;3496:1;3493;3486:12;3448:52;3535:9;3522:23;3554:31;3579:5;3554:31;:::i;:::-;3604:5;-1:-1:-1;3661:2:1;3646:18;;3633:32;3674:30;3633:32;3674:30;:::i;:::-;3723:7;3713:17;;;3354:382;;;;;:::o;3741:388::-;3809:6;3817;3870:2;3858:9;3849:7;3845:23;3841:32;3838:52;;;3886:1;3883;3876:12;3838:52;3925:9;3912:23;3944:31;3969:5;3944:31;:::i;:::-;3994:5;-1:-1:-1;4051:2:1;4036:18;;4023:32;4064:33;4023:32;4064:33;:::i;4134:356::-;4336:2;4318:21;;;4355:18;;;4348:30;4414:34;4409:2;4394:18;;4387:62;4481:2;4466:18;;4134:356::o;4835:127::-;4896:10;4891:3;4887:20;4884:1;4877:31;4927:4;4924:1;4917:15;4951:4;4948:1;4941:15;6035:127;6096:10;6091:3;6087:20;6084:1;6077:31;6127:4;6124:1;6117:15;6151:4;6148:1;6141:15;6167:375;6255:1;6273:5;6287:249;6308:1;6298:8;6295:15;6287:249;;;6358:4;6353:3;6349:14;6343:4;6340:24;6337:50;;;6367:18;;:::i;:::-;6417:1;6407:8;6403:16;6400:49;;;6431:16;;;;6400:49;6514:1;6510:16;;;;;6470:15;;6287:249;;;6167:375;;;;;;:::o;6547:902::-;6596:5;6626:8;6616:80;;-1:-1:-1;6667:1:1;6681:5;;6616:80;6715:4;6705:76;;-1:-1:-1;6752:1:1;6766:5;;6705:76;6797:4;6815:1;6810:59;;;;6883:1;6878:174;;;;6790:262;;6810:59;6840:1;6831:10;;6854:5;;;6878:174;6915:3;6905:8;6902:17;6899:43;;;6922:18;;:::i;:::-;-1:-1:-1;;6978:1:1;6964:16;;7037:5;;6790:262;;7136:2;7126:8;7123:16;7117:3;7111:4;7108:13;7104:36;7098:2;7088:8;7085:16;7080:2;7074:4;7071:12;7067:35;7064:77;7061:203;;;-1:-1:-1;7173:19:1;;;7249:5;;7061:203;7296:42;-1:-1:-1;;7321:8:1;7315:4;7296:42;:::i;:::-;7374:6;7370:1;7366:6;7362:19;7353:7;7350:32;7347:58;;;7385:18;;:::i;:::-;7423:20;;6547:902;-1:-1:-1;;;6547:902:1:o;7454:140::-;7512:5;7541:47;7582:4;7572:8;7568:19;7562:4;7541:47;:::i;7599:168::-;7672:9;;;7703;;7720:15;;;7714:22;;7700:37;7690:71;;7741:18;;:::i;8822:251::-;8892:6;8945:2;8933:9;8924:7;8920:23;8916:32;8913:52;;;8961:1;8958;8951:12;8913:52;8993:9;8987:16;9012:31;9037:5;9012:31;:::i;9991:456::-;10079:6;10087;10095;10148:2;10136:9;10127:7;10123:23;10119:32;10116:52;;;10164:1;10161;10154:12;10116:52;-1:-1:-1;;10209:16:1;;10315:2;10300:18;;10294:25;10411:2;10396:18;;;10390:25;10209:16;;10294:25;;-1:-1:-1;10390:25:1;9991:456;-1:-1:-1;9991:456:1:o;10731:245::-;10798:6;10851:2;10839:9;10830:7;10826:23;10822:32;10819:52;;;10867:1;10864;10857:12;10819:52;10899:9;10893:16;10918:28;10940:5;10918:28;:::i;14379:125::-;14444:9;;;14465:10;;;14462:36;;;14478:18;;:::i;15622:135::-;15661:3;15682:17;;;15679:43;;15702:18;;:::i;:::-;-1:-1:-1;15749:1:1;15738:13;;15622:135::o;15762:128::-;15829:9;;;15850:11;;;15847:37;;;15864:18;;:::i

Swarm Source

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