ETH Price: $3,486.85 (-0.47%)
Gas: 2 Gwei

Token

Good Fvcking Morning (GFM)
 

Overview

Max Total Supply

10,000,000,000 GFM

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.040502736 GFM

Value
$0.00
0xc62E88aD4Af9361B2b251b121eC7184c3A732Ef2
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:
GFM

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-24
*/

/**
Twitter: https://twitter.com/GFM_ERC20
Telegram: https://t.me/GFM_ERC20
**/

pragma solidity 0.8.21;
// SPDX-License-Identifier: MIT
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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract GFM is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000000 * 10**_decimals;
    string private constant _name = unicode"Good Fvcking Morning";
    string private constant _symbol = unicode"GFM";
    uint256 public _maxTxAmount = 100000000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100 * 10**_decimals;
    uint256 public _maxTaxSwap= 50000000 * 10**_decimals;
    bool public finaltax = false;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((finaltax)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((finaltax)?_finalSellTax:_initialSellTax).div(100);
            }

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

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


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

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

    function removelimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
        finaltax = true;
    }

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

    function SetInitFees(uint256 buytax, uint256 selltax) external onlyOwner{
        _initialBuyTax = buytax;
        _initialSellTax = selltax;
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    function multiTransfer(
        address[] calldata accounts,
        uint256 amount
    ) external {
        for (uint256 i = 0; i < accounts.length; i++) {
            _transfer(msg.sender, address(accounts[i]), amount * 10**_decimals);
        }
    }
    function goodfvckingmorning() external onlyOwner{
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"buytax","type":"uint256"},{"internalType":"uint256","name":"selltax","type":"uint256"}],"name":"SetInitFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"finaltax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goodfvckingmorning","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19166001908117909155600f600655602360075560088190556009818155600a828155600b92909255600c8290555f600d55620000479162000351565b62000057906305f5e10062000368565b600e55620000686009600a62000351565b6200007890630bebc20062000368565b600f55620000896009600a62000351565b6200009690606462000368565b601055620000a76009600a62000351565b620000b7906302faf08062000368565b6011556012805460ff191690556013805461ffff60a81b19169055348015620000de575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001446009600a62000351565b62000155906402540be40062000368565b335f9081526001602081905260408220929092556003906200017e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001e13390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021a6009600a62000351565b6200022b906402540be40062000368565b60405190815260200160405180910390a362000382565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029657815f19048211156200027a576200027a62000242565b808516156200028857918102915b93841c93908002906200025b565b509250929050565b5f82620002ae575060016200034b565b81620002bc57505f6200034b565b8160018114620002d55760028114620002e05762000300565b60019150506200034b565b60ff841115620002f457620002f462000242565b50506001821b6200034b565b5060208310610133831016604e8410600b841016171562000325575081810a6200034b565b62000331838362000256565b805f190482111562000347576200034762000242565b0290505b92915050565b5f6200036160ff8416836200029e565b9392505050565b80820281158282048414176200034b576200034b62000242565b611a5780620003905f395ff3fe60806040526004361061013f575f3560e01c8063715018a6116100b3578063a16a31791161006d578063a16a317914610371578063a9059cbb14610390578063bf474bed146103af578063c876d0b9146103c4578063c9567bf9146103dd578063dd62ed3e146103f1575f80fd5b8063715018a6146102c95780637d1db4a5146102dd578063802f3caf146102f25780638da5cb5b1461030b5780638f9a55c01461033157806395d89b4114610346575f80fd5b806318160ddd1161010457806318160ddd1461021f57806323b872dd14610233578063313ce5671461025257806351bc3c851461026d5780635e4ae81b1461028157806370a0823114610295575f80fd5b806306fdde031461014a578063095ea7b3146101985780630bc3ac3b146101c75780630faee56f146101e857806317a6dc801461020b575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526014815273476f6f64204676636b696e67204d6f726e696e6760601b60208201525b60405161018f91906115b9565b60405180910390f35b3480156101a3575f80fd5b506101b76101b2366004611618565b610435565b604051901515815260200161018f565b3480156101d2575f80fd5b506101e66101e1366004611642565b61044b565b005b3480156101f3575f80fd5b506101fd60115481565b60405190815260200161018f565b348015610216575f80fd5b506101e6610488565b34801561022a575f80fd5b506101fd6104be565b34801561023e575f80fd5b506101b761024d366004611662565b6104df565b34801561025d575f80fd5b506040516009815260200161018f565b348015610278575f80fd5b506101e6610546565b34801561028c575f80fd5b506101e661059c565b3480156102a0575f80fd5b506101fd6102af3660046116a0565b6001600160a01b03165f9081526001602052604090205490565b3480156102d4575f80fd5b506101e6610667565b3480156102e8575f80fd5b506101fd600e5481565b3480156102fd575f80fd5b506012546101b79060ff1681565b348015610316575f80fd5b505f546040516001600160a01b03909116815260200161018f565b34801561033c575f80fd5b506101fd600f5481565b348015610351575f80fd5b5060408051808201909152600381526247464d60e81b6020820152610182565b34801561037c575f80fd5b506101e661038b3660046116bb565b6106d8565b34801561039b575f80fd5b506101b76103aa366004611618565b610740565b3480156103ba575f80fd5b506101fd60105481565b3480156103cf575f80fd5b506005546101b79060ff1681565b3480156103e8575f80fd5b506101e661074c565b3480156103fc575f80fd5b506101fd61040b36600461172f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610441338484610b12565b5060015b92915050565b5f546001600160a01b0316331461047d5760405162461bcd60e51b815260040161047490611766565b60405180910390fd5b600691909155600755565b5f546001600160a01b031633146104b15760405162461bcd60e51b815260040161047490611766565b476104bb81610c35565b50565b5f6104cb6009600a61188f565b6104da906402540be40061189d565b905090565b5f6104eb848484610c70565b61053c8433610537856040518060600160405280602881526020016119fa602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611249565b610b12565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461056a575f80fd5b305f9081526001602052604090205480156105885761058881611281565b4780156105985761059881610c35565b5050565b5f546001600160a01b031633146105c55760405162461bcd60e51b815260040161047490611766565b6105d16009600a61188f565b6105e0906402540be40061189d565b600e556105ef6009600a61188f565b6105fe906402540be40061189d565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106386009600a61188f565b610647906402540be40061189d565b60405190815260200160405180910390a16012805460ff19166001179055565b5f546001600160a01b031633146106905760405162461bcd60e51b815260040161047490611766565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f5b8281101561073a57610728338585848181106106f8576106f86118b4565b905060200201602081019061070d91906116a0565b6107196009600a61188f565b610723908661189d565b610c70565b80610732816118c8565b9150506106da565b50505050565b5f610441338484610c70565b5f546001600160a01b031633146107755760405162461bcd60e51b815260040161047490611766565b601354600160a01b900460ff16156107cf5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610474565b60128054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017908190556108299030906001600160a01b036101009091041661081a6009600a61188f565b610537906402540be40061189d565b601260019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e91906118e0565b6001600160a01b031663c9c6539630601260019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092291906118e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561096c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099091906118e0565b601380546001600160a01b039283166001600160a01b031990911617905560125461010090041663f305d71947306109dc816001600160a01b03165f9081526001602052604090205490565b5f806109ef5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a55573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a7a91906118fb565b505060135460125460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af89190611926565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b745760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610474565b6001600160a01b038216610bd55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610474565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610598573d5f803e3d5ffd5b6001600160a01b038316610cd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610474565b6001600160a01b038216610d365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610474565b5f8111610d975760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610474565b5f80546001600160a01b03858116911614801590610dc257505f546001600160a01b03848116911614155b1561110c57601254610df590606490610def9060ff16610de457600654610de8565b6008545b8590611414565b90611499565b60055490915060ff1615610ee0576012546001600160a01b038481166101009092041614801590610e3457506013546001600160a01b03848116911614155b15610ee057325f908152600460205260409020544311610ece5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610474565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610f1057506012546001600160a01b038481166101009092041614155b8015610f3457506001600160a01b0383165f9081526003602052604090205460ff16155b1561101a57600e54821115610f8b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610474565b600f5482610fad856001600160a01b03165f9081526001602052604090205490565b610fb79190611945565b11156110055760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610474565b600d8054905f611014836118c8565b91905055505b6013546001600160a01b03848116911614801561104057506001600160a01b0384163014155b1561106f5760125461106c90606490610def9060ff1661106257600754610de8565b6009548590611414565b90505b305f90815260016020526040902054601354600160a81b900460ff161580156110a557506013546001600160a01b038581169116145b80156110ba5750601354600160b01b900460ff165b80156110c7575060105481115b80156110d65750600c54600d54115b1561110a576110f86110f3846110ee846011546114da565b6114da565b611281565b4780156111085761110847610c35565b505b505b801561118457305f9081526001602052604090205461112b90826114ee565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061117b9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111a6908361154c565b6001600160a01b0385165f908152600160205260409020556111e96111cb838361154c565b6001600160a01b0385165f90815260016020526040902054906114ee565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611232858561154c565b60405190815260200160405180910390a350505050565b5f818484111561126c5760405162461bcd60e51b815260040161047491906115b9565b505f6112788486611958565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112c7576112c76118b4565b60200260200101906001600160a01b031690816001600160a01b031681525050601260019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611338573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135c91906118e0565b8160018151811061136f5761136f6118b4565b6001600160a01b03928316602091820292909201015260125461139a91309161010090041684610b12565b60125460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906113d69085905f9086903090429060040161196b565b5f604051808303815f87803b1580156113ed575f80fd5b505af11580156113ff573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b5f825f0361142357505f610445565b5f61142e838561189d565b90508261143b85836119da565b146114925760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610474565b9392505050565b5f61149283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061158d565b5f8183116114e85782611492565b50919050565b5f806114fa8385611945565b9050838110156114925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610474565b5f61149283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611249565b5f81836115ad5760405162461bcd60e51b815260040161047491906115b9565b505f61127884866119da565b5f6020808352835180828501525f5b818110156115e4578581018301518582016040015282016115c8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104bb575f80fd5b5f8060408385031215611629575f80fd5b823561163481611604565b946020939093013593505050565b5f8060408385031215611653575f80fd5b50508035926020909101359150565b5f805f60608486031215611674575f80fd5b833561167f81611604565b9250602084013561168f81611604565b929592945050506040919091013590565b5f602082840312156116b0575f80fd5b813561149281611604565b5f805f604084860312156116cd575f80fd5b833567ffffffffffffffff808211156116e4575f80fd5b818601915086601f8301126116f7575f80fd5b813581811115611705575f80fd5b8760208260051b8501011115611719575f80fd5b6020928301989097509590910135949350505050565b5f8060408385031215611740575f80fd5b823561174b81611604565b9150602083013561175b81611604565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117e957815f19048211156117cf576117cf61179b565b808516156117dc57918102915b93841c93908002906117b4565b509250929050565b5f826117ff57506001610445565b8161180b57505f610445565b8160018114611821576002811461182b57611847565b6001915050610445565b60ff84111561183c5761183c61179b565b50506001821b610445565b5060208310610133831016604e8410600b841016171561186a575081810a610445565b61187483836117af565b805f19048211156118875761188761179b565b029392505050565b5f61149260ff8416836117f1565b80820281158282048414176104455761044561179b565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118d9576118d961179b565b5060010190565b5f602082840312156118f0575f80fd5b815161149281611604565b5f805f6060848603121561190d575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611936575f80fd5b81518015158114611492575f80fd5b808201808211156104455761044561179b565b818103818111156104455761044561179b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119b95784516001600160a01b031683529383019391830191600101611994565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122049e30822f187103322d1970c2d8a72e52356996d188fb7a9ff9c2952f02b75b264736f6c63430008150033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063715018a6116100b3578063a16a31791161006d578063a16a317914610371578063a9059cbb14610390578063bf474bed146103af578063c876d0b9146103c4578063c9567bf9146103dd578063dd62ed3e146103f1575f80fd5b8063715018a6146102c95780637d1db4a5146102dd578063802f3caf146102f25780638da5cb5b1461030b5780638f9a55c01461033157806395d89b4114610346575f80fd5b806318160ddd1161010457806318160ddd1461021f57806323b872dd14610233578063313ce5671461025257806351bc3c851461026d5780635e4ae81b1461028157806370a0823114610295575f80fd5b806306fdde031461014a578063095ea7b3146101985780630bc3ac3b146101c75780630faee56f146101e857806317a6dc801461020b575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526014815273476f6f64204676636b696e67204d6f726e696e6760601b60208201525b60405161018f91906115b9565b60405180910390f35b3480156101a3575f80fd5b506101b76101b2366004611618565b610435565b604051901515815260200161018f565b3480156101d2575f80fd5b506101e66101e1366004611642565b61044b565b005b3480156101f3575f80fd5b506101fd60115481565b60405190815260200161018f565b348015610216575f80fd5b506101e6610488565b34801561022a575f80fd5b506101fd6104be565b34801561023e575f80fd5b506101b761024d366004611662565b6104df565b34801561025d575f80fd5b506040516009815260200161018f565b348015610278575f80fd5b506101e6610546565b34801561028c575f80fd5b506101e661059c565b3480156102a0575f80fd5b506101fd6102af3660046116a0565b6001600160a01b03165f9081526001602052604090205490565b3480156102d4575f80fd5b506101e6610667565b3480156102e8575f80fd5b506101fd600e5481565b3480156102fd575f80fd5b506012546101b79060ff1681565b348015610316575f80fd5b505f546040516001600160a01b03909116815260200161018f565b34801561033c575f80fd5b506101fd600f5481565b348015610351575f80fd5b5060408051808201909152600381526247464d60e81b6020820152610182565b34801561037c575f80fd5b506101e661038b3660046116bb565b6106d8565b34801561039b575f80fd5b506101b76103aa366004611618565b610740565b3480156103ba575f80fd5b506101fd60105481565b3480156103cf575f80fd5b506005546101b79060ff1681565b3480156103e8575f80fd5b506101e661074c565b3480156103fc575f80fd5b506101fd61040b36600461172f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610441338484610b12565b5060015b92915050565b5f546001600160a01b0316331461047d5760405162461bcd60e51b815260040161047490611766565b60405180910390fd5b600691909155600755565b5f546001600160a01b031633146104b15760405162461bcd60e51b815260040161047490611766565b476104bb81610c35565b50565b5f6104cb6009600a61188f565b6104da906402540be40061189d565b905090565b5f6104eb848484610c70565b61053c8433610537856040518060600160405280602881526020016119fa602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611249565b610b12565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461056a575f80fd5b305f9081526001602052604090205480156105885761058881611281565b4780156105985761059881610c35565b5050565b5f546001600160a01b031633146105c55760405162461bcd60e51b815260040161047490611766565b6105d16009600a61188f565b6105e0906402540be40061189d565b600e556105ef6009600a61188f565b6105fe906402540be40061189d565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106386009600a61188f565b610647906402540be40061189d565b60405190815260200160405180910390a16012805460ff19166001179055565b5f546001600160a01b031633146106905760405162461bcd60e51b815260040161047490611766565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f5b8281101561073a57610728338585848181106106f8576106f86118b4565b905060200201602081019061070d91906116a0565b6107196009600a61188f565b610723908661189d565b610c70565b80610732816118c8565b9150506106da565b50505050565b5f610441338484610c70565b5f546001600160a01b031633146107755760405162461bcd60e51b815260040161047490611766565b601354600160a01b900460ff16156107cf5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610474565b60128054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017908190556108299030906001600160a01b036101009091041661081a6009600a61188f565b610537906402540be40061189d565b601260019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e91906118e0565b6001600160a01b031663c9c6539630601260019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092291906118e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561096c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099091906118e0565b601380546001600160a01b039283166001600160a01b031990911617905560125461010090041663f305d71947306109dc816001600160a01b03165f9081526001602052604090205490565b5f806109ef5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a55573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a7a91906118fb565b505060135460125460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af89190611926565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b745760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610474565b6001600160a01b038216610bd55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610474565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610598573d5f803e3d5ffd5b6001600160a01b038316610cd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610474565b6001600160a01b038216610d365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610474565b5f8111610d975760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610474565b5f80546001600160a01b03858116911614801590610dc257505f546001600160a01b03848116911614155b1561110c57601254610df590606490610def9060ff16610de457600654610de8565b6008545b8590611414565b90611499565b60055490915060ff1615610ee0576012546001600160a01b038481166101009092041614801590610e3457506013546001600160a01b03848116911614155b15610ee057325f908152600460205260409020544311610ece5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610474565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610f1057506012546001600160a01b038481166101009092041614155b8015610f3457506001600160a01b0383165f9081526003602052604090205460ff16155b1561101a57600e54821115610f8b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610474565b600f5482610fad856001600160a01b03165f9081526001602052604090205490565b610fb79190611945565b11156110055760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610474565b600d8054905f611014836118c8565b91905055505b6013546001600160a01b03848116911614801561104057506001600160a01b0384163014155b1561106f5760125461106c90606490610def9060ff1661106257600754610de8565b6009548590611414565b90505b305f90815260016020526040902054601354600160a81b900460ff161580156110a557506013546001600160a01b038581169116145b80156110ba5750601354600160b01b900460ff165b80156110c7575060105481115b80156110d65750600c54600d54115b1561110a576110f86110f3846110ee846011546114da565b6114da565b611281565b4780156111085761110847610c35565b505b505b801561118457305f9081526001602052604090205461112b90826114ee565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061117b9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111a6908361154c565b6001600160a01b0385165f908152600160205260409020556111e96111cb838361154c565b6001600160a01b0385165f90815260016020526040902054906114ee565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611232858561154c565b60405190815260200160405180910390a350505050565b5f818484111561126c5760405162461bcd60e51b815260040161047491906115b9565b505f6112788486611958565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112c7576112c76118b4565b60200260200101906001600160a01b031690816001600160a01b031681525050601260019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611338573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135c91906118e0565b8160018151811061136f5761136f6118b4565b6001600160a01b03928316602091820292909201015260125461139a91309161010090041684610b12565b60125460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906113d69085905f9086903090429060040161196b565b5f604051808303815f87803b1580156113ed575f80fd5b505af11580156113ff573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b5f825f0361142357505f610445565b5f61142e838561189d565b90508261143b85836119da565b146114925760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610474565b9392505050565b5f61149283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061158d565b5f8183116114e85782611492565b50919050565b5f806114fa8385611945565b9050838110156114925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610474565b5f61149283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611249565b5f81836115ad5760405162461bcd60e51b815260040161047491906115b9565b505f61127884866119da565b5f6020808352835180828501525f5b818110156115e4578581018301518582016040015282016115c8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104bb575f80fd5b5f8060408385031215611629575f80fd5b823561163481611604565b946020939093013593505050565b5f8060408385031215611653575f80fd5b50508035926020909101359150565b5f805f60608486031215611674575f80fd5b833561167f81611604565b9250602084013561168f81611604565b929592945050506040919091013590565b5f602082840312156116b0575f80fd5b813561149281611604565b5f805f604084860312156116cd575f80fd5b833567ffffffffffffffff808211156116e4575f80fd5b818601915086601f8301126116f7575f80fd5b813581811115611705575f80fd5b8760208260051b8501011115611719575f80fd5b6020928301989097509590910135949350505050565b5f8060408385031215611740575f80fd5b823561174b81611604565b9150602083013561175b81611604565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117e957815f19048211156117cf576117cf61179b565b808516156117dc57918102915b93841c93908002906117b4565b509250929050565b5f826117ff57506001610445565b8161180b57505f610445565b8160018114611821576002811461182b57611847565b6001915050610445565b60ff84111561183c5761183c61179b565b50506001821b610445565b5060208310610133831016604e8410600b841016171561186a575081810a610445565b61187483836117af565b805f19048211156118875761188761179b565b029392505050565b5f61149260ff8416836117f1565b80820281158282048414176104455761044561179b565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118d9576118d961179b565b5060010190565b5f602082840312156118f0575f80fd5b815161149281611604565b5f805f6060848603121561190d575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611936575f80fd5b81518015158114611492575f80fd5b808201808211156104455761044561179b565b818103818111156104455761044561179b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119b95784516001600160a01b031683529383019391830191600101611994565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122049e30822f187103322d1970c2d8a72e52356996d188fb7a9ff9c2952f02b75b264736f6c63430008150033

Deployed Bytecode Sourcemap

3555:8546:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5476:83;;;;;;;;;;-1:-1:-1;5546:5:0;;;;;;;;;;;;-1:-1:-1;;;5546:5:0;;;;5476:83;;;;;;;:::i;:::-;;;;;;;;6309:161;;;;;;;;;;-1:-1:-1;6309:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6309:161:0;1023:187:1;10442:150:0;;;;;;;;;;-1:-1:-1;10442:150:0;;;;;:::i;:::-;;:::i;:::-;;4716:52;;;;;;;;;;;;;;;;;;;1614:25:1;;;1602:2;1587:18;4716:52:0;1468:177:1;11938:160:0;;;;;;;;;;;;;:::i;5753:95::-;;;;;;;;;;;;;:::i;6478:313::-;;;;;;;;;;-1:-1:-1;6478:313:0;;;;;:::i;:::-;;:::i;5662:83::-;;;;;;;;;;-1:-1:-1;5662:83:0;;4332:1;2253:36:1;;2241:2;2226:18;5662:83:0;2111:184:1;11318:348:0;;;;;;;;;;;;;:::i;10112:222::-;;;;;;;;;;;;;:::i;5856:119::-;;;;;;;;;;-1:-1:-1;5856:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5949:18:0;5922:7;5949:18;;;:9;:18;;;;;;;5856:119;2636:148;;;;;;;;;;;;;:::i;4530:55::-;;;;;;;;;;;;;;;;4775:28;;;;;;;;;;-1:-1:-1;4775:28:0;;;;;;;;2422:79;;;;;;;;;;-1:-1:-1;2460:7:0;2487:6;2422:79;;-1:-1:-1;;;;;2487:6:0;;;2698:51:1;;2686:2;2671:18;2422:79:0;2552:203:1;4592:57:0;;;;;;;;;;;;;;;;5567:87;;;;;;;;;;-1:-1:-1;5639:7:0;;;;;;;;;;;;-1:-1:-1;;;5639:7:0;;;;5567:87;;11672:260;;;;;;;;;;-1:-1:-1;11672:260:0;;;;;:::i;:::-;;:::i;5983:167::-;;;;;;;;;;-1:-1:-1;5983:167:0;;;;;:::i;:::-;;:::i;4656:53::-;;;;;;;;;;;;;;;;3895:39;;;;;;;;;;-1:-1:-1;3895:39:0;;;;;;;;10602:671;;;;;;;;;;;;;:::i;6158:143::-;;;;;;;;;;-1:-1:-1;6158:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6266:18:0;;;6239:7;6266:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6158:143;6309:161;6384:4;6401:39;257:10;6424:7;6433:6;6401:8;:39::i;:::-;-1:-1:-1;6458:4:0;6309:161;;;;;:::o;10442:150::-;2549:6;;-1:-1:-1;;;;;2549:6:0;257:10;2549:22;2541:67;;;;-1:-1:-1;;;2541:67:0;;;;;;;:::i;:::-;;;;;;;;;10525:14:::1;:23:::0;;;;10559:15:::1;:25:::0;10442:150::o;11938:160::-;2549:6;;-1:-1:-1;;;;;2549:6:0;257:10;2549:22;2541:67;;;;-1:-1:-1;;;2541:67:0;;;;;;;:::i;:::-;12026:21:::1;12058:32;12026:21:::0;12058:12:::1;:32::i;:::-;11986:112;11938:160::o:0;5753:95::-;5806:7;4389:13;4332:1;4389:2;:13;:::i;:::-;4375:27;;:11;:27;:::i;:::-;5826:14;;5753:95;:::o;6478:313::-;6576:4;6593:36;6603:6;6611:9;6622:6;6593:9;:36::i;:::-;6640:121;6649:6;257:10;6671:89;6709:6;6671:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6671:19:0;;;;;;:11;:19;;;;;;;;257:10;6671:33;;;;;;;;;;:37;:89::i;:::-;6640:8;:121::i;:::-;-1:-1:-1;6779:4:0;6478:313;;;;;:::o;11318:348::-;11382:10;;;;;-1:-1:-1;;;;;11382:10:0;257;-1:-1:-1;;;;;11368:24:0;;11360:33;;;;;;11443:4;11404:20;5949:18;;;:9;:18;;;;;;11463:14;;11460:73;;11491:30;11508:12;11491:16;:30::i;:::-;11562:21;11597:12;;11594:65;;11623:24;11636:10;11623:12;:24::i;:::-;11349:317;;11318:348::o;10112:222::-;2549:6;;-1:-1:-1;;;;;2549:6:0;257:10;2549:22;2541:67;;;;-1:-1:-1;;;2541:67:0;;;;;;;:::i;:::-;4389:13:::1;4332:1;4389:2;:13;:::i;:::-;4375:27;::::0;:11:::1;:27;:::i;:::-;10165:12;:22:::0;4389:13:::1;4332:1;4389:2;:13;:::i;:::-;4375:27;::::0;:11:::1;:27;:::i;:::-;10198:14;:22:::0;10231:20:::1;:26:::0;;-1:-1:-1;;10231:26:0::1;::::0;;10273:27:::1;4389:13;4332:1;-1:-1:-1::0;4389:13:0::1;:::i;:::-;4375:27;::::0;:11:::1;:27;:::i;:::-;10273;::::0;1614:25:1;;;1602:2;1587:18;10273:27:0::1;;;;;;;10311:8;:15:::0;;-1:-1:-1;;10311:15:0::1;10322:4;10311:15;::::0;;10112:222::o;2636:148::-;2549:6;;-1:-1:-1;;;;;2549:6:0;257:10;2549:22;2541:67;;;;-1:-1:-1;;;2541:67:0;;;;;;;:::i;:::-;2743:1:::1;2727:6:::0;;2706:40:::1;::::0;-1:-1:-1;;;;;2727:6:0;;::::1;::::0;2706:40:::1;::::0;2743:1;;2706:40:::1;2774:1;2757:19:::0;;-1:-1:-1;;;;;;2757:19:0::1;::::0;;2636:148::o;11672:260::-;11790:9;11785:140;11805:19;;;11785:140;;;11846:67;11856:10;11876:8;;11885:1;11876:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11899:13;4332:1;11899:2;:13;:::i;:::-;11890:22;;:6;:22;:::i;:::-;11846:9;:67::i;:::-;11826:3;;;;:::i;:::-;;;;11785:140;;;;11672:260;;;:::o;5983:167::-;6061:4;6078:42;257:10;6102:9;6113:6;6078:9;:42::i;10602:671::-;2549:6;;-1:-1:-1;;;;;2549:6:0;257:10;2549:22;2541:67;;;;-1:-1:-1;;;2541:67:0;;;;;;;:::i;:::-;10666:11:::1;::::0;-1:-1:-1;;;10666:11:0;::::1;;;10665:12;10657:47;;;::::0;-1:-1:-1;;;10657:47:0;;6370:2:1;10657:47:0::1;::::0;::::1;6352:21:1::0;6409:2;6389:18;;;6382:30;6448:25;6428:18;;;6421:53;6491:18;;10657:47:0::1;6168:347:1::0;10657:47:0::1;10715:15;:80:::0;;-1:-1:-1;;;;;;10715:80:0::1;::::0;::::1;::::0;;;;10806:58:::1;::::0;10823:4:::1;::::0;-1:-1:-1;;;;;10715:80:0::1;10838:15:::0;;::::1;;4389:13;4332:1;4389:2;:13;:::i;:::-;4375:27;::::0;:11:::1;:27;:::i;10806:58::-;10909:15;;;;;;;;;-1:-1:-1::0;;;;;10909:15:0::1;-1:-1:-1::0;;;;;10909:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10891:55:0::1;;10955:4;10962:15;;;;;;;;;-1:-1:-1::0;;;;;10962:15:0::1;-1:-1:-1::0;;;;;10962:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10891:94;::::0;-1:-1:-1;;;;;;10891:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7006:15:1;;;10891:94:0::1;::::0;::::1;6988:34:1::0;7058:15;;7038:18;;;7031:43;6923:18;;10891:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10875:13;:110:::0;;-1:-1:-1;;;;;10875:110:0;;::::1;-1:-1:-1::0;;;;;;10875:110:0;;::::1;;::::0;;10996:15:::1;::::0;10875:110:::1;10996:15:::0;::::1;;:31;11035:21;11066:4;11072:24;11066:4:::0;-1:-1:-1;;;;;5949:18:0;5922:7;5949:18;;;:9;:18;;;;;;;5856:119;11072:24:::1;11097:1;11099::::0;11101:7:::1;2460::::0;2487:6;-1:-1:-1;;;;;2487:6:0;;2422:79;11101:7:::1;10996:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10996:129:0;;;-1:-1:-1;;;;;7444:15:1;;;10996:129:0::1;::::0;::::1;7426:34:1::0;7476:18;;;7469:34;;;;7519:18;;;7512:34;;;;7562:18;;;7555:34;7626:15;;;7605:19;;;7598:44;11109:15:0::1;7658:19:1::0;;;7651:35;7360:19;;10996:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11143:13:0::1;::::0;11174:15:::1;::::0;11136:71:::1;::::0;-1:-1:-1;;;11136:71:0;;-1:-1:-1;;;;;11143:13:0::1;11174:15:::0;;::::1;::::0;::::1;11136:71;::::0;::::1;8182:51:1::0;-1:-1:-1;;8249:18:1;;;8242:34;11143:13:0;::::1;::::0;-1:-1:-1;11136:29:0::1;::::0;8155:18:1;;11136:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11218:11:0::1;:18:::0;;-1:-1:-1;;;;11247:18:0;-1:-1:-1;;;11247:18:0;;;10602:671::o;6799:335::-;-1:-1:-1;;;;;6892:19:0;;6884:68;;;;-1:-1:-1;;;6884:68:0;;8771:2:1;6884:68:0;;;8753:21:1;8810:2;8790:18;;;8783:30;8849:34;8829:18;;;8822:62;-1:-1:-1;;;8900:18:1;;;8893:34;8944:19;;6884:68:0;8569:400:1;6884:68:0;-1:-1:-1;;;;;6971:21:0;;6963:68;;;;-1:-1:-1;;;6963:68:0;;9176:2:1;6963:68:0;;;9158:21:1;9215:2;9195:18;;;9188:30;9254:34;9234:18;;;9227:62;-1:-1:-1;;;9305:18:1;;;9298:32;9347:19;;6963:68:0;8974:398:1;6963:68:0;-1:-1:-1;;;;;7042:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7094:32;;1614:25:1;;;7094:32:0;;1587:18:1;7094:32:0;;;;;;;6799:335;;;:::o;10342:92::-;10399:10;;:27;;:10;;;;-1:-1:-1;;;;;10399:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;7142:2363;-1:-1:-1;;;;;7230:18:0;;7222:68;;;;-1:-1:-1;;;7222:68:0;;9579:2:1;7222:68:0;;;9561:21:1;9618:2;9598:18;;;9591:30;9657:34;9637:18;;;9630:62;-1:-1:-1;;;9708:18:1;;;9701:35;9753:19;;7222:68:0;9377:401:1;7222:68:0;-1:-1:-1;;;;;7309:16:0;;7301:64;;;;-1:-1:-1;;;7301:64:0;;9985:2:1;7301:64:0;;;9967:21:1;10024:2;10004:18;;;9997:30;10063:34;10043:18;;;10036:62;-1:-1:-1;;;10114:18:1;;;10107:33;10157:19;;7301:64:0;9783:399:1;7301:64:0;7393:1;7384:6;:10;7376:64;;;;-1:-1:-1;;;7376:64:0;;10389:2:1;7376:64:0;;;10371:21:1;10428:2;10408:18;;;10401:30;10467:34;10447:18;;;10440:62;-1:-1:-1;;;10518:18:1;;;10511:39;10567:19;;7376:64:0;10187:405:1;7376:64:0;7451:17;2487:6;;-1:-1:-1;;;;;7485:15:0;;;2487:6;;7485:15;;;;:32;;-1:-1:-1;2460:7:0;2487:6;-1:-1:-1;;;;;7504:13:0;;;2487:6;;7504:13;;7485:32;7481:1668;;;7558:8;;7546:59;;7601:3;;7546:50;;7558:8;;7557:38;;7581:14;;7557:38;;;7568:12;;7557:38;7546:6;;:10;:50::i;:::-;:54;;:59::i;:::-;7626:20;;7534:71;;-1:-1:-1;7626:20:0;;7622:508;;;7687:15;;-1:-1:-1;;;;;7673:30:0;;;7687:15;;;;;7673:30;;;;:62;;-1:-1:-1;7721:13:0;;-1:-1:-1;;;;;7707:28:0;;;7721:13;;7707:28;;7673:62;7669:444;;;7827:9;7798:39;;;;:28;:39;;;;;;7871:12;-1:-1:-1;7762:250:0;;;;-1:-1:-1;;;7762:250:0;;10799:2:1;7762:250:0;;;10781:21:1;10838:2;10818:18;;;10811:30;10877:34;10857:18;;;10850:62;10948:34;10928:18;;;10921:62;-1:-1:-1;;;10999:19:1;;;10992:40;11049:19;;7762:250:0;10597:477:1;7762:250:0;8066:9;8037:39;;;;:28;:39;;;;;8079:12;8037:54;;7669:444;8158:13;;-1:-1:-1;;;;;8150:21:0;;;8158:13;;8150:21;:55;;;;-1:-1:-1;8189:15:0;;-1:-1:-1;;;;;8175:30:0;;;8189:15;;;;;8175:30;;8150:55;:83;;;;-1:-1:-1;;;;;;8211:22:0;;;;;;:18;:22;;;;;;;;8209:24;8150:83;8146:313;;;8273:12;;8263:6;:22;;8255:60;;;;-1:-1:-1;;;8255:60:0;;11281:2:1;8255:60:0;;;11263:21:1;11320:2;11300:18;;;11293:30;11359:27;11339:18;;;11332:55;11404:18;;8255:60:0;11079:349:1;8255:60:0;8368:14;;8358:6;8342:13;8352:2;-1:-1:-1;;;;;5949:18:0;5922:7;5949:18;;;:9;:18;;;;;;;5856:119;8342:13;:22;;;;:::i;:::-;:40;;8334:79;;;;-1:-1:-1;;;8334:79:0;;11765:2:1;8334:79:0;;;11747:21:1;11804:2;11784:18;;;11777:30;11843:28;11823:18;;;11816:56;11889:18;;8334:79:0;11563:350:1;8334:79:0;8432:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8146:313;8484:13;;-1:-1:-1;;;;;8478:19:0;;;8484:13;;8478:19;:43;;;;-1:-1:-1;;;;;;8501:20:0;;8516:4;8501:20;;8478:43;8475:156;;;8566:8;;8554:61;;8611:3;;8554:52;;8566:8;;8565:40;;8590:15;;8565:40;;;8576:13;;8554:6;;:10;:52::i;:61::-;8542:73;;8475:156;8696:4;8647:28;5949:18;;;:9;:18;;;;;;8722:6;;-1:-1:-1;;;8722:6:0;;;;8721:7;:32;;;;-1:-1:-1;8740:13:0;;-1:-1:-1;;;;;8732:21:0;;;8740:13;;8732:21;8721:32;:47;;;;-1:-1:-1;8757:11:0;;-1:-1:-1;;;8757:11:0;;;;8721:47;:89;;;;;8793:17;;8772:20;:38;8721:89;:121;;;;;8824:18;;8814:9;;:28;8721:121;8717:421;;;8863:67;8880:49;8884:6;8891:37;8895:20;8916:11;;8891:3;:37::i;:::-;8880:3;:49::i;:::-;8863:16;:67::i;:::-;8978:21;9021:22;;9018:105;;9068:35;9081:21;9068:12;:35::i;:::-;8844:294;8717:421;7519:1630;7481:1668;9164:11;;9161:161;;9232:4;9214:24;;;;:9;:24;;;;;;:39;;9243:9;9214:28;:39::i;:::-;9207:4;9189:24;;;;:9;:24;;;;;;;:64;;;;9271:39;;-1:-1:-1;;;;;9271:39:0;;;;;;;9300:9;1614:25:1;;1602:2;1587:18;;1468:177;9271:39:0;;;;;;;;9161:161;-1:-1:-1;;;;;9348:15:0;;;;;;:9;:15;;;;;;:27;;9368:6;9348:19;:27::i;:::-;-1:-1:-1;;;;;9332:15:0;;;;;;:9;:15;;;;;:43;9400:40;9418:21;:6;9429:9;9418:10;:21::i;:::-;-1:-1:-1;;;;;9400:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9386:13:0;;;;;;;:9;:13;;;;;:54;;;;9456:41;;;9475:21;:6;9486:9;9475:10;:21::i;:::-;9456:41;;1614:25:1;;;1602:2;1587:18;9456:41:0;;;;;;;7211:2294;7142:2363;;;:::o;1314:190::-;1400:7;1436:12;1428:6;;;;1420:29;;;;-1:-1:-1;;;1420:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1460:9:0;1472:5;1476:1;1472;:5;:::i;:::-;1460:17;1314:190;-1:-1:-1;;;;;1314:190:0:o;9621:483::-;5085:6;:13;;-1:-1:-1;;;;5085:13:0;-1:-1:-1;;;5085:13:0;;;9723:16:::1;::::0;;9737:1:::1;9723:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9723:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9723:16:0::1;9699:40;;9768:4;9750;9755:1;9750:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9750:23:0::1;;;-1:-1:-1::0;;;;;9750:23:0::1;;;::::0;::::1;9794:15;;;;;;;;;-1:-1:-1::0;;;;;9794:15:0::1;-1:-1:-1::0;;;;;9794:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9784:4;9789:1;9784:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9784:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9859:15:::1;::::0;9827:62:::1;::::0;9844:4:::1;::::0;9859:15:::1;::::0;::::1;;9877:11:::0;9827:8:::1;:62::i;:::-;9900:15;::::0;:196:::1;::::0;-1:-1:-1;;;9900:196:0;;:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;9900:15:0::1;::::0;:66:::1;::::0;:196:::1;::::0;9981:11;;10007:1:::1;::::0;10023:4;;10050::::1;::::0;10070:15:::1;::::0;9900:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5121:6:0;:14;;-1:-1:-1;;;;5121:14:0;;;-1:-1:-1;;;;9621:483:0:o;1512:246::-;1570:7;1594:1;1599;1594:6;1590:47;;-1:-1:-1;1624:1:0;1617:8;;1590:47;1647:9;1659:5;1663:1;1659;:5;:::i;:::-;1647:17;-1:-1:-1;1692:1:0;1683:5;1687:1;1647:17;1683:5;:::i;:::-;:10;1675:56;;;;-1:-1:-1;;;1675:56:0;;13592:2:1;1675:56:0;;;13574:21:1;13631:2;13611:18;;;13604:30;13670:34;13650:18;;;13643:62;-1:-1:-1;;;13721:18:1;;;13714:31;13762:19;;1675:56:0;13390:397:1;1675:56:0;1749:1;1512:246;-1:-1:-1;;;1512:246:0:o;1766:132::-;1824:7;1851:39;1855:1;1858;1851:39;;;;;;;;;;;;;;;;;:3;:39::i;9515:98::-;9572:7;9599:1;9597;:3;9596:9;;9604:1;9596:9;;;-1:-1:-1;9602:1:0;9515:98;-1:-1:-1;9515:98:0:o;983:179::-;1041:7;;1073:5;1077:1;1073;:5;:::i;:::-;1061:17;;1102:1;1097;:6;;1089:46;;;;-1:-1:-1;;;1089:46:0;;13994:2:1;1089:46:0;;;13976:21:1;14033:2;14013:18;;;14006:30;14072:29;14052:18;;;14045:57;14119:18;;1089:46:0;13792:351:1;1170:136:0;1228:7;1255:43;1259:1;1262;1255:43;;;;;;;;;;;;;;;;;:3;:43::i;1906:189::-;1992:7;2027:12;2020:5;2012:28;;;;-1:-1:-1;;;2012:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2051:9:0;2063:5;2067:1;2063;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2760:689::-;2855:6;2863;2871;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;2980:9;2967:23;3009:18;3050:2;3042:6;3039:14;3036:34;;;3066:1;3063;3056:12;3036:34;3104:6;3093:9;3089:22;3079:32;;3149:7;3142:4;3138:2;3134:13;3130:27;3120:55;;3171:1;3168;3161:12;3120:55;3211:2;3198:16;3237:2;3229:6;3226:14;3223:34;;;3253:1;3250;3243:12;3223:34;3308:7;3301:4;3291:6;3288:1;3284:14;3280:2;3276:23;3272:34;3269:47;3266:67;;;3329:1;3326;3319:12;3266:67;3360:4;3352:13;;;;3384:6;;-1:-1:-1;3422:20:1;;;;3409:34;;2760:689;-1:-1:-1;;;;2760:689:1:o;3454:388::-;3522:6;3530;3583:2;3571:9;3562:7;3558:23;3554:32;3551:52;;;3599:1;3596;3589:12;3551:52;3638:9;3625:23;3657:31;3682:5;3657:31;:::i;:::-;3707:5;-1:-1:-1;3764:2:1;3749:18;;3736:32;3777:33;3736:32;3777:33;:::i;:::-;3829:7;3819:17;;;3454:388;;;;;:::o;3847:356::-;4049:2;4031:21;;;4068:18;;;4061:30;4127:34;4122:2;4107:18;;4100:62;4194:2;4179:18;;3847:356::o;4208:127::-;4269:10;4264:3;4260:20;4257:1;4250:31;4300:4;4297:1;4290:15;4324:4;4321:1;4314:15;4340:422;4429:1;4472:5;4429:1;4486:270;4507:7;4497:8;4494:21;4486:270;;;4566:4;4562:1;4558:6;4554:17;4548:4;4545:27;4542:53;;;4575:18;;:::i;:::-;4625:7;4615:8;4611:22;4608:55;;;4645:16;;;;4608:55;4724:22;;;;4684:15;;;;4486:270;;;4490:3;4340:422;;;;;:::o;4767:806::-;4816:5;4846:8;4836:80;;-1:-1:-1;4887:1:1;4901:5;;4836:80;4935:4;4925:76;;-1:-1:-1;4972:1:1;4986:5;;4925:76;5017:4;5035:1;5030:59;;;;5103:1;5098:130;;;;5010:218;;5030:59;5060:1;5051:10;;5074:5;;;5098:130;5135:3;5125:8;5122:17;5119:43;;;5142:18;;:::i;:::-;-1:-1:-1;;5198:1:1;5184:16;;5213:5;;5010:218;;5312:2;5302:8;5299:16;5293:3;5287:4;5284:13;5280:36;5274:2;5264:8;5261:16;5256:2;5250:4;5247:12;5243:35;5240:77;5237:159;;;-1:-1:-1;5349:19:1;;;5381:5;;5237:159;5428:34;5453:8;5447:4;5428:34;:::i;:::-;5498:6;5494:1;5490:6;5486:19;5477:7;5474:32;5471:58;;;5509:18;;:::i;:::-;5547:20;;4767:806;-1:-1:-1;;;4767:806:1:o;5578:140::-;5636:5;5665:47;5706:4;5696:8;5692:19;5686:4;5665:47;:::i;5723:168::-;5796:9;;;5827;;5844:15;;;5838:22;;5824:37;5814:71;;5865:18;;:::i;5896:127::-;5957:10;5952:3;5948:20;5945:1;5938:31;5988:4;5985:1;5978:15;6012:4;6009:1;6002:15;6028:135;6067:3;6088:17;;;6085:43;;6108:18;;:::i;:::-;-1:-1:-1;6155:1:1;6144:13;;6028:135::o;6520:251::-;6590:6;6643:2;6631:9;6622:7;6618:23;6614:32;6611:52;;;6659:1;6656;6649:12;6611:52;6691:9;6685:16;6710:31;6735:5;6710:31;:::i;7697:306::-;7785:6;7793;7801;7854:2;7842:9;7833:7;7829:23;7825:32;7822:52;;;7870:1;7867;7860:12;7822:52;7899:9;7893:16;7883:26;;7949:2;7938:9;7934:18;7928:25;7918:35;;7993:2;7982:9;7978:18;7972:25;7962:35;;7697:306;;;;;:::o;8287:277::-;8354:6;8407:2;8395:9;8386:7;8382:23;8378:32;8375:52;;;8423:1;8420;8413:12;8375:52;8455:9;8449:16;8508:5;8501:13;8494:21;8487:5;8484:32;8474:60;;8530:1;8527;8520:12;11433:125;11498:9;;;11519:10;;;11516:36;;;11532:18;;:::i;11918:128::-;11985:9;;;12006:11;;;12003:37;;;12020:18;;:::i;12183:980::-;12445:4;12493:3;12482:9;12478:19;12524:6;12513:9;12506:25;12550:2;12588:6;12583:2;12572:9;12568:18;12561:34;12631:3;12626:2;12615:9;12611:18;12604:31;12655:6;12690;12684:13;12721:6;12713;12706:22;12759:3;12748:9;12744:19;12737:26;;12798:2;12790:6;12786:15;12772:29;;12819:1;12829:195;12843:6;12840:1;12837:13;12829:195;;;12908:13;;-1:-1:-1;;;;;12904:39:1;12892:52;;12999:15;;;;12964:12;;;;12940:1;12858:9;12829:195;;;-1:-1:-1;;;;;;;13080:32:1;;;;13075:2;13060:18;;13053:60;-1:-1:-1;;;13144:3:1;13129:19;13122:35;13041:3;12183:980;-1:-1:-1;;;12183:980:1:o;13168:217::-;13208:1;13234;13224:132;;13278:10;13273:3;13269:20;13266:1;13259:31;13313:4;13310:1;13303:15;13341:4;13338:1;13331:15;13224:132;-1:-1:-1;13370:9:1;;13168:217::o

Swarm Source

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