ETH Price: $3,392.44 (+1.92%)

Token

Samantha AI (SAMANTHA)
 

Overview

Max Total Supply

1,000,000,000 SAMANTHA

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,000,000 SAMANTHA

Value
$0.00
0x6cd8Fe33f1fe6DD8F912A63a080b73c05df441e9
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:
SAMANTHA

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Website : https://www.meetsamantha.ai/
Telegram : https://t.me/samanthaAIBOT

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

//GAS OPTIMIZED ERROR MESSAGES
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
error ERC20TransferFailed();
error ERC20ZeroTransfer();
error PaymentFailed();


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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SAMANTHA is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Samantha AI";
    string private _symbol = "SAMANTHA";
    uint8 private _decimals = 9; 

    uint256 public buyTax;
    uint256 public sellTax;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWlAddress;

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(1).div(100);     
    uint256 public _walletMax = _totalSupply.mul(1).div(100);        

    uint256 public swapThreshold = _totalSupply.mul(1).div(100);

    address public marketingWallet;

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public EnableWalletLimit = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool public tradingEnable; 
    bool public transferSniperProtection;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        marketingWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory())
            .createPair(address(this), _dexRouter.WETH());

        dexRouter = _dexRouter;
        
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        isWalletLimitExempt[address(dexPair)] = true;

        isWlAddress[address(msg.sender)] = true;
        isWlAddress[address(this)] = true;
        
        isTxLimitExempt[address(0xdead)] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(dexPair)] = true;

        buyTax = 90;
        sellTax = 90;
        transferSniperProtection = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    // BoredFrogsERC-721

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

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

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

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

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

    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 _approve(address owner, address spender, uint256 amount) private {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        if (sender == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (recipient == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        if(amount == 0) {
            revert ERC20ZeroTransfer();
        }
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!isWlAddress[sender] && !isWlAddress[recipient]) {
                if(!tradingEnable) {
                    revert ERC20TransferFailed();
                }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(EnableWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

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

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }


    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(buyTax).div(100);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(sellTax).div(100);
            }
            else if (transferSniperProtection) {
                feeAmount = amount.mul(99).div(100);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0)
            payable(marketingWallet).transfer(amountReceived);

    }

    function HeySamantha() external onlyOwner {
        require(!tradingEnable, "Trade Enabled!");

        tradingEnable = true;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external { 
        require(msg.sender == marketingWallet,"Unauthorized");
        (bool os,) = payable(marketingWallet).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,uint _amount) external {
        require(msg.sender == marketingWallet,"Unauthorized");
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  marketingWallet, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _buySide, uint _sellSide) external onlyOwner {    
        buyTax = _buySide;
        sellTax = _sellSide;
    }

    function removeLimits() external onlyOwner {
        EnableTxLimit = false;
        EnableWalletLimit =  false;
    }

    function transferProtection(bool _status) external onlyOwner {
        transferSniperProtection = _status;
    }

    function updateSetting(address[] calldata _adr, bool _status) external onlyOwner {
        for(uint i = 0; i < _adr.length; i++){
            isWlAddress[_adr[i]] = _status;
        }
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setMarketingWallet(address _newWallet) external onlyOwner {
        marketingWallet = _newWallet;
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    // BoredFrogsERC-721

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ERC20TransferFailed","type":"error"},{"inputs":[],"name":"ERC20ZeroTransfer","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HeySamantha","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWlAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buySide","type":"uint256"},{"internalType":"uint256","name":"_sellSide","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"transferProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferSniperProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_adr","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b60809081526a53616d616e74686120414960a81b60a0526001906200002c90826200061f565b5060408051808201909152600881526753414d414e54484160c01b60208201526002906200005b90826200061f565b506003805460ff191660099081179091556200007990600a620007f8565b6200008990633b9aca0062000808565b600d819055620000aa90606490620000a39060016200041c565b90620004af565b600e55600d54620000c590606490620000a39060016200041c565b600f55600d54620000e090606490620000a39060016200041c565b6010556011805463ffffffff60a01b1916630101010160a01b17905534801562000108575f80fd5b506200011433620004f8565b601180546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa15801562000178573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019e919062000822565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000210919062000822565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200025b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000281919062000822565b601380546001600160a01b03199081166001600160a01b0393841617825560128054909116848416179055305f818152600860209081526040808320805460ff199081166001908117909255338086528386208054831684179055600a8552838620805483168417905586865283862080548316841790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548316841790558754891686528386208054831684179055808652600c855283862080548316841790558686528386208054831684179055600b85527f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34158054831684179055808652838620805483168417905595855282852080548216831790558654909716845260098352818420805490971617909555605a60048190556005558354600160a81b60ff60a81b1990911617909355600d54828252600684528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620008b8565b5f825f036200042d57505f620004a9565b5f6200043a838562000808565b9050826200044985836200084a565b14620004a65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200054760201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f81836200056a5760405162461bcd60e51b81526004016200049d91906200086a565b505f6200057884866200084a565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005aa57607f821691505b602082108103620005c957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200061a57805f5260205f20601f840160051c81016020851015620005f65750805b601f840160051c820191505b8181101562000617575f815560010162000602565b50505b505050565b81516001600160401b038111156200063b576200063b62000581565b62000653816200064c845462000595565b84620005cf565b602080601f83116001811462000689575f8415620006715750858301515b5f19600386901b1c1916600185901b178555620006e3565b5f85815260208120601f198616915b82811015620006b95788860151825594840194600190910190840162000698565b5085821015620006d757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200073f57815f1904821115620007235762000723620006eb565b808516156200073157918102915b93841c939080029062000704565b509250929050565b5f826200075757506001620004a9565b816200076557505f620004a9565b81600181146200077e57600281146200078957620007a9565b6001915050620004a9565b60ff8411156200079d576200079d620006eb565b50506001821b620004a9565b5060208310610133831016604e8410600b8410161715620007ce575081810a620004a9565b620007da8383620006ff565b805f1904821115620007f057620007f0620006eb565b029392505050565b5f620004a660ff84168362000747565b8082028115828204841417620004a957620004a9620006eb565b5f6020828403121562000833575f80fd5b81516001600160a01b0381168114620004a6575f80fd5b5f826200086557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b8181101562000898578581018301518582016040015282016200087a565b505f604082860101526040601f19601f8301168501019250505092915050565b61205a80620008c65f395ff3fe60806040526004361061026d575f3560e01c8063728d41c91161014a578063ae85ade6116100be578063df8408fe11610078578063df8408fe1461078f578063e6b2603b146107ae578063e9fd3394146107c2578063ea1ce5a8146107e2578063f242ab4114610802578063f2fde38b14610821575f80fd5b8063ae85ade6146106b6578063b94b0aef146106d5578063c6588775146106f4578063c867d60b14610708578063cc1776d314610736578063dd62ed3e1461074b575f80fd5b80638b42507f1161010f5780638b42507f146105fa5780638da5cb5b1461062857806395d89b411461064457806395fc8fdf146106585780639a21294314610677578063a9059cbb14610697575f80fd5b8063728d41c91461057e578063751039fc1461059d57806375f0a874146105b15780637d1db4a5146105d0578063807c2d9c146105e5575f80fd5b806352f7c988116101e15780635da0a467116101a65780635da0a467146104a95780635e42358c146104d7578063651a8987146104f75780636ddd17131461051657806370a0823114610536578063715018a61461056a575f80fd5b806352f7c988146103ff5780635342acb41461041e578063573761981461044c5780635c85974f1461046b5780635d098b381461048a575f80fd5b806318160ddd1161023257806318160ddd14610347578063230358521461035b57806323b872dd1461037c578063313ce5671461039b5780633ecad271146103bc5780634f7041a5146103ea575f80fd5b80630445b6671461027857806306fdde03146102a05780630758d924146102c1578063095ea7b3146102f85780631693e8d414610327575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d60105481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102b4610840565b6040516102979190611c1b565b3480156102cc575f80fd5b506012546102e0906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610303575f80fd5b50610317610312366004611c61565b6108d0565b6040519015158152602001610297565b348015610332575f80fd5b5060135461031790600160a01b900460ff1681565b348015610352575f80fd5b50600d5461028d565b348015610366575f80fd5b5061037a610375366004611c9f565b6108e6565b005b348015610387575f80fd5b50610317610396366004611cb8565b610936565b3480156103a6575f80fd5b5060035460405160ff9091168152602001610297565b3480156103c7575f80fd5b506103176103d6366004611cf6565b60096020525f908152604090205460ff1681565b3480156103f5575f80fd5b5061028d60045481565b34801561040a575f80fd5b5061037a610419366004611d11565b6109dd565b348015610429575f80fd5b50610317610438366004611cf6565b60086020525f908152604090205460ff1681565b348015610457575f80fd5b5061037a610466366004611c61565b610a11565b348015610476575f80fd5b5061037a610485366004611d31565b610b3f565b348015610495575f80fd5b5061037a6104a4366004611cf6565b610b6d565b3480156104b4575f80fd5b506103176104c3366004611cf6565b600c6020525f908152604090205460ff1681565b3480156104e2575f80fd5b5060115461031790600160b01b900460ff1681565b348015610502575f80fd5b5061037a610511366004611d48565b610bb8565b348015610521575f80fd5b5060115461031790600160a01b900460ff1681565b348015610541575f80fd5b5061028d610550366004611cf6565b6001600160a01b03165f9081526006602052604090205490565b348015610575575f80fd5b5061037a610c0b565b348015610589575f80fd5b5061037a610598366004611d31565b610c3f565b3480156105a8575f80fd5b5061037a610c6d565b3480156105bc575f80fd5b506011546102e0906001600160a01b031681565b3480156105db575f80fd5b5061028d600e5481565b3480156105f0575f80fd5b5061028d600f5481565b348015610605575f80fd5b50610317610614366004611cf6565b600b6020525f908152604090205460ff1681565b348015610633575f80fd5b505f546001600160a01b03166102e0565b34801561064f575f80fd5b506102b4610ca6565b348015610663575f80fd5b5061037a610672366004611d7b565b610cb5565b348015610682575f80fd5b5060115461031790600160b81b900460ff1681565b3480156106a2575f80fd5b506103176106b1366004611c61565b610d48565b3480156106c1575f80fd5b5061037a6106d0366004611d48565b610d54565b3480156106e0575f80fd5b5061037a6106ef366004611df8565b610da7565b3480156106ff575f80fd5b5061037a610e07565b348015610713575f80fd5b50610317610722366004611cf6565b600a6020525f908152604090205460ff1681565b348015610741575f80fd5b5061028d60055481565b348015610756575f80fd5b5061028d610765366004611e28565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561079a575f80fd5b5061037a6107a9366004611d48565b610e90565b3480156107b9575f80fd5b5061037a610ee3565b3480156107cd575f80fd5b5060115461031790600160a81b900460ff1681565b3480156107ed575f80fd5b5060135461031790600160a81b900460ff1681565b34801561080d575f80fd5b506013546102e0906001600160a01b031681565b34801561082c575f80fd5b5061037a61083b366004611cf6565b610fc6565b60606001805461084f90611e5f565b80601f016020809104026020016040519081016040528092919081815260200182805461087b90611e5f565b80156108c65780601f1061089d576101008083540402835291602001916108c6565b820191905f5260205f20905b8154815290600101906020018083116108a957829003601f168201915b5050505050905090565b5f6108dc33848461105d565b5060015b92915050565b5f546001600160a01b031633146109185760405162461bcd60e51b815260040161090f90611e97565b60405180910390fd5b60138054911515600160a81b0260ff60a81b19909216919091179055565b5f61094284848461110f565b506109d284336109cd856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060075f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f6109ad3390565b6001600160a01b0316815260208101919091526040015f2054919061152b565b61105d565b5060015b9392505050565b5f546001600160a01b03163314610a065760405162461bcd60e51b815260040161090f90611e97565b600491909155600555565b6011546001600160a01b03163314610a5a5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040516001600160a01b039182166024820152604481018390525f9184169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610ab49190611ecc565b5f604051808303815f865af19150503d805f8114610aed576040519150601f19603f3d011682016040523d82523d5f602084013e610af2565b606091505b5050905080610b3a5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b604482015260640161090f565b505050565b5f546001600160a01b03163314610b685760405162461bcd60e51b815260040161090f90611e97565b600e55565b5f546001600160a01b03163314610b965760405162461bcd60e51b815260040161090f90611e97565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610be15760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c345760405162461bcd60e51b815260040161090f90611e97565b610c3d5f611563565b565b5f546001600160a01b03163314610c685760405162461bcd60e51b815260040161090f90611e97565b600f55565b5f546001600160a01b03163314610c965760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60b01b19169055565b60606002805461084f90611e5f565b5f546001600160a01b03163314610cde5760405162461bcd60e51b815260040161090f90611e97565b5f5b82811015610d425781600c5f868685818110610cfe57610cfe611ee7565b9050602002016020810190610d139190611cf6565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ce0565b50505050565b5f6109d233848461110f565b5f546001600160a01b03163314610d7d5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610dd05760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055601055565b5f546001600160a01b03163314610e305760405162461bcd60e51b815260040161090f90611e97565b601354600160a01b900460ff1615610e7b5760405162461bcd60e51b815260206004820152600e60248201526d547261646520456e61626c65642160901b604482015260640161090f565b6013805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610eb95760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6011546001600160a01b03163314610f2c5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610f76576040519150601f19603f3d011682016040523d82523d5f602084013e610f7b565b606091505b5050905080610fc35760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b604482015260640161090f565b50565b5f546001600160a01b03163314610fef5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b0381166110545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090f565b610fc381611563565b6001600160a01b0383166110865760405163e602df0560e01b81525f600482015260240161090f565b6001600160a01b0382166110af57604051634a1406b160e11b81525f600482015260240161090f565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b03841661113957604051634b637e8f60e11b81525f600482015260240161090f565b6001600160a01b0383166111625760405163ec442f0560e01b81525f600482015260240161090f565b815f03611182576040516367c8957760e01b815260040160405180910390fd5b601354600160b01b900460ff16156111a65761119f8484846115b2565b90506109d6565b6001600160a01b0384165f908152600c602052604090205460ff161580156111e657506001600160a01b0383165f908152600c602052604090205460ff16155b1561121557601354600160a01b900460ff1661121557604051633c9fd93960e21b815260040160405180910390fd5b305f90815260066020526040902054601054811080159081906112425750601354600160b01b900460ff16155b801561126657506001600160a01b0386165f9081526009602052604090205460ff16155b801561127b5750601154600160a01b900460ff165b801561129f57506001600160a01b0386165f9081526008602052604090205460ff16155b80156112c357506001600160a01b0385165f9081526008602052604090205460ff16155b156112d1576112d182611695565b6001600160a01b0386165f908152600b602052604090205460ff1615801561131157506001600160a01b0385165f908152600b602052604090205460ff16155b80156113265750601154600160b01b900460ff165b1561137357600e548411156113735760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b604482015260640161090f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600690915291909120546113c491869061152b565b6001600160a01b0387165f908152600660205260408120919091556113e98787611727565b6113fd576113f88787876117c1565b6113ff565b845b601154909150600160b81b900460ff16801561143357506001600160a01b0386165f908152600a602052604090205460ff16155b156114a257600f546114638261145d896001600160a01b03165f9081526006602052604090205490565b906118eb565b11156114a25760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b604482015260640161090f565b6001600160a01b0386165f908152600660205260409020546114c490826118eb565b6001600160a01b038088165f8181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115179085815260200190565b60405180910390a3600193505050506109d6565b5f818484111561154e5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486611f0f565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461160291849061152b565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461163090836118eb565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116839086815260200190565b60405180910390a35060019392505050565b6013805460ff60b01b1916600160b01b179055601154600160a81b900460ff16156116bf57506010545b476116c982611949565b5f6116d44783611ad2565b90508015611715576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611713573d5f803e3d5ffd5b505b50506013805460ff60b01b1916905550565b6001600160a01b0382165f9081526008602052604081205460ff168061176457506001600160a01b0382165f9081526008602052604090205460ff165b15611771575060016108e0565b6001600160a01b0383165f9081526009602052604090205460ff16806117ae57506001600160a01b0382165f9081526009602052604090205460ff165b156117ba57505f6108e0565b505f6108e0565b6001600160a01b0383165f90815260096020526040812054819060ff161561180a5761180360646117fd60045486611b1390919063ffffffff16565b90611b91565b9050611869565b6001600160a01b0384165f9081526009602052604090205460ff16156118445761180360646117fd60055486611b1390919063ffffffff16565b601354600160a81b900460ff16156118695761186660646117fd856063611b13565b90505b80156118e157305f9081526006602052604090205461188890826118eb565b305f81815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118d89085815260200190565b60405180910390a35b61155a8382611ad2565b5f806118f78385611f22565b9050838110156109d65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161090f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061197c5761197c611ee7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f79190611f35565b81600181518110611a0a57611a0a611ee7565b6001600160a01b039283166020918202929092010152601254611a30913091168461105d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a689085905f90869030904290600401611f93565b5f604051808303815f87803b158015611a7f575f80fd5b505af1158015611a91573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ac6929190611fce565b60405180910390a15050565b5f6109d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061152b565b5f825f03611b2257505f6108e0565b5f611b2d8385611fee565b905082611b3a8583612005565b146109d65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161090f565b5f6109d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611bed5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486612005565b5f5b83811015611c13578181015183820152602001611bfb565b50505f910152565b602081525f8251806020840152611c39816040850160208701611bf9565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610fc3575f80fd5b5f8060408385031215611c72575f80fd5b8235611c7d81611c4d565b946020939093013593505050565b80358015158114611c9a575f80fd5b919050565b5f60208284031215611caf575f80fd5b6109d682611c8b565b5f805f60608486031215611cca575f80fd5b8335611cd581611c4d565b92506020840135611ce581611c4d565b929592945050506040919091013590565b5f60208284031215611d06575f80fd5b81356109d681611c4d565b5f8060408385031215611d22575f80fd5b50508035926020909101359150565b5f60208284031215611d41575f80fd5b5035919050565b5f8060408385031215611d59575f80fd5b8235611d6481611c4d565b9150611d7260208401611c8b565b90509250929050565b5f805f60408486031215611d8d575f80fd5b833567ffffffffffffffff80821115611da4575f80fd5b818601915086601f830112611db7575f80fd5b813581811115611dc5575f80fd5b8760208260051b8501011115611dd9575f80fd5b602092830195509350611def9186019050611c8b565b90509250925092565b5f805f60608486031215611e0a575f80fd5b83359250611e1a60208501611c8b565b9150611def60408501611c8b565b5f8060408385031215611e39575f80fd5b8235611e4481611c4d565b91506020830135611e5481611c4d565b809150509250929050565b600181811c90821680611e7357607f821691505b602082108103611e9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8251611edd818460208701611bf9565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108e0576108e0611efb565b808201808211156108e0576108e0611efb565b5f60208284031215611f45575f80fd5b81516109d681611c4d565b5f815180845260208085019450602084015f5b83811015611f885781516001600160a01b031687529582019590820190600101611f63565b509495945050505050565b85815284602082015260a060408201525f611fb160a0830186611f50565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611fe66040830184611f50565b949350505050565b80820281158282048414176108e0576108e0611efb565b5f8261201f57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220db8ee72ce6aaf3d774706e29ff0516d8ff021fdb1391c7053a8e7130ee2ef4ef64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061026d575f3560e01c8063728d41c91161014a578063ae85ade6116100be578063df8408fe11610078578063df8408fe1461078f578063e6b2603b146107ae578063e9fd3394146107c2578063ea1ce5a8146107e2578063f242ab4114610802578063f2fde38b14610821575f80fd5b8063ae85ade6146106b6578063b94b0aef146106d5578063c6588775146106f4578063c867d60b14610708578063cc1776d314610736578063dd62ed3e1461074b575f80fd5b80638b42507f1161010f5780638b42507f146105fa5780638da5cb5b1461062857806395d89b411461064457806395fc8fdf146106585780639a21294314610677578063a9059cbb14610697575f80fd5b8063728d41c91461057e578063751039fc1461059d57806375f0a874146105b15780637d1db4a5146105d0578063807c2d9c146105e5575f80fd5b806352f7c988116101e15780635da0a467116101a65780635da0a467146104a95780635e42358c146104d7578063651a8987146104f75780636ddd17131461051657806370a0823114610536578063715018a61461056a575f80fd5b806352f7c988146103ff5780635342acb41461041e578063573761981461044c5780635c85974f1461046b5780635d098b381461048a575f80fd5b806318160ddd1161023257806318160ddd14610347578063230358521461035b57806323b872dd1461037c578063313ce5671461039b5780633ecad271146103bc5780634f7041a5146103ea575f80fd5b80630445b6671461027857806306fdde03146102a05780630758d924146102c1578063095ea7b3146102f85780631693e8d414610327575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d60105481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102b4610840565b6040516102979190611c1b565b3480156102cc575f80fd5b506012546102e0906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610303575f80fd5b50610317610312366004611c61565b6108d0565b6040519015158152602001610297565b348015610332575f80fd5b5060135461031790600160a01b900460ff1681565b348015610352575f80fd5b50600d5461028d565b348015610366575f80fd5b5061037a610375366004611c9f565b6108e6565b005b348015610387575f80fd5b50610317610396366004611cb8565b610936565b3480156103a6575f80fd5b5060035460405160ff9091168152602001610297565b3480156103c7575f80fd5b506103176103d6366004611cf6565b60096020525f908152604090205460ff1681565b3480156103f5575f80fd5b5061028d60045481565b34801561040a575f80fd5b5061037a610419366004611d11565b6109dd565b348015610429575f80fd5b50610317610438366004611cf6565b60086020525f908152604090205460ff1681565b348015610457575f80fd5b5061037a610466366004611c61565b610a11565b348015610476575f80fd5b5061037a610485366004611d31565b610b3f565b348015610495575f80fd5b5061037a6104a4366004611cf6565b610b6d565b3480156104b4575f80fd5b506103176104c3366004611cf6565b600c6020525f908152604090205460ff1681565b3480156104e2575f80fd5b5060115461031790600160b01b900460ff1681565b348015610502575f80fd5b5061037a610511366004611d48565b610bb8565b348015610521575f80fd5b5060115461031790600160a01b900460ff1681565b348015610541575f80fd5b5061028d610550366004611cf6565b6001600160a01b03165f9081526006602052604090205490565b348015610575575f80fd5b5061037a610c0b565b348015610589575f80fd5b5061037a610598366004611d31565b610c3f565b3480156105a8575f80fd5b5061037a610c6d565b3480156105bc575f80fd5b506011546102e0906001600160a01b031681565b3480156105db575f80fd5b5061028d600e5481565b3480156105f0575f80fd5b5061028d600f5481565b348015610605575f80fd5b50610317610614366004611cf6565b600b6020525f908152604090205460ff1681565b348015610633575f80fd5b505f546001600160a01b03166102e0565b34801561064f575f80fd5b506102b4610ca6565b348015610663575f80fd5b5061037a610672366004611d7b565b610cb5565b348015610682575f80fd5b5060115461031790600160b81b900460ff1681565b3480156106a2575f80fd5b506103176106b1366004611c61565b610d48565b3480156106c1575f80fd5b5061037a6106d0366004611d48565b610d54565b3480156106e0575f80fd5b5061037a6106ef366004611df8565b610da7565b3480156106ff575f80fd5b5061037a610e07565b348015610713575f80fd5b50610317610722366004611cf6565b600a6020525f908152604090205460ff1681565b348015610741575f80fd5b5061028d60055481565b348015610756575f80fd5b5061028d610765366004611e28565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561079a575f80fd5b5061037a6107a9366004611d48565b610e90565b3480156107b9575f80fd5b5061037a610ee3565b3480156107cd575f80fd5b5060115461031790600160a81b900460ff1681565b3480156107ed575f80fd5b5060135461031790600160a81b900460ff1681565b34801561080d575f80fd5b506013546102e0906001600160a01b031681565b34801561082c575f80fd5b5061037a61083b366004611cf6565b610fc6565b60606001805461084f90611e5f565b80601f016020809104026020016040519081016040528092919081815260200182805461087b90611e5f565b80156108c65780601f1061089d576101008083540402835291602001916108c6565b820191905f5260205f20905b8154815290600101906020018083116108a957829003601f168201915b5050505050905090565b5f6108dc33848461105d565b5060015b92915050565b5f546001600160a01b031633146109185760405162461bcd60e51b815260040161090f90611e97565b60405180910390fd5b60138054911515600160a81b0260ff60a81b19909216919091179055565b5f61094284848461110f565b506109d284336109cd856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060075f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f6109ad3390565b6001600160a01b0316815260208101919091526040015f2054919061152b565b61105d565b5060015b9392505050565b5f546001600160a01b03163314610a065760405162461bcd60e51b815260040161090f90611e97565b600491909155600555565b6011546001600160a01b03163314610a5a5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040516001600160a01b039182166024820152604481018390525f9184169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610ab49190611ecc565b5f604051808303815f865af19150503d805f8114610aed576040519150601f19603f3d011682016040523d82523d5f602084013e610af2565b606091505b5050905080610b3a5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b604482015260640161090f565b505050565b5f546001600160a01b03163314610b685760405162461bcd60e51b815260040161090f90611e97565b600e55565b5f546001600160a01b03163314610b965760405162461bcd60e51b815260040161090f90611e97565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610be15760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c345760405162461bcd60e51b815260040161090f90611e97565b610c3d5f611563565b565b5f546001600160a01b03163314610c685760405162461bcd60e51b815260040161090f90611e97565b600f55565b5f546001600160a01b03163314610c965760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60b01b19169055565b60606002805461084f90611e5f565b5f546001600160a01b03163314610cde5760405162461bcd60e51b815260040161090f90611e97565b5f5b82811015610d425781600c5f868685818110610cfe57610cfe611ee7565b9050602002016020810190610d139190611cf6565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ce0565b50505050565b5f6109d233848461110f565b5f546001600160a01b03163314610d7d5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610dd05760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055601055565b5f546001600160a01b03163314610e305760405162461bcd60e51b815260040161090f90611e97565b601354600160a01b900460ff1615610e7b5760405162461bcd60e51b815260206004820152600e60248201526d547261646520456e61626c65642160901b604482015260640161090f565b6013805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610eb95760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6011546001600160a01b03163314610f2c5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610f76576040519150601f19603f3d011682016040523d82523d5f602084013e610f7b565b606091505b5050905080610fc35760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b604482015260640161090f565b50565b5f546001600160a01b03163314610fef5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b0381166110545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090f565b610fc381611563565b6001600160a01b0383166110865760405163e602df0560e01b81525f600482015260240161090f565b6001600160a01b0382166110af57604051634a1406b160e11b81525f600482015260240161090f565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b03841661113957604051634b637e8f60e11b81525f600482015260240161090f565b6001600160a01b0383166111625760405163ec442f0560e01b81525f600482015260240161090f565b815f03611182576040516367c8957760e01b815260040160405180910390fd5b601354600160b01b900460ff16156111a65761119f8484846115b2565b90506109d6565b6001600160a01b0384165f908152600c602052604090205460ff161580156111e657506001600160a01b0383165f908152600c602052604090205460ff16155b1561121557601354600160a01b900460ff1661121557604051633c9fd93960e21b815260040160405180910390fd5b305f90815260066020526040902054601054811080159081906112425750601354600160b01b900460ff16155b801561126657506001600160a01b0386165f9081526009602052604090205460ff16155b801561127b5750601154600160a01b900460ff165b801561129f57506001600160a01b0386165f9081526008602052604090205460ff16155b80156112c357506001600160a01b0385165f9081526008602052604090205460ff16155b156112d1576112d182611695565b6001600160a01b0386165f908152600b602052604090205460ff1615801561131157506001600160a01b0385165f908152600b602052604090205460ff16155b80156113265750601154600160b01b900460ff165b1561137357600e548411156113735760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b604482015260640161090f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600690915291909120546113c491869061152b565b6001600160a01b0387165f908152600660205260408120919091556113e98787611727565b6113fd576113f88787876117c1565b6113ff565b845b601154909150600160b81b900460ff16801561143357506001600160a01b0386165f908152600a602052604090205460ff16155b156114a257600f546114638261145d896001600160a01b03165f9081526006602052604090205490565b906118eb565b11156114a25760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b604482015260640161090f565b6001600160a01b0386165f908152600660205260409020546114c490826118eb565b6001600160a01b038088165f8181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115179085815260200190565b60405180910390a3600193505050506109d6565b5f818484111561154e5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486611f0f565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461160291849061152b565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461163090836118eb565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116839086815260200190565b60405180910390a35060019392505050565b6013805460ff60b01b1916600160b01b179055601154600160a81b900460ff16156116bf57506010545b476116c982611949565b5f6116d44783611ad2565b90508015611715576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611713573d5f803e3d5ffd5b505b50506013805460ff60b01b1916905550565b6001600160a01b0382165f9081526008602052604081205460ff168061176457506001600160a01b0382165f9081526008602052604090205460ff165b15611771575060016108e0565b6001600160a01b0383165f9081526009602052604090205460ff16806117ae57506001600160a01b0382165f9081526009602052604090205460ff165b156117ba57505f6108e0565b505f6108e0565b6001600160a01b0383165f90815260096020526040812054819060ff161561180a5761180360646117fd60045486611b1390919063ffffffff16565b90611b91565b9050611869565b6001600160a01b0384165f9081526009602052604090205460ff16156118445761180360646117fd60055486611b1390919063ffffffff16565b601354600160a81b900460ff16156118695761186660646117fd856063611b13565b90505b80156118e157305f9081526006602052604090205461188890826118eb565b305f81815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118d89085815260200190565b60405180910390a35b61155a8382611ad2565b5f806118f78385611f22565b9050838110156109d65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161090f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061197c5761197c611ee7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f79190611f35565b81600181518110611a0a57611a0a611ee7565b6001600160a01b039283166020918202929092010152601254611a30913091168461105d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a689085905f90869030904290600401611f93565b5f604051808303815f87803b158015611a7f575f80fd5b505af1158015611a91573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ac6929190611fce565b60405180910390a15050565b5f6109d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061152b565b5f825f03611b2257505f6108e0565b5f611b2d8385611fee565b905082611b3a8583612005565b146109d65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161090f565b5f6109d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611bed5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486612005565b5f5b83811015611c13578181015183820152602001611bfb565b50505f910152565b602081525f8251806020840152611c39816040850160208701611bf9565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610fc3575f80fd5b5f8060408385031215611c72575f80fd5b8235611c7d81611c4d565b946020939093013593505050565b80358015158114611c9a575f80fd5b919050565b5f60208284031215611caf575f80fd5b6109d682611c8b565b5f805f60608486031215611cca575f80fd5b8335611cd581611c4d565b92506020840135611ce581611c4d565b929592945050506040919091013590565b5f60208284031215611d06575f80fd5b81356109d681611c4d565b5f8060408385031215611d22575f80fd5b50508035926020909101359150565b5f60208284031215611d41575f80fd5b5035919050565b5f8060408385031215611d59575f80fd5b8235611d6481611c4d565b9150611d7260208401611c8b565b90509250929050565b5f805f60408486031215611d8d575f80fd5b833567ffffffffffffffff80821115611da4575f80fd5b818601915086601f830112611db7575f80fd5b813581811115611dc5575f80fd5b8760208260051b8501011115611dd9575f80fd5b602092830195509350611def9186019050611c8b565b90509250925092565b5f805f60608486031215611e0a575f80fd5b83359250611e1a60208501611c8b565b9150611def60408501611c8b565b5f8060408385031215611e39575f80fd5b8235611e4481611c4d565b91506020830135611e5481611c4d565b809150509250929050565b600181811c90821680611e7357607f821691505b602082108103611e9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8251611edd818460208701611bf9565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108e0576108e0611efb565b808201808211156108e0576108e0611efb565b5f60208284031215611f45575f80fd5b81516109d681611c4d565b5f815180845260208085019450602084015f5b83811015611f885781516001600160a01b031687529582019590820190600101611f63565b509495945050505050565b85815284602082015260a060408201525f611fb160a0830186611f50565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611fe66040830184611f50565b949350505050565b80820281158282048414176108e0576108e0611efb565b5f8261201f57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220db8ee72ce6aaf3d774706e29ff0516d8ff021fdb1391c7053a8e7130ee2ef4ef64736f6c63430008160033

Deployed Bytecode Sourcemap

4676:11372:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5563:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5563:59:0;;;;;;;;7380:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5828:31::-;;;;;;;;;;-1:-1:-1;5828:31:0;;;;-1:-1:-1;;;;;5828:31:0;;;;;;-1:-1:-1;;;;;1038:32:1;;;1020:51;;1008:2;993:18;5828:31:0;852:225:1;8047:161:0;;;;;;;;;;-1:-1:-1;8047:161:0;;;;;:::i;:::-;;:::i;:::-;;;1703:14:1;;1696:22;1678:41;;1666:2;1651:18;8047:161:0;1538:187:1;5897:25:0;;;;;;;;;;-1:-1:-1;5897:25:0;;;;-1:-1:-1;;;5897:25:0;;;;;;7657:100;;;;;;;;;;-1:-1:-1;7737:12:0;;7657:100;;14720:114;;;;;;;;;;-1:-1:-1;14720:114:0;;;;;:::i;:::-;;:::i;:::-;;8866:297;;;;;;;;;;-1:-1:-1;8866:297:0;;;;;:::i;:::-;;:::i;7566:83::-;;;;;;;;;;-1:-1:-1;7632:9:0;;7566:83;;7632:9;;;;2683:36:1;;2671:2;2656:18;7566:83:0;2541:184:1;5131:45:0;;;;;;;;;;-1:-1:-1;5131:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4888:21;;;;;;;;;;;;;;;;14448:136;;;;;;;;;;-1:-1:-1;14448:136:0;;;;;:::i;:::-;;:::i;5074:50::-;;;;;;;;;;-1:-1:-1;5074:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14126:314;;;;;;;;;;-1:-1:-1;14126:314:0;;;;;:::i;:::-;;:::i;15551:101::-;;;;;;;;;;-1:-1:-1;15551:101:0;;;;;:::i;:::-;;:::i;15664:114::-;;;;;;;;;;-1:-1:-1;15664:114:0;;;;;:::i;:::-;;:::i;5297:44::-;;;;;;;;;;-1:-1:-1;5297:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5744:32;;;;;;;;;;-1:-1:-1;5744:32:0;;;;-1:-1:-1;;;5744:32:0;;;;;;15173:128;;;;;;;;;;-1:-1:-1;15173:128:0;;;;;:::i;:::-;;:::i;5670:30::-;;;;;;;;;;-1:-1:-1;5670:30:0;;;;-1:-1:-1;;;5670:30:0;;;;;;7765:123;;;;;;;;;;-1:-1:-1;7765:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;7857:18:0;7831:7;7857:18;;;:9;:18;;;;;;;7765:123;2122:94;;;;;;;;;;;;;:::i;15437:106::-;;;;;;;;;;-1:-1:-1;15437:106:0;;;;;:::i;:::-;;:::i;14592:120::-;;;;;;;;;;;;;:::i;5631:30::-;;;;;;;;;;-1:-1:-1;5631:30:0;;;;-1:-1:-1;;;;;5631:30:0;;;5419:59;;;;;;;;;;;;;;;;5490:56;;;;;;;;;;;;;;;;5242:48;;;;;;;;;;-1:-1:-1;5242:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1813:87;;;;;;;;;;-1:-1:-1;1859:7:0;1886:6;-1:-1:-1;;;;;1886:6:0;1813:87;;7471;;;;;;;;;;;;;:::i;14842:193::-;;;;;;;;;;-1:-1:-1;14842:193:0;;;;;:::i;:::-;;:::i;5783:36::-;;;;;;;;;;-1:-1:-1;5783:36:0;;;;-1:-1:-1;;;5783:36:0;;;;;;8691:167;;;;;;;;;;-1:-1:-1;8691:167:0;;;;;:::i;:::-;;:::i;15309:120::-;;;;;;;;;;-1:-1:-1;15309:120:0;;;;;:::i;:::-;;:::i;15786:229::-;;;;;;;;;;-1:-1:-1;15786:229:0;;;;;:::i;:::-;;:::i;13082:135::-;;;;;;;;;;;;;:::i;5183:52::-;;;;;;;;;;-1:-1:-1;5183:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4916:22;;;;;;;;;;;;;;;;7896:143;;;;;;;;;;-1:-1:-1;7896:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8004:18:0;;;7977:7;8004:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7896:143;15043:122;;;;;;;;;;-1:-1:-1;15043:122:0;;;;;:::i;:::-;;:::i;13881:237::-;;;;;;;;;;;;;:::i;5707:30::-;;;;;;;;;;-1:-1:-1;5707:30:0;;;;-1:-1:-1;;;5707:30:0;;;;;;5930:36;;;;;;;;;;-1:-1:-1;5930:36:0;;;;-1:-1:-1;;;5930:36:0;;;;;;5866:22;;;;;;;;;;-1:-1:-1;5866:22:0;;;;-1:-1:-1;;;;;5866:22:0;;;2224:229;;;;;;;;;;-1:-1:-1;2224:229:0;;;;;:::i;:::-;;:::i;7380:83::-;7417:13;7450:5;7443:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:83;:::o;8047:161::-;8122:4;8139:39;569:10;8162:7;8171:6;8139:8;:39::i;:::-;-1:-1:-1;8196:4:0;8047:161;;;;;:::o;14720:114::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;;;;;;;;;14792:24:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;14792:34:0::1;-1:-1:-1::0;;;;14792:34:0;;::::1;::::0;;;::::1;::::0;;14720:114::o;8866:297::-;8964:4;8981:36;8991:6;8999:9;9010:6;8981:9;:36::i;:::-;-1:-1:-1;9028:105:0;9037:6;569:10;9059:73;9097:6;9059:73;;;;;;;;;;;;;;;;;:11;:19;9071:6;-1:-1:-1;;;;;9059:19:0;-1:-1:-1;;;;;9059:19:0;;;;;;;;;;;;:33;9079:12;569:10;;489:98;9079:12;-1:-1:-1;;;;;9059:33:0;;;;;;;;;;;;-1:-1:-1;9059:33:0;;;:73;:37;:73::i;:::-;9028:8;:105::i;:::-;-1:-1:-1;9151:4:0;8866:297;;;;;;:::o;14448:136::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;14529:6:::1;:17:::0;;;;14557:7:::1;:19:::0;14448:136::o;14126:314::-;14219:15;;-1:-1:-1;;;;;14219:15:0;14205:10;:29;14197:53;;;;-1:-1:-1;;;14197:53:0;;6304:2:1;14197:53:0;;;6286:21:1;6343:2;6323:18;;;6316:30;-1:-1:-1;;;6362:18:1;;;6355:42;6414:18;;14197:53:0;6102:336:1;14197:53:0;14355:15;;14301:79;;-1:-1:-1;;;;;14355:15:0;;;14301:79;;;6617:51:1;6684:18;;;6677:34;;;14262:12:0;;14280:20;;;6590:18:1;;14301:79:0;;;-1:-1:-1;;14301:79:0;;;;;;;;;;;;;;-1:-1:-1;;;;;14301:79:0;-1:-1:-1;;;14301:79:0;;;14280:101;;;14301:79;14280:101;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14261:120;;;14400:7;14392:40;;;;-1:-1:-1;;;14392:40:0;;7216:2:1;14392:40:0;;;7198:21:1;7255:2;7235:18;;;7228:30;-1:-1:-1;;;7274:18:1;;;7267:50;7334:18;;14392:40:0;7014:344:1;14392:40:0;14186:254;14126:314;;:::o;15551:101::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;15621:12:::1;:23:::0;15551:101::o;15664:114::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;15742:15:::1;:28:::0;;-1:-1:-1;;;;;;15742:28:0::1;-1:-1:-1::0;;;;;15742:28:0;;;::::1;::::0;;;::::1;::::0;;15664:114::o;15173:128::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15258:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;15258:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15173:128::o;2122:94::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;2187:21:::1;2205:1;2187:9;:21::i;:::-;2122:94::o:0;15437:106::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;15514:10:::1;:21:::0;15437:106::o;14592:120::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;14646:13:::1;:21:::0;;-1:-1:-1;;;;14678:26:0;;;14592:120::o;7471:87::-;7510:13;7543:7;7536:14;;;;;:::i;14842:193::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;14938:6:::1;14934:94;14950:15:::0;;::::1;14934:94;;;15009:7;14986:11;:20;14998:4;;15003:1;14998:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14986:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14986:20:0;:30;;-1:-1:-1;;14986:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;14967:3:0::1;14934:94;;;;14842:193:::0;;;:::o;8691:167::-;8769:4;8786:42;569:10;8810:9;8821:6;8786:9;:42::i;15309:120::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15390:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;15390:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15309:120::o;15786:229::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;15915:11:::1;:22:::0;;-1:-1:-1;;;;15948:22:0;-1:-1:-1;;;15915:22:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;15948:22:0;;;;;-1:-1:-1;;;15948:22:0;::::1;;::::0;;;::::1;;::::0;;15981:13:::1;:26:::0;15786:229::o;13082:135::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;13144:13:::1;::::0;-1:-1:-1;;;13144:13:0;::::1;;;13143:14;13135:41;;;::::0;-1:-1:-1;;;13135:41:0;;7697:2:1;13135:41:0::1;::::0;::::1;7679:21:1::0;7736:2;7716:18;;;7709:30;-1:-1:-1;;;7755:18:1;;;7748:44;7809:18;;13135:41:0::1;7495:338:1::0;13135:41:0::1;13189:13;:20:::0;;-1:-1:-1;;;;13189:20:0::1;-1:-1:-1::0;;;13189:20:0::1;::::0;;13082:135::o;15043:122::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15124:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;15124:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15043:122::o;13881:237::-;13947:15;;-1:-1:-1;;;;;13947:15:0;13933:10;:29;13925:53;;;;-1:-1:-1;;;13925:53:0;;6304:2:1;13925:53:0;;;6286:21:1;6343:2;6323:18;;;6316:30;-1:-1:-1;;;6362:18:1;;;6355:42;6414:18;;13925:53:0;6102:336:1;13925:53:0;14010:15;;14002:63;;13990:7;;-1:-1:-1;;;;;14010:15:0;;14039:21;;13990:7;14002:63;13990:7;14002:63;14039:21;14010:15;14002:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13989:76;;;14084:2;14076:34;;;;-1:-1:-1;;;14076:34:0;;8250:2:1;14076:34:0;;;8232:21:1;8289:2;8269:18;;;8262:30;-1:-1:-1;;;8308:18:1;;;8301:50;8368:18;;14076:34:0;8048:344:1;14076:34:0;13913:205;13881:237::o;2224:229::-;1859:7;1886:6;-1:-1:-1;;;;;1886:6:0;569:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2327:22:0;::::1;2305:110;;;::::0;-1:-1:-1;;;2305:110:0;;8599:2:1;2305:110:0::1;::::0;::::1;8581:21:1::0;8638:2;8618:18;;;8611:30;8677:34;8657:18;;;8650:62;-1:-1:-1;;;8728:18:1;;;8721:36;8774:19;;2305:110:0::1;8397:402:1::0;2305:110:0::1;2426:19;2436:8;2426:9;:19::i;8216:382::-:0;-1:-1:-1;;;;;8305:19:0;;8301:91;;8348:32;;-1:-1:-1;;;8348:32:0;;8377:1;8348:32;;;1020:51:1;993:18;;8348:32:0;852:225:1;8301:91:0;-1:-1:-1;;;;;8406:21:0;;8402:92;;8451:31;;-1:-1:-1;;;8451:31:0;;8479:1;8451:31;;;1020:51:1;993:18;;8451:31:0;852:225:1;8402:92:0;-1:-1:-1;;;;;8506:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8558:32;;160:25:1;;;8558:32:0;;133:18:1;8558:32:0;;;;;;;8216:382;;;:::o;9171:1971::-;9258:4;-1:-1:-1;;;;;9281:20:0;;9277:90;;9325:30;;-1:-1:-1;;;9325:30:0;;9352:1;9325:30;;;1020:51:1;993:18;;9325:30:0;852:225:1;9277:90:0;-1:-1:-1;;;;;9381:23:0;;9377:95;;9428:32;;-1:-1:-1;;;9428:32:0;;9457:1;9428:32;;;1020:51:1;993:18;;9428:32:0;852:225:1;9377:95:0;9485:6;9495:1;9485:11;9482:69;;9520:19;;-1:-1:-1;;;9520:19:0;;;;;;;;;;;9482:69;9571:6;;-1:-1:-1;;;9571:6:0;;;;9567:1566;;;9601:41;9616:6;9624:9;9635:6;9601:14;:41::i;:::-;9594:48;;;;9567:1566;-1:-1:-1;;;;;9691:19:0;;;;;;:11;:19;;;;;;;;9690:20;:47;;;;-1:-1:-1;;;;;;9715:22:0;;;;;;:11;:22;;;;;;;;9714:23;9690:47;9686:177;;;9762:13;;-1:-1:-1;;;9762:13:0;;;;9758:90;;9807:21;;-1:-1:-1;;;9807:21:0;;;;;;;;;;;9758:90;9928:4;9879:28;7857:18;;;:9;:18;;;;;;10004:13;;9980:37;;;;;;;10056:52;;-1:-1:-1;10102:6:0;;-1:-1:-1;;;10102:6:0;;;;10101:7;10056:52;:95;;;;-1:-1:-1;;;;;;10131:20:0;;;;;;:12;:20;;;;;;;;10130:21;10056:95;:128;;;;-1:-1:-1;10173:11:0;;-1:-1:-1;;;10173:11:0;;;;10056:128;:175;;;;-1:-1:-1;;;;;;10206:25:0;;;;;;:17;:25;;;;;;;;10205:26;10056:175;:225;;;;-1:-1:-1;;;;;;10253:28:0;;;;;;:17;:28;;;;;;;;10252:29;10056:225;10034:332;;;10320:30;10329:20;10320:8;:30::i;:::-;-1:-1:-1;;;;;10386:23:0;;;;;;:15;:23;;;;;;;;10385:24;:55;;;;-1:-1:-1;;;;;;10414:26:0;;;;;;:15;:26;;;;;;;;10413:27;10385:55;:72;;;;-1:-1:-1;10444:13:0;;-1:-1:-1;;;10444:13:0;;;;10385:72;10382:166;;;10496:12;;10486:6;:22;;10478:54;;;;-1:-1:-1;;;10478:54:0;;9006:2:1;10478:54:0;;;8988:21:1;9045:2;9025:18;;;9018:30;-1:-1:-1;;;9064:18:1;;;9057:49;9123:18;;10478:54:0;8804:343:1;10478:54:0;10597:53;;;;;;;;;;;-1:-1:-1;;;10597:53:0;;;;;;;;-1:-1:-1;;;;;10597:17:0;;-1:-1:-1;10597:17:0;;;:9;:17;;;;;;;;:53;;10619:6;;10597:21;:53::i;:::-;-1:-1:-1;;;;;10577:17:0;;;;;;:9;:17;;;;;:73;;;;10689:34;10587:6;10713:9;10689:16;:34::i;:::-;:80;;10735:34;10743:6;10751:9;10762:6;10735:7;:34::i;:::-;10689:80;;;10726:6;10689:80;10789:17;;10667:102;;-1:-1:-1;;;;10789:17:0;;;;:52;;;;-1:-1:-1;;;;;;10811:30:0;;;;;;:19;:30;;;;;;;;10810:31;10789:52;10786:169;;;10911:10;;10870:37;10895:11;10870:20;10880:9;-1:-1:-1;;;;;7857:18:0;7831:7;7857:18;;;:9;:18;;;;;;;7765:123;10870:20;:24;;:37::i;:::-;:51;;10862:77;;;;-1:-1:-1;;;10862:77:0;;9354:2:1;10862:77:0;;;9336:21:1;9393:2;9373:18;;;9366:30;-1:-1:-1;;;9412:18:1;;;9405:44;9466:18;;10862:77:0;9152:338:1;10862:77:0;-1:-1:-1;;;;;10994:20:0;;;;;;:9;:20;;;;;;:37;;11019:11;10994:24;:37::i;:::-;-1:-1:-1;;;;;10971:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11053:40;;;;;;;;;;11081:11;160:25:1;;148:2;133:18;;14:177;11053:40:0;;;;;;;;11115:4;11108:11;;;;;;;3000:192;3086:7;3122:12;3114:6;;;;3106:29;;;;-1:-1:-1;;;3106:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3146:9:0;3158:5;3162:1;3158;:5;:::i;:::-;3146:17;3000:192;-1:-1:-1;;;;;3000:192:0:o;2461:173::-;2517:16;2536:6;;-1:-1:-1;;;;;2553:17:0;;;-1:-1:-1;;;;;;2553:17:0;;;;;;2586:40;;2536:6;;;;;;;2586:40;;2517:16;2586:40;2506:128;2461:173;:::o;11150:330::-;11280:53;;;;;;;;;;;-1:-1:-1;;;11280:53:0;;;;;;;;-1:-1:-1;;;;;11280:17:0;;11243:4;11280:17;;;:9;:17;;;;;;;:53;;11302:6;;11280:21;:53::i;:::-;-1:-1:-1;;;;;11260:17:0;;;;;;;:9;:17;;;;;;:73;;;;11367:20;;;;;;;:32;;11392:6;11367:24;:32::i;:::-;-1:-1:-1;;;;;11344:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11415:35;;;;;;;;;;11443:6;160:25:1;;148:2;133:18;;14:177;11415:35:0;;;;;;;;-1:-1:-1;11468:4:0;11150:330;;;;;:::o;12668:406::-;6026:6;:13;;-1:-1:-1;;;;6026:13:0;-1:-1:-1;;;6026:13:0;;;12742:11:::1;::::0;-1:-1:-1;;;12742:11:0;::::1;6026:13:::0;12742:11:::1;12739:47;;;-1:-1:-1::0;12773:13:0::1;::::0;12739:47:::1;12824:21;12856:33;12873:15:::0;12856:16:::1;:33::i;:::-;12900:22;12925:41;:21;12951:14:::0;12925:25:::1;:41::i;:::-;12900:66:::0;-1:-1:-1;12982:18:0;;12979:85:::1;;13023:15;::::0;13015:49:::1;::::0;-1:-1:-1;;;;;13023:15:0;;::::1;::::0;13015:49;::::1;;;::::0;13049:14;;13023:15:::1;13015:49:::0;13023:15;13015:49;13049:14;13023:15;13015:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12979:85;-1:-1:-1::0;;6062:6:0;:14;;-1:-1:-1;;;;6062:14:0;;;-1:-1:-1;12668:406:0:o;11492:369::-;-1:-1:-1;;;;;11596:25:0;;11576:4;11596:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;11625:28:0;;;;;;:17;:28;;;;;;;;11596:57;11593:261;;;-1:-1:-1;11677:4:0;11670:11;;11593:261;-1:-1:-1;;;;;11712:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;11736:23:0;;;;;;:12;:23;;;;;;;;11712:47;11708:146;;;-1:-1:-1;11783:5:0;11776:12;;11708:146;-1:-1:-1;11837:5:0;11830:12;;11871:787;-1:-1:-1;;;;;12044:20:0;;11957:7;12044:20;;;:12;:20;;;;;;11957:7;;12044:20;;12041:343;;;12098:27;12121:3;12098:18;12109:6;;12098;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;12086:39;;12041:343;;;-1:-1:-1;;;;;12164:23:0;;;;;;:12;:23;;;;;;;;12161:223;;;12221:28;12245:3;12221:19;12232:7;;12221:6;:10;;:19;;;;:::i;12161:223::-;12288:24;;-1:-1:-1;;;12288:24:0;;;;12284:100;;;12345:23;12364:3;12345:14;:6;12356:2;12345:10;:14::i;:23::-;12333:35;;12284:100;12403:13;;12400:185;;12482:4;12464:24;;;;:9;:24;;;;;;:39;;12493:9;12464:28;:39::i;:::-;12455:4;12437:24;;;;:9;:24;;;;;;;:66;;;;12527:42;;-1:-1:-1;;;;;12527:42:0;;;;;;;12559:9;160:25:1;;148:2;133:18;;14:177;12527:42:0;;;;;;;;12400:185;12608:21;:6;12619:9;12608:10;:21::i;2667:181::-;2725:7;;2757:5;2761:1;2757;:5;:::i;:::-;2745:17;;2786:1;2781;:6;;2773:46;;;;-1:-1:-1;;;2773:46:0;;10092:2:1;2773:46:0;;;10074:21:1;10131:2;10111:18;;;10104:30;10170:29;10150:18;;;10143:57;10217:18;;2773:46:0;9890:351:1;13225:648:0;13375:16;;;13389:1;13375:16;;;;;;;;13351:21;;13375:16;;;;;;;;;;-1:-1:-1;13375:16:0;13351:40;;13420:4;13402;13407:1;13402:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13402:23:0;;;:7;;;;;;;;;;:23;;;;13446:9;;:16;;;-1:-1:-1;;;13446:16:0;;;;:9;;;;;:14;;:16;;;;;13402:7;;13446:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13436:4;13441:1;13436:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13436:26:0;;;:7;;;;;;;;;:26;13507:9;;13475:56;;13492:4;;13507:9;13519:11;13475:8;:56::i;:::-;13570:9;;:234;;-1:-1:-1;;;13570:234:0;;-1:-1:-1;;;;;13570:9:0;;;;:60;;:234;;13645:11;;13570:9;;13715:4;;13742;;13778:15;;13570:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13830:35;13847:11;13860:4;13830:35;;;;;;;:::i;:::-;;;;;;;;13280:593;13225:648;:::o;2856:136::-;2914:7;2941:43;2945:1;2948;2941:43;;;;;;;;;;;;;;;;;:3;:43::i;3200:250::-;3258:7;3282:1;3287;3282:6;3278:47;;-1:-1:-1;3312:1:0;3305:8;;3278:47;3337:9;3349:5;3353:1;3349;:5;:::i;:::-;3337:17;-1:-1:-1;3382:1:0;3373:5;3377:1;3337:17;3373:5;:::i;:::-;:10;3365:56;;;;-1:-1:-1;;;3365:56:0;;12625:2:1;3365:56:0;;;12607:21:1;12664:2;12644:18;;;12637:30;12703:34;12683:18;;;12676:62;-1:-1:-1;;;12754:18:1;;;12747:31;12795:19;;3365:56:0;12423:397:1;3458:132:0;3516:7;3543:39;3547:1;3550;3543:39;;;;;;;;;;;;;;;;;3684:7;3719:12;3712:5;3704:28;;;;-1:-1:-1;;;3704:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3743:9:0;3755:5;3759:1;3755;:5;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;1082:131::-;-1:-1:-1;;;;;1157:31:1;;1147:42;;1137:70;;1203:1;1200;1193:12;1218:315;1286:6;1294;1347:2;1335:9;1326:7;1322:23;1318:32;1315:52;;;1363:1;1360;1353:12;1315:52;1402:9;1389:23;1421:31;1446:5;1421:31;:::i;:::-;1471:5;1523:2;1508:18;;;;1495:32;;-1:-1:-1;;;1218:315:1:o;1730:160::-;1795:20;;1851:13;;1844:21;1834:32;;1824:60;;1880:1;1877;1870:12;1824:60;1730:160;;;:::o;1895:180::-;1951:6;2004:2;1992:9;1983:7;1979:23;1975:32;1972:52;;;2020:1;2017;2010:12;1972:52;2043:26;2059:9;2043:26;:::i;2080:456::-;2157:6;2165;2173;2226:2;2214:9;2205:7;2201:23;2197:32;2194:52;;;2242:1;2239;2232:12;2194:52;2281:9;2268:23;2300:31;2325:5;2300:31;:::i;:::-;2350:5;-1:-1:-1;2407:2:1;2392:18;;2379:32;2420:33;2379:32;2420:33;:::i;:::-;2080:456;;2472:7;;-1:-1:-1;;;2526:2:1;2511:18;;;;2498:32;;2080:456::o;2730:247::-;2789:6;2842:2;2830:9;2821:7;2817:23;2813:32;2810:52;;;2858:1;2855;2848:12;2810:52;2897:9;2884:23;2916:31;2941:5;2916:31;:::i;2982:248::-;3050:6;3058;3111:2;3099:9;3090:7;3086:23;3082:32;3079:52;;;3127:1;3124;3117:12;3079:52;-1:-1:-1;;3150:23:1;;;3220:2;3205:18;;;3192:32;;-1:-1:-1;2982:248:1:o;3235:180::-;3294:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:52;;;3363:1;3360;3353:12;3315:52;-1:-1:-1;3386:23:1;;3235:180;-1:-1:-1;3235:180:1:o;3420:315::-;3485:6;3493;3546:2;3534:9;3525:7;3521:23;3517:32;3514:52;;;3562:1;3559;3552:12;3514:52;3601:9;3588:23;3620:31;3645:5;3620:31;:::i;:::-;3670:5;-1:-1:-1;3694:35:1;3725:2;3710:18;;3694:35;:::i;:::-;3684:45;;3420:315;;;;;:::o;3948:689::-;4040:6;4048;4056;4109:2;4097:9;4088:7;4084:23;4080:32;4077:52;;;4125:1;4122;4115:12;4077:52;4165:9;4152:23;4194:18;4235:2;4227:6;4224:14;4221:34;;;4251:1;4248;4241:12;4221:34;4289:6;4278:9;4274:22;4264:32;;4334:7;4327:4;4323:2;4319:13;4315:27;4305:55;;4356:1;4353;4346:12;4305:55;4396:2;4383:16;4422:2;4414:6;4411:14;4408:34;;;4438:1;4435;4428:12;4408:34;4493:7;4486:4;4476:6;4473:1;4469:14;4465:2;4461:23;4457:34;4454:47;4451:67;;;4514:1;4511;4504:12;4451:67;4545:4;4537:13;;;;-1:-1:-1;4569:6:1;-1:-1:-1;4594:37:1;;4610:20;;;-1:-1:-1;4594:37:1;:::i;:::-;4584:47;;3948:689;;;;;:::o;4642:316::-;4713:6;4721;4729;4782:2;4770:9;4761:7;4757:23;4753:32;4750:52;;;4798:1;4795;4788:12;4750:52;4834:9;4821:23;4811:33;;4863:35;4894:2;4883:9;4879:18;4863:35;:::i;:::-;4853:45;;4917:35;4948:2;4937:9;4933:18;4917:35;:::i;4963:388::-;5031:6;5039;5092:2;5080:9;5071:7;5067:23;5063:32;5060:52;;;5108:1;5105;5098:12;5060:52;5147:9;5134:23;5166:31;5191:5;5166:31;:::i;:::-;5216:5;-1:-1:-1;5273:2:1;5258:18;;5245:32;5286:33;5245:32;5286:33;:::i;:::-;5338:7;5328:17;;;4963:388;;;;;:::o;5356:380::-;5435:1;5431:12;;;;5478;;;5499:61;;5553:4;5545:6;5541:17;5531:27;;5499:61;5606:2;5598:6;5595:14;5575:18;5572:38;5569:161;;5652:10;5647:3;5643:20;5640:1;5633:31;5687:4;5684:1;5677:15;5715:4;5712:1;5705:15;5569:161;;5356:380;;;:::o;5741:356::-;5943:2;5925:21;;;5962:18;;;5955:30;6021:34;6016:2;6001:18;;5994:62;6088:2;6073:18;;5741:356::o;6722:287::-;6851:3;6889:6;6883:13;6905:66;6964:6;6959:3;6952:4;6944:6;6940:17;6905:66;:::i;:::-;6987:16;;;;;6722:287;-1:-1:-1;;6722:287:1:o;7363:127::-;7424:10;7419:3;7415:20;7412:1;7405:31;7455:4;7452:1;7445:15;7479:4;7476:1;7469:15;9495:127;9556:10;9551:3;9547:20;9544:1;9537:31;9587:4;9584:1;9577:15;9611:4;9608:1;9601:15;9627:128;9694:9;;;9715:11;;;9712:37;;;9729:18;;:::i;9760:125::-;9825:9;;;9846:10;;;9843:36;;;9859:18;;:::i;10378:251::-;10448:6;10501:2;10489:9;10480:7;10476:23;10472:32;10469:52;;;10517:1;10514;10507:12;10469:52;10549:9;10543:16;10568:31;10593:5;10568:31;:::i;10634:465::-;10687:3;10725:5;10719:12;10752:6;10747:3;10740:19;10778:4;10807;10802:3;10798:14;10791:21;;10846:4;10839:5;10835:16;10869:1;10879:195;10893:6;10890:1;10887:13;10879:195;;;10958:13;;-1:-1:-1;;;;;10954:39:1;10942:52;;11014:12;;;;11049:15;;;;10990:1;10908:9;10879:195;;;-1:-1:-1;11090:3:1;;10634:465;-1:-1:-1;;;;;10634:465:1:o;11104:582::-;11403:6;11392:9;11385:25;11446:6;11441:2;11430:9;11426:18;11419:34;11489:3;11484:2;11473:9;11469:18;11462:31;11366:4;11510:57;11562:3;11551:9;11547:19;11539:6;11510:57;:::i;:::-;-1:-1:-1;;;;;11603:32:1;;;;11598:2;11583:18;;11576:60;-1:-1:-1;11667:3:1;11652:19;11645:35;11502:65;11104:582;-1:-1:-1;;;11104:582:1:o;11691:332::-;11898:6;11887:9;11880:25;11941:2;11936;11925:9;11921:18;11914:30;11861:4;11961:56;12013:2;12002:9;11998:18;11990:6;11961:56;:::i;:::-;11953:64;11691:332;-1:-1:-1;;;;11691:332:1:o;12028:168::-;12101:9;;;12132;;12149:15;;;12143:22;;12129:37;12119:71;;12170:18;;:::i;12201:217::-;12241:1;12267;12257:132;;12311:10;12306:3;12302:20;12299:1;12292:31;12346:4;12343:1;12336:15;12374:4;12371:1;12364:15;12257:132;-1:-1:-1;12403:9:1;;12201:217::o

Swarm Source

ipfs://db8ee72ce6aaf3d774706e29ff0516d8ff021fdb1391c7053a8e7130ee2ef4ef
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.