ETH Price: $3,259.91 (-0.46%)
Gas: 2 Gwei

Token

Degen Machine ($777)
 

Overview

Max Total Supply

1,000,000,000,000,000 $777

Holders

166

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.3397393 $777

Value
$0.00
0xd8b7bdc37c474afcb43d2a9d74b89c484eb7d72e
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:
DegenMachine

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭━╮╭━╮╱╱╱╱╱╭╮╱╱╱╱╱╱╱╱╱╭━━━┳━━━┳━━━╮
╰╮╭╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃┃╰╯┃┃╱╱╱╱╱┃┃╱╱╱╱╱╱╱╱╱┃╭━╮┃╭━╮┃╭━╮┃
╱┃┃┃┣━━┳━━┳━━┳━╮╱┃╭╮╭╮┣━━┳━━┫╰━┳┳━╮╭━━╮╰╯╭╯┣╯╭╯┣╯╭╯┃
╱┃┃┃┃┃━┫╭╮┃┃━┫╭╮╮┃┃┃┃┃┃╭╮┃╭━┫╭╮┣┫╭╮┫┃━┫╱╱┃╭╯╱┃╭╯╱┃╭╯
╭╯╰╯┃┃━┫╰╯┃┃━┫┃┃┃┃┃┃┃┃┃╭╮┃╰━┫┃┃┃┃┃┃┃┃━┫╱╱┃┃╱╱┃┃╱╱┃┃
╰━━━┻━━┻━╮┣━━┻╯╰╯╰╯╰╯╰┻╯╰┻━━┻╯╰┻┻╯╰┻━━╯╱╱╰╯╱╱╰╯╱╱╰╯
╱╱╱╱╱╱╱╭━╯┃
╱╱╱╱╱╱╱╰━━╯

Name: Degen Machine
Symbol: $777

Tg: https://t.me/degenmachine

**/



// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.15;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function 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 Auth {
    address internal owner;
    address internal potentialOwner;
    mapping (address => bool) internal authorizations;

    event Authorize_Wallet(address Wallet, bool Status);

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) external onlyOwner {
        authorizations[adr] = true;
        emit Authorize_Wallet(adr,true);
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(adr,false);
    }

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

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) external onlyOwner {
        require(adr != owner, "Already the owner");
        require(adr != address(0), "Can not be zero address.");
        potentialOwner = adr;
        emit OwnershipNominated(adr);
    }

    function acceptOwnership() external {
        require(msg.sender == potentialOwner, "You must be nominated as potential owner before you can accept the role.");
        authorizations[owner] = false;
        authorizations[potentialOwner] = true;

        emit Authorize_Wallet(owner,false);
        emit Authorize_Wallet(potentialOwner,true);

        owner = potentialOwner;
        potentialOwner = address(0);
        emit OwnershipTransferred(owner);
    }

    event OwnershipTransferred(address owner);
    event OwnershipNominated(address potentialOwner);
}

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

interface InterfaceLP {
    function sync() external;
}

contract DegenMachine is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Degen Machine";
    string public constant symbol = "$777";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 1000000000 * 10**6 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

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

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 200;
    uint256 public machineFee = 0;
    uint256 public burnFee = 0;
    uint256 public totalFee = marketingFee + liquidityFee + machineFee + burnFee;
    uint256 public constant feeDenominator = 1000;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 0;

    address public marketingFeeReceiver;
    address public machineFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    InterfaceLP public pairContract;
    uint256 public lastSync;

    bool public tradingOpen = false;
    bool public burnEnabled = true;
    uint256 public launchedAt;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 5000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        lastSync = block.timestamp;

        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = msg.sender;
        machineFeeReceiver = msg.sender;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    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].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 10,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
        emit config_MaxWallet(_maxWalletToken);
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 5,"Cannot set max transaction less than 0.5%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
        emit config_MaxTransaction(_maxTxAmount);
    }

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        // Checks max transaction limit
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

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

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

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

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


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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        if(contractTokens > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(contractTokens);
            emit Transfer(sender, address(this), contractTokens);
        }
        
        if(burnTokens > 0){
            balanceOf[DEAD] = balanceOf[DEAD].add(burnTokens);
            emit Transfer(sender, DEAD, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        require(tokenAddress != address(this),"Cannot withdraw native token");
        if(tokenAddress == pair){
            require(block.timestamp > launchedAt + 500 days,"Locked for 1 year");
        }

        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }

        emit clearToken(tokenAddress, tokens);

        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    // switch Trading
    function tradingEnable() external onlyOwner {
        require(!tradingOpen,"Trading already open");
        tradingOpen = true;
        launchedAt = block.timestamp;
        emit config_TradingStatus(tradingOpen);
    }

    function disableBurns() external onlyOwner {
        burnEnabled = false;
    }

    function swapBack() internal swapping {

        uint256 totalETHFee = totalFee - burnFee;

        uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2);
        uint256 amountToSwap = swapThreshold - amountToLiquify;

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

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

        uint256 amountETH = address(this).balance;

         totalETHFee = totalETHFee - (liquidityFee / 2);
        
        uint256 amountETHLiquidity = (amountETH * liquidityFee) / (totalETHFee * 2);
        uint256 amountETHMarketing = (amountETH * marketingFee) / totalETHFee;
        uint256 amountETHteam = (amountETH * machineFee) / totalETHFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(machineFeeReceiver).transfer(amountETHteam);

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                address(this),
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
            emit Wallet_feeExempt(addresses[i], status);
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
            emit Wallet_txExempt(addresses[i], status);
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
            emit Wallet_holdingExempt(addresses[i], status);
        }
    }

    function update_fees() internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 200, "Buy tax cannot be more than 20%");
        require(totalFee.mul(sellMultiplier).div(100) <= 180, "Sell tax cannot be more than 18%");
        require(totalFee.mul(sellMultiplier + buyMultiplier).div(100) <= 380, "Buy+Sell tax cannot be more than 38%");
        require(totalFee.mul(transferMultiplier).div(100) <= 50, "Transfer Tax cannot be more than 5%");

        emit UpdateFee( uint8(totalFee.mul(buyMultiplier).div(100)),
            uint8(totalFee.mul(sellMultiplier).div(100)),
            uint8(totalFee.mul(transferMultiplier).div(100))
            );
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        update_fees();
    }

    function setFees_base1000(uint256 _liquidityFee,  uint256 _marketingFee, uint256 _machineFee, uint256 _burnFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        machineFee = _machineFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee + _marketingFee + _machineFee + _burnFee;
        
        update_fees();
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _machineFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0),"Marketing fee address cannot be zero address");
        require(_machineFeeReceiver != address(0),"Team fee address cannot be zero address");

        marketingFeeReceiver = _marketingFeeReceiver;
        machineFeeReceiver = _machineFeeReceiver;

        emit Set_Wallets(marketingFeeReceiver, machineFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount < (totalSupply/10), "Amount too high");

        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit config_SwapSettings(swapThreshold, swapEnabled);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }


function multiTransfer(address[] calldata addresses, uint256[] calldata tokens) external {
    require(isFeeExempt[msg.sender]);
    address from = msg.sender;

    require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf[from] >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}

function BasedBurn(uint256 percent_base10000) public onlyOwner returns (bool){
    require(percent_base10000 <= 200, "May not nuke more than 2% of tokens in LP");
    require(block.timestamp > lastSync + 5 minutes, "Too soon");
    require(burnEnabled,"Burns are disabled");

    uint256 lp_tokens = this.balanceOf(pair);
    uint256 lp_burn = lp_tokens.mul(percent_base10000).div(10_000);

    if (lp_burn > 0){
        _basicTransfer(pair,DEAD,lp_burn);
        pairContract.sync();
        return true;
    }

    return false;
}


event AutoLiquify(uint256 amountETH, uint256 amountTokens);
event UpdateFee(uint8 Buy, uint8 Sell, uint8 Transfer);
event Wallet_feeExempt(address Wallet, bool Status);
event Wallet_txExempt(address Wallet, bool Status);
event Wallet_holdingExempt(address Wallet, bool Status);
event Wallet_blacklist(address Wallet, bool Status);

event BalanceClear(uint256 amount);
event clearToken(address TokenAddressCleared, uint256 Amount);

event Set_Wallets(address MarketingWallet, address TeamWallet);

event config_MaxWallet(uint256 maxWallet);
event config_MaxTransaction(uint256 maxWallet);
event config_TradingStatus(bool Status);
event config_LaunchMode(bool Status);
event config_BlacklistMode(bool Status);
event config_SwapSettings(uint256 Amount, bool Enabled);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"potentialOwner","type":"address"}],"name":"OwnershipNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"MarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"TeamWallet","type":"address"}],"name":"Set_Wallets","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":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"UpdateFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_blacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_feeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_holdingExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_txExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"clearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_BlacklistMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_LaunchMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"config_SwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_TradingStatus","type":"event"},{"inputs":[{"internalType":"uint256","name":"percent_base10000","type":"uint256"}],"name":"BasedBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","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":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableBurns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSync","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"machineFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"machineFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_machineFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_machineFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","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":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146009600a62000589565b620000279066038d7ea4c68000620005a1565b620000339190620005c3565b6003556064620000466009600a62000589565b620000599066038d7ea4c68000620005a1565b620000659190620005c3565b6004556000600a5560c8600b556000600c556000600d55600d54600c54600a54600b54620000949190620005e6565b620000a09190620005e6565b620000ac9190620005e6565b600e556064600f81905560105560006011556017805461ffff19166101001790556019805460ff19166001179055611388620000eb6009600a62000589565b620000fe9066038d7ea4c68000620005a1565b6200010a9190620005c3565b601a553480156200011a57600080fd5b5060008054336001600160a01b031991821681178355825260026020908152604092839020805460ff1916600117905560148054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015620001a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c6919062000601565b6001600160a01b039081166080526014546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d919062000601565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200028f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b5919062000601565b6001600160a01b0390811660a0819052601580546001600160a01b0319908116909217905542601655306000818152600660209081526040808320601454909616835294815284822060001990556012805485163390811790915560138054909516811790945583825260078152848220805460ff1990811660019081179092556008835286842080548216831790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216831790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c780548216831790559483526009918290528583208054861682179055928252938120805484168317905561dead90527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054909216179055620003f490600a62000589565b620004079066038d7ea4c68000620005a1565b33600081815260056020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200044a6009600a62000589565b6200045d9066038d7ea4c68000620005a1565b60405190815260200160405180910390a36200062c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004cb578160001904821115620004af57620004af62000474565b80851615620004bd57918102915b93841c93908002906200048f565b509250929050565b600082620004e45750600162000583565b81620004f35750600062000583565b81600181146200050c5760028114620005175762000537565b600191505062000583565b60ff8411156200052b576200052b62000474565b50506001821b62000583565b5060208310610133831016604e8410600b84101617156200055c575081810a62000583565b6200056883836200048a565b80600019048211156200057f576200057f62000474565b0290505b92915050565b60006200059a60ff841683620004d3565b9392505050565b6000816000190483118215151615620005be57620005be62000474565b500290565b600082620005e157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005fc57620005fc62000474565b500190565b6000602082840312156200061457600080fd5b81516001600160a01b03811681146200059a57600080fd5b60805160a0516134ab62000683600039600081816107e60152818161127e0152818161131901528181611630015281816121f30152818161280e01528181612bd00152612c040152600061292301526134ab6000f3fe6080604052600436106103375760003560e01c806378109e54116101ab578063bf56b371116100f7578063f0b37c0411610095578063fbde83051161006f578063fbde8305146109ea578063fce589d8146109ff578063fe9fbb8014610a15578063ffb54a9914610a3557600080fd5b8063f0b37c041461098a578063f2fde38b146109aa578063f887ea40146109ca57600080fd5b8063dd62ed3e116100d1578063dd62ed3e146108e4578063df20fd491461092a578063e96fada21461094a578063efa5e3471461096a57600080fd5b8063bf56b37114610888578063c7003fc61461089e578063c867d60b146108b457600080fd5b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610808578063b6a5d7de14610828578063b9809d7914610848578063bd9ab5371461086857600080fd5b806398118cb41461079e578063a4b45c00146107b4578063a8aa1b31146107d457600080fd5b806378109e54146106df57806379ba5097146106f55780637d1db4a51461070a578063893d20e8146107205780638b42507f1461073e57806395d89b411461076e57600080fd5b80632b112e49116102855780635dc96d16116102235780636ce46bc3116101fd5780636ce46bc3146106585780636ddd17131461067857806370a082311461069257806377b54bad146106bf57600080fd5b80635dc96d161461060d5780636917516b1461062c5780636b67c4df1461064257600080fd5b80633f4218e01161025f5780633f4218e0146105655780634be9d869146105955780634d709adf146105b5578063571ac8b0146105ed57600080fd5b80632b112e49146104fa5780632f54bf6e1461050f578063313ce5671461053e57600080fd5b80631693e8d4116102f25780631df4ccfc116102cc5780631df4ccfc146104845780631e89d5451461049a57806323b872dd146104ba5780632aaf62e9146104da57600080fd5b80631693e8d414610444578063180b0d7e1461045957806318160ddd1461046f57600080fd5b806210868314610343578062bff446146103655780630445b6671461038557806306fdde03146103ae57806309302dc6146103f4578063095ea7b31461041457600080fd5b3661033e57005b600080fd5b34801561034f57600080fd5b5061036361035e366004612e8e565b610a4f565b005b34801561037157600080fd5b50610363610380366004612e8e565b610b72565b34801561039157600080fd5b5061039b601a5481565b6040519081526020015b60405180910390f35b3480156103ba57600080fd5b506103e76040518060400160405280600d81526020016c446567656e204d616368696e6560981b81525081565b6040516103a59190612ee5565b34801561040057600080fd5b5061036361040f366004612f3a565b610c86565b34801561042057600080fd5b5061043461042f366004612f68565b610d7d565b60405190151581526020016103a5565b34801561045057600080fd5b50610363610dea565b34801561046557600080fd5b5061039b6103e881565b34801561047b57600080fd5b5061039b610ea8565b34801561049057600080fd5b5061039b600e5481565b3480156104a657600080fd5b506103636104b5366004612f94565b610ec8565b3480156104c657600080fd5b506104346104d5366004613000565b611083565b3480156104e657600080fd5b506104346104f5366004612f3a565b611145565b34801561050657600080fd5b5061039b6113be565b34801561051b57600080fd5b5061043461052a366004613041565b6000546001600160a01b0391821691161490565b34801561054a57600080fd5b50610553600981565b60405160ff90911681526020016103a5565b34801561057157600080fd5b50610434610580366004613041565b60076020526000908152604090205460ff1681565b3480156105a157600080fd5b506103636105b0366004612e8e565b611448565b3480156105c157600080fd5b506015546105d5906001600160a01b031681565b6040516001600160a01b0390911681526020016103a5565b3480156105f957600080fd5b50610434610608366004613041565b61155c565b34801561061957600080fd5b5060175461043490610100900460ff1681565b34801561063857600080fd5b5061039b60165481565b34801561064e57600080fd5b5061039b600b5481565b34801561066457600080fd5b5061036361067336600461305e565b61156a565b34801561068457600080fd5b506019546104349060ff1681565b34801561069e57600080fd5b5061039b6106ad366004613041565b60056020526000908152604090205481565b3480156106cb57600080fd5b506104346106da366004612f68565b6115ab565b3480156106eb57600080fd5b5061039b60045481565b34801561070157600080fd5b506103636117e0565b34801561071657600080fd5b5061039b60035481565b34801561072c57600080fd5b506000546001600160a01b03166105d5565b34801561074a57600080fd5b50610434610759366004613041565b60086020526000908152604090205460ff1681565b34801561077a57600080fd5b506103e7604051806040016040528060048152602001632437373760e01b81525081565b3480156107aa57600080fd5b5061039b600a5481565b3480156107c057600080fd5b506103636107cf36600461308a565b611960565b3480156107e057600080fd5b506105d57f000000000000000000000000000000000000000000000000000000000000000081565b34801561081457600080fd5b50610434610823366004612f68565b611aca565b34801561083457600080fd5b50610363610843366004613041565b611ad7565b34801561085457600080fd5b506013546105d5906001600160a01b031681565b34801561087457600080fd5b50610363610883366004612f3a565b611b47565b34801561089457600080fd5b5061039b60185481565b3480156108aa57600080fd5b5061039b600c5481565b3480156108c057600080fd5b506104346108cf366004613041565b60096020526000908152604090205460ff1681565b3480156108f057600080fd5b5061039b6108ff36600461308a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561093657600080fd5b506103636109453660046130c3565b611c3e565b34801561095657600080fd5b506012546105d5906001600160a01b031681565b34801561097657600080fd5b506103636109853660046130e1565b611d21565b34801561099657600080fd5b506103636109a5366004613041565b611d8a565b3480156109b657600080fd5b506103636109c5366004613041565b611e50565b3480156109d657600080fd5b506014546105d5906001600160a01b031681565b3480156109f657600080fd5b50610363611f70565b348015610a0b57600080fd5b5061039b600d5481565b348015610a2157600080fd5b50610434610a30366004613041565b611fa7565b348015610a4157600080fd5b506017546104349060ff1681565b610a5833611fa7565b610a7d5760405162461bcd60e51b8152600401610a7490613113565b60405180910390fd5b6101f58210610a9e5760405162461bcd60e51b8152600401610a7490613138565b60005b82811015610b6c578160096000868685818110610ac057610ac061317d565b9050602002016020810190610ad59190613041565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610b3057610b3061317d565b9050602002016020810190610b459190613041565b83604051610b54929190613193565b60405180910390a1610b65816131c4565b9050610aa1565b50505050565b610b7b33611fa7565b610b975760405162461bcd60e51b8152600401610a7490613113565b6101f58210610bb85760405162461bcd60e51b8152600401610a7490613138565b60005b82811015610b6c578160076000868685818110610bda57610bda61317d565b9050602002016020810190610bef9190613041565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610c4a57610c4a61317d565b9050602002016020810190610c5f9190613041565b83604051610c6e929190613193565b60405180910390a1610c7f816131c4565b9050610bbb565b6000546001600160a01b03163314610cb05760405162461bcd60e51b8152600401610a74906131dd565b600a811015610d0c5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610a74565b6103e881610d1c6009600a6132e1565b610d2d9066038d7ea4c680006132f0565b610d3791906132f0565b610d41919061330f565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dd89086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610e145760405162461bcd60e51b8152600401610a74906131dd565b60175460ff1615610e5e5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b6044820152606401610a74565b6017805460ff19166001908117909155426018556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b610eb46009600a6132e1565b610ec59066038d7ea4c680006132f0565b81565b3360009081526007602052604090205460ff16610ee457600080fd5b336101f58410610f065760405162461bcd60e51b8152600401610a7490613138565b838214610f665760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610a74565b6000805b85811015610faa57848482818110610f8457610f8461317d565b9050602002013582610f969190613331565b915080610fa2816131c4565b915050610f6a565b506001600160a01b0382166000908152600560205260409020548111156110135760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610a74565b60005b8581101561107a57611067838888848181106110345761103461317d565b90506020020160208101906110499190613041565b87878581811061105b5761105b61317d565b90506020020135611fc5565b5080611072816131c4565b915050611016565b50505050505050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611130576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461110b918490612099565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61113b8484846120d3565b90505b9392505050565b600080546001600160a01b031633146111705760405162461bcd60e51b8152600401610a74906131dd565b60c88211156111d35760405162461bcd60e51b815260206004820152602960248201527f4d6179206e6f74206e756b65206d6f7265207468616e203225206f6620746f6b6044820152680656e7320696e204c560bc1b6064820152608401610a74565b6016546111e29061012c613331565b421161121b5760405162461bcd60e51b81526020600482015260086024820152672a37b79039b7b7b760c11b6044820152606401610a74565b601754610100900460ff166112675760405162461bcd60e51b8152602060048201526012602482015271109d5c9b9cc8185c9948191a5cd8589b195960721b6044820152606401610a74565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260009030906370a0823190602401602060405180830381865afa1580156112ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f29190613349565b9050600061130c6127106113068487612477565b906124f9565b905080156113b4576113417f000000000000000000000000000000000000000000000000000000000000000061dead83611fc5565b50601560009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561139257600080fd5b505af11580156113a6573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5490919061141e6009600a6132e1565b61142f9066038d7ea4c680006132f0565b6114399190613362565b6114439190613362565b905090565b61145133611fa7565b61146d5760405162461bcd60e51b8152600401610a7490613113565b6101f5821061148e5760405162461bcd60e51b8152600401610a7490613138565b60005b82811015610b6c5781600860008686858181106114b0576114b061317d565b90506020020160208101906114c59190613041565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e38484838181106115205761152061317d565b90506020020160208101906115359190613041565b83604051611544929190613193565b60405180910390a1611555816131c4565b9050611491565b6000610de482600019610d7d565b61157333611fa7565b61158f5760405162461bcd60e51b8152600401610a7490613113565b600f829055601083905560118190556115a661253b565b505050565b600080546001600160a01b031633146115d65760405162461bcd60e51b8152600401610a74906131dd565b306001600160a01b0384160361162e5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e000000006044820152606401610a74565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036116ba57601854611678906302932e00613331565b42116116ba5760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b6044820152606401610a74565b8160000361172d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190613349565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156117bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190613379565b6001546001600160a01b031633146118715760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610a74565b600080546001600160a01b03908116825260026020526040808320805460ff199081169091556001805484168552828520805490921617905582549051600080516020613456833981519152936118cd93929092169190613193565b60405180910390a160018054604051600080516020613456833981519152926118ff926001600160a01b031691613193565b60405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390602001610e9e565b6000546001600160a01b0316331461198a5760405162461bcd60e51b8152600401610a74906131dd565b6001600160a01b0382166119f55760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610a74565b6001600160a01b038116611a5b5760405162461bcd60e51b815260206004820152602760248201527f5465616d2066656520616464726573732063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610a74565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b600061113e3384846120d3565b6000546001600160a01b03163314611b015760405162461bcd60e51b8152600401610a74906131dd565b6001600160a01b03811660009081526002602052604090819020805460ff19166001908117909155905160008051602061345683398151915291610d7291849190613193565b6000546001600160a01b03163314611b715760405162461bcd60e51b8152600401610a74906131dd565b6005811015611bd45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b6064820152608401610a74565b6103e881611be46009600a6132e1565b611bf59066038d7ea4c680006132f0565b611bff91906132f0565b611c09919061330f565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610d72565b6000546001600160a01b03163314611c685760405162461bcd60e51b8152600401610a74906131dd565b600a611c756009826132e1565b611c869066038d7ea4c680006132f0565b611c90919061330f565b8110611cd05760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610a74565b6019805460ff1916831515908117909155601a8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d09101611abe565b6000546001600160a01b03163314611d4b5760405162461bcd60e51b8152600401610a74906131dd565b600a849055600b839055600c829055600d8190558082611d6b8587613331565b611d759190613331565b611d7f9190613331565b600e55610b6c61253b565b6000546001600160a01b03163314611db45760405162461bcd60e51b8152600401610a74906131dd565b6000546001600160a01b0390811690821603611e125760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a74565b6001600160a01b038116600090815260026020526040808220805460ff191690555160008051602061345683398151915291610d7291849190613193565b6000546001600160a01b03163314611e7a5760405162461bcd60e51b8152600401610a74906131dd565b6000546001600160a01b0390811690821603611ecc5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610a74565b6001600160a01b038116611f225760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610a74565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef22290602001610d72565b6000546001600160a01b03163314611f9a5760405162461bcd60e51b8152600401610a74906131dd565b6017805461ff0019169055565b6001600160a01b031660009081526002602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054612016918490612099565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461204590836127a2565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020613436833981519152906120879086815260200190565b60405180910390a35060019392505050565b600081848411156120bd5760405162461bcd60e51b8152600401610a749190612ee5565b5060006120ca8486613362565b95945050505050565b601b5460009060ff16156120f3576120ec848484611fc5565b905061113e565b6001600160a01b03841660009081526002602052604090205460ff1615801561213557506001600160a01b03831660009081526002602052604090205460ff16155b156121835760175460ff166121835760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a74565b6001600160a01b03841660009081526002602052604090205460ff161580156121c557506001600160a01b03841660009081526009602052604090205460ff16155b80156121ea57506001600160a01b03831660009081526009602052604090205460ff16155b801561222857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156122a2576004546001600160a01b038416600090815260056020526040902054612254908490613331565b11156122a25760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a74565b600354821115806122cb57506001600160a01b03841660009081526008602052604090205460ff165b806122ee57506001600160a01b03831660009081526008602052604090205460ff165b6123325760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a74565b61233a612801565b156123475761234761286d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054612399918490612099565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16806123e657506001600160a01b03841660009081526007602052604090205460ff165b6123fa576123f5858486612ba8565b6123fc565b825b6001600160a01b03851660009081526005602052604090205490915061242290826127a2565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020613436833981519152906124649085815260200190565b60405180910390a3506001949350505050565b60008260000361248957506000610de4565b600061249583856132f0565b9050826124a2858361330f565b1461113e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a74565b600061113e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612dc1565b60c86125596064611306601054600e5461247790919063ffffffff16565b11156125a75760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20323025006044820152606401610a74565b60b46125c56064611306600f54600e5461247790919063ffffffff16565b11156126135760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203138256044820152606401610a74565b61017c6126376064611306601054600f5461262e9190613331565b600e5490612477565b11156126915760405162461bcd60e51b8152602060048201526024808201527f4275792b53656c6c207461782063616e6e6f74206265206d6f7265207468616e6044820152632033382560e01b6064820152608401610a74565b60326126af6064611306601154600e5461247790919063ffffffff16565b11156127095760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e60448201526220352560e81b6064820152608401610a74565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada6127466064611306601054600e5461247790919063ffffffff16565b6127626064611306600f54600e5461247790919063ffffffff16565b61277e6064611306601154600e5461247790919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610e9e565b6000806127af8385613331565b90508381101561113e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a74565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061283f5750601b5460ff16155b801561284d575060195460ff165b8015611443575050601a5430600090815260056020526040902054101590565b601b805460ff19166001179055600d54600e5460009161288c91613362565b9050600061289b8260026132f0565b600a54601a546128ab91906132f0565b6128b5919061330f565b9050600081601a546128c79190613362565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106129015761290161317d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106129555761295561317d565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061299b908590600090869030904290600401613396565b600060405180830381600087803b1580156129b557600080fd5b505af11580156129c9573d6000803e3d6000fd5b5050600a544792506129de915060029061330f565b6129e89086613362565b945060006129f78660026132f0565b600a54612a0490846132f0565b612a0e919061330f565b9050600086600b5484612a2191906132f0565b612a2b919061330f565b9050600087600c5485612a3e91906132f0565b612a48919061330f565b6012546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015612a83573d6000803e3d6000fd5b506013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612abe573d6000803e3d6000fd5b508615612b945760145460405163f305d71960e01b81523060048201819052602482018a9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015612b32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b579190613407565b505060408051858152602081018a90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff19169055505050505050565b6000821580612bb75750600e54155b15612bc357508161113e565b6011546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603612c025750600f54612c40565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603612c4057506010545b6000612c71612c526103e860646132f0565b61130684612c6b600e548a61247790919063ffffffff16565b90612477565b90506000612c90600e54611306600d548561247790919063ffffffff16565b90506000612c9e8383612def565b90508015612d085730600090815260056020526040902054612cc090826127a2565b30600081815260056020526040908190209290925590516001600160a01b038a169060008051602061343683398151915290612cff9085815260200190565b60405180910390a35b8115612dab5761dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54612d4590836127a2565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b038a169060008051602061343683398151915290612da29086815260200190565b60405180910390a35b612db58784612def565b98975050505050505050565b60008183612de25760405162461bcd60e51b8152600401610a749190612ee5565b5060006120ca848661330f565b600061113e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612099565b60008083601f840112612e4357600080fd5b50813567ffffffffffffffff811115612e5b57600080fd5b6020830191508360208260051b8501011115612e7657600080fd5b9250929050565b8015158114612e8b57600080fd5b50565b600080600060408486031215612ea357600080fd5b833567ffffffffffffffff811115612eba57600080fd5b612ec686828701612e31565b9094509250506020840135612eda81612e7d565b809150509250925092565b600060208083528351808285015260005b81811015612f1257858101830151858201604001528201612ef6565b81811115612f24576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612f4c57600080fd5b5035919050565b6001600160a01b0381168114612e8b57600080fd5b60008060408385031215612f7b57600080fd5b8235612f8681612f53565b946020939093013593505050565b60008060008060408587031215612faa57600080fd5b843567ffffffffffffffff80821115612fc257600080fd5b612fce88838901612e31565b90965094506020870135915080821115612fe757600080fd5b50612ff487828801612e31565b95989497509550505050565b60008060006060848603121561301557600080fd5b833561302081612f53565b9250602084013561303081612f53565b929592945050506040919091013590565b60006020828403121561305357600080fd5b813561113e81612f53565b60008060006060848603121561307357600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561309d57600080fd5b82356130a881612f53565b915060208301356130b881612f53565b809150509250929050565b600080604083850312156130d657600080fd5b8235612f8681612e7d565b600080600080608085870312156130f757600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b600052601160045260246000fd5b6000600182016131d6576131d66131ae565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b8085111561323857816000190482111561321e5761321e6131ae565b8085161561322b57918102915b93841c9390800290613202565b509250929050565b60008261324f57506001610de4565b8161325c57506000610de4565b8160018114613272576002811461327c57613298565b6001915050610de4565b60ff84111561328d5761328d6131ae565b50506001821b610de4565b5060208310610133831016604e8410600b84101617156132bb575081810a610de4565b6132c583836131fd565b80600019048211156132d9576132d96131ae565b029392505050565b600061113e60ff841683613240565b600081600019048311821515161561330a5761330a6131ae565b500290565b60008261332c57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115613344576133446131ae565b500190565b60006020828403121561335b57600080fd5b5051919050565b600082821015613374576133746131ae565b500390565b60006020828403121561338b57600080fd5b815161113e81612e7d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133e65784516001600160a01b0316835293830193918301916001016133c1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561341c57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a2646970667358221220b9271bc257afe00b1a834452f3d1074e978abc473af068e661b9ae9a718ff19964736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106103375760003560e01c806378109e54116101ab578063bf56b371116100f7578063f0b37c0411610095578063fbde83051161006f578063fbde8305146109ea578063fce589d8146109ff578063fe9fbb8014610a15578063ffb54a9914610a3557600080fd5b8063f0b37c041461098a578063f2fde38b146109aa578063f887ea40146109ca57600080fd5b8063dd62ed3e116100d1578063dd62ed3e146108e4578063df20fd491461092a578063e96fada21461094a578063efa5e3471461096a57600080fd5b8063bf56b37114610888578063c7003fc61461089e578063c867d60b146108b457600080fd5b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610808578063b6a5d7de14610828578063b9809d7914610848578063bd9ab5371461086857600080fd5b806398118cb41461079e578063a4b45c00146107b4578063a8aa1b31146107d457600080fd5b806378109e54146106df57806379ba5097146106f55780637d1db4a51461070a578063893d20e8146107205780638b42507f1461073e57806395d89b411461076e57600080fd5b80632b112e49116102855780635dc96d16116102235780636ce46bc3116101fd5780636ce46bc3146106585780636ddd17131461067857806370a082311461069257806377b54bad146106bf57600080fd5b80635dc96d161461060d5780636917516b1461062c5780636b67c4df1461064257600080fd5b80633f4218e01161025f5780633f4218e0146105655780634be9d869146105955780634d709adf146105b5578063571ac8b0146105ed57600080fd5b80632b112e49146104fa5780632f54bf6e1461050f578063313ce5671461053e57600080fd5b80631693e8d4116102f25780631df4ccfc116102cc5780631df4ccfc146104845780631e89d5451461049a57806323b872dd146104ba5780632aaf62e9146104da57600080fd5b80631693e8d414610444578063180b0d7e1461045957806318160ddd1461046f57600080fd5b806210868314610343578062bff446146103655780630445b6671461038557806306fdde03146103ae57806309302dc6146103f4578063095ea7b31461041457600080fd5b3661033e57005b600080fd5b34801561034f57600080fd5b5061036361035e366004612e8e565b610a4f565b005b34801561037157600080fd5b50610363610380366004612e8e565b610b72565b34801561039157600080fd5b5061039b601a5481565b6040519081526020015b60405180910390f35b3480156103ba57600080fd5b506103e76040518060400160405280600d81526020016c446567656e204d616368696e6560981b81525081565b6040516103a59190612ee5565b34801561040057600080fd5b5061036361040f366004612f3a565b610c86565b34801561042057600080fd5b5061043461042f366004612f68565b610d7d565b60405190151581526020016103a5565b34801561045057600080fd5b50610363610dea565b34801561046557600080fd5b5061039b6103e881565b34801561047b57600080fd5b5061039b610ea8565b34801561049057600080fd5b5061039b600e5481565b3480156104a657600080fd5b506103636104b5366004612f94565b610ec8565b3480156104c657600080fd5b506104346104d5366004613000565b611083565b3480156104e657600080fd5b506104346104f5366004612f3a565b611145565b34801561050657600080fd5b5061039b6113be565b34801561051b57600080fd5b5061043461052a366004613041565b6000546001600160a01b0391821691161490565b34801561054a57600080fd5b50610553600981565b60405160ff90911681526020016103a5565b34801561057157600080fd5b50610434610580366004613041565b60076020526000908152604090205460ff1681565b3480156105a157600080fd5b506103636105b0366004612e8e565b611448565b3480156105c157600080fd5b506015546105d5906001600160a01b031681565b6040516001600160a01b0390911681526020016103a5565b3480156105f957600080fd5b50610434610608366004613041565b61155c565b34801561061957600080fd5b5060175461043490610100900460ff1681565b34801561063857600080fd5b5061039b60165481565b34801561064e57600080fd5b5061039b600b5481565b34801561066457600080fd5b5061036361067336600461305e565b61156a565b34801561068457600080fd5b506019546104349060ff1681565b34801561069e57600080fd5b5061039b6106ad366004613041565b60056020526000908152604090205481565b3480156106cb57600080fd5b506104346106da366004612f68565b6115ab565b3480156106eb57600080fd5b5061039b60045481565b34801561070157600080fd5b506103636117e0565b34801561071657600080fd5b5061039b60035481565b34801561072c57600080fd5b506000546001600160a01b03166105d5565b34801561074a57600080fd5b50610434610759366004613041565b60086020526000908152604090205460ff1681565b34801561077a57600080fd5b506103e7604051806040016040528060048152602001632437373760e01b81525081565b3480156107aa57600080fd5b5061039b600a5481565b3480156107c057600080fd5b506103636107cf36600461308a565b611960565b3480156107e057600080fd5b506105d57f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd81565b34801561081457600080fd5b50610434610823366004612f68565b611aca565b34801561083457600080fd5b50610363610843366004613041565b611ad7565b34801561085457600080fd5b506013546105d5906001600160a01b031681565b34801561087457600080fd5b50610363610883366004612f3a565b611b47565b34801561089457600080fd5b5061039b60185481565b3480156108aa57600080fd5b5061039b600c5481565b3480156108c057600080fd5b506104346108cf366004613041565b60096020526000908152604090205460ff1681565b3480156108f057600080fd5b5061039b6108ff36600461308a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561093657600080fd5b506103636109453660046130c3565b611c3e565b34801561095657600080fd5b506012546105d5906001600160a01b031681565b34801561097657600080fd5b506103636109853660046130e1565b611d21565b34801561099657600080fd5b506103636109a5366004613041565b611d8a565b3480156109b657600080fd5b506103636109c5366004613041565b611e50565b3480156109d657600080fd5b506014546105d5906001600160a01b031681565b3480156109f657600080fd5b50610363611f70565b348015610a0b57600080fd5b5061039b600d5481565b348015610a2157600080fd5b50610434610a30366004613041565b611fa7565b348015610a4157600080fd5b506017546104349060ff1681565b610a5833611fa7565b610a7d5760405162461bcd60e51b8152600401610a7490613113565b60405180910390fd5b6101f58210610a9e5760405162461bcd60e51b8152600401610a7490613138565b60005b82811015610b6c578160096000868685818110610ac057610ac061317d565b9050602002016020810190610ad59190613041565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610b3057610b3061317d565b9050602002016020810190610b459190613041565b83604051610b54929190613193565b60405180910390a1610b65816131c4565b9050610aa1565b50505050565b610b7b33611fa7565b610b975760405162461bcd60e51b8152600401610a7490613113565b6101f58210610bb85760405162461bcd60e51b8152600401610a7490613138565b60005b82811015610b6c578160076000868685818110610bda57610bda61317d565b9050602002016020810190610bef9190613041565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610c4a57610c4a61317d565b9050602002016020810190610c5f9190613041565b83604051610c6e929190613193565b60405180910390a1610c7f816131c4565b9050610bbb565b6000546001600160a01b03163314610cb05760405162461bcd60e51b8152600401610a74906131dd565b600a811015610d0c5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610a74565b6103e881610d1c6009600a6132e1565b610d2d9066038d7ea4c680006132f0565b610d3791906132f0565b610d41919061330f565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dd89086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610e145760405162461bcd60e51b8152600401610a74906131dd565b60175460ff1615610e5e5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b6044820152606401610a74565b6017805460ff19166001908117909155426018556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b610eb46009600a6132e1565b610ec59066038d7ea4c680006132f0565b81565b3360009081526007602052604090205460ff16610ee457600080fd5b336101f58410610f065760405162461bcd60e51b8152600401610a7490613138565b838214610f665760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610a74565b6000805b85811015610faa57848482818110610f8457610f8461317d565b9050602002013582610f969190613331565b915080610fa2816131c4565b915050610f6a565b506001600160a01b0382166000908152600560205260409020548111156110135760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610a74565b60005b8581101561107a57611067838888848181106110345761103461317d565b90506020020160208101906110499190613041565b87878581811061105b5761105b61317d565b90506020020135611fc5565b5080611072816131c4565b915050611016565b50505050505050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611130576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461110b918490612099565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61113b8484846120d3565b90505b9392505050565b600080546001600160a01b031633146111705760405162461bcd60e51b8152600401610a74906131dd565b60c88211156111d35760405162461bcd60e51b815260206004820152602960248201527f4d6179206e6f74206e756b65206d6f7265207468616e203225206f6620746f6b6044820152680656e7320696e204c560bc1b6064820152608401610a74565b6016546111e29061012c613331565b421161121b5760405162461bcd60e51b81526020600482015260086024820152672a37b79039b7b7b760c11b6044820152606401610a74565b601754610100900460ff166112675760405162461bcd60e51b8152602060048201526012602482015271109d5c9b9cc8185c9948191a5cd8589b195960721b6044820152606401610a74565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd16600482015260009030906370a0823190602401602060405180830381865afa1580156112ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f29190613349565b9050600061130c6127106113068487612477565b906124f9565b905080156113b4576113417f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd61dead83611fc5565b50601560009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561139257600080fd5b505af11580156113a6573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5490919061141e6009600a6132e1565b61142f9066038d7ea4c680006132f0565b6114399190613362565b6114439190613362565b905090565b61145133611fa7565b61146d5760405162461bcd60e51b8152600401610a7490613113565b6101f5821061148e5760405162461bcd60e51b8152600401610a7490613138565b60005b82811015610b6c5781600860008686858181106114b0576114b061317d565b90506020020160208101906114c59190613041565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e38484838181106115205761152061317d565b90506020020160208101906115359190613041565b83604051611544929190613193565b60405180910390a1611555816131c4565b9050611491565b6000610de482600019610d7d565b61157333611fa7565b61158f5760405162461bcd60e51b8152600401610a7490613113565b600f829055601083905560118190556115a661253b565b505050565b600080546001600160a01b031633146115d65760405162461bcd60e51b8152600401610a74906131dd565b306001600160a01b0384160361162e5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e000000006044820152606401610a74565b7f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd6001600160a01b0316836001600160a01b0316036116ba57601854611678906302932e00613331565b42116116ba5760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b6044820152606401610a74565b8160000361172d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190613349565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156117bc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190613379565b6001546001600160a01b031633146118715760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610a74565b600080546001600160a01b03908116825260026020526040808320805460ff199081169091556001805484168552828520805490921617905582549051600080516020613456833981519152936118cd93929092169190613193565b60405180910390a160018054604051600080516020613456833981519152926118ff926001600160a01b031691613193565b60405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390602001610e9e565b6000546001600160a01b0316331461198a5760405162461bcd60e51b8152600401610a74906131dd565b6001600160a01b0382166119f55760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610a74565b6001600160a01b038116611a5b5760405162461bcd60e51b815260206004820152602760248201527f5465616d2066656520616464726573732063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610a74565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b600061113e3384846120d3565b6000546001600160a01b03163314611b015760405162461bcd60e51b8152600401610a74906131dd565b6001600160a01b03811660009081526002602052604090819020805460ff19166001908117909155905160008051602061345683398151915291610d7291849190613193565b6000546001600160a01b03163314611b715760405162461bcd60e51b8152600401610a74906131dd565b6005811015611bd45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b6064820152608401610a74565b6103e881611be46009600a6132e1565b611bf59066038d7ea4c680006132f0565b611bff91906132f0565b611c09919061330f565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610d72565b6000546001600160a01b03163314611c685760405162461bcd60e51b8152600401610a74906131dd565b600a611c756009826132e1565b611c869066038d7ea4c680006132f0565b611c90919061330f565b8110611cd05760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610a74565b6019805460ff1916831515908117909155601a8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d09101611abe565b6000546001600160a01b03163314611d4b5760405162461bcd60e51b8152600401610a74906131dd565b600a849055600b839055600c829055600d8190558082611d6b8587613331565b611d759190613331565b611d7f9190613331565b600e55610b6c61253b565b6000546001600160a01b03163314611db45760405162461bcd60e51b8152600401610a74906131dd565b6000546001600160a01b0390811690821603611e125760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a74565b6001600160a01b038116600090815260026020526040808220805460ff191690555160008051602061345683398151915291610d7291849190613193565b6000546001600160a01b03163314611e7a5760405162461bcd60e51b8152600401610a74906131dd565b6000546001600160a01b0390811690821603611ecc5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610a74565b6001600160a01b038116611f225760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610a74565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef22290602001610d72565b6000546001600160a01b03163314611f9a5760405162461bcd60e51b8152600401610a74906131dd565b6017805461ff0019169055565b6001600160a01b031660009081526002602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054612016918490612099565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461204590836127a2565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020613436833981519152906120879086815260200190565b60405180910390a35060019392505050565b600081848411156120bd5760405162461bcd60e51b8152600401610a749190612ee5565b5060006120ca8486613362565b95945050505050565b601b5460009060ff16156120f3576120ec848484611fc5565b905061113e565b6001600160a01b03841660009081526002602052604090205460ff1615801561213557506001600160a01b03831660009081526002602052604090205460ff16155b156121835760175460ff166121835760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a74565b6001600160a01b03841660009081526002602052604090205460ff161580156121c557506001600160a01b03841660009081526009602052604090205460ff16155b80156121ea57506001600160a01b03831660009081526009602052604090205460ff16155b801561222857507f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd6001600160a01b0316836001600160a01b031614155b156122a2576004546001600160a01b038416600090815260056020526040902054612254908490613331565b11156122a25760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a74565b600354821115806122cb57506001600160a01b03841660009081526008602052604090205460ff165b806122ee57506001600160a01b03831660009081526008602052604090205460ff165b6123325760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a74565b61233a612801565b156123475761234761286d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054612399918490612099565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16806123e657506001600160a01b03841660009081526007602052604090205460ff165b6123fa576123f5858486612ba8565b6123fc565b825b6001600160a01b03851660009081526005602052604090205490915061242290826127a2565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020613436833981519152906124649085815260200190565b60405180910390a3506001949350505050565b60008260000361248957506000610de4565b600061249583856132f0565b9050826124a2858361330f565b1461113e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a74565b600061113e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612dc1565b60c86125596064611306601054600e5461247790919063ffffffff16565b11156125a75760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20323025006044820152606401610a74565b60b46125c56064611306600f54600e5461247790919063ffffffff16565b11156126135760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203138256044820152606401610a74565b61017c6126376064611306601054600f5461262e9190613331565b600e5490612477565b11156126915760405162461bcd60e51b8152602060048201526024808201527f4275792b53656c6c207461782063616e6e6f74206265206d6f7265207468616e6044820152632033382560e01b6064820152608401610a74565b60326126af6064611306601154600e5461247790919063ffffffff16565b11156127095760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e60448201526220352560e81b6064820152608401610a74565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada6127466064611306601054600e5461247790919063ffffffff16565b6127626064611306600f54600e5461247790919063ffffffff16565b61277e6064611306601154600e5461247790919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610e9e565b6000806127af8385613331565b90508381101561113e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a74565b6000336001600160a01b037f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd161480159061283f5750601b5460ff16155b801561284d575060195460ff165b8015611443575050601a5430600090815260056020526040902054101590565b601b805460ff19166001179055600d54600e5460009161288c91613362565b9050600061289b8260026132f0565b600a54601a546128ab91906132f0565b6128b5919061330f565b9050600081601a546128c79190613362565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106129015761290161317d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106129555761295561317d565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061299b908590600090869030904290600401613396565b600060405180830381600087803b1580156129b557600080fd5b505af11580156129c9573d6000803e3d6000fd5b5050600a544792506129de915060029061330f565b6129e89086613362565b945060006129f78660026132f0565b600a54612a0490846132f0565b612a0e919061330f565b9050600086600b5484612a2191906132f0565b612a2b919061330f565b9050600087600c5485612a3e91906132f0565b612a48919061330f565b6012546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015612a83573d6000803e3d6000fd5b506013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612abe573d6000803e3d6000fd5b508615612b945760145460405163f305d71960e01b81523060048201819052602482018a9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015612b32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b579190613407565b505060408051858152602081018a90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff19169055505050505050565b6000821580612bb75750600e54155b15612bc357508161113e565b6011546001600160a01b037f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd811690841603612c025750600f54612c40565b7f00000000000000000000000091f410031820b6cc0ea748dfa5f3ebdaf95732bd6001600160a01b0316856001600160a01b031603612c4057506010545b6000612c71612c526103e860646132f0565b61130684612c6b600e548a61247790919063ffffffff16565b90612477565b90506000612c90600e54611306600d548561247790919063ffffffff16565b90506000612c9e8383612def565b90508015612d085730600090815260056020526040902054612cc090826127a2565b30600081815260056020526040908190209290925590516001600160a01b038a169060008051602061343683398151915290612cff9085815260200190565b60405180910390a35b8115612dab5761dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54612d4590836127a2565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b038a169060008051602061343683398151915290612da29086815260200190565b60405180910390a35b612db58784612def565b98975050505050505050565b60008183612de25760405162461bcd60e51b8152600401610a749190612ee5565b5060006120ca848661330f565b600061113e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612099565b60008083601f840112612e4357600080fd5b50813567ffffffffffffffff811115612e5b57600080fd5b6020830191508360208260051b8501011115612e7657600080fd5b9250929050565b8015158114612e8b57600080fd5b50565b600080600060408486031215612ea357600080fd5b833567ffffffffffffffff811115612eba57600080fd5b612ec686828701612e31565b9094509250506020840135612eda81612e7d565b809150509250925092565b600060208083528351808285015260005b81811015612f1257858101830151858201604001528201612ef6565b81811115612f24576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612f4c57600080fd5b5035919050565b6001600160a01b0381168114612e8b57600080fd5b60008060408385031215612f7b57600080fd5b8235612f8681612f53565b946020939093013593505050565b60008060008060408587031215612faa57600080fd5b843567ffffffffffffffff80821115612fc257600080fd5b612fce88838901612e31565b90965094506020870135915080821115612fe757600080fd5b50612ff487828801612e31565b95989497509550505050565b60008060006060848603121561301557600080fd5b833561302081612f53565b9250602084013561303081612f53565b929592945050506040919091013590565b60006020828403121561305357600080fd5b813561113e81612f53565b60008060006060848603121561307357600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561309d57600080fd5b82356130a881612f53565b915060208301356130b881612f53565b809150509250929050565b600080604083850312156130d657600080fd5b8235612f8681612e7d565b600080600080608085870312156130f757600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b600052601160045260246000fd5b6000600182016131d6576131d66131ae565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b8085111561323857816000190482111561321e5761321e6131ae565b8085161561322b57918102915b93841c9390800290613202565b509250929050565b60008261324f57506001610de4565b8161325c57506000610de4565b8160018114613272576002811461327c57613298565b6001915050610de4565b60ff84111561328d5761328d6131ae565b50506001821b610de4565b5060208310610133831016604e8410600b84101617156132bb575081810a610de4565b6132c583836131fd565b80600019048211156132d9576132d96131ae565b029392505050565b600061113e60ff841683613240565b600081600019048311821515161561330a5761330a6131ae565b500290565b60008261332c57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115613344576133446131ae565b500190565b60006020828403121561335b57600080fd5b5051919050565b600082821015613374576133746131ae565b500390565b60006020828403121561338b57600080fd5b815161113e81612e7d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133e65784516001600160a01b0316835293830193918301916001016133c1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561341c57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a2646970667358221220b9271bc257afe00b1a834452f3d1074e978abc473af068e661b9ae9a718ff19964736f6c634300080f0033

Deployed Bytecode Sourcemap

5748:14904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16044:373;;;;;;;;;;-1:-1:-1;16044:373:0;;;;;:::i;:::-;;:::i;:::-;;15315:353;;;;;;;;;;-1:-1:-1;15315:353:0;;;;;:::i;:::-;;:::i;7387:49::-;;;;;;;;;;;;;;;;;;;1226:25:1;;;1214:2;1199:18;7387:49:0;;;;;;;;6004:45;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6004:45:0;;;;;;;;;;;;:::i;9586:309::-;;;;;;;;;;-1:-1:-1;9586:309:0;;;;;:::i;:::-;;:::i;8690:216::-;;;;;;;;;;-1:-1:-1;8690:216:0;;;;;:::i;:::-;;:::i;:::-;;;2670:14:1;;2663:22;2645:41;;2633:2;2618:18;8690:216:0;2505:187:1;13560:224:0;;;;;;;;;;;;;:::i;6856:45::-;;;;;;;;;;;;6897:4;6856:45;;6144:71;;;;;;;;;;;;;:::i;6773:76::-;;;;;;;;;;;;;;;;18676:633;;;;;;;;;;-1:-1:-1;18676:633:0;;;;;:::i;:::-;;:::i;9208:370::-;;;;;;;;;;-1:-1:-1;9208:370:0;;;;;:::i;:::-;;:::i;19313:547::-;;;;;;;;;;-1:-1:-1;19313:547:0;;;;;:::i;:::-;;:::i;18533:137::-;;;;;;;;;;;;;:::i;3854:103::-;;;;;;;;;;-1:-1:-1;3854:103:0;;;;;:::i;:::-;3909:4;3944:5;-1:-1:-1;;;;;3933:16:0;;;3944:5;;3933:16;;3854:103;6101:34;;;;;;;;;;;;6134:1;6101:34;;;;;4360:4:1;4348:17;;;4330:36;;4318:2;4303:18;6101:34:0;4188:184:1;6459:44:0;;;;;;;;;;-1:-1:-1;6459:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15676:360;;;;;;;;;;-1:-1:-1;15676:360:0;;;;;:::i;:::-;;:::i;7171:31::-;;;;;;;;;;-1:-1:-1;7171:31:0;;;;-1:-1:-1;;;;;7171:31:0;;;;;;-1:-1:-1;;;;;4560:32:1;;;4542:51;;4530:2;4515:18;7171:31:0;4377:222:1;8914:122:0;;;;;;;;;;-1:-1:-1;8914:122:0;;;;;:::i;:::-;;:::i;7279:30::-;;;;;;;;;;-1:-1:-1;7279:30:0;;;;;;;;;;;7209:23;;;;;;;;;;;;;;;;6664:33;;;;;;;;;;;;;;;;17106:225;;;;;;;;;;-1:-1:-1;17106:225:0;;;;;:::i;:::-;;:::i;7350:30::-;;;;;;;;;;-1:-1:-1;7350:30:0;;;;;;;;6337:45;;;;;;;;;;-1:-1:-1;6337:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;12982:547;;;;;;;;;;-1:-1:-1;12982:547:0;;;;;:::i;:::-;;:::i;6278:50::-;;;;;;;;;;;;;;;;4351:472;;;;;;;;;;;;;:::i;6224:47::-;;;;;;;;;;;;;;;;8465:78;;;;;;;;;;-1:-1:-1;8517:7:0;8535:5;-1:-1:-1;;;;;8535:5:0;8465:78;;6510:48;;;;;;;;;;-1:-1:-1;6510:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6056:38;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6056:38:0;;;;;6626:31;;;;;;;;;;;;;;;;17738:488;;;;;;;;;;-1:-1:-1;17738:488:0;;;;;:::i;:::-;;:::i;7133:29::-;;;;;;;;;;;;;;;9044:156;;;;;;;;;;-1:-1:-1;9044:156:0;;;;;:::i;:::-;;:::i;3496:138::-;;;;;;;;;;-1:-1:-1;3496:138:0;;;;;:::i;:::-;;:::i;7060:33::-;;;;;;;;;;-1:-1:-1;7060:33:0;;;;-1:-1:-1;;;;;7060:33:0;;;9901:313;;;;;;;;;;-1:-1:-1;9901:313:0;;;;;:::i;:::-;;:::i;7316:25::-;;;;;;;;;;;;;;;;6704:29;;;;;;;;;;;;;;;;6565:52;;;;;;;;;;-1:-1:-1;6565:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8549:133;;;;;;;;;;-1:-1:-1;8549:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8651:19:0;;;8633:7;8651:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8549:133;18234:287;;;;;;;;;;-1:-1:-1;18234:287:0;;;;;:::i;:::-;;:::i;7018:35::-;;;;;;;;;;-1:-1:-1;7018:35:0;;;;-1:-1:-1;;;;;7018:35:0;;;17339:391;;;;;;;;;;-1:-1:-1;17339:391:0;;;;;:::i;:::-;;:::i;3642:204::-;;;;;;;;;;-1:-1:-1;3642:204:0;;;;;:::i;:::-;;:::i;4080:263::-;;;;;;;;;;-1:-1:-1;4080:263:0;;;;;:::i;:::-;;:::i;7102:24::-;;;;;;;;;;-1:-1:-1;7102:24:0;;;;-1:-1:-1;;;;;7102:24:0;;;13792:81;;;;;;;;;;;;;:::i;6740:26::-;;;;;;;;;;;;;;;;3965:107;;;;;;;;;;-1:-1:-1;3965:107:0;;;;;:::i;:::-;;:::i;7241:31::-;;;;;;;;;;-1:-1:-1;7241:31:0;;;;;;;;16044:373;3437:24;3450:10;3437:12;:24::i;:::-;3429:48;;;;-1:-1:-1;;;3429:48:0;;;;;;;:::i;:::-;;;;;;;;;16179:3:::1;16160:22:::0;::::1;16152:71;;;;-1:-1:-1::0;;;16152:71:0::1;;;;;;;:::i;:::-;16239:9;16234:176;16252:20:::0;;::::1;16234:176;;;16330:6;16294:19;:33;16314:9;;16324:1;16314:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16294:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16294:33:0;:42;;-1:-1:-1;;16294:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16356::::1;16377:9:::0;;16387:1;16377:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16391:6;16356:42;;;;;;;:::i;:::-;;;;;;;;16274:3;::::0;::::1;:::i;:::-;;;16234:176;;;;16044:373:::0;;;:::o;15315:353::-;3437:24;3450:10;3437:12;:24::i;:::-;3429:48;;;;-1:-1:-1;;;3429:48:0;;;;;;;:::i;:::-;15442:3:::1;15423:22:::0;::::1;15415:71;;;;-1:-1:-1::0;;;15415:71:0::1;;;;;;;:::i;:::-;15502:9;15497:164;15515:20:::0;;::::1;15497:164;;;15585:6;15557:11;:25;15569:9;;15579:1;15569:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15557:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15557:25:0;:34;;-1:-1:-1;;15557:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15611:38:::1;15628:9:::0;;15638:1;15628:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15642:6;15611:38;;;;;;;:::i;:::-;;;;;;;;15537:3;::::0;::::1;:::i;:::-;;;15497:164;;9586:309:::0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;9722:2:::1;9695:23;:29;;9687:75;;;::::0;-1:-1:-1;;;9687:75:0;;8691:2:1;9687:75:0::1;::::0;::::1;8673:21:1::0;8730:2;8710:18;;;8703:30;8769:34;8749:18;;;8742:62;-1:-1:-1;;;8820:18:1;;;8813:32;8862:19;;9687:75:0::1;8489:398:1::0;9687:75:0::1;9834:4;9806:23:::0;6203:12:::1;6134:1;6203:2;:12;:::i;:::-;6182:33;::::0;:18:::1;:33;:::i;:::-;9792:37;;;;:::i;:::-;9791:47;;;;:::i;:::-;9773:15;:65:::0;;;9854:33:::1;::::0;1226:25:1;;;9854:33:0::1;::::0;1214:2:1;1199:18;9854:33:0::1;;;;;;;;9586:309:::0;:::o;8690:216::-;8794:10;8765:4;8782:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8782:32:0;;;;;;;;;;:41;;;8839:37;8765:4;;8782:32;;8839:37;;;;8817:6;1226:25:1;;1214:2;1199:18;;1080:177;8839:37:0;;;;;;;;-1:-1:-1;8894:4:0;8690:216;;;;;:::o;13560:224::-;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;13624:11:::1;::::0;::::1;;13623:12;13615:44;;;::::0;-1:-1:-1;;;13615:44:0;;10872:2:1;13615:44:0::1;::::0;::::1;10854:21:1::0;10911:2;10891:18;;;10884:30;-1:-1:-1;;;10930:18:1;;;10923:50;10990:18;;13615:44:0::1;10670:344:1::0;13615:44:0::1;13670:11;:18:::0;;-1:-1:-1;;13670:18:0::1;13684:4;13670:18:::0;;::::1;::::0;;;13712:15:::1;13699:10;:28:::0;13743:33:::1;::::0;2645:41:1;;;13743:33:0::1;::::0;2633:2:1;2618:18;13743:33:0::1;;;;;;;;13560:224::o:0;6144:71::-;6203:12;6134:1;6203:2;:12;:::i;:::-;6182:33;;:18;:33;:::i;:::-;6144:71;:::o;18676:633::-;18792:10;18780:23;;;;:11;:23;;;;;;;;18772:32;;;;;;18826:10;18872:3;18853:22;;18845:71;;;;-1:-1:-1;;;18845:71:0;;;;;;;:::i;:::-;18931:33;;;18923:85;;;;-1:-1:-1;;;18923:85:0;;11221:2:1;18923:85:0;;;11203:21:1;11260:2;11240:18;;;11233:30;11299:34;11279:18;;;11272:62;-1:-1:-1;;;11350:18:1;;;11343:38;11398:19;;18923:85:0;11019:404:1;18923:85:0;19017:12;19046:6;19042:82;19056:20;;;19042:82;;;19107:6;;19114:1;19107:9;;;;;;;:::i;:::-;;;;;;;19100:4;:16;;;;:::i;:::-;19093:23;-1:-1:-1;19078:3:0;;;;:::i;:::-;;;;19042:82;;;-1:-1:-1;;;;;;19140:15:0;;;;;;:9;:15;;;;;;:23;-1:-1:-1;19140:23:0;19132:63;;;;-1:-1:-1;;;19132:63:0;;11763:2:1;19132:63:0;;;11745:21:1;11802:2;11782:18;;;11775:30;11841:29;11821:18;;;11814:57;11888:18;;19132:63:0;11561:351:1;19132:63:0;19208:6;19204:102;19218:20;;;19204:102;;;19255:43;19270:4;19275:9;;19285:1;19275:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19288:6;;19295:1;19288:9;;;;;;;:::i;:::-;;;;;;;19255:14;:43::i;:::-;-1:-1:-1;19240:3:0;;;;:::i;:::-;;;;19204:102;;;;18765:544;;18676:633;;;;:::o;9208:370::-;-1:-1:-1;;;;;9328:19:0;;9308:4;9328:19;;;:11;:19;;;;;;;;9348:10;9328:31;;;;;;;;-1:-1:-1;;9328:52:0;9325:186;;9430:69;;;;;;;;;;;-1:-1:-1;;;9430:69:0;;;;;;;;-1:-1:-1;;;;;9430:19:0;;-1:-1:-1;9430:19:0;;;:11;:19;;;;;9450:10;9430:31;;;;;;;;;;:69;;9466:6;;9430:35;:69::i;:::-;-1:-1:-1;;;;;9396:19:0;;;;;;:11;:19;;;;;;;;9416:10;9396:31;;;;;;;:103;9325:186;9530:40;9544:6;9552:9;9563:6;9530:13;:40::i;:::-;9523:47;;9208:370;;;;;;:::o;19313:547::-;19385:4;3944:5;;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;19426:3:::1;19405:17;:24;;19397:78;;;::::0;-1:-1:-1;;;19397:78:0;;12119:2:1;19397:78:0::1;::::0;::::1;12101:21:1::0;12158:2;12138:18;;;12131:30;12197:34;12177:18;;;12170:62;-1:-1:-1;;;12248:18:1;;;12241:39;12297:19;;19397:78:0::1;11917:405:1::0;19397:78:0::1;19508:8;::::0;:20:::1;::::0;19519:9:::1;19508:20;:::i;:::-;19490:15;:38;19482:59;;;::::0;-1:-1:-1;;;19482:59:0;;12529:2:1;19482:59:0::1;::::0;::::1;12511:21:1::0;12568:1;12548:18;;;12541:29;-1:-1:-1;;;12586:18:1;;;12579:38;12634:18;;19482:59:0::1;12327:331:1::0;19482:59:0::1;19556:11;::::0;::::1;::::0;::::1;;;19548:41;;;::::0;-1:-1:-1;;;19548:41:0;;12865:2:1;19548:41:0::1;::::0;::::1;12847:21:1::0;12904:2;12884:18;;;12877:30;-1:-1:-1;;;12923:18:1;;;12916:48;12981:18;;19548:41:0::1;12663:342:1::0;19548:41:0::1;19618:20;::::0;-1:-1:-1;;;19618:20:0;;-1:-1:-1;;;;;19633:4:0::1;4560:32:1::0;19618:20:0::1;::::0;::::1;4542:51:1::0;19598:17:0::1;::::0;19618:4:::1;::::0;:14:::1;::::0;4515:18:1;;19618:20:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19598:40:::0;-1:-1:-1;19645:15:0::1;19663:44;19700:6;19663:32;19598:40:::0;19677:17;19663:13:::1;:32::i;:::-;:36:::0;::::1;:44::i;:::-;19645:62:::0;-1:-1:-1;19720:11:0;;19716:120:::1;;19743:33;19758:4;5880:42;19768:7;19743:14;:33::i;:::-;;19787:12;;;;;;;;;-1:-1:-1::0;;;;;19787:12:0::1;-1:-1:-1::0;;;;;19787:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19824:4:0::1;::::0;19313:547;-1:-1:-1;;;;;;;19313:547:0:o;19716:120::-:1;-1:-1:-1::0;19851:5:0::1;::::0;19313:547;-1:-1:-1;;;19313:547:0:o;18533:137::-;18646:9;:15;;;;5880:42;18586:7;18628:15;;;;;18586:7;;18646:15;6203:12;6134:1;6203:2;:12;:::i;:::-;6182:33;;:18;:33;:::i;:::-;18614:29;;;;:::i;:::-;:47;;;;:::i;:::-;18606:56;;18533:137;:::o;15676:360::-;3437:24;3450:10;3437:12;:24::i;:::-;3429:48;;;;-1:-1:-1;;;3429:48:0;;;;;;;:::i;:::-;15807:3:::1;15788:22:::0;::::1;15780:71;;;;-1:-1:-1::0;;;15780:71:0::1;;;;;;;:::i;:::-;15867:9;15862:167;15880:20:::0;;::::1;15862:167;;;15954:6;15922:15;:29;15938:9;;15948:1;15938:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15922:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15922:29:0;:38;;-1:-1:-1;;15922:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15980:37:::1;15996:9:::0;;16006:1;15996:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16010:6;15980:37;;;;;;;:::i;:::-;;;;;;;;15902:3;::::0;::::1;:::i;:::-;;;15862:167;;8914:122:::0;8969:4;8993:35;9001:7;-1:-1:-1;;8993:7:0;:35::i;17106:225::-;3437:24;3450:10;3437:12;:24::i;:::-;3429:48;;;;-1:-1:-1;;;3429:48:0;;;;;;;:::i;:::-;17206:14:::1;:22:::0;;;17239:13:::1;:20:::0;;;17270:18:::1;:27:::0;;;17310:13:::1;:11;:13::i;:::-;17106:225:::0;;;:::o;12982:547::-;13073:12;3944:5;;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;13130:4:::1;-1:-1:-1::0;;;;;13106:29:0;::::1;::::0;13098:69:::1;;;::::0;-1:-1:-1;;;13098:69:0;;13531:2:1;13098:69:0::1;::::0;::::1;13513:21:1::0;13570:2;13550:18;;;13543:30;13609;13589:18;;;13582:58;13657:18;;13098:69:0::1;13329:352:1::0;13098:69:0::1;13197:4;-1:-1:-1::0;;;;;13181:20:0::1;:12;-1:-1:-1::0;;;;;13181:20:0::1;::::0;13178:119:::1;;13243:10;::::0;:21:::1;::::0;13256:8:::1;13243:21;:::i;:::-;13225:15;:39;13217:68;;;::::0;-1:-1:-1;;;13217:68:0;;13888:2:1;13217:68:0::1;::::0;::::1;13870:21:1::0;13927:2;13907:18;;;13900:30;-1:-1:-1;;;13946:18:1;;;13939:47;14003:18;;13217:68:0::1;13686:341:1::0;13217:68:0::1;13312:6;13322:1;13312:11:::0;13309:95:::1;;13348:44;::::0;-1:-1:-1;;;13348:44:0;;13386:4:::1;13348:44;::::0;::::1;4542:51:1::0;-1:-1:-1;;;;;13348:29:0;::::1;::::0;::::1;::::0;4515:18:1;;13348:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13339:53;;13309:95;13421:32;::::0;;-1:-1:-1;;;;;14224:32:1;;14206:51;;14288:2;14273:18;;14266:34;;;13421:32:0::1;::::0;14179:18:1;13421:32:0::1;;;;;;;13473:48;::::0;-1:-1:-1;;;13473:48:0;;13502:10:::1;13473:48;::::0;::::1;14206:51:1::0;14273:18;;;14266:34;;;-1:-1:-1;;;;;13473:28:0;::::1;::::0;::::1;::::0;14179:18:1;;13473:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4351:472::-:0;4420:14;;-1:-1:-1;;;;;4420:14:0;4406:10;:28;4398:113;;;;-1:-1:-1;;;4398:113:0;;14763:2:1;4398:113:0;;;14745:21:1;14802:2;14782:18;;;14775:30;14841:34;14821:18;;;14814:62;14912:34;14892:18;;;14885:62;-1:-1:-1;;;14963:19:1;;;14956:39;15012:19;;4398:113:0;14561:476:1;4398:113:0;4546:5;4537;;-1:-1:-1;;;;;4537:5:0;;;4522:21;;:14;:21;;;;;;:29;;-1:-1:-1;;4522:29:0;;;;;;4537:5;4577:14;;;;4562:30;;;;;:37;;;;;;;;4634:5;;4617:29;;-1:-1:-1;;;;;;;;;;;4617:29:0;;;4634:5;;;;;4546;4617:29;:::i;:::-;;;;;;;;4679:14;;;4662:37;;-1:-1:-1;;;;;;;;;;;4662:37:0;;;-1:-1:-1;;;;;4679:14:0;;4662:37;:::i;:::-;;;;;;;;4720:14;;;;4712:22;;-1:-1:-1;;;;;4720:14:0;;-1:-1:-1;;;;;;4712:22:0;;;;;;;;4745:27;;;;;;4788;;4542:51:1;;;4788:27:0;;4530:2:1;4515:18;4788:27:0;4377:222:1;17738:488:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17861:35:0;::::1;17853:91;;;::::0;-1:-1:-1;;;17853:91:0;;15244:2:1;17853:91:0::1;::::0;::::1;15226:21:1::0;15283:2;15263:18;;;15256:30;15322:34;15302:18;;;15295:62;-1:-1:-1;;;15373:18:1;;;15366:42;15425:19;;17853:91:0::1;15042:408:1::0;17853:91:0::1;-1:-1:-1::0;;;;;17963:33:0;::::1;17955:84;;;::::0;-1:-1:-1;;;17955:84:0;;15657:2:1;17955:84:0::1;::::0;::::1;15639:21:1::0;15696:2;15676:18;;;15669:30;15735:34;15715:18;;;15708:62;-1:-1:-1;;;15786:18:1;;;15779:37;15833:19;;17955:84:0::1;15455:403:1::0;17955:84:0::1;18052:20;:44:::0;;-1:-1:-1;;;;;18052:44:0;;::::1;-1:-1:-1::0;;;;;;18052:44:0;;::::1;::::0;::::1;::::0;;;18107:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;18165:53:::1;::::0;;16075:34:1;;;16140:2;16125:18;;16118:43;;;;18165:53:0::1;::::0;16010:18:1;18165:53:0::1;;;;;;;;17738:488:::0;;:::o;9044:156::-;9124:4;9148:44;9162:10;9174:9;9185:6;9148:13;:44::i;3496:138::-;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3558:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;:26;;-1:-1:-1;;3558:26:0::1;3580:4;3558:26:::0;;::::1;::::0;;;3600;;-1:-1:-1;;;;;;;;;;;3600:26:0;::::1;::::0;3573:3;;3580:4;3600:26:::1;:::i;9901:313::-:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;10035:1:::1;10007:24;:29;;9999:82;;;::::0;-1:-1:-1;;;9999:82:0;;16374:2:1;9999:82:0::1;::::0;::::1;16356:21:1::0;16413:2;16393:18;;;16386:30;16452:34;16432:18;;;16425:62;-1:-1:-1;;;16503:18:1;;;16496:39;16552:19;;9999:82:0::1;16172:405:1::0;9999:82:0::1;10151:4;10122:24:::0;6203:12:::1;6134:1;6203:2;:12;:::i;:::-;6182:33;::::0;:18:::1;:33;:::i;:::-;10108:38;;;;:::i;:::-;10107:48;;;;:::i;:::-;10092:12;:63:::0;;;10171:35:::1;::::0;1226:25:1;;;10171:35:0::1;::::0;1214:2:1;1199:18;10171:35:0::1;1080:177:1::0;18234:287:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;18356:2:::1;6203:12;6134:1;18356:2:::0;6203:12:::1;:::i;:::-;6182:33;::::0;:18:::1;:33;:::i;:::-;18344:14;;;;:::i;:::-;18333:7;:26;18325:54;;;::::0;-1:-1:-1;;;18325:54:0;;16784:2:1;18325:54:0::1;::::0;::::1;16766:21:1::0;16823:2;16803:18;;;16796:30;-1:-1:-1;;;16842:18:1;;;16835:45;16897:18;;18325:54:0::1;16582:339:1::0;18325:54:0::1;18392:11;:22:::0;;-1:-1:-1;;18392:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18425:13:::1;:23:::0;;;18466:47:::1;::::0;;17094:25:1;;;18392:22:0::1;18501:11:::0;;;17162:14:1;17155:22;17150:2;17135:18;;17128:50;18466:47:0::1;::::0;17067:18:1;18466:47:0::1;16926:258:1::0;17339:391:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;17481:12:::1;:28:::0;;;17520:12:::1;:28:::0;;;17559:10:::1;:24:::0;;;17594:7:::1;:18:::0;;;17604:8;17572:11;17634:29:::1;17535:13:::0;17496;17634:29:::1;:::i;:::-;:43;;;;:::i;:::-;:54;;;;:::i;:::-;17623:8;:65:::0;17709:13:::1;:11;:13::i;3642:204::-:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;3721:5:::1;::::0;-1:-1:-1;;;;;3721:5:0;;::::1;3714:12:::0;;::::1;::::0;3706:51:::1;;;::::0;-1:-1:-1;;;3706:51:0;;17391:2:1;3706:51:0::1;::::0;::::1;17373:21:1::0;17430:2;17410:18;;;17403:30;17469:28;17449:18;;;17442:56;17515:18;;3706:51:0::1;17189:350:1::0;3706:51:0::1;-1:-1:-1::0;;;;;3768:19:0;::::1;3790:5;3768:19:::0;;;:14:::1;:19;::::0;;;;;:27;;-1:-1:-1;;3768:27:0::1;::::0;;3811;-1:-1:-1;;;;;;;;;;;3811:27:0;::::1;::::0;3783:3;;3790:5;3811:27:::1;:::i;4080:263::-:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;4173:5:::1;::::0;-1:-1:-1;;;;;4173:5:0;;::::1;4166:12:::0;;::::1;::::0;4158:42:::1;;;::::0;-1:-1:-1;;;4158:42:0;;17746:2:1;4158:42:0::1;::::0;::::1;17728:21:1::0;17785:2;17765:18;;;17758:30;-1:-1:-1;;;17804:18:1;;;17797:47;17861:18;;4158:42:0::1;17544:341:1::0;4158:42:0::1;-1:-1:-1::0;;;;;4219:17:0;::::1;4211:54;;;::::0;-1:-1:-1;;;4211:54:0;;18092:2:1;4211:54:0::1;::::0;::::1;18074:21:1::0;18131:2;18111:18;;;18104:30;18170:26;18150:18;;;18143:54;18214:18;;4211:54:0::1;17890:348:1::0;4211:54:0::1;4276:14;:20:::0;;-1:-1:-1;;;;;;4276:20:0::1;-1:-1:-1::0;;;;;4276:20:0;::::1;::::0;;::::1;::::0;;;4312:23:::1;::::0;4542:51:1;;;4312:23:0::1;::::0;4530:2:1;4515:18;4312:23:0::1;4377:222:1::0;13792:81:0;3909:4;3944:5;-1:-1:-1;;;;;3944:5:0;3355:10;3933:16;3339:38;;;;-1:-1:-1;;;3339:38:0;;;;;;;:::i;:::-;13846:11:::1;:19:::0;;-1:-1:-1;;13846:19:0::1;::::0;;13792:81::o;3965:107::-;-1:-1:-1;;;;;4045:19:0;4021:4;4045:19;;;:14;:19;;;;;;;;;3965:107::o;11392:330::-;11522:53;;;;;;;;;;;-1:-1:-1;;;11522:53:0;;;;;;;;-1:-1:-1;;;;;11522:17:0;;11485:4;11522:17;;;:9;:17;;;;;;;:53;;11544:6;;11522:21;:53::i;:::-;-1:-1:-1;;;;;11502:17:0;;;;;;;:9;:17;;;;;;:73;;;;11609:20;;;;;;;:32;;11634:6;11609:24;:32::i;:::-;-1:-1:-1;;;;;11586:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11657:35;;;;;;-1:-1:-1;;;;;;;;;;;11657:35:0;;;11685:6;1226:25:1;;1214:2;1199:18;;1080:177;11657:35:0;;;;;;;;-1:-1:-1;11710:4:0;11392:330;;;;;:::o;1521:192::-;1607:7;1643:12;1635:6;;;;1627:29;;;;-1:-1:-1;;;1627:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1667:9:0;1679:5;1683:1;1679;:5;:::i;:::-;1667:17;1521:192;-1:-1:-1;;;;;1521:192:0:o;10222:1158::-;10334:6;;10314:4;;10334:6;;10331:63;;;10350:41;10365:6;10373:9;10384:6;10350:14;:41::i;:::-;10343:48;;;;10331:63;-1:-1:-1;;;;;10410:22:0;;;;;;:14;:22;;;;;;;;10409:23;:53;;;;-1:-1:-1;;;;;;10437:25:0;;;;;;:14;:25;;;;;;;;10436:26;10409:53;10406:127;;;10486:11;;;;10478:43;;;;-1:-1:-1;;;10478:43:0;;18661:2:1;10478:43:0;;;18643:21:1;18700:2;18680:18;;;18673:30;-1:-1:-1;;;18719:18:1;;;18712:50;18779:18;;10478:43:0;18459:344:1;10478:43:0;-1:-1:-1;;;;;10550:22:0;;;;;;:14;:22;;;;;;;;10549:23;:55;;;;-1:-1:-1;;;;;;10577:27:0;;;;;;:19;:27;;;;;;;;10576:28;10549:55;:90;;;;-1:-1:-1;;;;;;10609:30:0;;;;;;:19;:30;;;;;;;;10608:31;10549:90;:111;;;;;10656:4;-1:-1:-1;;;;;10643:17:0;:9;-1:-1:-1;;;;;10643:17:0;;;10549:111;10545:230;;;10720:15;;-1:-1:-1;;;;;10686:20:0;;;;;;:9;:20;;;;;;:29;;10709:6;;10686:29;:::i;:::-;10685:50;;10677:86;;;;-1:-1:-1;;;10677:86:0;;19010:2:1;10677:86:0;;;18992:21:1;19049:2;19029:18;;;19022:30;19088:26;19068:18;;;19061:54;19132:18;;10677:86:0;18808:348:1;10677:86:0;10851:12;;10841:6;:22;;10840:51;;;-1:-1:-1;;;;;;10868:23:0;;;;;;:15;:23;;;;;;;;10840:51;:81;;;-1:-1:-1;;;;;;10895:26:0;;;;;;:15;:26;;;;;;;;10840:81;10832:115;;;;-1:-1:-1;;;10832:115:0;;19363:2:1;10832:115:0;;;19345:21:1;19402:2;19382:18;;;19375:30;-1:-1:-1;;;19421:18:1;;;19414:51;19482:18;;10832:115:0;19161:345:1;10832:115:0;10963:16;:14;:16::i;:::-;10960:35;;;10982:10;:8;:10::i;:::-;11027:53;;;;;;;;;;;-1:-1:-1;;;11027:53:0;;;;;;;;-1:-1:-1;;;;;11027:17:0;;-1:-1:-1;11027:17:0;;;:9;:17;;;;;;;;:53;;11049:6;;11027:21;:53::i;:::-;-1:-1:-1;;;;;11007:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11119:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11142:22:0;;;;;;:11;:22;;;;;;;;11119:45;11118:93;;11177:34;11185:6;11193;11201:9;11177:7;:34::i;:::-;11118:93;;;11168:6;11118:93;-1:-1:-1;;;;;11247:20:0;;;;;;:9;:20;;;;;;11093:118;;-1:-1:-1;11247:40:0;;11093:118;11247:24;:40::i;:::-;-1:-1:-1;;;;;11224:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11307:43;;;;;;-1:-1:-1;;;;;;;;;;;11307:43:0;;;11335:14;1226:25:1;;1214:2;1199:18;;1080:177;11307:43:0;;;;;;;;-1:-1:-1;11368:4:0;;10222:1158;-1:-1:-1;;;;10222:1158:0:o;1719:250::-;1777:7;1801:1;1806;1801:6;1797:47;;-1:-1:-1;1831:1:0;1824:8;;1797:47;1856:9;1868:5;1872:1;1868;:5;:::i;:::-;1856:17;-1:-1:-1;1901:1:0;1892:5;1896:1;1856:17;1892:5;:::i;:::-;:10;1884:56;;;;-1:-1:-1;;;1884:56:0;;19713:2:1;1884:56:0;;;19695:21:1;19752:2;19732:18;;;19725:30;19791:34;19771:18;;;19764:62;-1:-1:-1;;;19842:18:1;;;19835:31;19883:19;;1884:56:0;19511:397:1;1975:132:0;2033:7;2060:39;2064:1;2067;2060:39;;;;;;;;;;;;;;;;;:3;:39::i;16425:673::-;16516:3;16476:36;16508:3;16476:27;16489:13;;16476:8;;:12;;:27;;;;:::i;:36::-;:43;;16468:87;;;;-1:-1:-1;;;16468:87:0;;20115:2:1;16468:87:0;;;20097:21:1;20154:2;20134:18;;;20127:30;20193:33;20173:18;;;20166:61;20244:18;;16468:87:0;19913:355:1;16468:87:0;16615:3;16574:37;16607:3;16574:28;16587:14;;16574:8;;:12;;:28;;;;:::i;:37::-;:44;;16566:89;;;;-1:-1:-1;;;16566:89:0;;20475:2:1;16566:89:0;;;20457:21:1;;;20494:18;;;20487:30;20553:34;20533:18;;;20526:62;20605:18;;16566:89:0;20273:356:1;16566:89:0;16731:3;16674:53;16723:3;16674:44;16704:13;;16687:14;;:30;;;;:::i;:::-;16674:8;;;:12;:44::i;:53::-;:60;;16666:109;;;;-1:-1:-1;;;16666:109:0;;20836:2:1;16666:109:0;;;20818:21:1;20875:2;20855:18;;;20848:30;20914:34;20894:18;;;20887:62;-1:-1:-1;;;20965:18:1;;;20958:34;21009:19;;16666:109:0;20634:400:1;16666:109:0;16839:2;16794:41;16831:3;16794:32;16807:18;;16794:8;;:12;;:32;;;;:::i;:41::-;:47;;16786:95;;;;-1:-1:-1;;;16786:95:0;;21241:2:1;16786:95:0;;;21223:21:1;21280:2;21260:18;;;21253:30;21319:34;21299:18;;;21292:62;-1:-1:-1;;;21370:18:1;;;21363:33;21413:19;;16786:95:0;21039:399:1;16786:95:0;16899:191;16916:36;16948:3;16916:27;16929:13;;16916:8;;:12;;:27;;;;:::i;:36::-;16974:37;17007:3;16974:28;16987:14;;16974:8;;:12;;:28;;;;:::i;:37::-;17033:41;17070:3;17033:32;17046:18;;17033:8;;:12;;:32;;;;:::i;:41::-;16899:191;;;21663:4:1;21651:17;;;21633:36;;21705:17;;;21700:2;21685:18;;21678:45;21759:17;;21739:18;;;21732:45;;;;21621:2;21606:18;16899:191:0;21443:340:1;1192:181:0;1250:7;;1282:5;1286:1;1282;:5;:::i;:::-;1270:17;;1311:1;1306;:6;;1298:46;;;;-1:-1:-1;;;1298:46:0;;21990:2:1;1298:46:0;;;21972:21:1;22029:2;22009:18;;;22002:30;22068:29;22048:18;;;22041:57;22115:18;;1298:46:0;21788:351:1;12777:197:0;12826:4;12850:10;-1:-1:-1;;;;;12864:4:0;12850:18;;;;;:38;;-1:-1:-1;12882:6:0;;;;12881:7;12850:38;:62;;;;-1:-1:-1;12901:11:0;;;;12850:62;:116;;;;-1:-1:-1;;12953:13:0;;12943:4;12925:24;;;;:9;:24;;;;;;:41;;;12777:197::o;13881:1426::-;7483:6;:13;;-1:-1:-1;;7483:13:0;7492:4;7483:13;;;13965:7:::1;::::0;13954:8:::1;::::0;7483:6;;13954:18:::1;::::0;::::1;:::i;:::-;13932:40:::0;-1:-1:-1;13985:23:0::1;14043:15;13932:40:::0;14057:1:::1;14043:15;:::i;:::-;14028:12;;14012:13;;:28;;;;:::i;:::-;14011:48;;;;:::i;:::-;13985:74;;14070:20;14109:15;14093:13;;:31;;;;:::i;:::-;14161:16;::::0;;14175:1:::1;14161:16:::0;;;;;::::1;::::0;;14070:54;;-1:-1:-1;14137:21:0::1;::::0;14161:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14161:16:0::1;14137:40;;14206:4;14188;14193:1;14188:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14188:23:0::1;;;-1:-1:-1::0;;;;;14188:23:0::1;;;::::0;::::1;14232:4;14222;14227:1;14222:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14222:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14249:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14249:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14321:12;;14249:6:::1;::::0;14364:4;;14391::::1;::::0;14411:15:::1;::::0;14249:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14534:12:0::1;::::0;14470:21:::1;::::0;-1:-1:-1;14534:16:0::1;::::0;-1:-1:-1;14549:1:0::1;::::0;14534:16:::1;:::i;:::-;14519:32;::::0;:11;:32:::1;:::i;:::-;14505:46:::0;-1:-1:-1;14572:26:0::1;14631:15;14505:46:::0;14645:1:::1;14631:15;:::i;:::-;14614:12;::::0;14602:24:::1;::::0;:9;:24:::1;:::i;:::-;14601:46;;;;:::i;:::-;14572:75;;14658:26;14716:11;14700:12;;14688:9;:24;;;;:::i;:::-;14687:40;;;;:::i;:::-;14658:69;;14738:21;14789:11;14775:10;;14763:9;:22;;;;:::i;:::-;14762:38;;;;:::i;:::-;14821:20;::::0;14813:58:::1;::::0;14738:62;;-1:-1:-1;;;;;;14821:20:0::1;::::0;14813:58;::::1;;;::::0;14852:18;;14821:20:::1;14813:58:::0;14821:20;14813:58;14852:18;14821:20;14813:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14890:18:0::1;::::0;14882:51:::1;::::0;-1:-1:-1;;;;;14890:18:0;;::::1;::::0;14882:51;::::1;;;::::0;14919:13;;14890:18:::1;14882:51:::0;14890:18;14882:51;14919:13;14890:18;14882:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14949:19:0;;14946:354:::1;;14984:6;::::0;:236:::1;::::0;-1:-1:-1;;;14984:236:0;;15060:4:::1;14984:236;::::0;::::1;23602:34:1::0;;;23652:18;;;23645:34;;;14984:6:0::1;23695:18:1::0;;;23688:34;;;23738:18;;;23731:34;23781:19;;;23774:44;15190:15:0::1;23834:19:1::0;;;23827:35;-1:-1:-1;;;;;14984:6:0;;::::1;::::0;:22:::1;::::0;15014:18;;23536:19:1;;14984:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15240:48:0::1;::::0;;24358:25:1;;;24414:2;24399:18;;24392:34;;;15240:48:0::1;::::0;-1:-1:-1;24331:18:1;15240:48:0::1;;;;;;;14946:354;-1:-1:-1::0;;7501:6:0;:14;;-1:-1:-1;;7501:14:0;;;-1:-1:-1;;;;;;13881:1426:0:o;11730:1039::-;11816:7;11839:11;;;:28;;-1:-1:-1;11854:8:0;;:13;11839:28;11836:72;;;-1:-1:-1;11890:6:0;11883:13;;11836:72;11941:18;;-1:-1:-1;;;;;11988:4:0;11975:17;;;;;;11972:154;;-1:-1:-1;12022:14:0;;11972:154;;;12067:4;-1:-1:-1;;;;;12057:14:0;:6;-1:-1:-1;;;;;12057:14:0;;12054:72;;-1:-1:-1;12101:13:0;;12054:72;12138:17;12158:62;12199:20;6897:4;12216:3;12199:20;:::i;:::-;12158:36;12183:10;12158:20;12169:8;;12158:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;12138:82;;12231:18;12252:36;12279:8;;12252:22;12266:7;;12252:9;:13;;:22;;;;:::i;:36::-;12231:57;-1:-1:-1;12299:22:0;12324:25;:9;12231:57;12324:13;:25::i;:::-;12299:50;-1:-1:-1;12365:18:0;;12362:187;;12444:4;12426:24;;;;:9;:24;;;;;;:44;;12455:14;12426:28;:44::i;:::-;12417:4;12399:24;;;;:9;:24;;;;;;;:71;;;;12490:47;;-1:-1:-1;;;;;12490:47:0;;;-1:-1:-1;;;;;;;;;;;12490:47:0;;;12522:14;1226:25:1;;1214:2;1199:18;;1080:177;12490:47:0;;;;;;;;12362:187;12572:14;;12569:152;;5880:42;12620:15;;:9;:15;;;;:31;;12640:10;12620:19;:31::i;:::-;5880:42;12602:15;;;;:9;:15;;;:49;;;;:15;12671:34;-1:-1:-1;;;;;12671:34:0;;;-1:-1:-1;;;;;;;;;;;12671:34:0;;;12694:10;1226:25:1;;1214:2;1199:18;;1080:177;12671:34:0;;;;;;;;12569:152;12740:21;:6;12751:9;12740:10;:21::i;:::-;12733:28;11730:1039;-1:-1:-1;;;;;;;;11730:1039:0:o;2113:189::-;2199:7;2234:12;2227:5;2219:28;;;;-1:-1:-1;;;2219:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2258:9:0;2270:5;2274:1;2270;:5;:::i;1379:136::-;1437:7;1464:43;1468:1;1471;1464:43;;;;;;;;;;;;;;;;;:3;:43::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:118::-;472:5;465:13;458:21;451:5;448:32;438:60;;494:1;491;484:12;438:60;386:118;:::o;509:566::-;601:6;609;617;670:2;658:9;649:7;645:23;641:32;638:52;;;686:1;683;676:12;638:52;726:9;713:23;759:18;751:6;748:30;745:50;;;791:1;788;781:12;745:50;830:70;892:7;883:6;872:9;868:22;830:70;:::i;:::-;919:8;;-1:-1:-1;804:96:1;-1:-1:-1;;1004:2:1;989:18;;976:32;1017:28;976:32;1017:28;:::i;:::-;1064:5;1054:15;;;509:566;;;;;:::o;1262:597::-;1374:4;1403:2;1432;1421:9;1414:21;1464:6;1458:13;1507:6;1502:2;1491:9;1487:18;1480:34;1532:1;1542:140;1556:6;1553:1;1550:13;1542:140;;;1651:14;;;1647:23;;1641:30;1617:17;;;1636:2;1613:26;1606:66;1571:10;;1542:140;;;1700:6;1697:1;1694:13;1691:91;;;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1691:91;-1:-1:-1;1843:2:1;1822:15;-1:-1:-1;;1818:29:1;1803:45;;;;1850:2;1799:54;;1262:597;-1:-1:-1;;;1262:597:1:o;1864:180::-;1923:6;1976:2;1964:9;1955:7;1951:23;1947:32;1944:52;;;1992:1;1989;1982:12;1944:52;-1:-1:-1;2015:23:1;;1864:180;-1:-1:-1;1864:180:1:o;2049:131::-;-1:-1:-1;;;;;2124:31:1;;2114:42;;2104:70;;2170:1;2167;2160:12;2185:315;2253:6;2261;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2369:9;2356:23;2388:31;2413:5;2388:31;:::i;:::-;2438:5;2490:2;2475:18;;;;2462:32;;-1:-1:-1;;;2185:315:1:o;2697:773::-;2819:6;2827;2835;2843;2896:2;2884:9;2875:7;2871:23;2867:32;2864:52;;;2912:1;2909;2902:12;2864:52;2952:9;2939:23;2981:18;3022:2;3014:6;3011:14;3008:34;;;3038:1;3035;3028:12;3008:34;3077:70;3139:7;3130:6;3119:9;3115:22;3077:70;:::i;:::-;3166:8;;-1:-1:-1;3051:96:1;-1:-1:-1;3254:2:1;3239:18;;3226:32;;-1:-1:-1;3270:16:1;;;3267:36;;;3299:1;3296;3289:12;3267:36;;3338:72;3402:7;3391:8;3380:9;3376:24;3338:72;:::i;:::-;2697:773;;;;-1:-1:-1;3429:8:1;-1:-1:-1;;;;2697:773:1:o;3475:456::-;3552:6;3560;3568;3621:2;3609:9;3600:7;3596:23;3592:32;3589:52;;;3637:1;3634;3627:12;3589:52;3676:9;3663:23;3695:31;3720:5;3695:31;:::i;:::-;3745:5;-1:-1:-1;3802:2:1;3787:18;;3774:32;3815:33;3774:32;3815:33;:::i;:::-;3475:456;;3867:7;;-1:-1:-1;;;3921:2:1;3906:18;;;;3893:32;;3475:456::o;3936:247::-;3995:6;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;4103:9;4090:23;4122:31;4147:5;4122:31;:::i;4604:316::-;4681:6;4689;4697;4750:2;4738:9;4729:7;4725:23;4721:32;4718:52;;;4766:1;4763;4756:12;4718:52;-1:-1:-1;;4789:23:1;;;4859:2;4844:18;;4831:32;;-1:-1:-1;4910:2:1;4895:18;;;4882:32;;4604:316;-1:-1:-1;4604:316:1:o;5133:388::-;5201:6;5209;5262:2;5250:9;5241:7;5237:23;5233:32;5230:52;;;5278:1;5275;5268:12;5230:52;5317:9;5304:23;5336:31;5361:5;5336:31;:::i;:::-;5386:5;-1:-1:-1;5443:2:1;5428:18;;5415:32;5456:33;5415:32;5456:33;:::i;:::-;5508:7;5498:17;;;5133:388;;;;;:::o;5526:309::-;5591:6;5599;5652:2;5640:9;5631:7;5627:23;5623:32;5620:52;;;5668:1;5665;5658:12;5620:52;5707:9;5694:23;5726:28;5748:5;5726:28;:::i;5840:385::-;5926:6;5934;5942;5950;6003:3;5991:9;5982:7;5978:23;5974:33;5971:53;;;6020:1;6017;6010:12;5971:53;-1:-1:-1;;6043:23:1;;;6113:2;6098:18;;6085:32;;-1:-1:-1;6164:2:1;6149:18;;6136:32;;6215:2;6200:18;6187:32;;-1:-1:-1;5840:385:1;-1:-1:-1;5840:385:1:o;6716:335::-;6918:2;6900:21;;;6957:2;6937:18;;;6930:30;-1:-1:-1;;;6991:2:1;6976:18;;6969:41;7042:2;7027:18;;6716:335::o;7056:401::-;7258:2;7240:21;;;7297:2;7277:18;;;7270:30;7336:34;7331:2;7316:18;;7309:62;-1:-1:-1;;;7402:2:1;7387:18;;7380:35;7447:3;7432:19;;7056:401::o;7462:127::-;7523:10;7518:3;7514:20;7511:1;7504:31;7554:4;7551:1;7544:15;7578:4;7575:1;7568:15;7594:284;-1:-1:-1;;;;;7780:32:1;;;;7762:51;;7856:14;7849:22;7844:2;7829:18;;7822:50;7750:2;7735:18;;7594:284::o;7883:127::-;7944:10;7939:3;7935:20;7932:1;7925:31;7975:4;7972:1;7965:15;7999:4;7996:1;7989:15;8015:135;8054:3;8075:17;;;8072:43;;8095:18;;:::i;:::-;-1:-1:-1;8142:1:1;8131:13;;8015:135::o;8155:329::-;8357:2;8339:21;;;8396:1;8376:18;;;8369:29;-1:-1:-1;;;8429:2:1;8414:18;;8407:36;8475:2;8460:18;;8155:329::o;8892:422::-;8981:1;9024:5;8981:1;9038:270;9059:7;9049:8;9046:21;9038:270;;;9118:4;9114:1;9110:6;9106:17;9100:4;9097:27;9094:53;;;9127:18;;:::i;:::-;9177:7;9167:8;9163:22;9160:55;;;9197:16;;;;9160:55;9276:22;;;;9236:15;;;;9038:270;;;9042:3;8892:422;;;;;:::o;9319:806::-;9368:5;9398:8;9388:80;;-1:-1:-1;9439:1:1;9453:5;;9388:80;9487:4;9477:76;;-1:-1:-1;9524:1:1;9538:5;;9477:76;9569:4;9587:1;9582:59;;;;9655:1;9650:130;;;;9562:218;;9582:59;9612:1;9603:10;;9626:5;;;9650:130;9687:3;9677:8;9674:17;9671:43;;;9694:18;;:::i;:::-;-1:-1:-1;;9750:1:1;9736:16;;9765:5;;9562:218;;9864:2;9854:8;9851:16;9845:3;9839:4;9836:13;9832:36;9826:2;9816:8;9813:16;9808:2;9802:4;9799:12;9795:35;9792:77;9789:159;;;-1:-1:-1;9901:19:1;;;9933:5;;9789:159;9980:34;10005:8;9999:4;9980:34;:::i;:::-;10050:6;10046:1;10042:6;10038:19;10029:7;10026:32;10023:58;;;10061:18;;:::i;:::-;10099:20;;9319:806;-1:-1:-1;;;9319:806:1:o;10130:140::-;10188:5;10217:47;10258:4;10248:8;10244:19;10238:4;10217:47;:::i;10275:168::-;10315:7;10381:1;10377;10373:6;10369:14;10366:1;10363:21;10358:1;10351:9;10344:17;10340:45;10337:71;;;10388:18;;:::i;:::-;-1:-1:-1;10428:9:1;;10275:168::o;10448:217::-;10488:1;10514;10504:132;;10558:10;10553:3;10549:20;10546:1;10539:31;10593:4;10590:1;10583:15;10621:4;10618:1;10611:15;10504:132;-1:-1:-1;10650:9:1;;10448:217::o;11428:128::-;11468:3;11499:1;11495:6;11492:1;11489:13;11486:39;;;11505:18;;:::i;:::-;-1:-1:-1;11541:9:1;;11428:128::o;13010:184::-;13080:6;13133:2;13121:9;13112:7;13108:23;13104:32;13101:52;;;13149:1;13146;13139:12;13101:52;-1:-1:-1;13172:16:1;;13010:184;-1:-1:-1;13010:184:1:o;13199:125::-;13239:4;13267:1;13264;13261:8;13258:34;;;13272:18;;:::i;:::-;-1:-1:-1;13309:9:1;;13199:125::o;14311:245::-;14378:6;14431:2;14419:9;14410:7;14406:23;14402:32;14399:52;;;14447:1;14444;14437:12;14399:52;14479:9;14473:16;14498:28;14520:5;14498:28;:::i;22276:980::-;22538:4;22586:3;22575:9;22571:19;22617:6;22606:9;22599:25;22643:2;22681:6;22676:2;22665:9;22661:18;22654:34;22724:3;22719:2;22708:9;22704:18;22697:31;22748:6;22783;22777:13;22814:6;22806;22799:22;22852:3;22841:9;22837:19;22830:26;;22891:2;22883:6;22879:15;22865:29;;22912:1;22922:195;22936:6;22933:1;22930:13;22922:195;;;23001:13;;-1:-1:-1;;;;;22997:39:1;22985:52;;23092:15;;;;23057:12;;;;23033:1;22951:9;22922:195;;;-1:-1:-1;;;;;;;23173:32:1;;;;23168:2;23153:18;;23146:60;-1:-1:-1;;;23237:3:1;23222:19;23215:35;23134:3;22276:980;-1:-1:-1;;;22276:980:1:o;23873:306::-;23961:6;23969;23977;24030:2;24018:9;24009:7;24005:23;24001:32;23998:52;;;24046:1;24043;24036:12;23998:52;24075:9;24069:16;24059:26;;24125:2;24114:9;24110:18;24104:25;24094:35;;24169:2;24158:9;24154:18;24148:25;24138:35;;23873:306;;;;;:::o

Swarm Source

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