ETH Price: $3,290.87 (-2.23%)

Token

Labda (LAB)
 

Overview

Max Total Supply

100,000,000 LAB

Holders

542

Market

Price

$0.02 @ 0.000005 ETH (-38.72%)

Onchain Market Cap

$1,718,940.00

Circulating Supply Market Cap

$1,718,940.00

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
boughthetop.eth
Balance
48,819.237895834 LAB

Value
$839.17 ( ~0.254999220583269 Eth) [0.0488%]
0x1Da6F7fD7527500e7b87bdb3a60E61527930adb1
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Labda is a blockchain platform linking researchers and supporters funding projects with tokens or ETH. Projects are valued in 'Research Points' tied to token/ETH value. Using a private Proof of Stake blockchain, participants can earn tokens as validators.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Labda

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-01-09
*/

/**
https://www.labda.org
https://t.me/labdaeth
https://x.com/labdaeth
https://labda.gitbook.io/introduction
**/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.26;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

contract Ownable is Context {
    address public _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() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract Labda is Ownable, ERC20 {

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Labda";
    string constant _symbol = "LAB";
    uint8 constant _decimals = 9; 
  

    uint256 constant _totalSupply = 100000000 * 10**_decimals;

    uint256 public _maxTxAmount = 1500000 * 10**_decimals;
    uint256 public _maxWalletAmount = 1500000 * 10**_decimals;

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

    
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private buyMarketingFee    = 9;
    uint256 private buyTeamFee         = 6;
    uint256 public  buyTotalFee        = buyTeamFee + buyMarketingFee;

    uint256 private sellMarketingFee   = 9;
    uint256 private sellTeamFee        = 6;
    uint256 public  sellTotalFee       = sellTeamFee + sellMarketingFee;

    uint256 constant transferFee        = 0;
    
    uint256 private lastSwap;
    address private marketingFeeReceiver;
    address private teamFeeReceiver;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address immutable public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = 1000000 * 10**_decimals; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    event maxWalletUpdated(uint256 indexed maxWalletAmount);
    event maxTxUpdated(uint256 indexed maxTxAmount);
    event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount);
    event exemptFees(address indexed holder, bool indexed exempt);
    event exemptTxLimit(address indexed holder, bool indexed exempt);
    event buyFeesUpdated(uint256 indexed buyTeamFee, uint256 indexed buyMarketingFee);
    event sellFeesUpdated(uint256 indexed sellTeamFee, uint256 indexed sellMarketingFee);
    event feesWalletsUpdated(address indexed marketingFeeReceiver, address indexed teamFeeReceiver);
    event swapbackSettingsUpdated(bool indexed enabled, uint256 indexed amount);
    event tradingEnabled(bool indexed enabled, uint256 indexed startTime);
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x02ffa135fA6D6A1f37577FF63Ed4e203aa308fDE;
        teamFeeReceiver = 0xE906d8c848504916ff05EFCe30c16f455f872573;

        isFeeExempt[msg.sender] = true; 
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        

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

    }

    receive() external payable { }

    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        require(spender != address(0), "Spender is the zero address");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveAll(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(recipient != address(0), "Recipient is the zero address");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender != address(0), "Sender is the zero address");
        require(recipient != address(0), "Recipient is the zero address");
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max){
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _allowances[sender][_msgSender()] = currentAllowance - amount;
            }
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWallet(uint256 maxWalletPercent) external onlyOwner {
        require(maxWalletPercent >= 5);
        _maxWalletAmount = (_totalSupply * maxWalletPercent ) / 1000;
        emit maxWalletUpdated(_maxWalletAmount);       
    }

    function setMaxTx(uint256 maxTxPercent) external onlyOwner {
        require(maxTxPercent >= 5); 
        _maxTxAmount = (_totalSupply * maxTxPercent ) / 1000;
        emit maxTxUpdated(_maxTxAmount);
    }

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(sender != owner()){
            require(TradingOpen,"Trading not open yet");
        
        }
        
        checkTxLimit(sender, amount);
        
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        if (sender != owner() && (recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amountReceived) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");}

        if(
            lastSwap != block.number &&
            _balances[address(this)] >= swapThreshold &&
            swapEnabled &&
            !inSwap &&
            recipient == pair
        ){ 
            swapBack();
            lastSwap = block.number;
        }

        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded");
    }

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

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

        if(recipient == pair) {
            feeAmount = (amount * sellTotalFee) / 100;
        } else if(sender == pair) {
            feeAmount = (amount * buyTotalFee) / 100;
        }else{
            feeAmount = (amount * transferFee) / 100;
        }

        _balances[address(this)] += feeAmount;
        emit Transfer(sender, address(this), feeAmount);
        uint256 notFeeAmount = amount - feeAmount;

        return notFeeAmount;
    }

    function removeMaxLimits() external onlyOwner { 
        _maxWalletAmount = _totalSupply;
        _maxTxAmount = _totalSupply;
        emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool) {
        require(msg.sender == marketingFeeReceiver || msg.sender == teamFeeReceiver);
        require(address(tokenAddress) != address(this));
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }


    function StartTheLab() external onlyOwner {
        require(!TradingOpen,"Trading already Enabled.");
        TradingOpen = true;
        lastSwap = block.number;
        emit tradingEnabled(TradingOpen, lastSwap);
    }

    function swapBack() internal swapping {
        uint256 totalFee = buyTotalFee + sellTotalFee;
        uint256 teamFee = buyTeamFee + sellTeamFee;
        uint256 amountETHteam = 0;
        uint256 amountETHMarketing = 0;

        uint256 amountToSwap = swapThreshold;

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

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

        uint256 totalETHFee = address(this).balance;

        if(totalFee == 0) {
            amountETHteam = 0;
        } else {
            amountETHteam = (totalETHFee * teamFee) / totalFee;
        }

        amountETHMarketing = totalETHFee - amountETHteam;

        (bool tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        require(tmpSuccess, "Failed to send ether to Team Fee Receiver.");
        
        (bool tmpSuccess1,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        require(tmpSuccess1, "Failed to send ether to Marketing Fee Receiver.");

    }

    function exemptAll(address holder, bool exempt) external onlyOwner {
        require(holder != address(0), "Holder is the zero address");
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
        emit exemptFees(holder, exempt);
    }

    function setTxLimitExempt(address holder, bool exempt) external onlyOwner {
        require(holder != address(0), "Holder is the zero address");
        isTxLimitExempt[holder] = exempt;
        emit exemptTxLimit(holder, exempt);
    }

    function updateBuyFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner {
        require( _teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); 
        buyTeamFee = _teamFee;
        buyMarketingFee = _marketingFee;
        buyTotalFee =_teamFee+ _marketingFee;
        emit buyFeesUpdated(buyTeamFee, buyMarketingFee);
    }

    function updateSellFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner {
        require(_teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); 
        sellTeamFee = _teamFee;
        sellMarketingFee = _marketingFee;
        sellTotalFee =_teamFee+ _marketingFee;
        emit sellFeesUpdated(sellTeamFee, sellMarketingFee);
    }

    function updateReceiverWallets( address _marketingFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0) && _teamFeeReceiver != address(0) , "Fee receiver cannot be zero address");
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        emit feesWalletsUpdated(marketingFeeReceiver, teamFeeReceiver);
    }

    function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount * 10**_decimals;
        emit swapbackSettingsUpdated(_enabled, _amount);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD);
    }

}

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":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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"buyMarketingFee","type":"uint256"}],"name":"buyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"teamFeeReceiver","type":"address"}],"name":"feesWalletsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"maxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sellTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellMarketingFee","type":"uint256"}],"name":"sellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[],"name":"StartTheLab","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveAll","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":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","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":"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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526100106009600a6104ad565b61001d906216e3606104c2565b60015561002c6009600a6104ad565b610039906216e3606104c2565b6002556009600755600660085560075460085461005691906104d9565b6009556009600a556006600b55600a54600b5461007391906104d9565b600c556011805461ffff60a01b1916600160a81b1790556100966009600a6104ad565b6100a390620f42406104c2565b6012553480156100b1575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015610154573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017891906104ec565b6001600160a01b039081166080526010546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156101c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ea91906104ec565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015610238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025c91906104ec565b6001600160a01b0390811660a0819052601180546001600160a01b03199081168317909155305f8181526004602090815260408083206010548816845282528083205f199055600e805486167302ffa135fa6d6a1f37577ff63ed4e203aa308fde178155600f805490961673e906d8c848504916ff05efce30c16f455f8725731790955533835260058252808320805460ff1990811660019081179092556006909352818420805484168217905595835280832080548316871790559354909516815282812080548616851790559081522080549092161790556103426009600a6104ad565b610350906305f5e1006104c2565b335f81815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103906009600a6104ad565b61039e906305f5e1006104c2565b60405190815260200160405180910390a3610512565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610403578085048111156103e7576103e76103b4565b60018416156103f557908102905b60019390931c9280026103cc565b935093915050565b5f82610419575060016104a7565b8161042557505f6104a7565b816001811461043b576002811461044557610461565b60019150506104a7565b60ff841115610456576104566103b4565b50506001821b6104a7565b5060208310610133831016604e8410600b8410161715610484575081810a6104a7565b6104905f1984846103c8565b805f19048211156104a3576104a36103b4565b0290505b92915050565b5f6104bb60ff84168361040b565b9392505050565b80820281158282048414176104a7576104a76103b4565b808201808211156104a7576104a76103b4565b5f602082840312156104fc575f80fd5b81516001600160a01b03811681146104bb575f80fd5b60805160a05161211761054f5f395f81816105610152818161152401528181611686015281816118a701526118f301525f611a5e01526121175ff3fe608060405260043610610209575f3560e01c806370a0823111610113578063a9059cbb1161009d578063d6a3933a1161006d578063d6a3933a146105fe578063dd62ed3e14610612578063f2fde38b14610656578063f6a78e1714610675578063f887ea4014610689575f80fd5b8063a9059cbb14610583578063b2bdfa7b146105a2578063bc337182146105c0578063ccf8c036146105df575f80fd5b8063893d20e8116100e3578063893d20e8146104ba5780638d7a8ba7146104ea5780638da5cb5b1461050957806395d89b4114610525578063a8aa1b3114610550575f80fd5b806370a082311461043e578063715018a61461047257806377b54bad146104865780637d1db4a5146104a5575f80fd5b806318160ddd116101945780633705b392116101645780633705b392146103b65780635d0044ca146103cb57806366ca9b83146103ea5780636c0a24eb146104095780636ddd17131461041e575f80fd5b806318160ddd1461035457806323b872dd146103685780632b112e4914610387578063313ce5671461039b575f80fd5b80630621472c116101da5780630621472c1461029157806306fdde03146102c057806308fd3d05146102f6578063095ea7b314610316578063121555a614610335575f80fd5b8062afb3251461021457806302dbd8f81461023c57806304368f651461025d5780630445b6671461027c575f80fd5b3661021057005b5f80fd5b34801561021f575f80fd5b50610229600c5481565b6040519081526020015b60405180910390f35b348015610247575f80fd5b5061025b610256366004611cbb565b6106a8565b005b348015610268575f80fd5b5061025b610277366004611ceb565b61077d565b348015610287575f80fd5b5061022960125481565b34801561029c575f80fd5b506102b06102ab366004611d30565b610808565b6040519015158152602001610233565b3480156102cb575f80fd5b506040805180820190915260058152644c6162646160d81b60208201525b6040516102339190611d49565b348015610301575f80fd5b506011546102b090600160a01b900460ff1681565b348015610321575f80fd5b506102b0610330366004611d7e565b61081a565b348015610340575f80fd5b5061025b61034f366004611d98565b6108d4565b34801561035f575f80fd5b506102296109d2565b348015610373575f80fd5b506102b0610382366004611dc9565b6109f2565b348015610392575f80fd5b50610229610b69565b3480156103a6575f80fd5b5060405160098152602001610233565b3480156103c1575f80fd5b5061022960095481565b3480156103d6575f80fd5b5061025b6103e5366004611e03565b610bbb565b3480156103f5575f80fd5b5061025b610404366004611cbb565b610c53565b348015610414575f80fd5b5061022960025481565b348015610429575f80fd5b506011546102b090600160a81b900460ff1681565b348015610449575f80fd5b50610229610458366004611d30565b6001600160a01b03165f9081526003602052604090205490565b34801561047d575f80fd5b5061025b610d1f565b348015610491575f80fd5b506102b06104a0366004611d7e565b610d90565b3480156104b0575f80fd5b5061022960015481565b3480156104c5575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610233565b3480156104f5575f80fd5b5061025b610504366004611e1a565b610eaf565b348015610514575f80fd5b505f546001600160a01b03166104d2565b348015610530575f80fd5b506040805180820190915260038152622620a160e91b60208201526102e9565b34801561055b575f80fd5b506104d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561058e575f80fd5b506102b061059d366004611d7e565b610f81565b3480156105ad575f80fd5b505f546104d2906001600160a01b031681565b3480156105cb575f80fd5b5061025b6105da366004611e03565b610fe3565b3480156105ea575f80fd5b5061025b6105f9366004611e1a565b61107b565b348015610609575f80fd5b5061025b611161565b34801561061d575f80fd5b5061022961062c366004611d98565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610661575f80fd5b5061025b610670366004611d30565b611237565b348015610680575f80fd5b5061025b61131e565b348015610694575f80fd5b506010546104d2906001600160a01b031681565b5f546001600160a01b031633146106da5760405162461bcd60e51b81526004016106d190611e4f565b60405180910390fd5b60056106e68284611e98565b11156107345760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d1565b600b829055600a8190556107488183611e98565b600c55600a54600b546040517f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e498835788138905f90a35050565b5f546001600160a01b031633146107a65760405162461bcd60e51b81526004016106d190611e4f565b6011805460ff60a81b1916600160a81b841515021790556107c96009600a611f8e565b6107d39082611f9c565b6012556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd9905f90a35050565b5f610814825f1961081a565b92915050565b5f6001600160a01b0383166108715760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064016106d1565b335f8181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f546001600160a01b031633146108fd5760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b0382161580159061091d57506001600160a01b03811615155b6109755760405162461bcd60e51b815260206004820152602360248201527f4665652072656365697665722063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084016106d1565b600e80546001600160a01b03199081166001600160a01b03858116918217909355600f80549092169284169283179091556040517f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def5905f90a35050565b5f6109df6009600a611f8e565b6109ed906305f5e100611f9c565b905090565b5f6001600160a01b038416610a495760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016106d1565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d1565b6001600160a01b0384165f9081526004602090815260408083203384529091529020545f198114610b535782811015610b2b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106d1565b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b610b5e8585856113b0565b9150505b9392505050565b61dead5f90815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54610ba36009600a611f8e565b610bb1906305f5e100611f9c565b6109ed9190611fb3565b5f546001600160a01b03163314610be45760405162461bcd60e51b81526004016106d190611e4f565b6005811015610bf1575f80fd5b6103e881610c016009600a611f8e565b610c0f906305f5e100611f9c565b610c199190611f9c565b610c239190611fc6565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c35905f90a250565b5f546001600160a01b03163314610c7c5760405162461bcd60e51b81526004016106d190611e4f565b6005610c888284611e98565b1115610cd65760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d1565b60088290556007819055610cea8183611e98565b6009556007546008546040517f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a872557905f90a35050565b5f546001600160a01b03163314610d485760405162461bcd60e51b81526004016106d190611e4f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b600e545f906001600160a01b0316331480610db55750600f546001600160a01b031633145b610dbd575f80fd5b306001600160a01b03841603610dd1575f80fd5b815f03610e41576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3e9190611fe5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190611ffc565b5f546001600160a01b03163314610ed85760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d1565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b5f6001600160a01b038316610fd85760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d1565b610b623384846113b0565b5f546001600160a01b0316331461100c5760405162461bcd60e51b81526004016106d190611e4f565b6005811015611019575f80fd5b6103e8816110296009600a611f8e565b611037906305f5e100611f9c565b6110419190611f9c565b61104b9190611fc6565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c5041905f90a250565b5f546001600160a01b031633146110a45760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b0382166110fa5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d1565b6001600160a01b0382165f818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b5f546001600160a01b0316331461118a5760405162461bcd60e51b81526004016106d190611e4f565b601154600160a01b900460ff16156111e45760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016106d1565b6011805460ff60a01b1916600160a01b9081179182905543600d81905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d905f90a3565b5f546001600160a01b031633146112605760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b0381166112c55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146113475760405162461bcd60e51b81526004016106d190611e4f565b6113536009600a611f8e565b611361906305f5e100611f9c565b6002556113706009600a611f8e565b61137e906305f5e100611f9c565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa9905f90a3565b6013545f9060ff16156113cf576113c8848484611762565b9050610b62565b5f546001600160a01b0385811691161461143357601154600160a01b900460ff166114335760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106d1565b61143d848361182f565b6001600160a01b0384165f90815260036020526040902054828110156114755760405162461bcd60e51b81526004016106d190612017565b6001600160a01b0385165f9081526005602052604081205460ff16806114b257506001600160a01b0385165f9081526005602052604090205460ff165b6114c6576114c186858761189b565b6114c8565b835b90506114db5f546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561159757506001600160a01b038516301480159061151b57506001600160a01b03851661dead14155b801561155957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156115735750600e546001600160a01b03868116911614155b801561159757506001600160a01b0385165f9081526006602052604090205460ff16155b15611637576001600160a01b0385165f908152600360205260409020546002546115c18383611e98565b11156116355760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106d1565b505b43600d54141580156116595750601254305f9081526003602052604090205410155b801561166e5750601154600160a81b900460ff165b801561167d575060135460ff16155b80156116ba57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b156116cc576116c76119cb565b43600d555b6001600160a01b038087165f90815260036020526040808220878603905591871681529081208054839290611702908490611e98565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174e91815260200190565b60405180910390a350600195945050505050565b6001600160a01b0383165f908152600360205260408120548281101561179a5760405162461bcd60e51b81526004016106d190612017565b6001600160a01b038086165f908152600360205260408082208685039055918616815290812080548592906117d0908490611e98565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181c91815260200190565b60405180910390a3506001949350505050565b6001548111158061185757506001600160a01b0382165f9081526006602052604090205460ff165b6118975760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016106d1565b5050565b5f806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036118f1576064600c54856118e09190611f9c565b6118ea9190611fc6565b9050611953565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361193a576064600954856118e09190611f9c565b60646119465f86611f9c565b6119509190611fc6565b90505b305f9081526003602052604081208054839290611971908490611e98565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35f6119c18286611fb3565b9695505050505050565b6013805460ff19166001179055600c546009545f916119e991611e98565b90505f600b546008546119fc9190611e98565b6012546040805160028082526060820183529394505f938493928492919060208301908036833701905050905030815f81518110611a3c57611a3c61205d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611a9057611a9061205d565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611ad59085905f90869030904290600401612071565b5f604051808303815f87803b158015611aec575f80fd5b505af1158015611afe573d5f803e3d5ffd5b5047925050505f879003611b14575f9450611b2c565b86611b1f8783611f9c565b611b299190611fc6565b94505b611b368582611fb3565b600f546040519195505f916001600160a01b039091169087908381818185875af1925050503d805f8114611b85576040519150601f19603f3d011682016040523d82523d5f602084013e611b8a565b606091505b5050905080611bee5760405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f2073656e6420657468657220746f205465616d20466565604482015269102932b1b2b4bb32b91760b11b60648201526084016106d1565b600e546040515f916001600160a01b03169087908381818185875af1925050503d805f8114611c38576040519150601f19603f3d011682016040523d82523d5f602084013e611c3d565b606091505b5050905080611ca65760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016106d1565b50506013805460ff1916905550505050505050565b5f8060408385031215611ccc575f80fd5b50508035926020909101359150565b8015158114611ce8575f80fd5b50565b5f8060408385031215611cfc575f80fd5b8235611d0781611cdb565b946020939093013593505050565b80356001600160a01b0381168114611d2b575f80fd5b919050565b5f60208284031215611d40575f80fd5b610b6282611d15565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611d8f575f80fd5b611d0783611d15565b5f8060408385031215611da9575f80fd5b611db283611d15565b9150611dc060208401611d15565b90509250929050565b5f805f60608486031215611ddb575f80fd5b611de484611d15565b9250611df260208501611d15565b929592945050506040919091013590565b5f60208284031215611e13575f80fd5b5035919050565b5f8060408385031215611e2b575f80fd5b611e3483611d15565b91506020830135611e4481611cdb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561081457610814611e84565b6001815b6001841115611ee657808504811115611eca57611eca611e84565b6001841615611ed857908102905b60019390931c928002611eaf565b935093915050565b5f82611efc57506001610814565b81611f0857505f610814565b8160018114611f1e5760028114611f2857611f44565b6001915050610814565b60ff841115611f3957611f39611e84565b50506001821b610814565b5060208310610133831016604e8410600b8410161715611f67575081810a610814565b611f735f198484611eab565b805f1904821115611f8657611f86611e84565b029392505050565b5f610b6260ff841683611eee565b808202811582820484141761081457610814611e84565b8181038181111561081457610814611e84565b5f82611fe057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611ff5575f80fd5b5051919050565b5f6020828403121561200c575f80fd5b8151610b6281611cdb565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120c15783516001600160a01b031683526020938401939092019160010161209a565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212202eaffb06566e21c1f725709475f6b41d35adebbbb55d9bde27eee70be0ead13764736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610209575f3560e01c806370a0823111610113578063a9059cbb1161009d578063d6a3933a1161006d578063d6a3933a146105fe578063dd62ed3e14610612578063f2fde38b14610656578063f6a78e1714610675578063f887ea4014610689575f80fd5b8063a9059cbb14610583578063b2bdfa7b146105a2578063bc337182146105c0578063ccf8c036146105df575f80fd5b8063893d20e8116100e3578063893d20e8146104ba5780638d7a8ba7146104ea5780638da5cb5b1461050957806395d89b4114610525578063a8aa1b3114610550575f80fd5b806370a082311461043e578063715018a61461047257806377b54bad146104865780637d1db4a5146104a5575f80fd5b806318160ddd116101945780633705b392116101645780633705b392146103b65780635d0044ca146103cb57806366ca9b83146103ea5780636c0a24eb146104095780636ddd17131461041e575f80fd5b806318160ddd1461035457806323b872dd146103685780632b112e4914610387578063313ce5671461039b575f80fd5b80630621472c116101da5780630621472c1461029157806306fdde03146102c057806308fd3d05146102f6578063095ea7b314610316578063121555a614610335575f80fd5b8062afb3251461021457806302dbd8f81461023c57806304368f651461025d5780630445b6671461027c575f80fd5b3661021057005b5f80fd5b34801561021f575f80fd5b50610229600c5481565b6040519081526020015b60405180910390f35b348015610247575f80fd5b5061025b610256366004611cbb565b6106a8565b005b348015610268575f80fd5b5061025b610277366004611ceb565b61077d565b348015610287575f80fd5b5061022960125481565b34801561029c575f80fd5b506102b06102ab366004611d30565b610808565b6040519015158152602001610233565b3480156102cb575f80fd5b506040805180820190915260058152644c6162646160d81b60208201525b6040516102339190611d49565b348015610301575f80fd5b506011546102b090600160a01b900460ff1681565b348015610321575f80fd5b506102b0610330366004611d7e565b61081a565b348015610340575f80fd5b5061025b61034f366004611d98565b6108d4565b34801561035f575f80fd5b506102296109d2565b348015610373575f80fd5b506102b0610382366004611dc9565b6109f2565b348015610392575f80fd5b50610229610b69565b3480156103a6575f80fd5b5060405160098152602001610233565b3480156103c1575f80fd5b5061022960095481565b3480156103d6575f80fd5b5061025b6103e5366004611e03565b610bbb565b3480156103f5575f80fd5b5061025b610404366004611cbb565b610c53565b348015610414575f80fd5b5061022960025481565b348015610429575f80fd5b506011546102b090600160a81b900460ff1681565b348015610449575f80fd5b50610229610458366004611d30565b6001600160a01b03165f9081526003602052604090205490565b34801561047d575f80fd5b5061025b610d1f565b348015610491575f80fd5b506102b06104a0366004611d7e565b610d90565b3480156104b0575f80fd5b5061022960015481565b3480156104c5575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610233565b3480156104f5575f80fd5b5061025b610504366004611e1a565b610eaf565b348015610514575f80fd5b505f546001600160a01b03166104d2565b348015610530575f80fd5b506040805180820190915260038152622620a160e91b60208201526102e9565b34801561055b575f80fd5b506104d27f00000000000000000000000020b3375b299c3634765559861dd3dde075ebf24d81565b34801561058e575f80fd5b506102b061059d366004611d7e565b610f81565b3480156105ad575f80fd5b505f546104d2906001600160a01b031681565b3480156105cb575f80fd5b5061025b6105da366004611e03565b610fe3565b3480156105ea575f80fd5b5061025b6105f9366004611e1a565b61107b565b348015610609575f80fd5b5061025b611161565b34801561061d575f80fd5b5061022961062c366004611d98565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610661575f80fd5b5061025b610670366004611d30565b611237565b348015610680575f80fd5b5061025b61131e565b348015610694575f80fd5b506010546104d2906001600160a01b031681565b5f546001600160a01b031633146106da5760405162461bcd60e51b81526004016106d190611e4f565b60405180910390fd5b60056106e68284611e98565b11156107345760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d1565b600b829055600a8190556107488183611e98565b600c55600a54600b546040517f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e498835788138905f90a35050565b5f546001600160a01b031633146107a65760405162461bcd60e51b81526004016106d190611e4f565b6011805460ff60a81b1916600160a81b841515021790556107c96009600a611f8e565b6107d39082611f9c565b6012556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd9905f90a35050565b5f610814825f1961081a565b92915050565b5f6001600160a01b0383166108715760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064016106d1565b335f8181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f546001600160a01b031633146108fd5760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b0382161580159061091d57506001600160a01b03811615155b6109755760405162461bcd60e51b815260206004820152602360248201527f4665652072656365697665722063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084016106d1565b600e80546001600160a01b03199081166001600160a01b03858116918217909355600f80549092169284169283179091556040517f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def5905f90a35050565b5f6109df6009600a611f8e565b6109ed906305f5e100611f9c565b905090565b5f6001600160a01b038416610a495760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016106d1565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d1565b6001600160a01b0384165f9081526004602090815260408083203384529091529020545f198114610b535782811015610b2b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106d1565b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b610b5e8585856113b0565b9150505b9392505050565b61dead5f90815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54610ba36009600a611f8e565b610bb1906305f5e100611f9c565b6109ed9190611fb3565b5f546001600160a01b03163314610be45760405162461bcd60e51b81526004016106d190611e4f565b6005811015610bf1575f80fd5b6103e881610c016009600a611f8e565b610c0f906305f5e100611f9c565b610c199190611f9c565b610c239190611fc6565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c35905f90a250565b5f546001600160a01b03163314610c7c5760405162461bcd60e51b81526004016106d190611e4f565b6005610c888284611e98565b1115610cd65760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d1565b60088290556007819055610cea8183611e98565b6009556007546008546040517f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a872557905f90a35050565b5f546001600160a01b03163314610d485760405162461bcd60e51b81526004016106d190611e4f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b600e545f906001600160a01b0316331480610db55750600f546001600160a01b031633145b610dbd575f80fd5b306001600160a01b03841603610dd1575f80fd5b815f03610e41576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3e9190611fe5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190611ffc565b5f546001600160a01b03163314610ed85760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d1565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b5f6001600160a01b038316610fd85760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d1565b610b623384846113b0565b5f546001600160a01b0316331461100c5760405162461bcd60e51b81526004016106d190611e4f565b6005811015611019575f80fd5b6103e8816110296009600a611f8e565b611037906305f5e100611f9c565b6110419190611f9c565b61104b9190611fc6565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c5041905f90a250565b5f546001600160a01b031633146110a45760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b0382166110fa5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d1565b6001600160a01b0382165f818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b5f546001600160a01b0316331461118a5760405162461bcd60e51b81526004016106d190611e4f565b601154600160a01b900460ff16156111e45760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016106d1565b6011805460ff60a01b1916600160a01b9081179182905543600d81905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d905f90a3565b5f546001600160a01b031633146112605760405162461bcd60e51b81526004016106d190611e4f565b6001600160a01b0381166112c55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146113475760405162461bcd60e51b81526004016106d190611e4f565b6113536009600a611f8e565b611361906305f5e100611f9c565b6002556113706009600a611f8e565b61137e906305f5e100611f9c565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa9905f90a3565b6013545f9060ff16156113cf576113c8848484611762565b9050610b62565b5f546001600160a01b0385811691161461143357601154600160a01b900460ff166114335760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106d1565b61143d848361182f565b6001600160a01b0384165f90815260036020526040902054828110156114755760405162461bcd60e51b81526004016106d190612017565b6001600160a01b0385165f9081526005602052604081205460ff16806114b257506001600160a01b0385165f9081526005602052604090205460ff165b6114c6576114c186858761189b565b6114c8565b835b90506114db5f546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561159757506001600160a01b038516301480159061151b57506001600160a01b03851661dead14155b801561155957507f00000000000000000000000020b3375b299c3634765559861dd3dde075ebf24d6001600160a01b0316856001600160a01b031614155b80156115735750600e546001600160a01b03868116911614155b801561159757506001600160a01b0385165f9081526006602052604090205460ff16155b15611637576001600160a01b0385165f908152600360205260409020546002546115c18383611e98565b11156116355760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106d1565b505b43600d54141580156116595750601254305f9081526003602052604090205410155b801561166e5750601154600160a81b900460ff165b801561167d575060135460ff16155b80156116ba57507f00000000000000000000000020b3375b299c3634765559861dd3dde075ebf24d6001600160a01b0316856001600160a01b0316145b156116cc576116c76119cb565b43600d555b6001600160a01b038087165f90815260036020526040808220878603905591871681529081208054839290611702908490611e98565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174e91815260200190565b60405180910390a350600195945050505050565b6001600160a01b0383165f908152600360205260408120548281101561179a5760405162461bcd60e51b81526004016106d190612017565b6001600160a01b038086165f908152600360205260408082208685039055918616815290812080548592906117d0908490611e98565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181c91815260200190565b60405180910390a3506001949350505050565b6001548111158061185757506001600160a01b0382165f9081526006602052604090205460ff165b6118975760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016106d1565b5050565b5f806001600160a01b037f00000000000000000000000020b3375b299c3634765559861dd3dde075ebf24d8116908416036118f1576064600c54856118e09190611f9c565b6118ea9190611fc6565b9050611953565b7f00000000000000000000000020b3375b299c3634765559861dd3dde075ebf24d6001600160a01b0316856001600160a01b03160361193a576064600954856118e09190611f9c565b60646119465f86611f9c565b6119509190611fc6565b90505b305f9081526003602052604081208054839290611971908490611e98565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35f6119c18286611fb3565b9695505050505050565b6013805460ff19166001179055600c546009545f916119e991611e98565b90505f600b546008546119fc9190611e98565b6012546040805160028082526060820183529394505f938493928492919060208301908036833701905050905030815f81518110611a3c57611a3c61205d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611a9057611a9061205d565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611ad59085905f90869030904290600401612071565b5f604051808303815f87803b158015611aec575f80fd5b505af1158015611afe573d5f803e3d5ffd5b5047925050505f879003611b14575f9450611b2c565b86611b1f8783611f9c565b611b299190611fc6565b94505b611b368582611fb3565b600f546040519195505f916001600160a01b039091169087908381818185875af1925050503d805f8114611b85576040519150601f19603f3d011682016040523d82523d5f602084013e611b8a565b606091505b5050905080611bee5760405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f2073656e6420657468657220746f205465616d20466565604482015269102932b1b2b4bb32b91760b11b60648201526084016106d1565b600e546040515f916001600160a01b03169087908381818185875af1925050503d805f8114611c38576040519150601f19603f3d011682016040523d82523d5f602084013e611c3d565b606091505b5050905080611ca65760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016106d1565b50506013805460ff1916905550505050505050565b5f8060408385031215611ccc575f80fd5b50508035926020909101359150565b8015158114611ce8575f80fd5b50565b5f8060408385031215611cfc575f80fd5b8235611d0781611cdb565b946020939093013593505050565b80356001600160a01b0381168114611d2b575f80fd5b919050565b5f60208284031215611d40575f80fd5b610b6282611d15565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611d8f575f80fd5b611d0783611d15565b5f8060408385031215611da9575f80fd5b611db283611d15565b9150611dc060208401611d15565b90509250929050565b5f805f60608486031215611ddb575f80fd5b611de484611d15565b9250611df260208501611d15565b929592945050506040919091013590565b5f60208284031215611e13575f80fd5b5035919050565b5f8060408385031215611e2b575f80fd5b611e3483611d15565b91506020830135611e4481611cdb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561081457610814611e84565b6001815b6001841115611ee657808504811115611eca57611eca611e84565b6001841615611ed857908102905b60019390931c928002611eaf565b935093915050565b5f82611efc57506001610814565b81611f0857505f610814565b8160018114611f1e5760028114611f2857611f44565b6001915050610814565b60ff841115611f3957611f39611e84565b50506001821b610814565b5060208310610133831016604e8410600b8410161715611f67575081810a610814565b611f735f198484611eab565b805f1904821115611f8657611f86611e84565b029392505050565b5f610b6260ff841683611eee565b808202811582820484141761081457610814611e84565b8181038181111561081457610814611e84565b5f82611fe057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611ff5575f80fd5b5051919050565b5f6020828403121561200c575f80fd5b8151610b6281611cdb565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120c15783516001600160a01b031683526020938401939092019160010161209a565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212202eaffb06566e21c1f725709475f6b41d35adebbbb55d9bde27eee70be0ead13764736f6c634300081a0033

Deployed Bytecode Sourcemap

3742:12709:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4667:67;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4667:67:0;;;;;;;;15296:360;;;;;;;;;;-1:-1:-1;15296:360:0;;;;;:::i;:::-;;:::i;:::-;;16090:230;;;;;;;;;;-1:-1:-1;16090:230:0;;;;;:::i;:::-;;:::i;5102:54::-;;;;;;;;;;;;;;;;7917:122;;;;;;;;;;-1:-1:-1;7917:122:0;;;;;:::i;:::-;;:::i;:::-;;;1570:14:1;;1563:22;1545:41;;1533:2;1518:18;7917:122:0;1405:187:1;7199:80:0;;;;;;;;;;-1:-1:-1;7271:5:0;;;;;;;;;;;;-1:-1:-1;;;7271:5:0;;;;7199:80;;;;;;;:::i;5021:31::-;;;;;;;;;;-1:-1:-1;5021:31:0;;;;-1:-1:-1;;;5021:31:0;;;;;;7621:288;;;;;;;;;;-1:-1:-1;7621:288:0;;;;;:::i;:::-;;:::i;15664:418::-;;;;;;;;;;-1:-1:-1;15664:418:0;;;;;:::i;:::-;;:::i;6929:88::-;;;;;;;;;;;;;:::i;8287:668::-;;;;;;;;;;-1:-1:-1;8287:668:0;;;;;:::i;:::-;;:::i;16328:118::-;;;;;;;;;;;;;:::i;7023:80::-;;;;;;;;;;-1:-1:-1;7023:80:0;;3991:1;3111:36:1;;3099:2;3084:18;7023:80:0;2969:184:1;4503:65:0;;;;;;;;;;;;;;;;8963:244;;;;;;;;;;-1:-1:-1;8963:244:0;;;;;:::i;:::-;;:::i;14934:354::-;;;;;;;;;;-1:-1:-1;14934:354:0;;;;;:::i;:::-;;:::i;4132:57::-;;;;;;;;;;;;;;;;5065:30;;;;;;;;;;-1:-1:-1;5065:30:0;;;;-1:-1:-1;;;5065:30:0;;;;;;7369:105;;;;;;;;;;-1:-1:-1;7369:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7453:18:0;7435:7;7453:18;;;:9;:18;;;;;;;7369:105;1797:150;;;;;;;;;;;;;:::i;12522:411::-;;;;;;;;;;-1:-1:-1;12522:411:0;;;;;:::i;:::-;;:::i;4072:53::-;;;;;;;;;;;;;;;;7285:78;;;;;;;;;;-1:-1:-1;7337:7:0;1648:6;-1:-1:-1;;;;;1648:6:0;7285:78;;;-1:-1:-1;;;;;3553:32:1;;;3535:51;;3523:2;3508:18;7285:78:0;3389:203:1;14686:240:0;;;;;;;;;;-1:-1:-1;14686:240:0;;;;;:::i;:::-;;:::i;1583:79::-;;;;;;;;;;-1:-1:-1;1621:7:0;1648:6;-1:-1:-1;;;;;1648:6:0;1583:79;;7109:84;;;;;;;;;;-1:-1:-1;7183:7:0;;;;;;;;;;;;-1:-1:-1;;;7183:7:0;;;;7109:84;;4979:29;;;;;;;;;;;;;;;8047:232;;;;;;;;;;-1:-1:-1;8047:232:0;;;;;:::i;:::-;;:::i;1299:21::-;;;;;;;;;;-1:-1:-1;1299:21:0;;;;-1:-1:-1;;;;;1299:21:0;;;9215:210;;;;;;;;;;-1:-1:-1;9215:210:0;;;;;:::i;:::-;;:::i;14409:269::-;;;;;;;;;;-1:-1:-1;14409:269:0;;;;;:::i;:::-;;:::i;12943:225::-;;;;;;;;;;;;;:::i;7480:133::-;;;;;;;;;;-1:-1:-1;7480:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7582:19:0;;;7564:7;7582:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7480:133;1955:244;;;;;;;;;;-1:-1:-1;1955:244:0;;;;;:::i;:::-;;:::i;12315:199::-;;;;;;;;;;;;;:::i;4909:24::-;;;;;;;;;;-1:-1:-1;4909:24:0;;;;-1:-1:-1;;;;;4909:24:0;;;15296:360;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;;;;;;;;;15427:1:::1;15399:24;15410:13:::0;15399:8;:24:::1;:::i;:::-;:29;;15391:70;;;::::0;-1:-1:-1;;;15391:70:0;;4968:2:1;15391:70:0::1;::::0;::::1;4950:21:1::0;5007:2;4987:18;;;4980:30;5046;5026:18;;;5019:58;5094:18;;15391:70:0::1;4766:352:1::0;15391:70:0::1;15473:11;:22:::0;;;15506:16:::1;:32:::0;;;15563:23:::1;15525:13:::0;15487:8;15563:23:::1;:::i;:::-;15549:12;:37:::0;15631:16:::1;::::0;15618:11:::1;::::0;15602:46:::1;::::0;::::1;::::0;;;::::1;15296:360:::0;;:::o;16090:230::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;16182:11:::1;:22:::0;;-1:-1:-1;;;;16182:22:0::1;-1:-1:-1::0;;;16182:22:0;::::1;;;;::::0;;16241:13:::1;3991:1;16241:2;:13;:::i;:::-;16231:23;::::0;:7;:23:::1;:::i;:::-;16215:13;:39:::0;16270:42:::1;::::0;16304:7;;16270:42;::::1;;::::0;::::1;::::0;;;::::1;16090:230:::0;;:::o;7917:122::-;7972:4;7996:35;8004:7;-1:-1:-1;;7996:7:0;:35::i;:::-;7989:42;7917:122;-1:-1:-1;;7917:122:0:o;7621:288::-;7696:4;-1:-1:-1;;;;;7721:21:0;;7713:61;;;;-1:-1:-1;;;7713:61:0;;6930:2:1;7713:61:0;;;6912:21:1;6969:2;6949:18;;;6942:30;7008:29;6988:18;;;6981:57;7055:18;;7713:61:0;6728:351:1;7713:61:0;7797:10;7785:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7785:32:0;;;;;;;;;;;;:41;;;7842:37;160:25:1;;;7785:32:0;;7797:10;7842:37;;133:18:1;7842:37:0;;;;;;;-1:-1:-1;7897:4:0;7621:288;;;;:::o;15664:418::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15791:35:0;::::1;::::0;;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;15830:30:0;::::1;::::0;::::1;15791:69;15783:118;;;::::0;-1:-1:-1;;;15783:118:0;;7286:2:1;15783:118:0::1;::::0;::::1;7268:21:1::0;7325:2;7305:18;;;7298:30;7364:34;7344:18;;;7337:62;-1:-1:-1;;;7415:18:1;;;7408:33;7458:19;;15783:118:0::1;7084:399:1::0;15783:118:0::1;15912:20;:44:::0;;-1:-1:-1;;;;;;15912:44:0;;::::1;-1:-1:-1::0;;;;;15912:44:0;;::::1;::::0;;::::1;::::0;;;15967:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;16017:57:::1;::::0;::::1;::::0;-1:-1:-1;;16017:57:0::1;15664:418:::0;;:::o;6929:88::-;6984:7;4050:13;3991:1;4050:2;:13;:::i;:::-;4038:25;;:9;:25;:::i;:::-;6995:19;;6929:88;:::o;8287:668::-;8387:4;-1:-1:-1;;;;;8412:20:0;;8404:59;;;;-1:-1:-1;;;8404:59:0;;7690:2:1;8404:59:0;;;7672:21:1;7729:2;7709:18;;;7702:30;7768:28;7748:18;;;7741:56;7814:18;;8404:59:0;7488:350:1;8404:59:0;-1:-1:-1;;;;;8482:23:0;;8474:65;;;;-1:-1:-1;;;8474:65:0;;8045:2:1;8474:65:0;;;8027:21:1;8084:2;8064:18;;;8057:30;8123:31;8103:18;;;8096:59;8172:18;;8474:65:0;7843:353:1;8474:65:0;-1:-1:-1;;;;;8577:19:0;;8550:24;8577:19;;;:11;:19;;;;;;;;1238:10;8577:33;;;;;;;;-1:-1:-1;;8624:37:0;;8621:267;;8705:6;8685:16;:26;;8677:79;;;;-1:-1:-1;;;8677:79:0;;8403:2:1;8677:79:0;;;8385:21:1;8442:2;8422:18;;;8415:30;8481:34;8461:18;;;8454:62;-1:-1:-1;;;8532:18:1;;;8525:38;8580:19;;8677:79:0;8201:404:1;8677:79:0;-1:-1:-1;;;;;8800:19:0;;;;;;:11;:19;;;;;;;;1238:10;8800:33;;;;;;;8836:25;;;8800:61;;8621:267;8907:40;8921:6;8929:9;8940:6;8907:13;:40::i;:::-;8900:47;;;8287:668;;;;;;:::o;16328:118::-;3837:42;16381:7;7453:18;;;:9;:18;;;;4050:13;3991:1;4050:2;:13;:::i;:::-;4038:25;;:9;:25;:::i;:::-;16408:30;;;;:::i;8963:244::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;9069:1:::1;9049:16;:21;;9041:30;;;::::0;::::1;;9138:4;9117:16:::0;4050:13:::1;3991:1;4050:2;:13;:::i;:::-;4038:25;::::0;:9:::1;:25;:::i;:::-;9102:31;;;;:::i;:::-;9101:41;;;;:::i;:::-;9082:16;:60:::0;;;9158:34:::1;::::0;::::1;::::0;;;::::1;8963:244:::0;:::o;14934:354::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;15065:1:::1;15037:24;15048:13:::0;15037:8;:24:::1;:::i;:::-;:29;;15028:71;;;::::0;-1:-1:-1;;;15028:71:0;;4968:2:1;15028:71:0::1;::::0;::::1;4950:21:1::0;5007:2;4987:18;;;4980:30;5046;5026:18;;;5019:58;5094:18;;15028:71:0::1;4766:352:1::0;15028:71:0::1;15111:10;:21:::0;;;15143:15:::1;:31:::0;;;15198:23:::1;15161:13:::0;15124:8;15198:23:::1;:::i;:::-;15185:11;:36:::0;15264:15:::1;::::0;15252:10:::1;::::0;15237:43:::1;::::0;::::1;::::0;;;::::1;14934:354:::0;;:::o;1797:150::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;1906:1:::1;1890:6:::0;;1869:40:::1;::::0;-1:-1:-1;;;;;1890:6:0;;::::1;::::0;1869:40:::1;::::0;1906:1;;1869:40:::1;1937:1;1920:19:::0;;-1:-1:-1;;;;;;1920:19:0::1;::::0;;1797:150::o;12522:411::-;12642:20;;12603:4;;-1:-1:-1;;;;;12642:20:0;12628:10;:34;;:67;;-1:-1:-1;12680:15:0;;-1:-1:-1;;;;;12680:15:0;12666:10;:29;12628:67;12620:76;;;;;;12748:4;-1:-1:-1;;;;;12715:38:0;;;12707:47;;;;;;12768:6;12778:1;12768:11;12765:95;;12804:44;;-1:-1:-1;;;12804:44:0;;12842:4;12804:44;;;3535:51:1;-1:-1:-1;;;;;12804:29:0;;;;;3508:18:1;;12804:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12795:53;;12765:95;12877:48;;-1:-1:-1;;;12877:48:0;;12906:10;12877:48;;;9328:51:1;9395:18;;;9388:34;;;-1:-1:-1;;;;;12877:28:0;;;;;9301:18:1;;12877:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14686:240::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14779:20:0;::::1;14771:59;;;::::0;-1:-1:-1;;;14771:59:0;;9885:2:1;14771:59:0::1;::::0;::::1;9867:21:1::0;9924:2;9904:18;;;9897:30;9963:28;9943:18;;;9936:56;10009:18;;14771:59:0::1;9683:350:1::0;14771:59:0::1;-1:-1:-1::0;;;;;14841:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;:32;;-1:-1:-1;;14841:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14889:29;;14841:32;;:23;14889:29:::1;::::0;::::1;14686:240:::0;;:::o;8047:232::-;8127:4;-1:-1:-1;;;;;8152:23:0;;8144:65;;;;-1:-1:-1;;;8144:65:0;;8045:2:1;8144:65:0;;;8027:21:1;8084:2;8064:18;;;8057:30;8123:31;8103:18;;;8096:59;8172:18;;8144:65:0;7843:353:1;8144:65:0;8227:44;8241:10;8253:9;8264:6;8227:13;:44::i;9215:210::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;9309:1:::1;9293:12;:17;;9285:26;;;::::0;::::1;;9371:4;9354:12:::0;4050:13:::1;3991:1;4050:2;:13;:::i;:::-;4038:25;::::0;:9:::1;:25;:::i;:::-;9339:27;;;;:::i;:::-;9338:37;;;;:::i;:::-;9323:12;:52:::0;;;9391:26:::1;::::0;::::1;::::0;;;::::1;9215:210:::0;:::o;14409:269::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14495:20:0;::::1;14487:59;;;::::0;-1:-1:-1;;;14487:59:0;;9885:2:1;14487:59:0::1;::::0;::::1;9867:21:1::0;9924:2;9904:18;;;9897:30;9963:28;9943:18;;;9936:56;10009:18;;14487:59:0::1;9683:350:1::0;14487:59:0::1;-1:-1:-1::0;;;;;14557:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;14557:28:0;;::::1;::::0;::::1;::::0;;;14596:15:::1;:23:::0;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;14644:26;14557:28;;:19;14644:26:::1;::::0;::::1;14409:269:::0;;:::o;12943:225::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;13005:11:::1;::::0;-1:-1:-1;;;13005:11:0;::::1;;;13004:12;12996:48;;;::::0;-1:-1:-1;;;12996:48:0;;10240:2:1;12996:48:0::1;::::0;::::1;10222:21:1::0;10279:2;10259:18;;;10252:30;10318:26;10298:18;;;10291:54;10362:18;;12996:48:0::1;10038:348:1::0;12996:48:0::1;13055:11;:18:::0;;-1:-1:-1;;;;13055:18:0::1;-1:-1:-1::0;;;13055:18:0;;::::1;::::0;;;;13095:12:::1;13084:8;:23:::0;;;13123:37:::1;::::0;13095:12;;13138:11;;;::::1;13055:18;13138:11;13123:37;;::::0;::::1;::::0;13055:18;;13123:37:::1;12943:225::o:0;1955:244::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2044:22:0;::::1;2036:73;;;::::0;-1:-1:-1;;;2036:73:0;;10593:2:1;2036:73:0::1;::::0;::::1;10575:21:1::0;10632:2;10612:18;;;10605:30;10671:34;10651:18;;;10644:62;-1:-1:-1;;;10722:18:1;;;10715:36;10768:19;;2036:73:0::1;10391:402:1::0;2036:73:0::1;2146:6;::::0;;2125:38:::1;::::0;-1:-1:-1;;;;;2125:38:0;;::::1;::::0;2146:6;::::1;::::0;2125:38:::1;::::0;::::1;2174:6;:17:::0;;-1:-1:-1;;;;;;2174:17:0::1;-1:-1:-1::0;;;;;2174:17:0;;;::::1;::::0;;;::::1;::::0;;1955:244::o;12315:199::-;1710:6;;-1:-1:-1;;;;;1710:6:0;1238:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;4050:13:::1;3991:1;4050:2;:13;:::i;:::-;4038:25;::::0;:9:::1;:25;:::i;:::-;12373:16;:31:::0;4050:13:::1;3991:1;4050:2;:13;:::i;:::-;4038:25;::::0;:9:::1;:25;:::i;:::-;12415:12;:27:::0;;;12475:16:::1;::::0;12458:48:::1;::::0;::::1;::::0;;;::::1;12315:199::o:0;9442:1510::-;9556:6;;9534:4;;9556:6;;9553:63;;;9572:41;9587:6;9595:9;9606:6;9572:14;:41::i;:::-;9565:48;;;;9553:63;1621:7;1648:6;-1:-1:-1;;;;;9631:17:0;;;1648:6;;9631:17;9628:101;;9672:11;;-1:-1:-1;;;9672:11:0;;;;9664:43;;;;-1:-1:-1;;;9664:43:0;;11000:2:1;9664:43:0;;;10982:21:1;11039:2;11019:18;;;11012:30;-1:-1:-1;;;11058:18:1;;;11051:50;11118:18;;9664:43:0;10798:344:1;9664:43:0;9749:28;9762:6;9770;9749:12;:28::i;:::-;-1:-1:-1;;;;;9822:17:0;;9798:21;9822:17;;;:9;:17;;;;;;9858:23;;;;9850:74;;;;-1:-1:-1;;;9850:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9963:19:0;;9937:22;9963:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9986:22:0;;;;;;:11;:22;;;;;;;;9963:45;9962:93;;10021:34;10029:6;10037;10045:9;10021:7;:34::i;:::-;9962:93;;;10012:6;9962:93;9937:118;;10082:7;1621;1648:6;-1:-1:-1;;;;;1648:6:0;;1583:79;10082:7;-1:-1:-1;;;;;10072:17:0;:6;-1:-1:-1;;;;;10072:17:0;;;:169;;;;-1:-1:-1;;;;;;10094:26:0;;10115:4;10094:26;;;;:57;;-1:-1:-1;;;;;;10125:26:0;;3837:42;10125:26;;10094:57;:78;;;;;10168:4;-1:-1:-1;;;;;10155:17:0;:9;-1:-1:-1;;;;;10155:17:0;;;10094:78;:115;;;;-1:-1:-1;10189:20:0;;-1:-1:-1;;;;;10176:33:0;;;10189:20;;10176:33;;10094:115;:146;;;;-1:-1:-1;;;;;;10214:26:0;;;;;;:15;:26;;;;;;;;10213:27;10094:146;10068:370;;;-1:-1:-1;;;;;7453:18:0;;10257;7453;;;:9;:18;;;;;;10354:16;;10322:27;10335:14;7453:18;10322:27;:::i;:::-;10321:49;;10313:123;;;;-1:-1:-1;;;10313:123:0;;11756:2:1;10313:123:0;;;11738:21:1;11795:2;11775:18;;;11768:30;11834:34;11814:18;;;11807:62;11905:32;11885:18;;;11878:60;11955:19;;10313:123:0;11554:426:1;10313:123:0;10242:196;10068:370;10479:12;10467:8;;:24;;:82;;;;-1:-1:-1;10536:13:0;;10526:4;10508:24;;;;:9;:24;;;;;;:41;;10467:82;:110;;;;-1:-1:-1;10566:11:0;;-1:-1:-1;;;10566:11:0;;;;10467:110;:134;;;;-1:-1:-1;10595:6:0;;;;10594:7;10467:134;:168;;;;;10631:4;-1:-1:-1;;;;;10618:17:0;:9;-1:-1:-1;;;;;10618:17:0;;10467:168;10450:272;;;10662:10;:8;:10::i;:::-;10698:12;10687:8;:23;10450:272;-1:-1:-1;;;;;10759:17:0;;;;;;;:9;:17;;;;;;10779:22;;;10759:42;;10823:20;;;;;;;;:38;;10847:14;;10759:17;10823:38;;10847:14;;10823:38;:::i;:::-;;;;;;;;10896:9;-1:-1:-1;;;;;10879:43:0;10888:6;-1:-1:-1;;;;;10879:43:0;;10907:14;10879:43;;;;160:25:1;;148:2;133:18;;14:177;10879:43:0;;;;;;;;-1:-1:-1;10940:4:0;;9442:1510;-1:-1:-1;;;;;9442:1510:0:o;10964:447::-;-1:-1:-1;;;;;11098:17:0;;11057:4;11098:17;;;:9;:17;;;;;;11134:23;;;;11126:74;;;;-1:-1:-1;;;11126:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11236:17:0;;;;;;;:9;:17;;;;;;11256:22;;;11236:42;;11300:20;;;;;;;;:30;;11272:6;;11236:17;11300:30;;11272:6;;11300:30;:::i;:::-;;;;;;;;11363:9;-1:-1:-1;;;;;11346:35:0;11355:6;-1:-1:-1;;;;;11346:35:0;;11374:6;11346:35;;;;160:25:1;;148:2;133:18;;14:177;11346:35:0;;;;;;;;-1:-1:-1;11399:4:0;;10964:447;-1:-1:-1;;;;10964:447:0:o;11419:166::-;11516:12;;11506:6;:22;;:49;;;-1:-1:-1;;;;;;11532:23:0;;;;;;:15;:23;;;;;;;;11506:49;11498:79;;;;-1:-1:-1;;;11498:79:0;;12187:2:1;11498:79:0;;;12169:21:1;12226:2;12206:18;;;12199:30;-1:-1:-1;;;12245:18:1;;;12238:47;12302:18;;11498:79:0;11985:341:1;11498:79:0;11419:166;;:::o;11715:592::-;11801:7;;-1:-1:-1;;;;;11871:4:0;11858:17;;;;;;11855:253;;11930:3;11914:12;;11905:6;:21;;;;:::i;:::-;11904:29;;;;:::i;:::-;11892:41;;11855:253;;;11964:4;-1:-1:-1;;;;;11954:14:0;:6;-1:-1:-1;;;;;11954:14:0;;11951:157;;12022:3;12007:11;;11998:6;:20;;;;:::i;11951:157::-;12093:3;12069:20;4781:1;12069:6;:20;:::i;:::-;12068:28;;;;:::i;:::-;12056:40;;11951:157;12138:4;12120:24;;;;:9;:24;;;;;:37;;12148:9;;12120:24;:37;;12148:9;;12120:37;:::i;:::-;;;;-1:-1:-1;;12173:42:0;;160:25:1;;;12198:4:0;;-1:-1:-1;;;;;12173:42:0;;;;;148:2:1;133:18;12173:42:0;;;;;;;12226:20;12249:18;12258:9;12249:6;:18;:::i;:::-;12226:41;11715:592;-1:-1:-1;;;;;;11715:592:0:o;13176:1225::-;5204:6;:13;;-1:-1:-1;;5204:13:0;5213:4;5204:13;;;13258:12:::1;::::0;13244:11:::1;::::0;5204:6;;13244:26:::1;::::0;::::1;:::i;:::-;13225:45;;13281:15;13312:11;;13299:10;;:24;;;;:::i;:::-;13436:13;::::0;13486:16:::1;::::0;;13500:1:::1;13486:16:::0;;;;;::::1;::::0;;13281:42;;-1:-1:-1;13334:21:0::1;::::0;;;13436:13;13334:21;;13486:16;13500:1;13486:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13486:16:0::1;13462:40;;13531:4;13513;13518:1;13513:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13513:23:0::1;;;-1:-1:-1::0;;;;;13513:23:0::1;;;::::0;::::1;13557:4;13547;13552:1;13547:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13547:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13574:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13574:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13646:12;;13574:6:::1;::::0;13689:4;;13716::::1;::::0;13736:15:::1;::::0;13574:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13797:21:0::1;::::0;-1:-1:-1;;;13775:19:0::1;13834:13:::0;;;13831:145:::1;;13880:1;13864:17;;13831:145;;;13956:8:::0;13931:21:::1;13945:7:::0;13931:11;:21:::1;:::i;:::-;13930:34;;;;:::i;:::-;13914:50;;13831:145;14009:27;14023:13:::0;14009:11;:27:::1;:::i;:::-;14078:15;::::0;14070:55:::1;::::0;13988:48;;-1:-1:-1;14050:15:0::1;::::0;-1:-1:-1;;;;;14078:15:0;;::::1;::::0;14107:13;;14050:15;14070:55;14050:15;14070:55;14107:13;14078:15;14070:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14049:76;;;14144:10;14136:65;;;::::0;-1:-1:-1;;;14136:65:0;;13971:2:1;14136:65:0::1;::::0;::::1;13953:21:1::0;14010:2;13990:18;;;13983:30;14049:34;14029:18;;;14022:62;-1:-1:-1;;;14100:18:1;;;14093:40;14150:19;;14136:65:0::1;13769:406:1::0;14136:65:0::1;14252:20;::::0;14244:65:::1;::::0;14223:16:::1;::::0;-1:-1:-1;;;;;14252:20:0::1;::::0;14286:18;;14223:16;14244:65;14223:16;14244:65;14286:18;14252:20;14244:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14222:87;;;14328:11;14320:71;;;::::0;-1:-1:-1;;;14320:71:0;;14382:2:1;14320:71:0::1;::::0;::::1;14364:21:1::0;14421:2;14401:18;;;14394:30;14460:34;14440:18;;;14433:62;-1:-1:-1;;;14511:18:1;;;14504:45;14566:19;;14320:71:0::1;14180:411:1::0;14320:71:0::1;-1:-1:-1::0;;5222:6:0;:14;;-1:-1:-1;;5222:14:0;;;-1:-1:-1;;;;;;;13176:1225:0:o;196:346:1:-;264:6;272;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;-1:-1:-1;;386:23:1;;;506:2;491:18;;;478:32;;-1:-1:-1;196:346:1:o;547:118::-;633:5;626:13;619:21;612:5;609:32;599:60;;655:1;652;645:12;599:60;547:118;:::o;670:361::-;735:6;743;796:2;784:9;775:7;771:23;767:32;764:52;;;812:1;809;802:12;764:52;851:9;838:23;870:28;892:5;870:28;:::i;:::-;917:5;995:2;980:18;;;;967:32;;-1:-1:-1;;;670:361:1:o;1036:173::-;1104:20;;-1:-1:-1;;;;;1153:31:1;;1143:42;;1133:70;;1199:1;1196;1189:12;1133:70;1036:173;;;:::o;1214:186::-;1273:6;1326:2;1314:9;1305:7;1301:23;1297:32;1294:52;;;1342:1;1339;1332:12;1294:52;1365:29;1384:9;1365:29;:::i;1597:418::-;1746:2;1735:9;1728:21;1709:4;1778:6;1772:13;1821:6;1816:2;1805:9;1801:18;1794:34;1880:6;1875:2;1867:6;1863:15;1858:2;1847:9;1843:18;1837:50;1936:1;1931:2;1922:6;1911:9;1907:22;1903:31;1896:42;2006:2;1999;1995:7;1990:2;1982:6;1978:15;1974:29;1963:9;1959:45;1955:54;1947:62;;;1597:418;;;;:::o;2020:300::-;2088:6;2096;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2188:29;2207:9;2188:29;:::i;2325:260::-;2393:6;2401;2454:2;2442:9;2433:7;2429:23;2425:32;2422:52;;;2470:1;2467;2460:12;2422:52;2493:29;2512:9;2493:29;:::i;:::-;2483:39;;2541:38;2575:2;2564:9;2560:18;2541:38;:::i;:::-;2531:48;;2325:260;;;;;:::o;2590:374::-;2667:6;2675;2683;2736:2;2724:9;2715:7;2711:23;2707:32;2704:52;;;2752:1;2749;2742:12;2704:52;2775:29;2794:9;2775:29;:::i;:::-;2765:39;;2823:38;2857:2;2846:9;2842:18;2823:38;:::i;:::-;2590:374;;2813:48;;-1:-1:-1;;;2930:2:1;2915:18;;;;2902:32;;2590:374::o;3158:226::-;3217:6;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;-1:-1:-1;3331:23:1;;3158:226;-1:-1:-1;3158:226:1:o;3597:315::-;3662:6;3670;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3762:29;3781:9;3762:29;:::i;:::-;3752:39;;3841:2;3830:9;3826:18;3813:32;3854:28;3876:5;3854:28;:::i;:::-;3901:5;3891:15;;;3597:315;;;;;:::o;4143:356::-;4345:2;4327:21;;;4364:18;;;4357:30;4423:34;4418:2;4403:18;;4396:62;4490:2;4475:18;;4143:356::o;4504:127::-;4565:10;4560:3;4556:20;4553:1;4546:31;4596:4;4593:1;4586:15;4620:4;4617:1;4610:15;4636:125;4701:9;;;4722:10;;;4719:36;;;4735:18;;:::i;5123:375::-;5211:1;5229:5;5243:249;5264:1;5254:8;5251:15;5243:249;;;5314:4;5309:3;5305:14;5299:4;5296:24;5293:50;;;5323:18;;:::i;:::-;5373:1;5363:8;5359:16;5356:49;;;5387:16;;;;5356:49;5470:1;5466:16;;;;;5426:15;;5243:249;;;5123:375;;;;;;:::o;5503:902::-;5552:5;5582:8;5572:80;;-1:-1:-1;5623:1:1;5637:5;;5572:80;5671:4;5661:76;;-1:-1:-1;5708:1:1;5722:5;;5661:76;5753:4;5771:1;5766:59;;;;5839:1;5834:174;;;;5746:262;;5766:59;5796:1;5787:10;;5810:5;;;5834:174;5871:3;5861:8;5858:17;5855:43;;;5878:18;;:::i;:::-;-1:-1:-1;;5934:1:1;5920:16;;5993:5;;5746:262;;6092:2;6082:8;6079:16;6073:3;6067:4;6064:13;6060:36;6054:2;6044:8;6041:16;6036:2;6030:4;6027:12;6023:35;6020:77;6017:203;;;-1:-1:-1;6129:19:1;;;6205:5;;6017:203;6252:42;-1:-1:-1;;6277:8:1;6271:4;6252:42;:::i;:::-;6330:6;6326:1;6322:6;6318:19;6309:7;6306:32;6303:58;;;6341:18;;:::i;:::-;6379:20;;5503:902;-1:-1:-1;;;5503:902:1:o;6410:140::-;6468:5;6497:47;6538:4;6528:8;6524:19;6518:4;6497:47;:::i;6555:168::-;6628:9;;;6659;;6676:15;;;6670:22;;6656:37;6646:71;;6697:18;;:::i;8610:128::-;8677:9;;;8698:11;;;8695:37;;;8712:18;;:::i;8743:217::-;8783:1;8809;8799:132;;8853:10;8848:3;8844:20;8841:1;8834:31;8888:4;8885:1;8878:15;8916:4;8913:1;8906:15;8799:132;-1:-1:-1;8945:9:1;;8743:217::o;8965:184::-;9035:6;9088:2;9076:9;9067:7;9063:23;9059:32;9056:52;;;9104:1;9101;9094:12;9056:52;-1:-1:-1;9127:16:1;;8965:184;-1:-1:-1;8965:184:1:o;9433:245::-;9500:6;9553:2;9541:9;9532:7;9528:23;9524:32;9521:52;;;9569:1;9566;9559:12;9521:52;9601:9;9595:16;9620:28;9642:5;9620:28;:::i;11147:402::-;11349:2;11331:21;;;11388:2;11368:18;;;11361:30;11427:34;11422:2;11407:18;;11400:62;-1:-1:-1;;;11493:2:1;11478:18;;11471:36;11539:3;11524:19;;11147:402::o;12463:127::-;12524:10;12519:3;12515:20;12512:1;12505:31;12555:4;12552:1;12545:15;12579:4;12576:1;12569:15;12595:959;12857:4;12905:3;12894:9;12890:19;12936:6;12925:9;12918:25;12979:6;12974:2;12963:9;12959:18;12952:34;13022:3;13017:2;13006:9;13002:18;12995:31;13046:6;13081;13075:13;13112:6;13104;13097:22;13150:3;13139:9;13135:19;13128:26;;13189:2;13181:6;13177:15;13163:29;;13210:1;13220:195;13234:6;13231:1;13228:13;13220:195;;;13299:13;;-1:-1:-1;;;;;13295:39:1;13283:52;;13364:2;13390:15;;;;13355:12;;;;13331:1;13249:9;13220:195;;;-1:-1:-1;;;;;;;13471:32:1;;;;13466:2;13451:18;;13444:60;-1:-1:-1;;13535:3:1;13520:19;13513:35;13432:3;12595:959;-1:-1:-1;;;12595:959:1:o

Swarm Source

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