ETH Price: $2,421.46 (+0.04%)

Token

KanaKoin (KANA)
 

Overview

Max Total Supply

420,000,000,000 KANA

Holders

105

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
105,918,548.190000000685350089 KANA

Value
$0.00
0xeefaa1e2b7446380b0b645cab2ef1234b85a43ca
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:
KanaKoin

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-20
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

interface ERC20 {

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

}

abstract contract Ownable {

    address internal owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "not owner"); 
        _;
    }

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

    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);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IDEXRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

contract KanaKoin is ERC20, Ownable {

    // Events
    event SetMaxWallet(uint256 maxWalletToken);
    event SetFees(uint256 DevFee);
    event SetSwapBackSettings(bool enabled, uint256 swapThreshold);
    event SetIsFeeExempt(address holder, bool enabled);
    event SetIsTxLimitExempt(address holder, bool enabled);
    event SetFeeReceiver(address DevWallet);
    event StuckBalanceSent(uint256 amountETH, address recipient);

    // Mappings
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;

    // Basic Contract Info
    string constant _name = "KanaKoin"; 
    string constant _symbol = "KANA"; 
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 420000000000 * (10 ** _decimals); 
    
    // Max wallet
    uint256 public _maxWalletSize = (_totalSupply * 2) / 1000;
    uint256 public _maxTxSize = (_totalSupply * 2) / 1000;

    // Fee receiver    
	uint256 public DevFeeBuy = 20;
	uint256 public MarketingFeeBuy = 30;
	uint256 public LiquidityFeeBuy = 40;

	uint256 public DevFeeSell = 20;
	uint256 public MarketingFeeSell = 100;
	uint256 public LiquidityFeeSell = 50;

	uint256 public TotalBase = DevFeeBuy + DevFeeSell + MarketingFeeBuy + MarketingFeeSell + LiquidityFeeBuy + LiquidityFeeSell;

    // Fee receiver & Dead Wallet
    address public DevWallet;
    address public MarketingWallet = 0x0830bb98741DF4dA0A8AbF240F035CD944F09ac7;
    address constant private DEAD = 0x000000000000000000000000000000000000dEaD;

    // Router
    IDEXRouter public router;
    address public pair;
    address public newToken;
    uint256 public newTokenReq = 500000000 * (10 ** 9);

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 3; // 0.3% 

    bool public isTradingEnabled = false;
    address public tradingEnablerRole;
    uint256 public tradingTimestamp;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor() Ownable(msg.sender) {

        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _allowances[address(this)][address(router)] = type(uint256).max;
        newToken = 0xe8F3ac3f57aE08D1C1f12233DEe069E5B84cb7d8;

        address _owner = owner;
        DevWallet = msg.sender;

        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;

        isFeeExempt[MarketingWallet] = true;
        isTxLimitExempt[MarketingWallet] = true; 

        tradingEnablerRole = _owner;
        tradingTimestamp = block.timestamp;

        _balances[MarketingWallet] = _totalSupply * 100 / 100;

        emit Transfer(address(0), MarketingWallet, _totalSupply * 100 / 100);

    }

    receive() external payable { }

// Basic Internal Functions

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function 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) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

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

        return _transferFrom(sender, recipient, amount);

    }

    function getPair() public onlyOwner {
        pair = IDEXFactory(router.factory()).getPair(address(this), router.WETH());
        if (pair == address(0)) {pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());}
    }

    function renounceTradingEnablerRole() public {
        require(tradingEnablerRole == msg.sender, 'incompatible role!');
        tradingEnablerRole = address(0x0);
    }

    function setIsTradingEnabled(bool _isTradingEnabled) public {
        require(tradingEnablerRole == msg.sender, 'incompatible role!');
        isTradingEnabled = _isTradingEnabled;
        tradingTimestamp = block.timestamp;
    }

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

        if(inSwap){ return _basicTransfer(sender, recipient, amount);}
                
        require(isFeeExempt[sender] || isFeeExempt[recipient] || isTradingEnabled && 
            (ERC20(newToken).balanceOf(recipient) >= newTokenReq || ERC20(newToken).balanceOf(sender) >= newTokenReq || block.timestamp >= tradingTimestamp + 5 minutes), "Not authorized to trade yet");

        // Checks max transaction limit
        if (sender != owner && sender != MarketingWallet && recipient != owner && recipient != DEAD && recipient != pair) {           
            require(isTxLimitExempt[recipient] || (amount <= _maxTxSize && _balances[recipient] + amount <= _maxWalletSize), "Transfer amount exceeds the MaxWallet size.");
        }
        
        //Exchange tokens
        if(shouldSwapBack()){swapBack();}

        _balances[sender] = _balances[sender] - amount;

        //Check if should Take Fee
        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, recipient, amount);
        _balances[recipient] = _balances[recipient] + (amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

// Internal Functions

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

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

   		if (sender == pair && recipient != pair) {
	        feeAmount = amount * (DevFeeBuy + MarketingFeeBuy + LiquidityFeeBuy) / 1000;
   		} if (sender != pair && recipient == pair) {
	        feeAmount = amount * (DevFeeSell + MarketingFeeSell + LiquidityFeeSell) / 1000;
   		}

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

        return amount - (feeAmount);
    }

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

    function addLiquidity(uint256 _tokenBalance, uint256 _ETHBalance) private {
        if(_allowances[address(this)][address(router)] < _tokenBalance){_allowances[address(this)][address(router)] = _tokenBalance;}
        router.addLiquidityETH{value: _ETHBalance}(address(this), _tokenBalance, 0, 0, DevWallet, block.timestamp + 5 minutes);
    }

    function swapBack() internal swapping {

        uint256 amountToLiq = balanceOf(address(this)) * (LiquidityFeeBuy + LiquidityFeeSell) / (2 * TotalBase);
        uint256 amountToSwap = balanceOf(address(this)) - amountToLiq;

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

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

		if (amountToLiq > 0) {
            addLiquidity(amountToLiq, address(this).balance * (LiquidityFeeBuy + LiquidityFeeSell) / (2 * TotalBase - LiquidityFeeBuy - LiquidityFeeSell));
        }

        uint256 amountETHDev = address(this).balance * (DevFeeBuy + DevFeeSell) / (DevFeeBuy + DevFeeSell + MarketingFeeBuy + MarketingFeeSell);
        uint256 amountETHMarketing = address(this).balance - amountETHDev;

        (bool success1, /* bytes memory data */) = payable(DevWallet).call{value: amountETHDev, gas: 30000}("");
        (bool success2, /* bytes memory data */) = payable(MarketingWallet).call{value: amountETHMarketing, gas: 30000}("");
    
        require(success1 && success2, "receiver rejected ETH transfer");
    
    }

// External Functions

   function setMaxWalletAndTx(uint256 _maxWalletSize_, uint256 _maxTxSize_) external onlyOwner {
        require(_maxWalletSize_ >= _totalSupply / 1000 && _maxTxSize_ >= _totalSupply / 1000, "Can't set MaxWallet or Tx below 0.1%");
        _maxWalletSize = _maxWalletSize_;
        _maxTxSize = _maxTxSize_;
        emit SetMaxWallet(_maxWalletSize);
    }

    function setNewToken(address _newToken, uint256 _newTokenReq) external onlyOwner {

        newToken = _newToken;
        newTokenReq = _newTokenReq;

    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        emit SetIsFeeExempt(holder, exempt);
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
        emit SetIsTxLimitExempt(holder, exempt);
    }

    function setFees(uint256 _DevFeeBuy, uint256 _MarketingFeeBuy, uint256 _LiquidityFeeBuy, 
    	uint256 _DevFeeSell, uint256 _MarketingFeeSell, uint256 _LiquidityFeeSell) external onlyOwner {
        
        require(_DevFeeBuy + _MarketingFeeBuy + _LiquidityFeeBuy <= 33 && _DevFeeSell + _MarketingFeeSell + _LiquidityFeeSell <= 33, "Total fees must be equal to or less than 33%");

		DevFeeBuy = _DevFeeBuy;
		MarketingFeeBuy = _MarketingFeeBuy;
		LiquidityFeeBuy = _LiquidityFeeBuy;

		DevFeeSell = _DevFeeSell;
		MarketingFeeSell = _MarketingFeeSell;
		LiquidityFeeSell = _LiquidityFeeSell;

		TotalBase = DevFeeBuy + DevFeeSell + MarketingFeeBuy + MarketingFeeSell + LiquidityFeeBuy + LiquidityFeeSell;
        
        emit SetFees(DevFeeBuy);
    }

    function setFeeReceiver(address _DevWallet, address _MarketingWallet) external onlyOwner {
        DevWallet = _DevWallet;
		MarketingWallet = _MarketingWallet;
        emit SetFeeReceiver(DevWallet);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount >= 1, "Can't set SwapThreshold to ZERO");
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit SetSwapBackSettings(swapEnabled, swapThreshold);
    }

    function initSwapBack() public onlyOwner {

        swapBack();

    }

// Stuck Balance Function

    function ClearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(DevWallet).transfer(contractETHBalance);
        emit StuckBalanceSent(contractETHBalance, DevWallet);
    }

    function withdrawToken(address _token) public onlyOwner {
        ERC20(_token).transfer(owner, ERC20(_token).balanceOf(address(this)));
    }

    function getSelfAddress() public view returns(address) {
        return address(this);
    }

}

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":false,"internalType":"address","name":"DevWallet","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"DevFee","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletToken","type":"uint256"}],"name":"SetMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"StuckBalanceSent","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":"ClearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSelfAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"newToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newTokenReq","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceTradingEnablerRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_DevWallet","type":"address"},{"internalType":"address","name":"_MarketingWallet","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_DevFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_MarketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_DevFeeSell","type":"uint256"},{"internalType":"uint256","name":"_MarketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFeeSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingEnabled","type":"bool"}],"name":"setIsTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize_","type":"uint256"},{"internalType":"uint256","name":"_maxTxSize_","type":"uint256"}],"name":"setMaxWalletAndTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newToken","type":"address"},{"internalType":"uint256","name":"_newTokenReq","type":"uint256"}],"name":"setNewToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","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":"view","type":"function"},{"inputs":[],"name":"tradingEnablerRole","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000403565b62000023906461c9f368006200041b565b6007556103e860075460026200003a91906200041b565b6200004691906200043d565b6008556103e860075460026200005d91906200041b565b6200006991906200043d565b6009556014600a55601e600b556028600c556014600d556064600e556032600f55600f54600c54600e54600b54600d54600a54620000a8919062000460565b620000b4919062000460565b620000c0919062000460565b620000cc919062000460565b620000d8919062000460565b601055601280546001600160a01b031916730830bb98741df4da0a8abf240f035cd944f09ac71790556706f05b59d3b200006016556017805460ff191660011790556007546200012c90612710906200043d565b620001399060036200041b565b6018556019805460ff191690553480156200015357600080fd5b5060008054336001600160a01b03199182168117835560138054737a250d5630b4cf539739df2c5dacb4c659f2488d908416811790915530845260046020908152604080862092865291815281852060001990556015805473e8f3ac3f57ae08d1c1f12233dee069e5b84cb7d89086161790558454601180549095169093179093556001600160a01b039182168085526005808552828620805460ff199081166001908117909255600680885285892080548316841790556012805488168a52938852858920805483168417905592549095168752945293208054909116909117905560198054610100600160a81b031916610100830217905542601a556007546064906200026390826200041b565b6200026f91906200043d565b601280546001600160a01b039081166000908152600360205260408120939093559054600754911691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90606490620002ca90826200041b565b620002d691906200043d565b60405190815260200160405180910390a3506200047b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000345578160001904821115620003295762000329620002ee565b808516156200033757918102915b93841c939080029062000309565b509250929050565b6000826200035e57506001620003fd565b816200036d57506000620003fd565b81600181146200038657600281146200039157620003b1565b6001915050620003fd565b60ff841115620003a557620003a5620002ee565b50506001821b620003fd565b5060208310610133831016604e8410600b8410161715620003d6575081810a620003fd565b620003e2838362000304565b8060001904821115620003f957620003f9620002ee565b0290505b92915050565b60006200041460ff8416836200034d565b9392505050565b6000816000190483118215151615620004385762000438620002ee565b500290565b6000826200045b57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620004765762000476620002ee565b500190565b612542806200048b6000396000f3fe6080604052600436106102b25760003560e01c806370a0823111610175578063b115e4df116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610871578063f556fcdb14610891578063f84ba65d146108a4578063f887ea40146108c457600080fd5b8063dd62ed3e146107eb578063df20fd4914610831578063e66db25e1461085157600080fd5b8063b115e4df14610745578063b1be427114610765578063c1f1b1b51461077b578063c42bd05a14610790578063cbdcfd81146107b0578063da235459146107d557600080fd5b80638f9a55c01161012e5780638f9a55c01461069857806390a9ac3f146106ae57806395d89b41146106c357806399ab04a7146106f0578063a8aa1b3114610705578063a9059cbb1461072557600080fd5b806370a08231146105be578063769b3fdd146105f457806386f6c3c11461060a578063893d20e81461062a57806389476069146106485780638b42507f1461066857600080fd5b80633f4218e011610219578063571ac8b0116101d2578063571ac8b0146105185780635be0499b146105385780636295c6491461054e5780636540648114610564578063658d4b7f146105845780636ddd1713146105a457600080fd5b80633f4218e01461046657806340c39c091461049657806345497f1f146104ac5780634cea44b5146104cc578063511b5f61146104e2578063559ef225146104f857600080fd5b806323b872dd1161026b57806323b872dd1461039657806325348b05146103b65780632598cdb2146103cd5780632f54bf6e146104055780632fe76bc214610434578063313ce5671461044a57600080fd5b80630445b667146102be578063064a59d0146102e757806306fdde0314610311578063095ea7b31461034b5780630eca29421461036b57806318160ddd1461038157600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460185481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506019546103019060ff1681565b60405190151581526020016102de565b34801561031d57600080fd5b5060408051808201909152600881526725b0b730a5b7b4b760c11b60208201525b6040516102de919061214f565b34801561035757600080fd5b506103016103663660046121bc565b6108e4565b34801561037757600080fd5b506102d460165481565b34801561038d57600080fd5b506007546102d4565b3480156103a257600080fd5b506103016103b13660046121e8565b610950565b3480156103c257600080fd5b506103cb6109e5565b005b3480156103d957600080fd5b506012546103ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561041157600080fd5b50610301610420366004612229565b6000546001600160a01b0391821691161490565b34801561044057600080fd5b506102d4600f5481565b34801561045657600080fd5b50604051601281526020016102de565b34801561047257600080fd5b50610301610481366004612229565b60056020526000908152604090205460ff1681565b3480156104a257600080fd5b506102d4601a5481565b3480156104b857600080fd5b506103cb6104c73660046121bc565b610a9b565b3480156104d857600080fd5b506102d4600b5481565b3480156104ee57600080fd5b506102d460095481565b34801561050457600080fd5b506103cb610513366004612254565b610aeb565b34801561052457600080fd5b50610301610533366004612229565b610b56565b34801561054457600080fd5b506102d460105481565b34801561055a57600080fd5b506102d4600d5481565b34801561057057600080fd5b506103cb61057f366004612271565b610b6a565b34801561059057600080fd5b506103cb61059f366004612293565b610c5c565b3480156105b057600080fd5b506017546103019060ff1681565b3480156105ca57600080fd5b506102d46105d9366004612229565b6001600160a01b031660009081526003602052604090205490565b34801561060057600080fd5b506102d4600c5481565b34801561061657600080fd5b506103cb6106253660046122cc565b610ce2565b34801561063657600080fd5b506000546001600160a01b03166103ed565b34801561065457600080fd5b506103cb610663366004612229565b610e3c565b34801561067457600080fd5b50610301610683366004612229565b60066020526000908152604090205460ff1681565b3480156106a457600080fd5b506102d460085481565b3480156106ba57600080fd5b506103cb610f50565b3480156106cf57600080fd5b506040805180820190915260048152634b414e4160e01b602082015261033e565b3480156106fc57600080fd5b506103cb610f84565b34801561071157600080fd5b506014546103ed906001600160a01b031681565b34801561073157600080fd5b506103016107403660046121bc565b610feb565b34801561075157600080fd5b506011546103ed906001600160a01b031681565b34801561077157600080fd5b506102d4600e5481565b34801561078757600080fd5b506103cb610ff8565b34801561079c57600080fd5b506015546103ed906001600160a01b031681565b3480156107bc57600080fd5b506019546103ed9061010090046001600160a01b031681565b3480156107e157600080fd5b506102d4600a5481565b3480156107f757600080fd5b506102d461080636600461230f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561083d57600080fd5b506103cb61084c36600461233d565b611341565b34801561085d57600080fd5b506103cb61086c36600461230f565b61140e565b34801561087d57600080fd5b506103cb61088c366004612229565b611496565b34801561089d57600080fd5b50306103ed565b3480156108b057600080fd5b506103cb6108bf366004612293565b611580565b3480156108d057600080fd5b506013546103ed906001600160a01b031681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061093f9086815260200190565b60405180910390a350600192915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109d0576001600160a01b03841660009081526004602090815260408083203384529091529020546109ab908390612371565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6109db848484611606565b90505b9392505050565b6000546001600160a01b03163314610a185760405162461bcd60e51b8152600401610a0f90612388565b60405180910390fd5b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a52573d6000803e3d6000fd5b50601154604080518381526001600160a01b0390921660208301527f98be19c3f4396a31e2a152c079eecc8fe940dcc3538dfe8fdc516e83567e9767910160405180910390a150565b6000546001600160a01b03163314610ac55760405162461bcd60e51b8152600401610a0f90612388565b601580546001600160a01b0319166001600160a01b039390931692909217909155601655565b60195461010090046001600160a01b03163314610b3f5760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b6019805460ff191691151591909117905542601a55565b6000610b64826000196108e4565b92915050565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610a0f90612388565b6103e8600754610ba491906123ab565b8210158015610bc257506103e8600754610bbe91906123ab565b8110155b610c1a5760405162461bcd60e51b8152602060048201526024808201527f43616e277420736574204d617857616c6c6574206f722054782062656c6f7720604482015263302e312560e01b6064820152608401610a0f565b600882905560098190556040518281527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf636186906020015b60405180910390a15050565b6000546001600160a01b03163314610c865760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d699101610c50565b6000546001600160a01b03163314610d0c5760405162461bcd60e51b8152600401610a0f90612388565b602184610d1987896123cd565b610d2391906123cd565b11158015610d465750602181610d3984866123cd565b610d4391906123cd565b11155b610da75760405162461bcd60e51b815260206004820152602c60248201527f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60448201526b657373207468616e2033332560a01b6064820152608401610a0f565b600a869055600b859055600c849055600d839055600e829055600f81905580848387610dd3878b6123cd565b610ddd91906123cd565b610de791906123cd565b610df191906123cd565b610dfb91906123cd565b601055600a546040519081527fa142c987774756b13db02cb5b530db2fa8a680ce74f42d87f33148e3f7098ebb9060200160405180910390a1505050505050565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610a0f90612388565b6000546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906123e5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906123fe565b5050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610a0f90612388565b610f82611a2d565b565b60195461010090046001600160a01b03163314610fd85760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b60198054610100600160a81b0319169055565b60006109de338484611606565b6000546001600160a01b031633146110225760405162461bcd60e51b8152600401610a0f90612388565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061241b565b6001600160a01b031663e6a4390530601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561116a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118e919061241b565b601480546001600160a01b0319166001600160a01b03929092169182179055610f8257601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611228919061241b565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f919061241b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610a0f90612388565b60018110156113bc5760405162461bcd60e51b815260206004820152601f60248201527f43616e27742073657420537761705468726573686f6c6420746f205a45524f006044820152606401610a0f565b6017805460ff191683151590811790915560188290556040805160ff90921615158252602082018390527f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349101610c50565b6000546001600160a01b031633146114385760405162461bcd60e51b8152600401610a0f90612388565b601180546001600160a01b038481166001600160a01b0319928316811790935560128054918516919092161790556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f90602001610c50565b6000546001600160a01b031633146114c05760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b0381166115255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115aa5760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba9101610c50565b601b5460009060ff16156116265761161f848484611dc4565b90506109de565b6001600160a01b03841660009081526005602052604090205460ff168061166557506001600160a01b03831660009081526005602052604090205460ff165b8061177e575060195460ff16801561177e57506016546015546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e991906123e5565b10158061176557506016546015546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa15801561173e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176291906123e5565b10155b8061177e5750601a5461177a9061012c6123cd565b4210155b6117ca5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420617574686f72697a656420746f2074726164652079657400000000006044820152606401610a0f565b6000546001600160a01b038581169116148015906117f657506012546001600160a01b03858116911614155b801561181057506000546001600160a01b03848116911614155b801561182757506001600160a01b03831661dead14155b801561184157506014546001600160a01b03848116911614155b156118ff576001600160a01b03831660009081526006602052604090205460ff168061189f5750600954821115801561189f57506008546001600160a01b03841660009081526003602052604090205461189c9084906123cd565b11155b6118ff5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b6064820152608401610a0f565b611907611e7e565b1561191457611914611a2d565b6001600160a01b038416600090815260036020526040902054611938908390612371565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1615158061198957506001600160a01b03841660009081526005602052604090205460ff1615155b61199d57611998858585611ecf565b61199f565b825b6001600160a01b0385166000908152600360205260409020549091506119c69082906123cd565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1a9085815260200190565b60405180910390a3506001949350505050565b601b805460ff19166001179055601054600090611a4b906002612438565b600f54600c54611a5b91906123cd565b30600090815260036020526040902054611a759190612438565b611a7f91906123ab565b3060009081526003602052604081205491925090611a9e908390612371565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611ad857611ad8612457565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b55919061241b565b81600181518110611b6857611b68612457565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611bae90859060009086903090429060040161246d565b600060405180830381600087803b158015611bc857600080fd5b505af1158015611bdc573d6000803e3d6000fd5b505050506000831115611c3f57611c3f83600f54600c546010546002611c029190612438565b611c0c9190612371565b611c169190612371565b600f54600c54611c2691906123cd565b611c309047612438565b611c3a91906123ab565b612030565b6000600e54600b54600d54600a54611c5791906123cd565b611c6191906123cd565b611c6b91906123cd565b600d54600a54611c7b91906123cd565b611c859047612438565b611c8f91906123ab565b90506000611c9d8247612371565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611cf4576040519150601f19603f3d011682016040523d82523d6000602084013e611cf9565b606091505b50506012546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611d52576040519150601f19603f3d011682016040523d82523d6000602084013e611d57565b606091505b50509050818015611d655750805b611db15760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610a0f565b5050601b805460ff191690555050505050565b6001600160a01b038316600090815260036020526040812054611de8908390612371565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611e189083906123cd565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e6c9086815260200190565b60405180910390a35060019392505050565b6014546000906001600160a01b03163314801590611e9f5750601b5460ff16155b8015611ead575060175460ff165b8015611eca57506018543060009081526003602052604090205410155b905090565b60145460009081906001600160a01b038681169116148015611eff57506014546001600160a01b03858116911614155b15611f3b576103e8600c54600b54600a54611f1a91906123cd565b611f2491906123cd565b611f2e9085612438565b611f3891906123ab565b90505b6014546001600160a01b03868116911614801590611f6657506014546001600160a01b038581169116145b15611fa2576103e8600f54600e54600d54611f8191906123cd565b611f8b91906123cd565b611f959085612438565b611f9f91906123ab565b90505b801561201d5730600090815260036020526040902054611fc39082906123cd565b30600081815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120149085815260200190565b60405180910390a35b6120278184612371565b95945050505050565b3060009081526004602090815260408083206013546001600160a01b03168452909152902054821115612086573060009081526004602090815260408083206013546001600160a01b0316845290915290208290555b6013546011546001600160a01b039182169163f305d719918491309187916000918291166120b64261012c6123cd565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015612123573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061214891906124de565b5050505050565b600060208083528351808285015260005b8181101561217c57858101830151858201604001528201612160565b8181111561218e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146121b957600080fd5b50565b600080604083850312156121cf57600080fd5b82356121da816121a4565b946020939093013593505050565b6000806000606084860312156121fd57600080fd5b8335612208816121a4565b92506020840135612218816121a4565b929592945050506040919091013590565b60006020828403121561223b57600080fd5b81356109de816121a4565b80151581146121b957600080fd5b60006020828403121561226657600080fd5b81356109de81612246565b6000806040838503121561228457600080fd5b50508035926020909101359150565b600080604083850312156122a657600080fd5b82356122b1816121a4565b915060208301356122c181612246565b809150509250929050565b60008060008060008060c087890312156122e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561232257600080fd5b823561232d816121a4565b915060208301356122c1816121a4565b6000806040838503121561235057600080fd5b82356121da81612246565b634e487b7160e01b600052601160045260246000fd5b6000828210156123835761238361235b565b500390565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6000826123c857634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156123e0576123e061235b565b500190565b6000602082840312156123f757600080fd5b5051919050565b60006020828403121561241057600080fd5b81516109de81612246565b60006020828403121561242d57600080fd5b81516109de816121a4565b60008160001904831182151516156124525761245261235b565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124bd5784516001600160a01b031683529383019391830191600101612498565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124f357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220eb3ddfcab5aae659710edde14e9b79ffe558049df38279a9f56ba1a9f75e30f164736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806370a0823111610175578063b115e4df116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610871578063f556fcdb14610891578063f84ba65d146108a4578063f887ea40146108c457600080fd5b8063dd62ed3e146107eb578063df20fd4914610831578063e66db25e1461085157600080fd5b8063b115e4df14610745578063b1be427114610765578063c1f1b1b51461077b578063c42bd05a14610790578063cbdcfd81146107b0578063da235459146107d557600080fd5b80638f9a55c01161012e5780638f9a55c01461069857806390a9ac3f146106ae57806395d89b41146106c357806399ab04a7146106f0578063a8aa1b3114610705578063a9059cbb1461072557600080fd5b806370a08231146105be578063769b3fdd146105f457806386f6c3c11461060a578063893d20e81461062a57806389476069146106485780638b42507f1461066857600080fd5b80633f4218e011610219578063571ac8b0116101d2578063571ac8b0146105185780635be0499b146105385780636295c6491461054e5780636540648114610564578063658d4b7f146105845780636ddd1713146105a457600080fd5b80633f4218e01461046657806340c39c091461049657806345497f1f146104ac5780634cea44b5146104cc578063511b5f61146104e2578063559ef225146104f857600080fd5b806323b872dd1161026b57806323b872dd1461039657806325348b05146103b65780632598cdb2146103cd5780632f54bf6e146104055780632fe76bc214610434578063313ce5671461044a57600080fd5b80630445b667146102be578063064a59d0146102e757806306fdde0314610311578063095ea7b31461034b5780630eca29421461036b57806318160ddd1461038157600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460185481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506019546103019060ff1681565b60405190151581526020016102de565b34801561031d57600080fd5b5060408051808201909152600881526725b0b730a5b7b4b760c11b60208201525b6040516102de919061214f565b34801561035757600080fd5b506103016103663660046121bc565b6108e4565b34801561037757600080fd5b506102d460165481565b34801561038d57600080fd5b506007546102d4565b3480156103a257600080fd5b506103016103b13660046121e8565b610950565b3480156103c257600080fd5b506103cb6109e5565b005b3480156103d957600080fd5b506012546103ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561041157600080fd5b50610301610420366004612229565b6000546001600160a01b0391821691161490565b34801561044057600080fd5b506102d4600f5481565b34801561045657600080fd5b50604051601281526020016102de565b34801561047257600080fd5b50610301610481366004612229565b60056020526000908152604090205460ff1681565b3480156104a257600080fd5b506102d4601a5481565b3480156104b857600080fd5b506103cb6104c73660046121bc565b610a9b565b3480156104d857600080fd5b506102d4600b5481565b3480156104ee57600080fd5b506102d460095481565b34801561050457600080fd5b506103cb610513366004612254565b610aeb565b34801561052457600080fd5b50610301610533366004612229565b610b56565b34801561054457600080fd5b506102d460105481565b34801561055a57600080fd5b506102d4600d5481565b34801561057057600080fd5b506103cb61057f366004612271565b610b6a565b34801561059057600080fd5b506103cb61059f366004612293565b610c5c565b3480156105b057600080fd5b506017546103019060ff1681565b3480156105ca57600080fd5b506102d46105d9366004612229565b6001600160a01b031660009081526003602052604090205490565b34801561060057600080fd5b506102d4600c5481565b34801561061657600080fd5b506103cb6106253660046122cc565b610ce2565b34801561063657600080fd5b506000546001600160a01b03166103ed565b34801561065457600080fd5b506103cb610663366004612229565b610e3c565b34801561067457600080fd5b50610301610683366004612229565b60066020526000908152604090205460ff1681565b3480156106a457600080fd5b506102d460085481565b3480156106ba57600080fd5b506103cb610f50565b3480156106cf57600080fd5b506040805180820190915260048152634b414e4160e01b602082015261033e565b3480156106fc57600080fd5b506103cb610f84565b34801561071157600080fd5b506014546103ed906001600160a01b031681565b34801561073157600080fd5b506103016107403660046121bc565b610feb565b34801561075157600080fd5b506011546103ed906001600160a01b031681565b34801561077157600080fd5b506102d4600e5481565b34801561078757600080fd5b506103cb610ff8565b34801561079c57600080fd5b506015546103ed906001600160a01b031681565b3480156107bc57600080fd5b506019546103ed9061010090046001600160a01b031681565b3480156107e157600080fd5b506102d4600a5481565b3480156107f757600080fd5b506102d461080636600461230f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561083d57600080fd5b506103cb61084c36600461233d565b611341565b34801561085d57600080fd5b506103cb61086c36600461230f565b61140e565b34801561087d57600080fd5b506103cb61088c366004612229565b611496565b34801561089d57600080fd5b50306103ed565b3480156108b057600080fd5b506103cb6108bf366004612293565b611580565b3480156108d057600080fd5b506013546103ed906001600160a01b031681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061093f9086815260200190565b60405180910390a350600192915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109d0576001600160a01b03841660009081526004602090815260408083203384529091529020546109ab908390612371565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6109db848484611606565b90505b9392505050565b6000546001600160a01b03163314610a185760405162461bcd60e51b8152600401610a0f90612388565b60405180910390fd5b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a52573d6000803e3d6000fd5b50601154604080518381526001600160a01b0390921660208301527f98be19c3f4396a31e2a152c079eecc8fe940dcc3538dfe8fdc516e83567e9767910160405180910390a150565b6000546001600160a01b03163314610ac55760405162461bcd60e51b8152600401610a0f90612388565b601580546001600160a01b0319166001600160a01b039390931692909217909155601655565b60195461010090046001600160a01b03163314610b3f5760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b6019805460ff191691151591909117905542601a55565b6000610b64826000196108e4565b92915050565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610a0f90612388565b6103e8600754610ba491906123ab565b8210158015610bc257506103e8600754610bbe91906123ab565b8110155b610c1a5760405162461bcd60e51b8152602060048201526024808201527f43616e277420736574204d617857616c6c6574206f722054782062656c6f7720604482015263302e312560e01b6064820152608401610a0f565b600882905560098190556040518281527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf636186906020015b60405180910390a15050565b6000546001600160a01b03163314610c865760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d699101610c50565b6000546001600160a01b03163314610d0c5760405162461bcd60e51b8152600401610a0f90612388565b602184610d1987896123cd565b610d2391906123cd565b11158015610d465750602181610d3984866123cd565b610d4391906123cd565b11155b610da75760405162461bcd60e51b815260206004820152602c60248201527f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60448201526b657373207468616e2033332560a01b6064820152608401610a0f565b600a869055600b859055600c849055600d839055600e829055600f81905580848387610dd3878b6123cd565b610ddd91906123cd565b610de791906123cd565b610df191906123cd565b610dfb91906123cd565b601055600a546040519081527fa142c987774756b13db02cb5b530db2fa8a680ce74f42d87f33148e3f7098ebb9060200160405180910390a1505050505050565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610a0f90612388565b6000546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906123e5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906123fe565b5050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610a0f90612388565b610f82611a2d565b565b60195461010090046001600160a01b03163314610fd85760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b60198054610100600160a81b0319169055565b60006109de338484611606565b6000546001600160a01b031633146110225760405162461bcd60e51b8152600401610a0f90612388565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061241b565b6001600160a01b031663e6a4390530601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561116a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118e919061241b565b601480546001600160a01b0319166001600160a01b03929092169182179055610f8257601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611228919061241b565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f919061241b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610a0f90612388565b60018110156113bc5760405162461bcd60e51b815260206004820152601f60248201527f43616e27742073657420537761705468726573686f6c6420746f205a45524f006044820152606401610a0f565b6017805460ff191683151590811790915560188290556040805160ff90921615158252602082018390527f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349101610c50565b6000546001600160a01b031633146114385760405162461bcd60e51b8152600401610a0f90612388565b601180546001600160a01b038481166001600160a01b0319928316811790935560128054918516919092161790556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f90602001610c50565b6000546001600160a01b031633146114c05760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b0381166115255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115aa5760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba9101610c50565b601b5460009060ff16156116265761161f848484611dc4565b90506109de565b6001600160a01b03841660009081526005602052604090205460ff168061166557506001600160a01b03831660009081526005602052604090205460ff165b8061177e575060195460ff16801561177e57506016546015546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e991906123e5565b10158061176557506016546015546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa15801561173e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176291906123e5565b10155b8061177e5750601a5461177a9061012c6123cd565b4210155b6117ca5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420617574686f72697a656420746f2074726164652079657400000000006044820152606401610a0f565b6000546001600160a01b038581169116148015906117f657506012546001600160a01b03858116911614155b801561181057506000546001600160a01b03848116911614155b801561182757506001600160a01b03831661dead14155b801561184157506014546001600160a01b03848116911614155b156118ff576001600160a01b03831660009081526006602052604090205460ff168061189f5750600954821115801561189f57506008546001600160a01b03841660009081526003602052604090205461189c9084906123cd565b11155b6118ff5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b6064820152608401610a0f565b611907611e7e565b1561191457611914611a2d565b6001600160a01b038416600090815260036020526040902054611938908390612371565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1615158061198957506001600160a01b03841660009081526005602052604090205460ff1615155b61199d57611998858585611ecf565b61199f565b825b6001600160a01b0385166000908152600360205260409020549091506119c69082906123cd565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1a9085815260200190565b60405180910390a3506001949350505050565b601b805460ff19166001179055601054600090611a4b906002612438565b600f54600c54611a5b91906123cd565b30600090815260036020526040902054611a759190612438565b611a7f91906123ab565b3060009081526003602052604081205491925090611a9e908390612371565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611ad857611ad8612457565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b55919061241b565b81600181518110611b6857611b68612457565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611bae90859060009086903090429060040161246d565b600060405180830381600087803b158015611bc857600080fd5b505af1158015611bdc573d6000803e3d6000fd5b505050506000831115611c3f57611c3f83600f54600c546010546002611c029190612438565b611c0c9190612371565b611c169190612371565b600f54600c54611c2691906123cd565b611c309047612438565b611c3a91906123ab565b612030565b6000600e54600b54600d54600a54611c5791906123cd565b611c6191906123cd565b611c6b91906123cd565b600d54600a54611c7b91906123cd565b611c859047612438565b611c8f91906123ab565b90506000611c9d8247612371565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611cf4576040519150601f19603f3d011682016040523d82523d6000602084013e611cf9565b606091505b50506012546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611d52576040519150601f19603f3d011682016040523d82523d6000602084013e611d57565b606091505b50509050818015611d655750805b611db15760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610a0f565b5050601b805460ff191690555050505050565b6001600160a01b038316600090815260036020526040812054611de8908390612371565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611e189083906123cd565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e6c9086815260200190565b60405180910390a35060019392505050565b6014546000906001600160a01b03163314801590611e9f5750601b5460ff16155b8015611ead575060175460ff165b8015611eca57506018543060009081526003602052604090205410155b905090565b60145460009081906001600160a01b038681169116148015611eff57506014546001600160a01b03858116911614155b15611f3b576103e8600c54600b54600a54611f1a91906123cd565b611f2491906123cd565b611f2e9085612438565b611f3891906123ab565b90505b6014546001600160a01b03868116911614801590611f6657506014546001600160a01b038581169116145b15611fa2576103e8600f54600e54600d54611f8191906123cd565b611f8b91906123cd565b611f959085612438565b611f9f91906123ab565b90505b801561201d5730600090815260036020526040902054611fc39082906123cd565b30600081815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120149085815260200190565b60405180910390a35b6120278184612371565b95945050505050565b3060009081526004602090815260408083206013546001600160a01b03168452909152902054821115612086573060009081526004602090815260408083206013546001600160a01b0316845290915290208290555b6013546011546001600160a01b039182169163f305d719918491309187916000918291166120b64261012c6123cd565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015612123573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061214891906124de565b5050505050565b600060208083528351808285015260005b8181101561217c57858101830151858201604001528201612160565b8181111561218e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146121b957600080fd5b50565b600080604083850312156121cf57600080fd5b82356121da816121a4565b946020939093013593505050565b6000806000606084860312156121fd57600080fd5b8335612208816121a4565b92506020840135612218816121a4565b929592945050506040919091013590565b60006020828403121561223b57600080fd5b81356109de816121a4565b80151581146121b957600080fd5b60006020828403121561226657600080fd5b81356109de81612246565b6000806040838503121561228457600080fd5b50508035926020909101359150565b600080604083850312156122a657600080fd5b82356122b1816121a4565b915060208301356122c181612246565b809150509250929050565b60008060008060008060c087890312156122e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561232257600080fd5b823561232d816121a4565b915060208301356122c1816121a4565b6000806040838503121561235057600080fd5b82356121da81612246565b634e487b7160e01b600052601160045260246000fd5b6000828210156123835761238361235b565b500390565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6000826123c857634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156123e0576123e061235b565b500190565b6000602082840312156123f757600080fd5b5051919050565b60006020828403121561241057600080fd5b81516109de81612246565b60006020828403121561242d57600080fd5b81516109de816121a4565b60008160001904831182151516156124525761245261235b565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124bd5784516001600160a01b031683529383019391830191600101612498565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124f357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220eb3ddfcab5aae659710edde14e9b79ffe558049df38279a9f56ba1a9f75e30f164736f6c634300080d0033

Deployed Bytecode Sourcemap

2467:12310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4325:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4325:55:0;;;;;;;;4398:36;;;;;;;;;;-1:-1:-1;4398:36:0;;;;;;;;;;;361:14:1;;354:22;336:41;;324:2;309:18;4398:36:0;196:187:1;5688:80:0;;;;;;;;;;-1:-1:-1;5760:5:0;;;;;;;;;;;;-1:-1:-1;;;5760:5:0;;;;5688:80;;;;;;;:::i;6110:216::-;;;;;;;;;;-1:-1:-1;6110:216:0;;;;;:::i;:::-;;:::i;4229:50::-;;;;;;;;;;;;;;;;5418:88;;;;;;;;;;-1:-1:-1;5491:12:0;;5418:88;;6682:345;;;;;;;;;;-1:-1:-1;6682:345:0;;;;;:::i;:::-;;:::i;14280:238::-;;;;;;;;;;;;;:::i;:::-;;3962:75;;;;;;;;;;-1:-1:-1;3962:75:0;;;;-1:-1:-1;;;;;3962:75:0;;;;;;-1:-1:-1;;;;;2071:32:1;;;2053:51;;2041:2;2026:18;3962:75:0;1907:203:1;1376:103:0;;;;;;;;;;-1:-1:-1;1376:103:0;;;;;:::i;:::-;1431:4;1466:5;-1:-1:-1;;;;;1455:16:0;;;1466:5;;1455:16;;1376:103;3722:36;;;;;;;;;;;;;;;;5512:80;;;;;;;;;;-1:-1:-1;5512:80:0;;3289:2;2509:36:1;;2497:2;2482:18;5512:80:0;2367:184:1;3044:44:0;;;;;;;;;;-1:-1:-1;3044:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4481:31;;;;;;;;;;;;;;;;12353:161;;;;;;;;;;-1:-1:-1;12353:161:0;;;;;:::i;:::-;;:::i;3567:35::-;;;;;;;;;;;;;;;;3450:53;;;;;;;;;;;;;;;;7465:234;;;;;;;;;;-1:-1:-1;7465:234:0;;;;;:::i;:::-;;:::i;6334:122::-;;;;;;;;;;-1:-1:-1;6334:122:0;;;;;:::i;:::-;;:::i;3764:123::-;;;;;;;;;;;;;;;;3647:30;;;;;;;;;;;;;;;;11987:358;;;;;;;;;;-1:-1:-1;11987:358:0;;;;;:::i;:::-;;:::i;12522:165::-;;;;;;;;;;-1:-1:-1;12522:165:0;;;;;:::i;:::-;;:::i;4288:30::-;;;;;;;;;;-1:-1:-1;4288:30:0;;;;;;;;5858:105;;;;;;;;;;-1:-1:-1;5858:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5942:18:0;5924:7;5942:18;;;:9;:18;;;;;;;5858:105;3606:35;;;;;;;;;;;;;;;;12880:770;;;;;;;;;;-1:-1:-1;12880:770:0;;;;;:::i;:::-;;:::i;5774:78::-;;;;;;;;;;-1:-1:-1;5826:7:0;5844:5;-1:-1:-1;;;;;5844:5:0;5774:78;;14526:144;;;;;;;;;;-1:-1:-1;14526:144:0;;;;;:::i;:::-;;:::i;3095:48::-;;;;;;;;;;-1:-1:-1;3095:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3386:57;;;;;;;;;;;;;;;;14169:74;;;;;;;;;;;;;:::i;5598:84::-;;;;;;;;;;-1:-1:-1;5672:7:0;;;;;;;;;;;;-1:-1:-1;;;5672:7:0;;;;5598:84;;7286:171;;;;;;;;;;;;;:::i;4173:19::-;;;;;;;;;;-1:-1:-1;4173:19:0;;;;-1:-1:-1;;;;;4173:19:0;;;6464:156;;;;;;;;;;-1:-1:-1;6464:156:0;;;;;:::i;:::-;;:::i;3931:24::-;;;;;;;;;;-1:-1:-1;3931:24:0;;;;-1:-1:-1;;;;;3931:24:0;;;3681:37;;;;;;;;;;;;;;;;7035:243;;;;;;;;;;;;;:::i;4199:23::-;;;;;;;;;;-1:-1:-1;4199:23:0;;;;-1:-1:-1;;;;;4199:23:0;;;4441:33;;;;;;;;;;-1:-1:-1;4441:33:0;;;;;;;-1:-1:-1;;;;;4441:33:0;;;3534:29;;;;;;;;;;;;;;;;5969:133;;;;;;;;;;-1:-1:-1;5969:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6071:19:0;;;6053:7;6071:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5969:133;13876:285;;;;;;;;;;-1:-1:-1;13876:285:0;;;;;:::i;:::-;;:::i;13658:210::-;;;;;;;;;;-1:-1:-1;13658:210:0;;;;;:::i;:::-;;:::i;1487:242::-;;;;;;;;;;-1:-1:-1;1487:242:0;;;;;:::i;:::-;;:::i;14678:94::-;;;;;;;;;;-1:-1:-1;14759:4:0;14678:94;;12695:177;;;;;;;;;;-1:-1:-1;12695:177:0;;;;;:::i;:::-;;:::i;4142:24::-;;;;;;;;;;-1:-1:-1;4142:24:0;;;;-1:-1:-1;;;;;4142:24:0;;;6110:216;6214:10;6185:4;6202:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6202:32:0;;;;;;;;;;:41;;;6259:37;6185:4;;6202:32;;6259:37;;;;6237:6;160:25:1;;148:2;133:18;;14:177;6259:37:0;;;;;;;;-1:-1:-1;6314:4:0;6110:216;;;;:::o;6682:345::-;-1:-1:-1;;;;;6802:19:0;;6782:4;6802:19;;;:11;:19;;;;;;;;6822:10;6802:31;;;;;;;;-1:-1:-1;;6802:52:0;6799:159;;-1:-1:-1;;;;;6904:19:0;;;;;;:11;:19;;;;;;;;6924:10;6904:31;;;;;;;;:42;;6939:6;;6904:42;:::i;:::-;-1:-1:-1;;;;;6870:19:0;;;;;;:11;:19;;;;;;;;6890:10;6870:31;;;;;;;:76;6799:159;6977:40;6991:6;6999:9;7010:6;6977:13;:40::i;:::-;6970:47;;6682:345;;;;;;:::o;14280:238::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;;;;;;;;;14408:9:::1;::::0;14400:47:::1;::::0;14368:21:::1;::::0;-1:-1:-1;;;;;14408:9:0::1;::::0;14400:47;::::1;;;::::0;14368:21;;14339:26:::1;14400:47:::0;14339:26;14400:47;14368:21;14408:9;14400:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14500:9:0::1;::::0;14463:47:::1;::::0;;5799:25:1;;;-1:-1:-1;;;;;14500:9:0;;::::1;5855:2:1::0;5840:18;;5833:60;14463:47:0::1;::::0;5772:18:1;14463:47:0::1;;;;;;;14328:190;14280:238::o:0;12353:161::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;12447:8:::1;:20:::0;;-1:-1:-1;;;;;;12447:20:0::1;-1:-1:-1::0;;;;;12447:20:0;;;::::1;::::0;;;::::1;::::0;;;12478:11:::1;:26:::0;12353:161::o;7465:234::-;7544:18;;;;;-1:-1:-1;;;;;7544:18:0;7566:10;7544:32;7536:63;;;;-1:-1:-1;;;7536:63:0;;6106:2:1;7536:63:0;;;6088:21:1;6145:2;6125:18;;;6118:30;-1:-1:-1;;;6164:18:1;;;6157:48;6222:18;;7536:63:0;5904:342:1;7536:63:0;7610:16;:36;;-1:-1:-1;;7610:36:0;;;;;;;;;;7676:15;7657:16;:34;7465:234::o;6334:122::-;6389:4;6413:35;6421:7;-1:-1:-1;;6413:7:0;:35::i;:::-;6406:42;6334:122;-1:-1:-1;;6334:122:0:o;11987:358::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;12132:4:::1;12117:12;;:19;;;;:::i;:::-;12098:15;:38;;:76;;;;;12170:4;12155:12;;:19;;;;:::i;:::-;12140:11;:34;;12098:76;12090:125;;;::::0;-1:-1:-1;;;12090:125:0;;6675:2:1;12090:125:0::1;::::0;::::1;6657:21:1::0;6714:2;6694:18;;;6687:30;6753:34;6733:18;;;6726:62;-1:-1:-1;;;6804:18:1;;;6797:34;6848:19;;12090:125:0::1;6473:400:1::0;12090:125:0::1;12226:14;:32:::0;;;12269:10:::1;:24:::0;;;12309:28:::1;::::0;160:25:1;;;12309:28:0::1;::::0;148:2:1;133:18;12309:28:0::1;;;;;;;;11987:358:::0;;:::o;12522:165::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12605:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;12605:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12649:30;;7046:51:1;;;7113:18;;;7106:50;12649:30:0::1;::::0;7019:18:1;12649:30:0::1;6878:284:1::0;12880:770:0;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;13151:2:::1;13131:16:::0;13099:29:::1;13112:16:::0;13099:10;:29:::1;:::i;:::-;:48;;;;:::i;:::-;:54;;:115;;;;-1:-1:-1::0;13212:2:0::1;13191:17:::0;13157:31:::1;13171:17:::0;13157:11;:31:::1;:::i;:::-;:51;;;;:::i;:::-;:57;;13099:115;13091:172;;;::::0;-1:-1:-1;;;13091:172:0;;7502:2:1;13091:172:0::1;::::0;::::1;7484:21:1::0;7541:2;7521:18;;;7514:30;7580:34;7560:18;;;7553:62;-1:-1:-1;;;7631:18:1;;;7624:42;7683:19;;13091:172:0::1;7300:408:1::0;13091:172:0::1;13270:9;:22:::0;;;13297:15:::1;:34:::0;;;13336:15:::1;:34:::0;;;13377:10:::1;:24:::0;;;13406:16:::1;:36:::0;;;13447:16:::1;:36:::0;;;13466:17;13354:16;13425:17;13315:16;13502:22:::1;13390:11:::0;13282:10;13502:22:::1;:::i;:::-;:40;;;;:::i;:::-;:59;;;;:::i;:::-;:77;;;;:::i;:::-;:96;;;;:::i;:::-;13490:9;:108:::0;13632:9:::1;::::0;13624:18:::1;::::0;160:25:1;;;13624:18:0::1;::::0;148:2:1;133:18;13624::0::1;;;;;;;12880:770:::0;;;;;;:::o;14526:144::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;14616:5:::1;::::0;14623:38:::1;::::0;-1:-1:-1;;;14623:38:0;;14655:4:::1;14623:38;::::0;::::1;2053:51:1::0;-1:-1:-1;;;;;14593:22:0;;::::1;::::0;::::1;::::0;14616:5;::::1;::::0;14593:22;;14623:23:::1;::::0;2026:18:1;;14623:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14593:69;::::0;-1:-1:-1;;;;;;14593:69:0::1;::::0;;;;;;-1:-1:-1;;;;;8094:32:1;;;14593:69:0::1;::::0;::::1;8076:51:1::0;8143:18;;;8136:34;8049:18;;14593:69:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14526:144:::0;:::o;14169:74::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;14223:10:::1;:8;:10::i;:::-;14169:74::o:0;7286:171::-;7350:18;;;;;-1:-1:-1;;;;;7350:18:0;7372:10;7350:32;7342:63;;;;-1:-1:-1;;;7342:63:0;;6106:2:1;7342:63:0;;;6088:21:1;6145:2;6125:18;;;6118:30;-1:-1:-1;;;6164:18:1;;;6157:48;6222:18;;7342:63:0;5904:342:1;7342:63:0;7416:18;:33;;-1:-1:-1;;;;;;7416:33:0;;;7286:171::o;6464:156::-;6544:4;6568:44;6582:10;6594:9;6605:6;6568:13;:44::i;7035:243::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;7101:6:::1;;;;;;;;;-1:-1:-1::0;;;;;7101:6:0::1;-1:-1:-1::0;;;;;7101:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7089:37:0::1;;7135:4;7142:6;;;;;;;;;-1:-1:-1::0;;;;;7142:6:0::1;-1:-1:-1::0;;;;;7142:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7089:67;::::0;-1:-1:-1;;;;;;7089:67:0::1;::::0;;;;;;-1:-1:-1;;;;;8917:15:1;;;7089:67:0::1;::::0;::::1;8899:34:1::0;8969:15;;8949:18;;;8942:43;8834:18;;7089:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7082:4;:74:::0;;-1:-1:-1;;;;;;7082:74:0::1;-1:-1:-1::0;;;;;7082:74:0;;;::::1;::::0;;::::1;::::0;;7167:104:::1;;7211:6;;;;;;;;;-1:-1:-1::0;;;;;7211:6:0::1;-1:-1:-1::0;;;;;7211:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7199:40:0::1;;7248:4;7255:6;;;;;;;;;-1:-1:-1::0;;;;;7255:6:0::1;-1:-1:-1::0;;;;;7255:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7199:70;::::0;-1:-1:-1;;;;;;7199:70:0::1;::::0;;;;;;-1:-1:-1;;;;;8917:15:1;;;7199:70:0::1;::::0;::::1;8899:34:1::0;8969:15;;8949:18;;;8942:43;8834:18;;7199:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7192:4;:77:::0;;-1:-1:-1;;;;;;7192:77:0::1;-1:-1:-1::0;;;;;7192:77:0;;;::::1;::::0;;;::::1;::::0;;7035:243::o;13876:285::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;13986:1:::1;13975:7;:12;;13967:56;;;::::0;-1:-1:-1;;;13967:56:0;;9198:2:1;13967:56:0::1;::::0;::::1;9180:21:1::0;9237:2;9217:18;;;9210:30;9276:33;9256:18;;;9249:61;9327:18;;13967:56:0::1;8996:355:1::0;13967:56:0::1;14034:11;:22:::0;;-1:-1:-1;;14034:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14067:13:::1;:23:::0;;;14106:47:::1;::::0;;14034:22:::1;14126:11:::0;;;9549:14:1;9542:22;9524:41;;9596:2;9581:18;;9574:34;;;14106:47:0::1;::::0;9497:18:1;14106:47:0::1;9356:258:1::0;13658:210:0;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;13758:9:::1;:22:::0;;-1:-1:-1;;;;;13758:22:0;;::::1;-1:-1:-1::0;;;;;;13758:22:0;;::::1;::::0;::::1;::::0;;;13785:15:::1;:34:::0;;;;::::1;::::0;;;::::1;;::::0;;13835:25:::1;::::0;2053:51:1;;;13835:25:0::1;::::0;2041:2:1;2026:18;13835:25:0::1;1907:203:1::0;1487:242:0;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1576:22:0;::::1;1568:73;;;::::0;-1:-1:-1;;;1568:73:0;;9821:2:1;1568:73:0::1;::::0;::::1;9803:21:1::0;9860:2;9840:18;;;9833:30;9899:34;9879:18;;;9872:62;-1:-1:-1;;;9950:18:1;;;9943:36;9996:19;;1568:73:0::1;9619:402:1::0;1568:73:0::1;1678:5;::::0;;1657:37:::1;::::0;-1:-1:-1;;;;;1657:37:0;;::::1;::::0;1678:5;::::1;::::0;1657:37:::1;::::0;::::1;1705:5;:16:::0;;-1:-1:-1;;;;;;1705:16:0::1;-1:-1:-1::0;;;;;1705:16:0;;;::::1;::::0;;;::::1;::::0;;1487:242::o;12695:177::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12782:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;;;;:32;;-1:-1:-1;;12782:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12830:34;;7046:51:1;;;7113:18;;;7106:50;12830:34:0::1;::::0;7019:18:1;12830:34:0::1;6878:284:1::0;7707:1322:0;7821:6;;7799:4;;7821:6;;7818:62;;;7837:41;7852:6;7860:9;7871:6;7837:14;:41::i;:::-;7830:48;;;;7818:62;-1:-1:-1;;;;;7916:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7939:22:0;;;;;;:11;:22;;;;;;;;7916:45;:239;;;-1:-1:-1;7965:16:0;;;;:190;;;;-1:-1:-1;8040:11:0;;8006:8;;8000:36;;-1:-1:-1;;;8000:36:0;;-1:-1:-1;;;;;2071:32:1;;;8000:36:0;;;2053:51:1;8006:8:0;;;;8000:25;;2026:18:1;;8000:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;:103;;;-1:-1:-1;8092:11:0;;8061:8;;8055:33;;-1:-1:-1;;;8055:33:0;;-1:-1:-1;;;;;2071:32:1;;;8055:33:0;;;2053:51:1;8061:8:0;;;;8055:25;;2026:18:1;;8055:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;8000:103;:154;;;-1:-1:-1;8126:16:0;;:28;;8145:9;8126:28;:::i;:::-;8107:15;:47;;8000:154;7908:279;;;;-1:-1:-1;;;7908:279:0;;10228:2:1;7908:279:0;;;10210:21:1;10267:2;10247:18;;;10240:30;10306:29;10286:18;;;10279:57;10353:18;;7908:279:0;10026:351:1;7908:279:0;8255:5;;-1:-1:-1;;;;;8245:15:0;;;8255:5;;8245:15;;;;:44;;-1:-1:-1;8274:15:0;;-1:-1:-1;;;;;8264:25:0;;;8274:15;;8264:25;;8245:44;:66;;;;-1:-1:-1;8306:5:0;;-1:-1:-1;;;;;8293:18:0;;;8306:5;;8293:18;;8245:66;:87;;;;-1:-1:-1;;;;;;8315:17:0;;4076:42;8315:17;;8245:87;:108;;;;-1:-1:-1;8349:4:0;;-1:-1:-1;;;;;8336:17:0;;;8349:4;;8336:17;;8245:108;8241:311;;;-1:-1:-1;;;;;8389:26:0;;;;;;:15;:26;;;;;;;;;:103;;;8430:10;;8420:6;:20;;:71;;;;-1:-1:-1;8477:14:0;;-1:-1:-1;;;;;8444:20:0;;;;;;:9;:20;;;;;;:29;;8467:6;;8444:29;:::i;:::-;:47;;8420:71;8381:159;;;;-1:-1:-1;;;8381:159:0;;10584:2:1;8381:159:0;;;10566:21:1;10623:2;10603:18;;;10596:30;10662:34;10642:18;;;10635:62;-1:-1:-1;;;10713:18:1;;;10706:41;10764:19;;8381:159:0;10382:407:1;8381:159:0;8602:16;:14;:16::i;:::-;8599:33;;;8620:10;:8;:10::i;:::-;-1:-1:-1;;;;;8664:17:0;;;;;;:9;:17;;;;;;:26;;8684:6;;8664:26;:::i;:::-;-1:-1:-1;;;;;8644:17:0;;;;;;:9;:17;;;;;;;;:46;;;;9461:11;:19;;;;;;;;9460:20;8765:22;:51;;;-1:-1:-1;;;;;;9461:19:0;;9436:4;9461:19;;;:11;:19;;;;;;;;9460:20;8791:25;8765:51;8764:99;;8829:34;8837:6;8845:9;8856:6;8829:7;:34::i;:::-;8764:99;;;8820:6;8764:99;-1:-1:-1;;;;;8897:20:0;;;;;;:9;:20;;;;;;8739:124;;-1:-1:-1;8897:39:0;;8739:124;;8897:39;:::i;:::-;-1:-1:-1;;;;;8874:20:0;;;;;;;:9;:20;;;;;;;:62;;;;8954:43;;;;;;;;;;8982:14;160:25:1;;148:2;133:18;;14:177;8954:43:0;;;;;;;;-1:-1:-1;9017:4:0;;7707:1322;-1:-1:-1;;;;7707:1322:0:o;10727:1228::-;4561:6;:13;;-1:-1:-1;;4561:13:0;4570:4;4561:13;;;10871:9:::1;::::0;4561:6;;10867:13:::1;::::0;:1:::1;:13;:::i;:::-;10846:16;;10828:15;;:34;;;;:::i;:::-;10818:4;5924:7:::0;5942:18;;;:9;:18;;;;;;10800:63:::1;;;;:::i;:::-;:81;;;;:::i;:::-;10933:4;10892:20;5942:18:::0;;;:9;:18;;;;;;10778:103;;-1:-1:-1;10892:20:0;10915:38:::1;::::0;10778:103;;10915:38:::1;:::i;:::-;10990:16;::::0;;11004:1:::1;10990:16:::0;;;;;::::1;::::0;;10892:61;;-1:-1:-1;10966:21:0::1;::::0;10990:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10990:16:0::1;10966:40;;11035:4;11017;11022:1;11017:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11017:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11061:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11061:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11017:7;;11061:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11051:4;11056:1;11051:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11051:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11087:6:::1;::::0;:112:::1;::::0;-1:-1:-1;;;11087:112:0;;:6;::::1;::::0;:57:::1;::::0;:112:::1;::::0;11145:12;;11087:6:::1;::::0;11162:4;;11176::::1;::::0;11183:15:::1;::::0;11087:112:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11224:1;11210:11;:15;11206:190;;;11242:142;11255:11;11366:16;;11348:15;;11336:9;;11332:1;:13;;;;:::i;:::-;:31;;;;:::i;:::-;:50;;;;:::i;:::-;11311:16;;11293:15;;:34;;;;:::i;:::-;11268:60;::::0;:21:::1;:60;:::i;:::-;:115;;;;:::i;:::-;11242:12;:142::i;:::-;11408:20;11526:16;;11508:15;;11495:10;;11483:9;;:22;;;;:::i;:::-;:40;;;;:::i;:::-;:59;;;;:::i;:::-;11468:10;;11456:9;;:22;;;;:::i;:::-;11431:48;::::0;:21:::1;:48;:::i;:::-;:112;;;;:::i;:::-;11408:135:::0;-1:-1:-1;11554:26:0::1;11583:36;11408:135:::0;11583:21:::1;:36;:::i;:::-;11683:9;::::0;11675:60:::1;::::0;11554:65;;-1:-1:-1;11633:13:0::1;::::0;-1:-1:-1;;;;;11683:9:0;;::::1;::::0;11725:5:::1;::::0;11706:12;;11633:13;11675:60;11633:13;11675:60;11706:12;11683:9;11725:5;11675:60:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;11797:15:0::1;::::0;11789:72:::1;::::0;11632:103;;-1:-1:-1;11747:13:0::1;::::0;-1:-1:-1;;;;;11797:15:0;;::::1;::::0;11851:5:::1;::::0;11826:18;;11747:13;11789:72;11747:13;11789:72;11826:18;11797:15;11851:5;11789:72:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11746:115;;;11886:8;:20;;;;;11898:8;11886:20;11878:63;;;::::0;-1:-1:-1;;;11878:63:0;;12628:2:1;11878:63:0::1;::::0;::::1;12610:21:1::0;12667:2;12647:18;;;12640:30;12706:32;12686:18;;;12679:60;12756:18;;11878:63:0::1;12426:354:1::0;11878:63:0::1;-1:-1:-1::0;;4579:6:0;:14;;-1:-1:-1;;4579:14:0;;;-1:-1:-1;;;;;10727:1228:0:o;9041:300::-;-1:-1:-1;;;;;9171:17:0;;9134:4;9171:17;;;:9;:17;;;;;;:26;;9191:6;;9171:26;:::i;:::-;-1:-1:-1;;;;;9151:17:0;;;;;;;:9;:17;;;;;;:46;;;;9231:20;;;;;;;:29;;9254:6;;9231:29;:::i;:::-;-1:-1:-1;;;;;9208:20:0;;;;;;;:9;:20;;;;;;;:52;;;;9276:35;;;;;;;;;;9304:6;160:25:1;;148:2;133:18;;14:177;9276:35:0;;;;;;;;-1:-1:-1;9329:4:0;9041:300;;;;;:::o;10168:197::-;10255:4;;10217;;-1:-1:-1;;;;;10255:4:0;10241:10;:18;;;;:38;;-1:-1:-1;10273:6:0;;;;10272:7;10241:38;:62;;;;-1:-1:-1;10292:11:0;;;;10241:62;:116;;;;-1:-1:-1;10344:13:0;;10334:4;10316:24;;;;:9;:24;;;;;;:41;;10241:116;10234:123;;10168:197;:::o;9496:664::-;9652:4;;9582:7;;;;-1:-1:-1;;;;;9642:14:0;;;9652:4;;9642:14;:35;;;;-1:-1:-1;9673:4:0;;-1:-1:-1;;;;;9660:17:0;;;9673:4;;9660:17;;9642:35;9638:137;;;9762:4;9743:15;;9725;;9713:9;;:27;;;;:::i;:::-;:45;;;;:::i;:::-;9703:56;;:6;:56;:::i;:::-;:63;;;;:::i;:::-;9691:75;;9638:137;9790:4;;-1:-1:-1;;;;;9780:14:0;;;9790:4;;9780:14;;;;:35;;-1:-1:-1;9811:4:0;;-1:-1:-1;;;;;9798:17:0;;;9811:4;;9798:17;9780:35;9776:140;;;9903:4;9883:16;;9864;;9851:10;;:29;;;;:::i;:::-;:48;;;;:::i;:::-;9841:59;;:6;:59;:::i;:::-;:66;;;;:::i;:::-;9829:78;;9776:140;9932:13;;9928:185;;10007:4;9989:24;;;;:9;:24;;;;;;:38;;10017:9;;9989:38;:::i;:::-;9980:4;9962:24;;;;:9;:24;;;;;;;:65;;;;10047:42;;-1:-1:-1;;;;;10047:42:0;;;;;;;10079:9;160:25:1;;148:2;133:18;;14:177;10047:42:0;;;;;;;;9928:185;10132:20;10142:9;10132:6;:20;:::i;:::-;10125:27;9496:664;-1:-1:-1;;;;;9496:664:0:o;10373:346::-;10481:4;10461:26;;;;:11;:26;;;;;;;;10496:6;;-1:-1:-1;;;;;10496:6:0;10461:43;;;;;;;;:59;-1:-1:-1;10458:125:0;;;10542:4;10522:26;;;;:11;:26;;;;;;;;10557:6;;-1:-1:-1;;;;;10557:6:0;10522:43;;;;;;;:59;;;10458:125;10593:6;;10672:9;;-1:-1:-1;;;;;10593:6:0;;;;:22;;10623:11;;10644:4;;10651:13;;10593:6;;;;10672:9;10683:27;:15;10701:9;10683:27;:::i;:::-;10593:118;;;;;;-1:-1:-1;;;;;;10593:118:0;;;-1:-1:-1;;;;;13144:15:1;;;10593:118:0;;;13126:34:1;13176:18;;;13169:34;;;;13219:18;;;13212:34;;;;13262:18;;;13255:34;;;;13326:15;;;13305:19;;;13298:44;13358:19;;;13351:35;;;;13060:19;;10593:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10373:346;;:::o;388:597:1:-;500:4;529:2;558;547:9;540:21;590:6;584:13;633:6;628:2;617:9;613:18;606:34;658:1;668:140;682:6;679:1;676:13;668:140;;;777:14;;;773:23;;767:30;743:17;;;762:2;739:26;732:66;697:10;;668:140;;;826:6;823:1;820:13;817:91;;;896:1;891:2;882:6;871:9;867:22;863:31;856:42;817:91;-1:-1:-1;969:2:1;948:15;-1:-1:-1;;944:29:1;929:45;;;;976:2;925:54;;388:597;-1:-1:-1;;;388:597:1:o;990:131::-;-1:-1:-1;;;;;1065:31:1;;1055:42;;1045:70;;1111:1;1108;1101:12;1045:70;990:131;:::o;1126:315::-;1194:6;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:31;1354:5;1329:31;:::i;:::-;1379:5;1431:2;1416:18;;;;1403:32;;-1:-1:-1;;;1126:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2115:247::-;2174:6;2227:2;2215:9;2206:7;2202:23;2198:32;2195:52;;;2243:1;2240;2233:12;2195:52;2282:9;2269:23;2301:31;2326:5;2301:31;:::i;2556:118::-;2642:5;2635:13;2628:21;2621:5;2618:32;2608:60;;2664:1;2661;2654:12;2679:241;2735:6;2788:2;2776:9;2767:7;2763:23;2759:32;2756:52;;;2804:1;2801;2794:12;2756:52;2843:9;2830:23;2862:28;2884:5;2862:28;:::i;2925:248::-;2993:6;3001;3054:2;3042:9;3033:7;3029:23;3025:32;3022:52;;;3070:1;3067;3060:12;3022:52;-1:-1:-1;;3093:23:1;;;3163:2;3148:18;;;3135:32;;-1:-1:-1;2925:248:1:o;3178:382::-;3243:6;3251;3304:2;3292:9;3283:7;3279:23;3275:32;3272:52;;;3320:1;3317;3310:12;3272:52;3359:9;3346:23;3378:31;3403:5;3378:31;:::i;:::-;3428:5;-1:-1:-1;3485:2:1;3470:18;;3457:32;3498:30;3457:32;3498:30;:::i;:::-;3547:7;3537:17;;;3178:382;;;;;:::o;3565:523::-;3669:6;3677;3685;3693;3701;3709;3762:3;3750:9;3741:7;3737:23;3733:33;3730:53;;;3779:1;3776;3769:12;3730:53;-1:-1:-1;;3802:23:1;;;3872:2;3857:18;;3844:32;;-1:-1:-1;3923:2:1;3908:18;;3895:32;;3974:2;3959:18;;3946:32;;-1:-1:-1;4025:3:1;4010:19;;3997:33;;-1:-1:-1;4077:3:1;4062:19;4049:33;;-1:-1:-1;3565:523:1;-1:-1:-1;3565:523:1:o;4093:388::-;4161:6;4169;4222:2;4210:9;4201:7;4197:23;4193:32;4190:52;;;4238:1;4235;4228:12;4190:52;4277:9;4264:23;4296:31;4321:5;4296:31;:::i;:::-;4346:5;-1:-1:-1;4403:2:1;4388:18;;4375:32;4416:33;4375:32;4416:33;:::i;4486:309::-;4551:6;4559;4612:2;4600:9;4591:7;4587:23;4583:32;4580:52;;;4628:1;4625;4618:12;4580:52;4667:9;4654:23;4686:28;4708:5;4686:28;:::i;5026:127::-;5087:10;5082:3;5078:20;5075:1;5068:31;5118:4;5115:1;5108:15;5142:4;5139:1;5132:15;5158:125;5198:4;5226:1;5223;5220:8;5217:34;;;5231:18;;:::i;:::-;-1:-1:-1;5268:9:1;;5158:125::o;5288:332::-;5490:2;5472:21;;;5529:1;5509:18;;;5502:29;-1:-1:-1;;;5562:2:1;5547:18;;5540:39;5611:2;5596:18;;5288:332::o;6251:217::-;6291:1;6317;6307:132;;6361:10;6356:3;6352:20;6349:1;6342:31;6396:4;6393:1;6386:15;6424:4;6421:1;6414:15;6307:132;-1:-1:-1;6453:9:1;;6251:217::o;7167:128::-;7207:3;7238:1;7234:6;7231:1;7228:13;7225:39;;;7244:18;;:::i;:::-;-1:-1:-1;7280:9:1;;7167:128::o;7713:184::-;7783:6;7836:2;7824:9;7815:7;7811:23;7807:32;7804:52;;;7852:1;7849;7842:12;7804:52;-1:-1:-1;7875:16:1;;7713:184;-1:-1:-1;7713:184:1:o;8181:245::-;8248:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:52;;;8317:1;8314;8307:12;8269:52;8349:9;8343:16;8368:28;8390:5;8368:28;:::i;8431:251::-;8501:6;8554:2;8542:9;8533:7;8529:23;8525:32;8522:52;;;8570:1;8567;8560:12;8522:52;8602:9;8596:16;8621:31;8646:5;8621:31;:::i;10794:168::-;10834:7;10900:1;10896;10892:6;10888:14;10885:1;10882:21;10877:1;10870:9;10863:17;10859:45;10856:71;;;10907:18;;:::i;:::-;-1:-1:-1;10947:9:1;;10794:168::o;11099:127::-;11160:10;11155:3;11151:20;11148:1;11141:31;11191:4;11188:1;11181:15;11215:4;11212:1;11205:15;11231:980;11493:4;11541:3;11530:9;11526:19;11572:6;11561:9;11554:25;11598:2;11636:6;11631:2;11620:9;11616:18;11609:34;11679:3;11674:2;11663:9;11659:18;11652:31;11703:6;11738;11732:13;11769:6;11761;11754:22;11807:3;11796:9;11792:19;11785:26;;11846:2;11838:6;11834:15;11820:29;;11867:1;11877:195;11891:6;11888:1;11885:13;11877:195;;;11956:13;;-1:-1:-1;;;;;11952:39:1;11940:52;;12047:15;;;;12012:12;;;;11988:1;11906:9;11877:195;;;-1:-1:-1;;;;;;;12128:32:1;;;;12123:2;12108:18;;12101:60;-1:-1:-1;;;12192:3:1;12177:19;12170:35;12089:3;11231:980;-1:-1:-1;;;11231:980:1:o;13397:306::-;13485:6;13493;13501;13554:2;13542:9;13533:7;13529:23;13525:32;13522:52;;;13570:1;13567;13560:12;13522:52;13599:9;13593:16;13583:26;;13649:2;13638:9;13634:18;13628:25;13618:35;;13693:2;13682:9;13678:18;13672:25;13662:35;;13397:306;;;;;:::o

Swarm Source

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