ETH Price: $3,464.62 (+1.26%)
Gas: 9 Gwei

Token

NEURALINK (NLINK)
 

Overview

Max Total Supply

6,900,000,000 NLINK

Holders

231

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.342553113516832881 NLINK

Value
$0.00
0x82606beb4dd0a018575611B4c4f23D4B71DB0340
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:
NEURALINK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-16
*/

/*

TG:https://t.me/neuralink_erc

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

contract NEURALINK 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 => bool) private bots;
    address payable private _marWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=24;
    uint256 private _initialSellTax=24;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=19;
    uint256 private _reduceSellTaxAt=29;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 6900000000 * 10**_decimals;
    string private constant _name = unicode"NEURALINK";
    string private constant _symbol = unicode"NLINK";
    uint256 public _maxTxAmount = 138000000 * 10**_decimals;
    uint256 public _maxWalletSize = 138000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 69000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 69000000 * 10**_decimals;

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

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

    constructor () {

        _marWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marWallet] = 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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!swapping && 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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function updateReduceBuySellTax(uint256 _newBuy,uint256 _newSell) public onlyOwner {
        _reduceBuyTaxAt = _newBuy;
        _reduceSellTaxAt = _newSell;
    }

    function updateInitialBuySellTax(uint256 _newBuy,uint256 _newSell) public onlyOwner {
        _initialBuyTax = _newBuy;
        _initialSellTax = _newSell;
    }

    function updatePreventSwapBefore(uint256 _preventSwap) public onlyOwner {
        _preventSwapBefore = _preventSwap;
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    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":"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":[],"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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","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":"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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"updateInitialBuySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_preventSwap","type":"uint256"}],"name":"updatePreventSwapBefore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"updateReduceBuySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601860075560186008555f6009555f600a556013600b55601d600c556014600d555f600e556012600a620000399190620005f4565b630839b6806200004a919062000644565b600f556012600a6200005d9190620005f4565b630839b6806200006e919062000644565b6010556012600a620000819190620005f4565b63041cdb4062000092919062000644565b6011556012600a620000a59190620005f4565b63041cdb40620000b6919062000644565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000f9575f80fd5b505f6200010b6200043460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b76200043460201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002069190620005f4565b64019b45a50062000218919062000644565b60015f6200022b6200043460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200027d6200043b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003a76200043460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620004059190620005f4565b64019b45a50062000417919062000644565b6040516200042691906200069f565b60405180910390a3620006ba565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004ec57808604811115620004c457620004c362000462565b5b6001851615620004d45780820291505b8081029050620004e4856200048f565b9450620004a4565b94509492505050565b5f82620005065760019050620005d8565b8162000515575f9050620005d8565b81600181146200052e576002811462000539576200056f565b6001915050620005d8565b60ff8411156200054e576200054d62000462565b5b8360020a91508482111562000568576200056762000462565b5b50620005d8565b5060208310610133831016604e8410600b8410161715620005a95782820a905083811115620005a357620005a262000462565b5b620005d8565b620005b884848460016200049b565b92509050818404811115620005d257620005d162000462565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060082620005df565b91506200060d83620005e8565b92506200063c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004f5565b905092915050565b5f6200065082620005df565b91506200065d83620005df565b92508282026200066d81620005df565b9150828204841483151762000687576200068662000462565b5b5092915050565b6200069981620005df565b82525050565b5f602082019050620006b45f8301846200068e565b92915050565b61301780620006c85f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610432578063bb6bd6c01461046e578063bf474bed14610496578063c9567bf9146104c0578063d34628cc146104d6578063dd62ed3e146104fe5761014a565b8063715018a61461035e578063751039fc146103745780637d1db4a51461038a5780638da5cb5b146103b45780638f9a55c0146103de57806395d89b41146104085761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac579146102965780633ec05c39146102d25780634458200a146102fa57806370a08231146103225761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261053a565b60405161016f9190612153565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612211565b610577565b6040516101ab9190612269565b60405180910390f35b3480156101bf575f80fd5b506101c8610594565b6040516101d59190612291565b60405180910390f35b3480156101e9575f80fd5b506101f261059a565b6040516101ff9190612291565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906122aa565b6105be565b60405161023b9190612269565b60405180910390f35b34801561024f575f80fd5b50610258610692565b6040516102659190612315565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061246e565b61069a565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906124b5565b6107be565b6040516102c99190612269565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f391906124e0565b610810565b005b348015610305575f80fd5b50610320600480360381019061031b919061251e565b6108b6565b005b34801561032d575f80fd5b50610348600480360381019061034391906124b5565b610954565b6040516103559190612291565b60405180910390f35b348015610369575f80fd5b5061037261099a565b005b34801561037f575f80fd5b50610388610ae8565b005b348015610395575f80fd5b5061039e610c1a565b6040516103ab9190612291565b60405180910390f35b3480156103bf575f80fd5b506103c8610c20565b6040516103d59190612558565b60405180910390f35b3480156103e9575f80fd5b506103f2610c47565b6040516103ff9190612291565b60405180910390f35b348015610413575f80fd5b5061041c610c4d565b6040516104299190612153565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190612211565b610c8a565b6040516104659190612269565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f91906124e0565b610ca7565b005b3480156104a1575f80fd5b506104aa610d4d565b6040516104b79190612291565b60405180910390f35b3480156104cb575f80fd5b506104d4610d53565b005b3480156104e1575f80fd5b506104fc60048036038101906104f7919061246e565b610e73565b005b348015610509575f80fd5b50610524600480360381019061051f9190612571565b610f98565b6040516105319190612291565b60405180910390f35b60606040518060400160405280600981526020017f4e455552414c494e4b0000000000000000000000000000000000000000000000815250905090565b5f61058a61058361101a565b8484611021565b6001905092915050565b60125481565b5f6012600a6105a9919061270b565b64019b45a5006105b99190612755565b905090565b5f6105ca8484846111e4565b610687846105d661101a565b61068285604051806060016040528060288152602001612fba6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063961101a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ba49092919063ffffffff16565b611021565b600190509392505050565b5f6012905090565b6106a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461072e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610725906127e0565b60405180910390fd5b5f5b81518110156107ba575f60045f8484815181106107505761074f6127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806107b29061282b565b915050610730565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61081861101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906127e0565b60405180910390fd5b81600781905550806008819055505050565b6108be61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610941906127e0565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a25906127e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610af061101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906127e0565b60405180910390fd5b6012600a610b8a919061270b565b64019b45a500610b9a9190612755565b600f819055506012600a610bae919061270b565b64019b45a500610bbe9190612755565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bf3919061270b565b64019b45a500610c039190612755565b604051610c109190612291565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4e4c494e4b000000000000000000000000000000000000000000000000000000815250905090565b5f610c9d610c9661101a565b84846111e4565b6001905092915050565b610caf61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d32906127e0565b60405180910390fd5b81600b8190555080600c819055505050565b60115481565b610d5b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906127e0565b60405180910390fd5b60148054906101000a900460ff1615610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c906128bc565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b610e7b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906127e0565b60405180910390fd5b5f5b8151811015610f9457600160045f848481518110610f2a57610f296127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610f8c9061282b565b915050610f09565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110869061294a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906129d8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111d79190612291565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990612a66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790612af4565b60405180910390fd5b5f8111611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990612b82565b60405180910390fd5b5f61130b610c20565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113795750611349610c20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118f45760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561141c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611424575f80fd5b6114606064611452600b54600e541161143f57600754611443565b6009545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561150b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561164157600f548211156115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f90612bea565b60405180910390fd5b601054826115b585610954565b6115bf9190612c08565b1115611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612c85565b60405180910390fd5b4360036006546116109190612c08565b11156116295761161f83611cc6565b15611628575f80fd5b5b600e5f81548092919061163b9061282b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116e5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174357601054826116f785610954565b6117019190612c08565b1115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990612c85565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117cb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561180f5761180c60646117fe600c54600e54116117eb576008546117ef565b600a545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b90505b5f61181930610954565b9050601460159054906101000a900460ff16158015611884575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561189c5750601460169054906101000a900460ff165b80156118a9575060115481115b80156118b85750600d54600e54115b156118f2576118da6118d5846118d084601254611cd7565b611cd7565b611cef565b5f4790505f8111156118f0576118ef47611f5a565b5b505b505b5f8111156119f35761194c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea9190612291565b60405180910390a35b611a438260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ae6611a9a828461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b89848661201f90919063ffffffff16565b604051611b969190612291565b60405180910390a350505050565b5f838311158290611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be29190612153565b60405180910390fd5b505f8385611bf99190612ca3565b9050809150509392505050565b5f808303611c16575f9050611c77565b5f8284611c239190612755565b9050828482611c329190612d03565b14611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990612da3565b60405180910390fd5b809150505b92915050565b5f611cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612068565b905092915050565b5f80823b90505f8111915050919050565b5f818311611ce55782611ce7565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d2657611d25612332565b5b604051908082528060200260200182016040528015611d545781602001602082028036833780820191505090505b50905030815f81518110611d6b57611d6a6127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e339190612dd5565b81600181518110611e4757611e466127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ead3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611021565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f0f959493929190612ef9565b5f604051808303815f87803b158015611f26575f80fd5b505af1158015611f38573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fbe573d5f803e3d5ffd5b5050565b5f808284611fd09190612c08565b905083811015612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90612f9b565b60405180910390fd5b8091505092915050565b5f61206083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba4565b905092915050565b5f80831182906120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a59190612153565b60405180910390fd5b505f83856120bc9190612d03565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121005780820151818401526020810190506120e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612125826120c9565b61212f81856120d3565b935061213f8185602086016120e3565b6121488161210b565b840191505092915050565b5f6020820190508181035f83015261216b818461211b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121ad82612184565b9050919050565b6121bd816121a3565b81146121c7575f80fd5b50565b5f813590506121d8816121b4565b92915050565b5f819050919050565b6121f0816121de565b81146121fa575f80fd5b50565b5f8135905061220b816121e7565b92915050565b5f80604083850312156122275761222661217c565b5b5f612234858286016121ca565b9250506020612245858286016121fd565b9150509250929050565b5f8115159050919050565b6122638161224f565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b61228b816121de565b82525050565b5f6020820190506122a45f830184612282565b92915050565b5f805f606084860312156122c1576122c061217c565b5b5f6122ce868287016121ca565b93505060206122df868287016121ca565b92505060406122f0868287016121fd565b9150509250925092565b5f60ff82169050919050565b61230f816122fa565b82525050565b5f6020820190506123285f830184612306565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123688261210b565b810181811067ffffffffffffffff8211171561238757612386612332565b5b80604052505050565b5f612399612173565b90506123a5828261235f565b919050565b5f67ffffffffffffffff8211156123c4576123c3612332565b5b602082029050602081019050919050565b5f80fd5b5f6123eb6123e6846123aa565b612390565b9050808382526020820190506020840283018581111561240e5761240d6123d5565b5b835b81811015612437578061242388826121ca565b845260208401935050602081019050612410565b5050509392505050565b5f82601f8301126124555761245461232e565b5b81356124658482602086016123d9565b91505092915050565b5f602082840312156124835761248261217c565b5b5f82013567ffffffffffffffff8111156124a05761249f612180565b5b6124ac84828501612441565b91505092915050565b5f602082840312156124ca576124c961217c565b5b5f6124d7848285016121ca565b91505092915050565b5f80604083850312156124f6576124f561217c565b5b5f612503858286016121fd565b9250506020612514858286016121fd565b9150509250929050565b5f602082840312156125335761253261217c565b5b5f612540848285016121fd565b91505092915050565b612552816121a3565b82525050565b5f60208201905061256b5f830184612549565b92915050565b5f80604083850312156125875761258661217c565b5b5f612594858286016121ca565b92505060206125a5858286016121ca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126315780860481111561260d5761260c6125af565b5b600185161561261c5780820291505b808102905061262a856125dc565b94506125f1565b94509492505050565b5f826126495760019050612704565b81612656575f9050612704565b816001811461266c5760028114612676576126a5565b6001915050612704565b60ff841115612688576126876125af565b5b8360020a91508482111561269f5761269e6125af565b5b50612704565b5060208310610133831016604e8410600b84101617156126da5782820a9050838111156126d5576126d46125af565b5b612704565b6126e784848460016125e8565b925090508184048111156126fe576126fd6125af565b5b81810290505b9392505050565b5f612715826121de565b9150612720836122fa565b925061274d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461263a565b905092915050565b5f61275f826121de565b915061276a836121de565b9250828202612778816121de565b9150828204841483151761278f5761278e6125af565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127ca6020836120d3565b91506127d582612796565b602082019050919050565b5f6020820190508181035f8301526127f7816127be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612835826121de565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612867576128666125af565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128a66017836120d3565b91506128b182612872565b602082019050919050565b5f6020820190508181035f8301526128d38161289a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129346024836120d3565b915061293f826128da565b604082019050919050565b5f6020820190508181035f83015261296181612928565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129c26022836120d3565b91506129cd82612968565b604082019050919050565b5f6020820190508181035f8301526129ef816129b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a506025836120d3565b9150612a5b826129f6565b604082019050919050565b5f6020820190508181035f830152612a7d81612a44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ade6023836120d3565b9150612ae982612a84565b604082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b6c6029836120d3565b9150612b7782612b12565b604082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bd46019836120d3565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b5f612c12826121de565b9150612c1d836121de565b9250828201905080821115612c3557612c346125af565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c6f601a836120d3565b9150612c7a82612c3b565b602082019050919050565b5f6020820190508181035f830152612c9c81612c63565b9050919050565b5f612cad826121de565b9150612cb8836121de565b9250828203905081811115612cd057612ccf6125af565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d0d826121de565b9150612d18836121de565b925082612d2857612d27612cd6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d8d6021836120d3565b9150612d9882612d33565b604082019050919050565b5f6020820190508181035f830152612dba81612d81565b9050919050565b5f81519050612dcf816121b4565b92915050565b5f60208284031215612dea57612de961217c565b5b5f612df784828501612dc1565b91505092915050565b5f819050919050565b5f819050919050565b5f612e2c612e27612e2284612e00565b612e09565b6121de565b9050919050565b612e3c81612e12565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e74816121a3565b82525050565b5f612e858383612e6b565b60208301905092915050565b5f602082019050919050565b5f612ea782612e42565b612eb18185612e4c565b9350612ebc83612e5c565b805f5b83811015612eec578151612ed38882612e7a565b9750612ede83612e91565b925050600181019050612ebf565b5085935050505092915050565b5f60a082019050612f0c5f830188612282565b612f196020830187612e33565b8181036040830152612f2b8186612e9d565b9050612f3a6060830185612549565b612f476080830184612282565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f85601b836120d3565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f53e80179dbf11c2a6f9ba8992afde5d5eae549930cde4756f50cbddf5d43e9f64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610432578063bb6bd6c01461046e578063bf474bed14610496578063c9567bf9146104c0578063d34628cc146104d6578063dd62ed3e146104fe5761014a565b8063715018a61461035e578063751039fc146103745780637d1db4a51461038a5780638da5cb5b146103b45780638f9a55c0146103de57806395d89b41146104085761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac579146102965780633ec05c39146102d25780634458200a146102fa57806370a08231146103225761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261053a565b60405161016f9190612153565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612211565b610577565b6040516101ab9190612269565b60405180910390f35b3480156101bf575f80fd5b506101c8610594565b6040516101d59190612291565b60405180910390f35b3480156101e9575f80fd5b506101f261059a565b6040516101ff9190612291565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906122aa565b6105be565b60405161023b9190612269565b60405180910390f35b34801561024f575f80fd5b50610258610692565b6040516102659190612315565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061246e565b61069a565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906124b5565b6107be565b6040516102c99190612269565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f391906124e0565b610810565b005b348015610305575f80fd5b50610320600480360381019061031b919061251e565b6108b6565b005b34801561032d575f80fd5b50610348600480360381019061034391906124b5565b610954565b6040516103559190612291565b60405180910390f35b348015610369575f80fd5b5061037261099a565b005b34801561037f575f80fd5b50610388610ae8565b005b348015610395575f80fd5b5061039e610c1a565b6040516103ab9190612291565b60405180910390f35b3480156103bf575f80fd5b506103c8610c20565b6040516103d59190612558565b60405180910390f35b3480156103e9575f80fd5b506103f2610c47565b6040516103ff9190612291565b60405180910390f35b348015610413575f80fd5b5061041c610c4d565b6040516104299190612153565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190612211565b610c8a565b6040516104659190612269565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f91906124e0565b610ca7565b005b3480156104a1575f80fd5b506104aa610d4d565b6040516104b79190612291565b60405180910390f35b3480156104cb575f80fd5b506104d4610d53565b005b3480156104e1575f80fd5b506104fc60048036038101906104f7919061246e565b610e73565b005b348015610509575f80fd5b50610524600480360381019061051f9190612571565b610f98565b6040516105319190612291565b60405180910390f35b60606040518060400160405280600981526020017f4e455552414c494e4b0000000000000000000000000000000000000000000000815250905090565b5f61058a61058361101a565b8484611021565b6001905092915050565b60125481565b5f6012600a6105a9919061270b565b64019b45a5006105b99190612755565b905090565b5f6105ca8484846111e4565b610687846105d661101a565b61068285604051806060016040528060288152602001612fba6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063961101a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ba49092919063ffffffff16565b611021565b600190509392505050565b5f6012905090565b6106a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461072e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610725906127e0565b60405180910390fd5b5f5b81518110156107ba575f60045f8484815181106107505761074f6127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806107b29061282b565b915050610730565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61081861101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906127e0565b60405180910390fd5b81600781905550806008819055505050565b6108be61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610941906127e0565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a25906127e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610af061101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906127e0565b60405180910390fd5b6012600a610b8a919061270b565b64019b45a500610b9a9190612755565b600f819055506012600a610bae919061270b565b64019b45a500610bbe9190612755565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bf3919061270b565b64019b45a500610c039190612755565b604051610c109190612291565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4e4c494e4b000000000000000000000000000000000000000000000000000000815250905090565b5f610c9d610c9661101a565b84846111e4565b6001905092915050565b610caf61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d32906127e0565b60405180910390fd5b81600b8190555080600c819055505050565b60115481565b610d5b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906127e0565b60405180910390fd5b60148054906101000a900460ff1615610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c906128bc565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b610e7b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906127e0565b60405180910390fd5b5f5b8151811015610f9457600160045f848481518110610f2a57610f296127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610f8c9061282b565b915050610f09565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110869061294a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906129d8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111d79190612291565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990612a66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790612af4565b60405180910390fd5b5f8111611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990612b82565b60405180910390fd5b5f61130b610c20565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113795750611349610c20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118f45760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561141c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611424575f80fd5b6114606064611452600b54600e541161143f57600754611443565b6009545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561150b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561164157600f548211156115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f90612bea565b60405180910390fd5b601054826115b585610954565b6115bf9190612c08565b1115611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612c85565b60405180910390fd5b4360036006546116109190612c08565b11156116295761161f83611cc6565b15611628575f80fd5b5b600e5f81548092919061163b9061282b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116e5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174357601054826116f785610954565b6117019190612c08565b1115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990612c85565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117cb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561180f5761180c60646117fe600c54600e54116117eb576008546117ef565b600a545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b90505b5f61181930610954565b9050601460159054906101000a900460ff16158015611884575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561189c5750601460169054906101000a900460ff165b80156118a9575060115481115b80156118b85750600d54600e54115b156118f2576118da6118d5846118d084601254611cd7565b611cd7565b611cef565b5f4790505f8111156118f0576118ef47611f5a565b5b505b505b5f8111156119f35761194c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea9190612291565b60405180910390a35b611a438260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ae6611a9a828461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b89848661201f90919063ffffffff16565b604051611b969190612291565b60405180910390a350505050565b5f838311158290611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be29190612153565b60405180910390fd5b505f8385611bf99190612ca3565b9050809150509392505050565b5f808303611c16575f9050611c77565b5f8284611c239190612755565b9050828482611c329190612d03565b14611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990612da3565b60405180910390fd5b809150505b92915050565b5f611cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612068565b905092915050565b5f80823b90505f8111915050919050565b5f818311611ce55782611ce7565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d2657611d25612332565b5b604051908082528060200260200182016040528015611d545781602001602082028036833780820191505090505b50905030815f81518110611d6b57611d6a6127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e339190612dd5565b81600181518110611e4757611e466127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ead3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611021565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f0f959493929190612ef9565b5f604051808303815f87803b158015611f26575f80fd5b505af1158015611f38573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fbe573d5f803e3d5ffd5b5050565b5f808284611fd09190612c08565b905083811015612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90612f9b565b60405180910390fd5b8091505092915050565b5f61206083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba4565b905092915050565b5f80831182906120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a59190612153565b60405180910390fd5b505f83856120bc9190612d03565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121005780820151818401526020810190506120e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612125826120c9565b61212f81856120d3565b935061213f8185602086016120e3565b6121488161210b565b840191505092915050565b5f6020820190508181035f83015261216b818461211b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121ad82612184565b9050919050565b6121bd816121a3565b81146121c7575f80fd5b50565b5f813590506121d8816121b4565b92915050565b5f819050919050565b6121f0816121de565b81146121fa575f80fd5b50565b5f8135905061220b816121e7565b92915050565b5f80604083850312156122275761222661217c565b5b5f612234858286016121ca565b9250506020612245858286016121fd565b9150509250929050565b5f8115159050919050565b6122638161224f565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b61228b816121de565b82525050565b5f6020820190506122a45f830184612282565b92915050565b5f805f606084860312156122c1576122c061217c565b5b5f6122ce868287016121ca565b93505060206122df868287016121ca565b92505060406122f0868287016121fd565b9150509250925092565b5f60ff82169050919050565b61230f816122fa565b82525050565b5f6020820190506123285f830184612306565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123688261210b565b810181811067ffffffffffffffff8211171561238757612386612332565b5b80604052505050565b5f612399612173565b90506123a5828261235f565b919050565b5f67ffffffffffffffff8211156123c4576123c3612332565b5b602082029050602081019050919050565b5f80fd5b5f6123eb6123e6846123aa565b612390565b9050808382526020820190506020840283018581111561240e5761240d6123d5565b5b835b81811015612437578061242388826121ca565b845260208401935050602081019050612410565b5050509392505050565b5f82601f8301126124555761245461232e565b5b81356124658482602086016123d9565b91505092915050565b5f602082840312156124835761248261217c565b5b5f82013567ffffffffffffffff8111156124a05761249f612180565b5b6124ac84828501612441565b91505092915050565b5f602082840312156124ca576124c961217c565b5b5f6124d7848285016121ca565b91505092915050565b5f80604083850312156124f6576124f561217c565b5b5f612503858286016121fd565b9250506020612514858286016121fd565b9150509250929050565b5f602082840312156125335761253261217c565b5b5f612540848285016121fd565b91505092915050565b612552816121a3565b82525050565b5f60208201905061256b5f830184612549565b92915050565b5f80604083850312156125875761258661217c565b5b5f612594858286016121ca565b92505060206125a5858286016121ca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126315780860481111561260d5761260c6125af565b5b600185161561261c5780820291505b808102905061262a856125dc565b94506125f1565b94509492505050565b5f826126495760019050612704565b81612656575f9050612704565b816001811461266c5760028114612676576126a5565b6001915050612704565b60ff841115612688576126876125af565b5b8360020a91508482111561269f5761269e6125af565b5b50612704565b5060208310610133831016604e8410600b84101617156126da5782820a9050838111156126d5576126d46125af565b5b612704565b6126e784848460016125e8565b925090508184048111156126fe576126fd6125af565b5b81810290505b9392505050565b5f612715826121de565b9150612720836122fa565b925061274d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461263a565b905092915050565b5f61275f826121de565b915061276a836121de565b9250828202612778816121de565b9150828204841483151761278f5761278e6125af565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127ca6020836120d3565b91506127d582612796565b602082019050919050565b5f6020820190508181035f8301526127f7816127be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612835826121de565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612867576128666125af565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128a66017836120d3565b91506128b182612872565b602082019050919050565b5f6020820190508181035f8301526128d38161289a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129346024836120d3565b915061293f826128da565b604082019050919050565b5f6020820190508181035f83015261296181612928565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129c26022836120d3565b91506129cd82612968565b604082019050919050565b5f6020820190508181035f8301526129ef816129b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a506025836120d3565b9150612a5b826129f6565b604082019050919050565b5f6020820190508181035f830152612a7d81612a44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ade6023836120d3565b9150612ae982612a84565b604082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b6c6029836120d3565b9150612b7782612b12565b604082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bd46019836120d3565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b5f612c12826121de565b9150612c1d836121de565b9250828201905080821115612c3557612c346125af565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c6f601a836120d3565b9150612c7a82612c3b565b602082019050919050565b5f6020820190508181035f830152612c9c81612c63565b9050919050565b5f612cad826121de565b9150612cb8836121de565b9250828203905081811115612cd057612ccf6125af565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d0d826121de565b9150612d18836121de565b925082612d2857612d27612cd6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d8d6021836120d3565b9150612d9882612d33565b604082019050919050565b5f6020820190508181035f830152612dba81612d81565b9050919050565b5f81519050612dcf816121b4565b92915050565b5f60208284031215612dea57612de961217c565b5b5f612df784828501612dc1565b91505092915050565b5f819050919050565b5f819050919050565b5f612e2c612e27612e2284612e00565b612e09565b6121de565b9050919050565b612e3c81612e12565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e74816121a3565b82525050565b5f612e858383612e6b565b60208301905092915050565b5f602082019050919050565b5f612ea782612e42565b612eb18185612e4c565b9350612ebc83612e5c565b805f5b83811015612eec578151612ed38882612e7a565b9750612ede83612e91565b925050600181019050612ebf565b5085935050505092915050565b5f60a082019050612f0c5f830188612282565b612f196020830187612e33565b8181036040830152612f2b8186612e9d565b9050612f3a6060830185612549565b612f476080830184612282565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f85601b836120d3565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f53e80179dbf11c2a6f9ba8992afde5d5eae549930cde4756f50cbddf5d43e9f64736f6c63430008140033

Deployed Bytecode Sourcemap

3242:7984:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5930:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4364:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5374:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6099:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5283:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10242:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10889:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10585:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10757:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5477:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:148;;;;;;;;;;;;;:::i;:::-;;9803:159;;;;;;;;;;;;;:::i;:::-;;4173:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4235:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5188:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5604:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10412:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4299:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10980:204;;;;;;;;;;;;;:::i;:::-;;10070:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5779:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5097:83;5134:13;5167:5;;;;;;;;;;;;;;;;;5160:12;;5097:83;:::o;5930:161::-;6005:4;6022:39;6031:12;:10;:12::i;:::-;6045:7;6054:6;6022:8;:39::i;:::-;6079:4;6072:11;;5930:161;;;;:::o;4364:52::-;;;;:::o;5374:95::-;5427:7;3984:2;4041;:13;;;;:::i;:::-;4028:10;:26;;;;:::i;:::-;5447:14;;5374:95;:::o;6099:313::-;6197:4;6214:36;6224:6;6232:9;6243:6;6214:9;:36::i;:::-;6261:121;6270:6;6278:12;:10;:12::i;:::-;6292:89;6330:6;6292:89;;;;;;;;;;;;;;;;;:11;:19;6304:6;6292:19;;;;;;;;;;;;;;;:33;6312:12;:10;:12::i;:::-;6292:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6261:8;:121::i;:::-;6400:4;6393:11;;6099:313;;;;;:::o;5283:83::-;5324:5;3984:2;5342:16;;5283:83;:::o;10242:162::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10315:6:::1;10310:87;10331:6;:13;10327:1;:17;10310:87;;;10382:5;10364:4;:15;10369:6;10376:1;10369:9;;;;;;;;:::i;:::-;;;;;;;;10364:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10346:3;;;;;:::i;:::-;;;;10310:87;;;;10242:162:::0;:::o;10889:83::-;10936:4;10957;:7;10962:1;10957:7;;;;;;;;;;;;;;;;;;;;;;;;;10950:14;;10889:83;;;:::o;10585:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10697:7:::1;10680:14;:24;;;;10733:8;10715:15;:26;;;;10585:164:::0;;:::o;10757:124::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10861:12:::1;10840:18;:33;;;;10757:124:::0;:::o;5477:119::-;5543:7;5570:9;:18;5580:7;5570:18;;;;;;;;;;;;;;;;5563:25;;5477:119;;;:::o;2598:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1:::1;2668:40;;2689:6;::::0;::::1;;;;;;;;2668:40;;;;;;;;;;;;2736:1;2719:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2598:148::o:0;9803:159::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3984:2:::1;4041;:13;;;;:::i;:::-;4028:10;:26;;;;:::i;:::-;9856:12;:22;;;;3984:2;4041;:13;;;;:::i;:::-;4028:10;:26;;;;:::i;:::-;9889:14;:22;;;;9927:27;3984:2;4041;:13;;;;:::i;:::-;4028:10;:26;;;;:::i;:::-;9927:27;;;;;;:::i;:::-;;;;;;;;9803:159::o:0;4173:55::-;;;;:::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;4235:57::-;;;;:::o;5188:87::-;5227:13;5260:7;;;;;;;;;;;;;;;;;5253:14;;5188:87;:::o;5604:167::-;5682:4;5699:42;5709:12;:10;:12::i;:::-;5723:9;5734:6;5699:9;:42::i;:::-;5759:4;5752:11;;5604:167;;;;:::o;10412:165::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10524:7:::1;10506:15;:25;;;;10561:8;10542:16;:27;;;;10412:165:::0;;:::o;4299:58::-;;;;:::o;10980:204::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11044:11:::1;::::0;::::1;;;;;;;;11043:12;11035:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11107:4;11093:11;;:18;;;;;;;;;;;;;;;;;;11136:4;11122:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11164:12;11151:10;:25;;;;10980:204::o:0;10070:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10144:6:::1;10139:88;10160:5;:12;10156:1;:16;10139:88;;;10211:4;10194;:14;10199:5;10205:1;10199:8;;;;;;;;:::i;:::-;;;;;;;;10194:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10174:3;;;;;:::i;:::-;;;;10139:88;;;;10070:164:::0;:::o;5779:143::-;5860:7;5887:11;:18;5899:5;5887:18;;;;;;;;;;;;;;;:27;5906:7;5887:27;;;;;;;;;;;;;;;;5880:34;;5779:143;;;;:::o;138:98::-;191:7;218:10;211:17;;138:98;:::o;6420:335::-;6530:1;6513:19;;:5;:19;;;6505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6611:1;6592:21;;:7;:21;;;6584:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6693:6;6663:11;:18;6675:5;6663:18;;;;;;;;;;;;;;;:27;6682:7;6663:27;;;;;;;;;;;;;;;:36;;;;6731:7;6715:32;;6724:5;6715:32;;;6740:6;6715:32;;;;;;:::i;:::-;;;;;;;;6420:335;;;:::o;6763:2230::-;6867:1;6851:18;;:4;:18;;;6843:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6944:1;6930:16;;:2;:16;;;6922:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7014:1;7005:6;:10;6997:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7072:17;7114:7;:5;:7::i;:::-;7106:15;;:4;:15;;;;:32;;;;;7131:7;:5;:7::i;:::-;7125:13;;:2;:13;;;;7106:32;7102:1535;;;7164:4;:10;7169:4;7164:10;;;;;;;;;;;;;;;;;;;;;;;;;7163:11;:24;;;;;7179:4;:8;7184:2;7179:8;;;;;;;;;;;;;;;;;;;;;;;;;7178:9;7163:24;7155:33;;;;;;7215:76;7287:3;7215:67;7237:15;;7227:9;;:25;7226:55;;7267:14;;7226:55;;;7254:12;;7226:55;7215:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7203:88;;7320:13;;;;;;;;;;;7312:21;;:4;:21;;;:55;;;;;7351:15;;;;;;;;;;;7337:30;;:2;:30;;;;7312:55;:83;;;;;7373:18;:22;7392:2;7373:22;;;;;;;;;;;;;;;;;;;;;;;;;7371:24;7312:83;7308:436;;;7435:12;;7425:6;:22;;7417:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7530:14;;7520:6;7504:13;7514:2;7504:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7496:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7618:12;7613:1;7600:10;;:14;;;;:::i;:::-;:30;7596:103;;;7664:14;7675:2;7664:10;:14::i;:::-;7663:15;7655:24;;;;;;7596:103;7717:9;;:11;;;;;;;;;:::i;:::-;;;;;;7308:436;7770:13;;;;;;;;;;;7764:19;;:2;:19;;;;:47;;;;;7789:18;:22;7808:2;7789:22;;;;;;;;;;;;;;;;;;;;;;;;;7787:24;7764:47;7760:167;;;7866:14;;7856:6;7840:13;7850:2;7840:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7832:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7760:167;7952:13;;;;;;;;;;;7946:19;;:2;:19;;;:43;;;;;7984:4;7969:20;;:4;:20;;;;7946:43;7943:174;;;8022:79;8097:3;8022:70;8044:16;;8034:9;;:26;8033:58;;8076:15;;8033:58;;;8062:13;;8033:58;8022:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8010:91;;7943:174;8133:28;8164:24;8182:4;8164:9;:24::i;:::-;8133:55;;8208:8;;;;;;;;;;;8207:9;:34;;;;;8228:13;;;;;;;;;;;8220:21;;:2;:21;;;8207:34;:49;;;;;8245:11;;;;;;;;;;;8207:49;:91;;;;;8281:17;;8260:20;:38;8207:91;:123;;;;;8312:18;;8302:9;;:28;8207:123;8203:423;;;8351:67;8368:49;8372:6;8379:37;8383:20;8404:11;;8379:3;:37::i;:::-;8368:3;:49::i;:::-;8351:16;:67::i;:::-;8437:26;8466:21;8437:50;;8530:1;8509:18;:22;8506:105;;;8556:35;8569:21;8556:12;:35::i;:::-;8506:105;8332:294;8203:423;7140:1497;7102:1535;8662:1;8652:9;:11;8649:161;;;8702:39;8731:9;8702;:24;8720:4;8702:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8677:9;:24;8695:4;8677:24;;;;;;;;;;;;;;;:64;;;;8782:4;8759:39;;8768:4;8759:39;;;8788:9;8759:39;;;;;;:::i;:::-;;;;;;;;8649:161;8836:27;8856:6;8836:9;:15;8846:4;8836:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8820:9;:15;8830:4;8820:15;;;;;;;;;;;;;;;:43;;;;8888:40;8906:21;8917:9;8906:6;:10;;:21;;;;:::i;:::-;8888:9;:13;8898:2;8888:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8874:9;:13;8884:2;8874:13;;;;;;;;;;;;;;;:54;;;;8959:2;8944:41;;8953:4;8944:41;;;8963:21;8974:9;8963:6;:10;;:21;;;;:::i;:::-;8944:41;;;;;;:::i;:::-;;;;;;;;6832:2161;6763:2230;;;:::o;1276:190::-;1362:7;1395:1;1390;:6;;1398:12;1382:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1422:9;1438:1;1434;:5;;;;:::i;:::-;1422:17;;1457:1;1450:8;;;1276:190;;;;;:::o;1474:246::-;1532:7;1561:1;1556;:6;1552:47;;1586:1;1579:8;;;;1552:47;1609:9;1625:1;1621;:5;;;;:::i;:::-;1609:17;;1654:1;1649;1645;:5;;;;:::i;:::-;:10;1637:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1711:1;1704:8;;;1474:246;;;;;:::o;1728:132::-;1786:7;1813:39;1817:1;1820;1813:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1806:46;;1728:132;;;;:::o;9109:195::-;9168:4;9185:12;9252:7;9240:20;9232:28;;9295:1;9288:4;:8;9281:15;;;9109:195;;;:::o;9003:98::-;9060:7;9087:1;9085;:3;9084:9;;9092:1;9084:9;;;9090:1;9084:9;9077:16;;9003:98;;;;:::o;9312:483::-;4711:4;4700:8;;:15;;;;;;;;;;;;;;;;;;9390:21:::1;9428:1;9414:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9390:40;;9459:4;9441;9446:1;9441:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9485:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9475:4;9480:1;9475:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9518:62;9535:4;9550:15;;;;;;;;;;;9568:11;9518:8;:62::i;:::-;9591:15;;;;;;;;;;;:66;;;9672:11;9698:1;9714:4;9741;9761:15;9591:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9379:416;4749:5:::0;4738:8;;:16;;;;;;;;;;;;;;;;;;9312:483;:::o;9970:92::-;10027:10;;;;;;;;;;;:19;;:27;10047:6;10027:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:92;:::o;945:179::-;1003:7;1023:9;1039:1;1035;:5;;;;:::i;:::-;1023:17;;1064:1;1059;:6;;1051:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1115:1;1108:8;;;945:179;;;;:::o;1132:136::-;1190:7;1217:43;1221:1;1224;1217:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1210:50;;1132:136;;;;:::o;1868:189::-;1954:7;1986:1;1982;:5;1989:12;1974:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2013:9;2029:1;2025;:5;;;;:::i;:::-;2013:17;;2048:1;2041:8;;;1868:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::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:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:474::-;8098:6;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8030:474;;;;;:::o;8510:329::-;8569:6;8618:2;8606:9;8597:7;8593:23;8589:32;8586:119;;;8624:79;;:::i;:::-;8586:119;8744:1;8769:53;8814:7;8805:6;8794:9;8790:22;8769:53;:::i;:::-;8759:63;;8715:117;8510:329;;;;:::o;8845:118::-;8932:24;8950:5;8932:24;:::i;:::-;8927:3;8920:37;8845:118;;:::o;8969:222::-;9062:4;9100:2;9089:9;9085:18;9077:26;;9113:71;9181:1;9170:9;9166:17;9157:6;9113:71;:::i;:::-;8969:222;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:180::-;9725:77;9722:1;9715:88;9822:4;9819:1;9812:15;9846:4;9843:1;9836:15;9863:102;9905:8;9952:5;9949:1;9945:13;9924:34;;9863:102;;;:::o;9971:848::-;10032:5;10039:4;10063:6;10054:15;;10087:5;10078:14;;10101:712;10122:1;10112:8;10109:15;10101:712;;;10217:4;10212:3;10208:14;10202:4;10199:24;10196:50;;;10226:18;;:::i;:::-;10196:50;10276:1;10266:8;10262:16;10259:451;;;10691:4;10684:5;10680:16;10671:25;;10259:451;10741:4;10735;10731:15;10723:23;;10771:32;10794:8;10771:32;:::i;:::-;10759:44;;10101:712;;;9971:848;;;;;;;:::o;10825:1073::-;10879:5;11070:8;11060:40;;11091:1;11082:10;;11093:5;;11060:40;11119:4;11109:36;;11136:1;11127:10;;11138:5;;11109:36;11205:4;11253:1;11248:27;;;;11289:1;11284:191;;;;11198:277;;11248:27;11266:1;11257:10;;11268:5;;;11284:191;11329:3;11319:8;11316:17;11313:43;;;11336:18;;:::i;:::-;11313:43;11385:8;11382:1;11378:16;11369:25;;11420:3;11413:5;11410:14;11407:40;;;11427:18;;:::i;:::-;11407:40;11460:5;;;11198:277;;11584:2;11574:8;11571:16;11565:3;11559:4;11556:13;11552:36;11534:2;11524:8;11521:16;11516:2;11510:4;11507:12;11503:35;11487:111;11484:246;;;11640:8;11634:4;11630:19;11621:28;;11675:3;11668:5;11665:14;11662:40;;;11682:18;;:::i;:::-;11662:40;11715:5;;11484:246;11755:42;11793:3;11783:8;11777:4;11774:1;11755:42;:::i;:::-;11740:57;;;;11829:4;11824:3;11820:14;11813:5;11810:25;11807:51;;;11838:18;;:::i;:::-;11807:51;11887:4;11880:5;11876:16;11867:25;;10825:1073;;;;;;:::o;11904:281::-;11962:5;11986:23;12004:4;11986:23;:::i;:::-;11978:31;;12030:25;12046:8;12030:25;:::i;:::-;12018:37;;12074:104;12111:66;12101:8;12095:4;12074:104;:::i;:::-;12065:113;;11904:281;;;;:::o;12191:410::-;12231:7;12254:20;12272:1;12254:20;:::i;:::-;12249:25;;12288:20;12306:1;12288:20;:::i;:::-;12283:25;;12343:1;12340;12336:9;12365:30;12383:11;12365:30;:::i;:::-;12354:41;;12544:1;12535:7;12531:15;12528:1;12525:22;12505:1;12498:9;12478:83;12455:139;;12574:18;;:::i;:::-;12455:139;12239:362;12191:410;;;;:::o;12607:182::-;12747:34;12743:1;12735:6;12731:14;12724:58;12607:182;:::o;12795:366::-;12937:3;12958:67;13022:2;13017:3;12958:67;:::i;:::-;12951:74;;13034:93;13123:3;13034:93;:::i;:::-;13152:2;13147:3;13143:12;13136:19;;12795:366;;;:::o;13167:419::-;13333:4;13371:2;13360:9;13356:18;13348:26;;13420:9;13414:4;13410:20;13406:1;13395:9;13391:17;13384:47;13448:131;13574:4;13448:131;:::i;:::-;13440:139;;13167:419;;;:::o;13592:180::-;13640:77;13637:1;13630:88;13737:4;13734:1;13727:15;13761:4;13758:1;13751:15;13778:233;13817:3;13840:24;13858:5;13840:24;:::i;:::-;13831:33;;13886:66;13879:5;13876:77;13873:103;;13956:18;;:::i;:::-;13873:103;14003:1;13996:5;13992:13;13985:20;;13778:233;;;:::o;14017:173::-;14157:25;14153:1;14145:6;14141:14;14134:49;14017:173;:::o;14196:366::-;14338:3;14359:67;14423:2;14418:3;14359:67;:::i;:::-;14352:74;;14435:93;14524:3;14435:93;:::i;:::-;14553:2;14548:3;14544:12;14537:19;;14196:366;;;:::o;14568:419::-;14734:4;14772:2;14761:9;14757:18;14749:26;;14821:9;14815:4;14811:20;14807:1;14796:9;14792:17;14785:47;14849:131;14975:4;14849:131;:::i;:::-;14841:139;;14568:419;;;:::o;14993:223::-;15133:34;15129:1;15121:6;15117:14;15110:58;15202:6;15197:2;15189:6;15185:15;15178:31;14993:223;:::o;15222:366::-;15364:3;15385:67;15449:2;15444:3;15385:67;:::i;:::-;15378:74;;15461:93;15550:3;15461:93;:::i;:::-;15579:2;15574:3;15570:12;15563:19;;15222:366;;;:::o;15594:419::-;15760:4;15798:2;15787:9;15783:18;15775:26;;15847:9;15841:4;15837:20;15833:1;15822:9;15818:17;15811:47;15875:131;16001:4;15875:131;:::i;:::-;15867:139;;15594:419;;;:::o;16019:221::-;16159:34;16155:1;16147:6;16143:14;16136:58;16228:4;16223:2;16215:6;16211:15;16204:29;16019:221;:::o;16246:366::-;16388:3;16409:67;16473:2;16468:3;16409:67;:::i;:::-;16402:74;;16485:93;16574:3;16485:93;:::i;:::-;16603:2;16598:3;16594:12;16587:19;;16246:366;;;:::o;16618:419::-;16784:4;16822:2;16811:9;16807:18;16799:26;;16871:9;16865:4;16861:20;16857:1;16846:9;16842:17;16835:47;16899:131;17025:4;16899:131;:::i;:::-;16891:139;;16618:419;;;:::o;17043:224::-;17183:34;17179:1;17171:6;17167:14;17160:58;17252:7;17247:2;17239:6;17235:15;17228:32;17043:224;:::o;17273:366::-;17415:3;17436:67;17500:2;17495:3;17436:67;:::i;:::-;17429:74;;17512:93;17601:3;17512:93;:::i;:::-;17630:2;17625:3;17621:12;17614:19;;17273:366;;;:::o;17645:419::-;17811:4;17849:2;17838:9;17834:18;17826:26;;17898:9;17892:4;17888:20;17884:1;17873:9;17869:17;17862:47;17926:131;18052:4;17926:131;:::i;:::-;17918:139;;17645:419;;;:::o;18070:222::-;18210:34;18206:1;18198:6;18194:14;18187:58;18279:5;18274:2;18266:6;18262:15;18255:30;18070:222;:::o;18298:366::-;18440:3;18461:67;18525:2;18520:3;18461:67;:::i;:::-;18454:74;;18537:93;18626:3;18537:93;:::i;:::-;18655:2;18650:3;18646:12;18639:19;;18298:366;;;:::o;18670:419::-;18836:4;18874:2;18863:9;18859:18;18851:26;;18923:9;18917:4;18913:20;18909:1;18898:9;18894:17;18887:47;18951:131;19077:4;18951:131;:::i;:::-;18943:139;;18670:419;;;:::o;19095:228::-;19235:34;19231:1;19223:6;19219:14;19212:58;19304:11;19299:2;19291:6;19287:15;19280:36;19095:228;:::o;19329:366::-;19471:3;19492:67;19556:2;19551:3;19492:67;:::i;:::-;19485:74;;19568:93;19657:3;19568:93;:::i;:::-;19686:2;19681:3;19677:12;19670:19;;19329:366;;;:::o;19701:419::-;19867:4;19905:2;19894:9;19890:18;19882:26;;19954:9;19948:4;19944:20;19940:1;19929:9;19925:17;19918:47;19982:131;20108:4;19982:131;:::i;:::-;19974:139;;19701:419;;;:::o;20126:175::-;20266:27;20262:1;20254:6;20250:14;20243:51;20126:175;:::o;20307:366::-;20449:3;20470:67;20534:2;20529:3;20470:67;:::i;:::-;20463:74;;20546:93;20635:3;20546:93;:::i;:::-;20664:2;20659:3;20655:12;20648:19;;20307:366;;;:::o;20679:419::-;20845:4;20883:2;20872:9;20868:18;20860:26;;20932:9;20926:4;20922:20;20918:1;20907:9;20903:17;20896:47;20960:131;21086:4;20960:131;:::i;:::-;20952:139;;20679:419;;;:::o;21104:191::-;21144:3;21163:20;21181:1;21163:20;:::i;:::-;21158:25;;21197:20;21215:1;21197:20;:::i;:::-;21192:25;;21240:1;21237;21233:9;21226:16;;21261:3;21258:1;21255:10;21252:36;;;21268:18;;:::i;:::-;21252:36;21104:191;;;;:::o;21301:176::-;21441:28;21437:1;21429:6;21425:14;21418:52;21301:176;:::o;21483:366::-;21625:3;21646:67;21710:2;21705:3;21646:67;:::i;:::-;21639:74;;21722:93;21811:3;21722:93;:::i;:::-;21840:2;21835:3;21831:12;21824:19;;21483:366;;;:::o;21855:419::-;22021:4;22059:2;22048:9;22044:18;22036:26;;22108:9;22102:4;22098:20;22094:1;22083:9;22079:17;22072:47;22136:131;22262:4;22136:131;:::i;:::-;22128:139;;21855:419;;;:::o;22280:194::-;22320:4;22340:20;22358:1;22340:20;:::i;:::-;22335:25;;22374:20;22392:1;22374:20;:::i;:::-;22369:25;;22418:1;22415;22411:9;22403:17;;22442:1;22436:4;22433:11;22430:37;;;22447:18;;:::i;:::-;22430:37;22280:194;;;;:::o;22480:180::-;22528:77;22525:1;22518:88;22625:4;22622:1;22615:15;22649:4;22646:1;22639:15;22666:185;22706:1;22723:20;22741:1;22723:20;:::i;:::-;22718:25;;22757:20;22775:1;22757:20;:::i;:::-;22752:25;;22796:1;22786:35;;22801:18;;:::i;:::-;22786:35;22843:1;22840;22836:9;22831:14;;22666:185;;;;:::o;22857:220::-;22997:34;22993:1;22985:6;22981:14;22974:58;23066:3;23061:2;23053:6;23049:15;23042:28;22857:220;:::o;23083:366::-;23225:3;23246:67;23310:2;23305:3;23246:67;:::i;:::-;23239:74;;23322:93;23411:3;23322:93;:::i;:::-;23440:2;23435:3;23431:12;23424:19;;23083:366;;;:::o;23455:419::-;23621:4;23659:2;23648:9;23644:18;23636:26;;23708:9;23702:4;23698:20;23694:1;23683:9;23679:17;23672:47;23736:131;23862:4;23736:131;:::i;:::-;23728:139;;23455:419;;;:::o;23880:143::-;23937:5;23968:6;23962:13;23953:22;;23984:33;24011:5;23984:33;:::i;:::-;23880:143;;;;:::o;24029:351::-;24099:6;24148:2;24136:9;24127:7;24123:23;24119:32;24116:119;;;24154:79;;:::i;:::-;24116:119;24274:1;24299:64;24355:7;24346:6;24335:9;24331:22;24299:64;:::i;:::-;24289:74;;24245:128;24029:351;;;;:::o;24386:85::-;24431:7;24460:5;24449:16;;24386:85;;;:::o;24477:60::-;24505:3;24526:5;24519:12;;24477:60;;;:::o;24543:158::-;24601:9;24634:61;24652:42;24661:32;24687:5;24661:32;:::i;:::-;24652:42;:::i;:::-;24634:61;:::i;:::-;24621:74;;24543:158;;;:::o;24707:147::-;24802:45;24841:5;24802:45;:::i;:::-;24797:3;24790:58;24707:147;;:::o;24860:114::-;24927:6;24961:5;24955:12;24945:22;;24860:114;;;:::o;24980:184::-;25079:11;25113:6;25108:3;25101:19;25153:4;25148:3;25144:14;25129:29;;24980:184;;;;:::o;25170:132::-;25237:4;25260:3;25252:11;;25290:4;25285:3;25281:14;25273:22;;25170:132;;;:::o;25308:108::-;25385:24;25403:5;25385:24;:::i;:::-;25380:3;25373:37;25308:108;;:::o;25422:179::-;25491:10;25512:46;25554:3;25546:6;25512:46;:::i;:::-;25590:4;25585:3;25581:14;25567:28;;25422:179;;;;:::o;25607:113::-;25677:4;25709;25704:3;25700:14;25692:22;;25607:113;;;:::o;25756:732::-;25875:3;25904:54;25952:5;25904:54;:::i;:::-;25974:86;26053:6;26048:3;25974:86;:::i;:::-;25967:93;;26084:56;26134:5;26084:56;:::i;:::-;26163:7;26194:1;26179:284;26204:6;26201:1;26198:13;26179:284;;;26280:6;26274:13;26307:63;26366:3;26351:13;26307:63;:::i;:::-;26300:70;;26393:60;26446:6;26393:60;:::i;:::-;26383:70;;26239:224;26226:1;26223;26219:9;26214:14;;26179:284;;;26183:14;26479:3;26472:10;;25880:608;;;25756:732;;;;:::o;26494:831::-;26757:4;26795:3;26784:9;26780:19;26772:27;;26809:71;26877:1;26866:9;26862:17;26853:6;26809:71;:::i;:::-;26890:80;26966:2;26955:9;26951:18;26942:6;26890:80;:::i;:::-;27017:9;27011:4;27007:20;27002:2;26991:9;26987:18;26980:48;27045:108;27148:4;27139:6;27045:108;:::i;:::-;27037:116;;27163:72;27231:2;27220:9;27216:18;27207:6;27163:72;:::i;:::-;27245:73;27313:3;27302:9;27298:19;27289:6;27245:73;:::i;:::-;26494:831;;;;;;;;:::o;27331:177::-;27471:29;27467:1;27459:6;27455:14;27448:53;27331:177;:::o;27514:366::-;27656:3;27677:67;27741:2;27736:3;27677:67;:::i;:::-;27670:74;;27753:93;27842:3;27753:93;:::i;:::-;27871:2;27866:3;27862:12;27855:19;;27514:366;;;:::o;27886:419::-;28052:4;28090:2;28079:9;28075:18;28067:26;;28139:9;28133:4;28129:20;28125:1;28114:9;28110:17;28103:47;28167:131;28293:4;28167:131;:::i;:::-;28159:139;;27886:419;;;:::o

Swarm Source

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