ETH Price: $3,096.78 (+0.85%)
Gas: 5 Gwei

Token

Abstract Thinking (aThinking)
 

Overview

Max Total Supply

5,000,000,000 aThinking

Holders

65 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,156,179.852053709 aThinking

Value
$0.00
0x5361b25e2279a217cf6e5f3c8b3df10dcf2928ba
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Behold, an elucidation of the ethereal, an Ethereum-based instantiation transcending the cryptic realms—a token christened 'Abstract Thinking.'

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AbstractThinking

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// https://www.abstract-thinking.tech/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract AbstractThinking is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address immutable DEV_ADDRESS = 0xc50D1a6f725a8cb6728223b4B1fef466748aF1B3;

    string constant _name = "Abstract Thinking";
    string constant _symbol = "aThinking";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 5_000_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = 500_000_000 * (10**_decimals);
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    uint256 ATFee = 3;
    address public ATTeam = msg.sender;
    IDEXRouter public router;
    address public pair;
    bool public swapEnabled = true;
    bool public feesEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 200) * 1;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;
        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

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

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

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

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function removeLimits(uint256 _percentage) external onlyOwner {
        if (_percentage == 100) {
            _maxWalletAmount = type(uint256).max;
        } else {
            _maxWalletAmount = _totalSupply.mul(_percentage).div(100);
        }
    }

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(ATFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToSwap = contractTokenBalance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHMarketing = address(this).balance;

        (
            bool MarketingSuccess,

        ) = payable(ATTeam).call{value: amountETHMarketing}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (recipient != pair && recipient != DEAD) {
            require(
                isTxLimitExempt[recipient] ||
                    _balances[recipient] + amount <= _maxWalletAmount,
                "Transfer amount exceeds the bag size."
            );
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = feesEnabled && shouldTakeFee(sender)
            ? takeFee(sender, amount)
            : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ATTeam","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c50d1a6f725a8cb6728223b4b1fef466748af1b373ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a620000f1919062000827565b64012a05f20062000103919062000877565b6003556009600a62000116919062000827565b631dcd650062000127919062000877565b600455600360095533600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff021916908315150217905550600160c8600354620001b89190620008ee565b620001c4919062000877565b600d55348015620001d3575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030791906200098a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b391906200098a565b306040518363ffffffff1660e01b8152600401620003d3929190620009cb565b6020604051808303815f875af1158015620003f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200041691906200098a565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060035460055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000686919062000a07565b60405180910390a35062000a22565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200071f57808604811115620006f757620006f662000695565b5b6001851615620007075780820291505b80810290506200071785620006c2565b9450620006d7565b94509492505050565b5f826200073957600190506200080b565b8162000748575f90506200080b565b81600181146200076157600281146200076c57620007a2565b60019150506200080b565b60ff84111562000781576200078062000695565b5b8360020a9150848211156200079b576200079a62000695565b5b506200080b565b5060208310610133831016604e8410600b8410161715620007dc5782820a905083811115620007d657620007d562000695565b5b6200080b565b620007eb8484846001620006ce565b9250905081840481111562000805576200080462000695565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008338262000812565b915062000840836200081b565b92506200086f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000728565b905092915050565b5f620008838262000812565b9150620008908362000812565b9250828202620008a08162000812565b91508282048414831517620008ba57620008b962000695565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008fa8262000812565b9150620009078362000812565b9250826200091a5762000919620008c1565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009548262000929565b9050919050565b620009668162000948565b811462000971575f80fd5b50565b5f8151905062000984816200095b565b92915050565b5f60208284031215620009a257620009a162000925565b5b5f620009b18482850162000974565b91505092915050565b620009c58162000948565b82525050565b5f604082019050620009e05f830185620009ba565b620009ef6020830184620009ba565b9392505050565b62000a018162000812565b82525050565b5f60208201905062000a1c5f830184620009f6565b92915050565b60805161224062000a385f395f50506122405ff3fe608060405260043610610122575f3560e01c806370a082311161009f578063a8aa1b3111610063578063a8aa1b31146103d7578063a9059cbb14610401578063dd62ed3e1461043d578063e559d86a14610479578063f887ea40146104a157610129565b806370a0823114610307578063715018a614610343578063893d20e81461035957806395d89b4114610383578063a64e4f8a146103ad57610129565b80632f54bf6e116100e65780632f54bf6e14610223578063313ce5671461025f5780634042e147146102895780636c0a24eb146102b35780636ddd1713146102dd57610129565b80630445b6671461012d57806306fdde0314610157578063095ea7b31461018157806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b506101416104cb565b60405161014e91906118f3565b60405180910390f35b348015610162575f80fd5b5061016b6104d1565b6040516101789190611996565b60405180910390f35b34801561018c575f80fd5b506101a760048036038101906101a29190611a3e565b61050e565b6040516101b49190611a96565b60405180910390f35b3480156101c8575f80fd5b506101d16105fb565b6040516101de91906118f3565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190611aaf565b610604565b60405161021a9190611a96565b60405180910390f35b34801561022e575f80fd5b5061024960048036038101906102449190611aff565b6107f7565b6040516102569190611a96565b60405180910390f35b34801561026a575f80fd5b5061027361084e565b6040516102809190611b45565b60405180910390f35b348015610294575f80fd5b5061029d610856565b6040516102aa9190611b6d565b60405180910390f35b3480156102be575f80fd5b506102c761087b565b6040516102d491906118f3565b60405180910390f35b3480156102e8575f80fd5b506102f1610881565b6040516102fe9190611a96565b60405180910390f35b348015610312575f80fd5b5061032d60048036038101906103289190611aff565b610894565b60405161033a91906118f3565b60405180910390f35b34801561034e575f80fd5b506103576108da565b005b348015610364575f80fd5b5061036d61099a565b60405161037a9190611b6d565b60405180910390f35b34801561038e575f80fd5b506103976109c1565b6040516103a49190611996565b60405180910390f35b3480156103b8575f80fd5b506103c16109fe565b6040516103ce9190611a96565b60405180910390f35b3480156103e2575f80fd5b506103eb610a11565b6040516103f89190611b6d565b60405180910390f35b34801561040c575f80fd5b5061042760048036038101906104229190611a3e565b610a36565b6040516104349190611a96565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611b86565b610a4a565b60405161047091906118f3565b60405180910390f35b348015610484575f80fd5b5061049f600480360381019061049a9190611bc4565b610acc565b005b3480156104ac575f80fd5b506104b5610b7a565b6040516104c29190611c4a565b60405180910390f35b600d5481565b60606040518060400160405280601181526020017f4162737472616374205468696e6b696e67000000000000000000000000000000815250905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105e991906118f3565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146107e357610766826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9f9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6107ee848484610c01565b90509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600c60149054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e3336107f7565b610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990611cad565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f6040516109909190611b6d565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f615468696e6b696e670000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610a42338484610c01565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ad5336107f7565b610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b90611cad565b60405180910390fd5b60648103610b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610b77565b610b706064610b6283600354610fd090919063ffffffff16565b61104790919063ffffffff16565b6004819055505b50565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290610be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdd9190611996565b60405180910390fd5b505f8385610bf49190611cf8565b9050809150509392505050565b5f600e5f9054906101000a900460ff1615610c2857610c21848484611090565b9050610fc9565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cd2575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610db65760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610d7657506004548260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d739190611d2b565b11155b610db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dac90611dce565b60405180910390fd5b5b610dbe61125a565b15610dcc57610dcb61132c565b5b610e53826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9f9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600c60159054906101000a900460ff168015610eb65750610eb585611643565b5b610ec05782610ecb565b610eca8584611696565b5b9050610f1d8160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d490919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fbb91906118f3565b60405180910390a360019150505b9392505050565b5f808303610fe0575f9050611041565b5f8284610fed9190611dec565b9050828482610ffc9190611e5a565b1461103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390611efa565b60405180910390fd5b809150505b92915050565b5f61108883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611831565b905092915050565b5f611118826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9f9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111a98260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d490919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124791906118f3565b60405180910390a3600190509392505050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112c45750600e5f9054906101000a900460ff16155b80156112dc5750600c60149054906101000a900460ff165b80156113275750600d5460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600e5f6101000a81548160ff0219169083151502179055505f600d5490505f8190505f600267ffffffffffffffff81111561136c5761136b611f18565b5b60405190808252806020026020018201604052801561139a5781602001602082028036833780820191505090505b50905030815f815181106113b1576113b0611f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611455573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114799190611f86565b8160018151811061148d5761148c611f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016115299594939291906120a1565b5f604051808303815f87803b158015611540575f80fd5b505af1158015611552573d5f803e3d5ffd5b505050505f4790505f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516115a090612126565b5f6040518083038185875af1925050503d805f81146115da576040519150601f19603f3d011682016040523d82523d5f602084013e6115df565b606091505b5050905080611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a90612184565b60405180910390fd5b50505050505f600e5f6101000a81548160ff021916908315150217905550565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f806116c060646116b260095486610fd090919063ffffffff16565b61104790919063ffffffff16565b90506117128160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d490919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117b091906118f3565b60405180910390a36117cb818461189290919063ffffffff16565b91505092915050565b5f8082846117e29190611d2b565b905083811015611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906121ec565b60405180910390fd5b8091505092915050565b5f8083118290611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e9190611996565b60405180910390fd5b505f83856118859190611e5a565b9050809150509392505050565b5f6118d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b9f565b905092915050565b5f819050919050565b6118ed816118db565b82525050565b5f6020820190506119065f8301846118e4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611943578082015181840152602081019050611928565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6119688261190c565b6119728185611916565b9350611982818560208601611926565b61198b8161194e565b840191505092915050565b5f6020820190508181035f8301526119ae818461195e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119e3826119ba565b9050919050565b6119f3816119d9565b81146119fd575f80fd5b50565b5f81359050611a0e816119ea565b92915050565b611a1d816118db565b8114611a27575f80fd5b50565b5f81359050611a3881611a14565b92915050565b5f8060408385031215611a5457611a536119b6565b5b5f611a6185828601611a00565b9250506020611a7285828601611a2a565b9150509250929050565b5f8115159050919050565b611a9081611a7c565b82525050565b5f602082019050611aa95f830184611a87565b92915050565b5f805f60608486031215611ac657611ac56119b6565b5b5f611ad386828701611a00565b9350506020611ae486828701611a00565b9250506040611af586828701611a2a565b9150509250925092565b5f60208284031215611b1457611b136119b6565b5b5f611b2184828501611a00565b91505092915050565b5f60ff82169050919050565b611b3f81611b2a565b82525050565b5f602082019050611b585f830184611b36565b92915050565b611b67816119d9565b82525050565b5f602082019050611b805f830184611b5e565b92915050565b5f8060408385031215611b9c57611b9b6119b6565b5b5f611ba985828601611a00565b9250506020611bba85828601611a00565b9150509250929050565b5f60208284031215611bd957611bd86119b6565b5b5f611be684828501611a2a565b91505092915050565b5f819050919050565b5f611c12611c0d611c08846119ba565b611bef565b6119ba565b9050919050565b5f611c2382611bf8565b9050919050565b5f611c3482611c19565b9050919050565b611c4481611c2a565b82525050565b5f602082019050611c5d5f830184611c3b565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f611c97600683611916565b9150611ca282611c63565b602082019050919050565b5f6020820190508181035f830152611cc481611c8b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d02826118db565b9150611d0d836118db565b9250828203905081811115611d2557611d24611ccb565b5b92915050565b5f611d35826118db565b9150611d40836118db565b9250828201905080821115611d5857611d57611ccb565b5b92915050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f611db8602583611916565b9150611dc382611d5e565b604082019050919050565b5f6020820190508181035f830152611de581611dac565b9050919050565b5f611df6826118db565b9150611e01836118db565b9250828202611e0f816118db565b91508282048414831517611e2657611e25611ccb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e64826118db565b9150611e6f836118db565b925082611e7f57611e7e611e2d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ee4602183611916565b9150611eef82611e8a565b604082019050919050565b5f6020820190508181035f830152611f1181611ed8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050611f80816119ea565b92915050565b5f60208284031215611f9b57611f9a6119b6565b5b5f611fa884828501611f72565b91505092915050565b5f819050919050565b5f611fd4611fcf611fca84611fb1565b611bef565b6118db565b9050919050565b611fe481611fba565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61201c816119d9565b82525050565b5f61202d8383612013565b60208301905092915050565b5f602082019050919050565b5f61204f82611fea565b6120598185611ff4565b935061206483612004565b805f5b8381101561209457815161207b8882612022565b975061208683612039565b925050600181019050612067565b5085935050505092915050565b5f60a0820190506120b45f8301886118e4565b6120c16020830187611fdb565b81810360408301526120d38186612045565b90506120e26060830185611b5e565b6120ef60808301846118e4565b9695505050505050565b5f81905092915050565b50565b5f6121115f836120f9565b915061211c82612103565b5f82019050919050565b5f61213082612106565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e7366657200005f82015250565b5f61216e601e83611916565b91506121798261213a565b602082019050919050565b5f6020820190508181035f83015261219b81612162565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6121d6601b83611916565b91506121e1826121a2565b602082019050919050565b5f6020820190508181035f830152612203816121ca565b905091905056fea26469706673582212203da5cb56224f4336d15d3e3aba85f6af4cf71bb5f89fadd6f801bc95038c975864736f6c63430008150033

Deployed Bytecode

0x608060405260043610610122575f3560e01c806370a082311161009f578063a8aa1b3111610063578063a8aa1b31146103d7578063a9059cbb14610401578063dd62ed3e1461043d578063e559d86a14610479578063f887ea40146104a157610129565b806370a0823114610307578063715018a614610343578063893d20e81461035957806395d89b4114610383578063a64e4f8a146103ad57610129565b80632f54bf6e116100e65780632f54bf6e14610223578063313ce5671461025f5780634042e147146102895780636c0a24eb146102b35780636ddd1713146102dd57610129565b80630445b6671461012d57806306fdde0314610157578063095ea7b31461018157806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b506101416104cb565b60405161014e91906118f3565b60405180910390f35b348015610162575f80fd5b5061016b6104d1565b6040516101789190611996565b60405180910390f35b34801561018c575f80fd5b506101a760048036038101906101a29190611a3e565b61050e565b6040516101b49190611a96565b60405180910390f35b3480156101c8575f80fd5b506101d16105fb565b6040516101de91906118f3565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190611aaf565b610604565b60405161021a9190611a96565b60405180910390f35b34801561022e575f80fd5b5061024960048036038101906102449190611aff565b6107f7565b6040516102569190611a96565b60405180910390f35b34801561026a575f80fd5b5061027361084e565b6040516102809190611b45565b60405180910390f35b348015610294575f80fd5b5061029d610856565b6040516102aa9190611b6d565b60405180910390f35b3480156102be575f80fd5b506102c761087b565b6040516102d491906118f3565b60405180910390f35b3480156102e8575f80fd5b506102f1610881565b6040516102fe9190611a96565b60405180910390f35b348015610312575f80fd5b5061032d60048036038101906103289190611aff565b610894565b60405161033a91906118f3565b60405180910390f35b34801561034e575f80fd5b506103576108da565b005b348015610364575f80fd5b5061036d61099a565b60405161037a9190611b6d565b60405180910390f35b34801561038e575f80fd5b506103976109c1565b6040516103a49190611996565b60405180910390f35b3480156103b8575f80fd5b506103c16109fe565b6040516103ce9190611a96565b60405180910390f35b3480156103e2575f80fd5b506103eb610a11565b6040516103f89190611b6d565b60405180910390f35b34801561040c575f80fd5b5061042760048036038101906104229190611a3e565b610a36565b6040516104349190611a96565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611b86565b610a4a565b60405161047091906118f3565b60405180910390f35b348015610484575f80fd5b5061049f600480360381019061049a9190611bc4565b610acc565b005b3480156104ac575f80fd5b506104b5610b7a565b6040516104c29190611c4a565b60405180910390f35b600d5481565b60606040518060400160405280601181526020017f4162737472616374205468696e6b696e67000000000000000000000000000000815250905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105e991906118f3565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146107e357610766826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9f9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6107ee848484610c01565b90509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600c60149054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e3336107f7565b610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990611cad565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f6040516109909190611b6d565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f615468696e6b696e670000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610a42338484610c01565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ad5336107f7565b610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b90611cad565b60405180910390fd5b60648103610b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610b77565b610b706064610b6283600354610fd090919063ffffffff16565b61104790919063ffffffff16565b6004819055505b50565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290610be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdd9190611996565b60405180910390fd5b505f8385610bf49190611cf8565b9050809150509392505050565b5f600e5f9054906101000a900460ff1615610c2857610c21848484611090565b9050610fc9565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cd2575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610db65760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610d7657506004548260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d739190611d2b565b11155b610db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dac90611dce565b60405180910390fd5b5b610dbe61125a565b15610dcc57610dcb61132c565b5b610e53826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9f9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600c60159054906101000a900460ff168015610eb65750610eb585611643565b5b610ec05782610ecb565b610eca8584611696565b5b9050610f1d8160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d490919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fbb91906118f3565b60405180910390a360019150505b9392505050565b5f808303610fe0575f9050611041565b5f8284610fed9190611dec565b9050828482610ffc9190611e5a565b1461103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390611efa565b60405180910390fd5b809150505b92915050565b5f61108883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611831565b905092915050565b5f611118826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9f9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111a98260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d490919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124791906118f3565b60405180910390a3600190509392505050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112c45750600e5f9054906101000a900460ff16155b80156112dc5750600c60149054906101000a900460ff165b80156113275750600d5460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600e5f6101000a81548160ff0219169083151502179055505f600d5490505f8190505f600267ffffffffffffffff81111561136c5761136b611f18565b5b60405190808252806020026020018201604052801561139a5781602001602082028036833780820191505090505b50905030815f815181106113b1576113b0611f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611455573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114799190611f86565b8160018151811061148d5761148c611f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016115299594939291906120a1565b5f604051808303815f87803b158015611540575f80fd5b505af1158015611552573d5f803e3d5ffd5b505050505f4790505f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516115a090612126565b5f6040518083038185875af1925050503d805f81146115da576040519150601f19603f3d011682016040523d82523d5f602084013e6115df565b606091505b5050905080611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a90612184565b60405180910390fd5b50505050505f600e5f6101000a81548160ff021916908315150217905550565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f806116c060646116b260095486610fd090919063ffffffff16565b61104790919063ffffffff16565b90506117128160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d490919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117b091906118f3565b60405180910390a36117cb818461189290919063ffffffff16565b91505092915050565b5f8082846117e29190611d2b565b905083811015611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906121ec565b60405180910390fd5b8091505092915050565b5f8083118290611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e9190611996565b60405180910390fd5b505f83856118859190611e5a565b9050809150509392505050565b5f6118d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b9f565b905092915050565b5f819050919050565b6118ed816118db565b82525050565b5f6020820190506119065f8301846118e4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611943578082015181840152602081019050611928565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6119688261190c565b6119728185611916565b9350611982818560208601611926565b61198b8161194e565b840191505092915050565b5f6020820190508181035f8301526119ae818461195e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119e3826119ba565b9050919050565b6119f3816119d9565b81146119fd575f80fd5b50565b5f81359050611a0e816119ea565b92915050565b611a1d816118db565b8114611a27575f80fd5b50565b5f81359050611a3881611a14565b92915050565b5f8060408385031215611a5457611a536119b6565b5b5f611a6185828601611a00565b9250506020611a7285828601611a2a565b9150509250929050565b5f8115159050919050565b611a9081611a7c565b82525050565b5f602082019050611aa95f830184611a87565b92915050565b5f805f60608486031215611ac657611ac56119b6565b5b5f611ad386828701611a00565b9350506020611ae486828701611a00565b9250506040611af586828701611a2a565b9150509250925092565b5f60208284031215611b1457611b136119b6565b5b5f611b2184828501611a00565b91505092915050565b5f60ff82169050919050565b611b3f81611b2a565b82525050565b5f602082019050611b585f830184611b36565b92915050565b611b67816119d9565b82525050565b5f602082019050611b805f830184611b5e565b92915050565b5f8060408385031215611b9c57611b9b6119b6565b5b5f611ba985828601611a00565b9250506020611bba85828601611a00565b9150509250929050565b5f60208284031215611bd957611bd86119b6565b5b5f611be684828501611a2a565b91505092915050565b5f819050919050565b5f611c12611c0d611c08846119ba565b611bef565b6119ba565b9050919050565b5f611c2382611bf8565b9050919050565b5f611c3482611c19565b9050919050565b611c4481611c2a565b82525050565b5f602082019050611c5d5f830184611c3b565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f611c97600683611916565b9150611ca282611c63565b602082019050919050565b5f6020820190508181035f830152611cc481611c8b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d02826118db565b9150611d0d836118db565b9250828203905081811115611d2557611d24611ccb565b5b92915050565b5f611d35826118db565b9150611d40836118db565b9250828201905080821115611d5857611d57611ccb565b5b92915050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f611db8602583611916565b9150611dc382611d5e565b604082019050919050565b5f6020820190508181035f830152611de581611dac565b9050919050565b5f611df6826118db565b9150611e01836118db565b9250828202611e0f816118db565b91508282048414831517611e2657611e25611ccb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e64826118db565b9150611e6f836118db565b925082611e7f57611e7e611e2d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ee4602183611916565b9150611eef82611e8a565b604082019050919050565b5f6020820190508181035f830152611f1181611ed8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050611f80816119ea565b92915050565b5f60208284031215611f9b57611f9a6119b6565b5b5f611fa884828501611f72565b91505092915050565b5f819050919050565b5f611fd4611fcf611fca84611fb1565b611bef565b6118db565b9050919050565b611fe481611fba565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61201c816119d9565b82525050565b5f61202d8383612013565b60208301905092915050565b5f602082019050919050565b5f61204f82611fea565b6120598185611ff4565b935061206483612004565b805f5b8381101561209457815161207b8882612022565b975061208683612039565b925050600181019050612067565b5085935050505092915050565b5f60a0820190506120b45f8301886118e4565b6120c16020830187611fdb565b81810360408301526120d38186612045565b90506120e26060830185611b5e565b6120ef60808301846118e4565b9695505050505050565b5f81905092915050565b50565b5f6121115f836120f9565b915061211c82612103565b5f82019050919050565b5f61213082612106565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e7366657200005f82015250565b5f61216e601e83611916565b91506121798261213a565b602082019050919050565b5f6020820190508181035f83015261219b81612162565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6121d6601b83611916565b91506121e1826121a2565b602082019050919050565b5f6020820190508181035f830152612203816121ca565b905091905056fea26469706673582212203da5cb56224f4336d15d3e3aba85f6af4cf71bb5f89fadd6f801bc95038c975864736f6c63430008150033

Deployed Bytecode Sourcemap

4601:6520:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5560:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6242:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7437:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6344:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7889:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2593:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6454:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5388:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5094:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5486:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6762:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2704:131;;;;;;;;;;;;;:::i;:::-;;6662:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6556:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5523:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5460:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7693:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8321:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5429:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5560:55;;;;:::o;6242:94::-;6290:13;6323:5;;;;;;;;;;;;;;;;;6316:12;;6242:94;:::o;7437:248::-;7539:4;7596:6;7561:11;:23;7573:10;7561:23;;;;;;;;;;;;;;;:32;7585:7;7561:32;;;;;;;;;;;;;;;:41;;;;7639:7;7618:37;;7627:10;7618:37;;;7648:6;7618:37;;;;;;:::i;:::-;;;;;;;;7673:4;7666:11;;7437:248;;;;:::o;6344:102::-;6399:7;6426:12;;6419:19;;6344:102;:::o;7889:424::-;8023:4;8079:17;8044:11;:19;8056:6;8044:19;;;;;;;;;;;;;;;:31;8064:10;8044:31;;;;;;;;;;;;;;;;:52;8040:206;;8147:87;8201:6;8147:87;;;;;;;;;;;;;;;;;:11;:19;8159:6;8147:19;;;;;;;;;;;;;;;:31;8167:10;8147:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;8113:11;:19;8125:6;8113:19;;;;;;;;;;;;;;;:31;8133:10;8113:31;;;;;;;;;;;;;;;:121;;;;8040:206;8265:40;8279:6;8287:9;8298:6;8265:13;:40::i;:::-;8258:47;;7889:424;;;;;:::o;2593:103::-;2648:4;2683:5;;;;;;;;;;;2672:16;;:7;:16;;;2665:23;;2593:103;;;:::o;6454:94::-;6506:5;5025:1;6524:16;;6454:94;:::o;5388:34::-;;;;;;;;;;;;;:::o;5094:63::-;;;;:::o;5486:30::-;;;;;;;;;;;;;:::o;6762:119::-;6828:7;6855:9;:18;6865:7;6855:18;;;;;;;;;;;;;;;;6848:25;;6762:119;;;:::o;2704:131::-;2535:19;2543:10;2535:7;:19::i;:::-;2527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2777:1:::1;2761:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2795:32;2824:1;2795:32;;;;;;:::i;:::-;;;;;;;;2704:131::o:0;6662:92::-;6714:7;6741:5;;;;;;;;;;;6734:12;;6662:92;:::o;6556:98::-;6606:13;6639:7;;;;;;;;;;;;;;;;;6632:14;;6556:98;:::o;5523:30::-;;;;;;;;;;;;;:::o;5460:19::-;;;;;;;;;;;;;:::o;7693:188::-;7800:4;7829:44;7843:10;7855:9;7866:6;7829:13;:44::i;:::-;7822:51;;7693:188;;;;:::o;7241:::-;7361:7;7393:11;:19;7405:6;7393:19;;;;;;;;;;;;;;;:28;7413:7;7393:28;;;;;;;;;;;;;;;;7386:35;;7241:188;;;;:::o;8321:257::-;2535:19;2543:10;2535:7;:19::i;:::-;2527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8413:3:::1;8398:11;:18:::0;8394:177:::1;;8452:17;8433:16;:36;;;;8394:177;;;8521:38;8555:3;8521:29;8538:11;8521:12;;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;8502:16;:57;;;;8394:177;8321:257:::0;:::o;5429:24::-;;;;;;;;;;;;;:::o;460:224::-;580:7;613:1;608;:6;;616:12;600:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;640:9;656:1;652;:5;;;;:::i;:::-;640:17;;675:1;668:8;;;460:224;;;;;:::o;9667:1007::-;9793:4;9814:6;;;;;;;;;;;9810:87;;;9844:41;9859:6;9867:9;9878:6;9844:14;:41::i;:::-;9837:48;;;;9810:87;9926:4;;;;;;;;;;;9913:17;;:9;:17;;;;:38;;;;;9947:4;;;;;;;;;;;9934:17;;:9;:17;;;;9913:38;9909:270;;;9994:15;:26;10010:9;9994:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;10078:16;;10068:6;10045:9;:20;10055:9;10045:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;9994:100;9968:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;9909:270;10195:16;:14;:16::i;:::-;10191:59;;;10228:10;:8;:10::i;:::-;10191:59;10282:90;10318:6;10282:90;;;;;;;;;;;;;;;;;:9;:17;10292:6;10282:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10262:9;:17;10272:6;10262:17;;;;;;;;;;;;;;;:110;;;;10385:22;10410:11;;;;;;;;;;;:36;;;;;10425:21;10439:6;10425:13;:21::i;:::-;10410:36;:97;;10501:6;10410:97;;;10462:23;10470:6;10478;10462:7;:23::i;:::-;10410:97;10385:122;;10543:40;10568:14;10543:9;:20;10553:9;10543:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10520:9;:20;10530:9;10520:20;;;;;;;;;;;;;;;:63;;;;10618:9;10601:43;;10610:6;10601:43;;;10629:14;10601:43;;;;;;:::i;:::-;;;;;;;;10662:4;10655:11;;;9667:1007;;;;;;:::o;692:246::-;750:7;779:1;774;:6;770:47;;804:1;797:8;;;;770:47;827:9;843:1;839;:5;;;;:::i;:::-;827:17;;872:1;867;863;:5;;;;:::i;:::-;:10;855:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;929:1;922:8;;;692:246;;;;;:::o;946:132::-;1004:7;1031:39;1035:1;1038;1031:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1024:46;;946:132;;;;:::o;10682:401::-;10809:4;10846:90;10882:6;10846:90;;;;;;;;;;;;;;;;;:9;:17;10856:6;10846:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10826:9;:17;10836:6;10826:17;;;;;;;;;;;;;;;:110;;;;10970:32;10995:6;10970:9;:20;10980:9;10970:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10947:9;:20;10957:9;10947:20;;;;;;;;;;;;;;;:55;;;;11035:9;11018:35;;11027:6;11018:35;;;11046:6;11018:35;;;;;;:::i;:::-;;;;;;;;11071:4;11064:11;;10682:401;;;;;:::o;6889:222::-;6938:4;6989;;;;;;;;;;;6975:18;;:10;:18;;;;:42;;;;;7011:6;;;;;;;;;;;7010:7;6975:42;:70;;;;;7034:11;;;;;;;;;;;6975:70;:128;;;;;7090:13;;7062:9;:24;7080:4;7062:24;;;;;;;;;;;;;;;;:41;;6975:128;6955:148;;6889:222;:::o;8932:727::-;5680:4;5671:6;;:13;;;;;;;;;;;;;;;;;;8981:28:::1;9012:13;;8981:44;;9036:20;9059;9036:43;;9092:21;9130:1;9116:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9092:40;;9161:4;9143;9148:1;9143:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9187:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9177:4;9182:1;9177:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9213:6;;;;;;;;;;;:57;;;9285:12;9312:1;9328:4;9355;9375:15;9213:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9414:26;9443:21;9414:50;;9492:21;9538:6;;;;;;;;;;;9530:20;;9558:18;9530:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9477:104;;;9600:16;9592:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8970:689;;;;;5716:5:::0;5707:6;;:14;;;;;;;;;;;;;;;;;;8932:727::o;7119:114::-;7181:4;7206:11;:19;7218:6;7206:19;;;;;;;;;;;;;;;;;;;;;;;;;7205:20;7198:27;;7119:114;;;:::o;8586:338::-;8671:7;8696:17;8716:26;8738:3;8716:17;8727:5;;8716:6;:10;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;8696:46;;8780:39;8809:9;8780;:24;8798:4;8780:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8753:9;:24;8771:4;8753:24;;;;;;;;;;;;;;;:66;;;;8860:4;8835:42;;8844:6;8835:42;;;8867:9;8835:42;;;;;;:::i;:::-;;;;;;;;8895:21;8906:9;8895:6;:10;;:21;;;;:::i;:::-;8888:28;;;8586:338;;;;:::o;129:179::-;187:7;207:9;223:1;219;:5;;;;:::i;:::-;207:17;;248:1;243;:6;;235:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;299:1;292:8;;;129:179;;;;:::o;1086:223::-;1206:7;1238:1;1234;:5;1241:12;1226:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1265:9;1281:1;1277;:5;;;;:::i;:::-;1265:17;;1300:1;1293:8;;;1086:223;;;;;:::o;316:136::-;374:7;401:43;405:1;408;401:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;394:50;;316:136;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:60::-;6383:3;6404:5;6397:12;;6355:60;;;:::o;6421:142::-;6471:9;6504:53;6522:34;6531:24;6549:5;6531:24;:::i;:::-;6522:34;:::i;:::-;6504:53;:::i;:::-;6491:66;;6421:142;;;:::o;6569:126::-;6619:9;6652:37;6683:5;6652:37;:::i;:::-;6639:50;;6569:126;;;:::o;6701:144::-;6769:9;6802:37;6833:5;6802:37;:::i;:::-;6789:50;;6701:144;;;:::o;6851:167::-;6956:55;7005:5;6956:55;:::i;:::-;6951:3;6944:68;6851:167;;:::o;7024:258::-;7135:4;7173:2;7162:9;7158:18;7150:26;;7186:89;7272:1;7261:9;7257:17;7248:6;7186:89;:::i;:::-;7024:258;;;;:::o;7288:156::-;7428:8;7424:1;7416:6;7412:14;7405:32;7288:156;:::o;7450:365::-;7592:3;7613:66;7677:1;7672:3;7613:66;:::i;:::-;7606:73;;7688:93;7777:3;7688:93;:::i;:::-;7806:2;7801:3;7797:12;7790:19;;7450:365;;;:::o;7821:419::-;7987:4;8025:2;8014:9;8010:18;8002:26;;8074:9;8068:4;8064:20;8060:1;8049:9;8045:17;8038:47;8102:131;8228:4;8102:131;:::i;:::-;8094:139;;7821:419;;;:::o;8246:180::-;8294:77;8291:1;8284:88;8391:4;8388:1;8381:15;8415:4;8412:1;8405:15;8432:194;8472:4;8492:20;8510:1;8492:20;:::i;:::-;8487:25;;8526:20;8544:1;8526:20;:::i;:::-;8521:25;;8570:1;8567;8563:9;8555:17;;8594:1;8588:4;8585:11;8582:37;;;8599:18;;:::i;:::-;8582:37;8432:194;;;;:::o;8632:191::-;8672:3;8691:20;8709:1;8691:20;:::i;:::-;8686:25;;8725:20;8743:1;8725:20;:::i;:::-;8720:25;;8768:1;8765;8761:9;8754:16;;8789:3;8786:1;8783:10;8780:36;;;8796:18;;:::i;:::-;8780:36;8632:191;;;;:::o;8829:224::-;8969:34;8965:1;8957:6;8953:14;8946:58;9038:7;9033:2;9025:6;9021:15;9014:32;8829:224;:::o;9059:366::-;9201:3;9222:67;9286:2;9281:3;9222:67;:::i;:::-;9215:74;;9298:93;9387:3;9298:93;:::i;:::-;9416:2;9411:3;9407:12;9400:19;;9059:366;;;:::o;9431:419::-;9597:4;9635:2;9624:9;9620:18;9612:26;;9684:9;9678:4;9674:20;9670:1;9659:9;9655:17;9648:47;9712:131;9838:4;9712:131;:::i;:::-;9704:139;;9431:419;;;:::o;9856:410::-;9896:7;9919:20;9937:1;9919:20;:::i;:::-;9914:25;;9953:20;9971:1;9953:20;:::i;:::-;9948:25;;10008:1;10005;10001:9;10030:30;10048:11;10030:30;:::i;:::-;10019:41;;10209:1;10200:7;10196:15;10193:1;10190:22;10170:1;10163:9;10143:83;10120:139;;10239:18;;:::i;:::-;10120:139;9904:362;9856:410;;;;:::o;10272:180::-;10320:77;10317:1;10310:88;10417:4;10414:1;10407:15;10441:4;10438:1;10431:15;10458:185;10498:1;10515:20;10533:1;10515:20;:::i;:::-;10510:25;;10549:20;10567:1;10549:20;:::i;:::-;10544:25;;10588:1;10578:35;;10593:18;;:::i;:::-;10578:35;10635:1;10632;10628:9;10623:14;;10458:185;;;;:::o;10649:220::-;10789:34;10785:1;10777:6;10773:14;10766:58;10858:3;10853:2;10845:6;10841:15;10834:28;10649:220;:::o;10875:366::-;11017:3;11038:67;11102:2;11097:3;11038:67;:::i;:::-;11031:74;;11114:93;11203:3;11114:93;:::i;:::-;11232:2;11227:3;11223:12;11216:19;;10875:366;;;:::o;11247:419::-;11413:4;11451:2;11440:9;11436:18;11428:26;;11500:9;11494:4;11490:20;11486:1;11475:9;11471:17;11464:47;11528:131;11654:4;11528:131;:::i;:::-;11520:139;;11247:419;;;:::o;11672:180::-;11720:77;11717:1;11710:88;11817:4;11814:1;11807:15;11841:4;11838:1;11831:15;11858:180;11906:77;11903:1;11896:88;12003:4;12000:1;11993:15;12027:4;12024:1;12017:15;12044:143;12101:5;12132:6;12126:13;12117:22;;12148:33;12175:5;12148:33;:::i;:::-;12044:143;;;;:::o;12193:351::-;12263:6;12312:2;12300:9;12291:7;12287:23;12283:32;12280:119;;;12318:79;;:::i;:::-;12280:119;12438:1;12463:64;12519:7;12510:6;12499:9;12495:22;12463:64;:::i;:::-;12453:74;;12409:128;12193:351;;;;:::o;12550:85::-;12595:7;12624:5;12613:16;;12550:85;;;:::o;12641:158::-;12699:9;12732:61;12750:42;12759:32;12785:5;12759:32;:::i;:::-;12750:42;:::i;:::-;12732:61;:::i;:::-;12719:74;;12641:158;;;:::o;12805:147::-;12900:45;12939:5;12900:45;:::i;:::-;12895:3;12888:58;12805:147;;:::o;12958:114::-;13025:6;13059:5;13053:12;13043:22;;12958:114;;;:::o;13078:184::-;13177:11;13211:6;13206:3;13199:19;13251:4;13246:3;13242:14;13227:29;;13078:184;;;;:::o;13268:132::-;13335:4;13358:3;13350:11;;13388:4;13383:3;13379:14;13371:22;;13268:132;;;:::o;13406:108::-;13483:24;13501:5;13483:24;:::i;:::-;13478:3;13471:37;13406:108;;:::o;13520:179::-;13589:10;13610:46;13652:3;13644:6;13610:46;:::i;:::-;13688:4;13683:3;13679:14;13665:28;;13520:179;;;;:::o;13705:113::-;13775:4;13807;13802:3;13798:14;13790:22;;13705:113;;;:::o;13854:732::-;13973:3;14002:54;14050:5;14002:54;:::i;:::-;14072:86;14151:6;14146:3;14072:86;:::i;:::-;14065:93;;14182:56;14232:5;14182:56;:::i;:::-;14261:7;14292:1;14277:284;14302:6;14299:1;14296:13;14277:284;;;14378:6;14372:13;14405:63;14464:3;14449:13;14405:63;:::i;:::-;14398:70;;14491:60;14544:6;14491:60;:::i;:::-;14481:70;;14337:224;14324:1;14321;14317:9;14312:14;;14277:284;;;14281:14;14577:3;14570:10;;13978:608;;;13854:732;;;;:::o;14592:831::-;14855:4;14893:3;14882:9;14878:19;14870:27;;14907:71;14975:1;14964:9;14960:17;14951:6;14907:71;:::i;:::-;14988:80;15064:2;15053:9;15049:18;15040:6;14988:80;:::i;:::-;15115:9;15109:4;15105:20;15100:2;15089:9;15085:18;15078:48;15143:108;15246:4;15237:6;15143:108;:::i;:::-;15135:116;;15261:72;15329:2;15318:9;15314:18;15305:6;15261:72;:::i;:::-;15343:73;15411:3;15400:9;15396:19;15387:6;15343:73;:::i;:::-;14592:831;;;;;;;;:::o;15429:147::-;15530:11;15567:3;15552:18;;15429:147;;;;:::o;15582:114::-;;:::o;15702:398::-;15861:3;15882:83;15963:1;15958:3;15882:83;:::i;:::-;15875:90;;15974:93;16063:3;15974:93;:::i;:::-;16092:1;16087:3;16083:11;16076:18;;15702:398;;;:::o;16106:379::-;16290:3;16312:147;16455:3;16312:147;:::i;:::-;16305:154;;16476:3;16469:10;;16106:379;;;:::o;16491:180::-;16631:32;16627:1;16619:6;16615:14;16608:56;16491:180;:::o;16677:366::-;16819:3;16840:67;16904:2;16899:3;16840:67;:::i;:::-;16833:74;;16916:93;17005:3;16916:93;:::i;:::-;17034:2;17029:3;17025:12;17018:19;;16677:366;;;:::o;17049:419::-;17215:4;17253:2;17242:9;17238:18;17230:26;;17302:9;17296:4;17292:20;17288:1;17277:9;17273:17;17266:47;17330:131;17456:4;17330:131;:::i;:::-;17322:139;;17049:419;;;:::o;17474:177::-;17614:29;17610:1;17602:6;17598:14;17591:53;17474:177;:::o;17657:366::-;17799:3;17820:67;17884:2;17879:3;17820:67;:::i;:::-;17813:74;;17896:93;17985:3;17896:93;:::i;:::-;18014:2;18009:3;18005:12;17998:19;;17657:366;;;:::o;18029:419::-;18195:4;18233:2;18222:9;18218:18;18210:26;;18282:9;18276:4;18272:20;18268:1;18257:9;18253:17;18246:47;18310:131;18436:4;18310:131;:::i;:::-;18302:139;;18029:419;;;:::o

Swarm Source

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