ETH Price: $2,379.70 (+2.38%)
Gas: 8.58 Gwei

Token

Koda Inu (KODA)
 

Overview

Max Total Supply

1,000,000,000,000 KODA

Holders

109

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,021,594,453.791557459 KODA

Value
$0.00
0xD3A930B2925D63FaF2E6ECD8795e3Dc215Bb4Ced
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:
KodaInu

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 99999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 5 of 7: KodaInu.sol
// SPDX-License-Identifier: MIT

/*

**/

import './IERC20.sol';
import './SafeMath.sol';
import './Ownable.sol';
import './IUniswapV2Factory.sol';
import './IUniswapV2Router02.sol';

pragma solidity ^0.8.19;

contract KodaInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

    address public uniswapV2Pair;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "Koda Inu";
    string private constant _symbol = "KODA";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal =  1000000000000  * 10**9;

    uint256 public _maxWalletAmount = 20000000000 * 10**9;
    uint256 public _maxTxAmount = 20000000000 * 10**9;

    bool public swapEnabled = true;
    uint256 public swapTokenAtAmount = 20000000000 * 10**9;
    bool public dynamicSwapAmount = true;
    
    uint256 targetLiquidity = 200;
    uint256 targetLiquidityDenominator = 100;

    address public liquidityReceiver;
    address public marketingWallet;
    address public utilityWallet;

    bool public limitsIsActive = true;

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
        uint256 utility;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
        uint256 utility;
    }

    struct FeesDetails{
        uint256 tokenToLiquidity;
        uint256 tokenToMarketing;
        uint256 tokenToutility;
        uint256 liquidityToken;
        uint256 liquidityETH;
        uint256 marketingETH;
        uint256 utilityETH;
    }

    struct LiquidityDetails{
        uint256 targetLiquidity;
        uint256 currentLiquidity;
    }

    BuyFees public buyFeeDetails;
    SellFees public sellFeeDetails;
    FeesDetails public feeDistributionDetails;
    LiquidityDetails public liquidityDetails;

    bool private swapping;
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor (address marketingAddress, address utilityAddress) {
        marketingWallet = marketingAddress;
        utilityWallet = utilityAddress;
        liquidityReceiver = msg.sender;
        balances[address(liquidityReceiver)] = _tTotal;
        
        buyFeeDetails.liquidity = 10;
        buyFeeDetails.marketing = 10;
        buyFeeDetails.utility = 0;

        sellFeeDetails.liquidity = 20;
        sellFeeDetails.marketing = 20;
        sellFeeDetails.utility = 0;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[utilityWallet] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;

        
        emit Transfer(address(0), address(msg.sender), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[address(account)] = excluded;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _tTotal.sub(balanceOf(address(0x00000))).sub(balanceOf(address(0x0dead)));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(address(uniswapV2Pair)).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    receive() external payable {}
    
    function forceSwap(uint256 amount) public onlyOwner {
        swapBack(amount);
    }

    function removeTransactionAndWalletLimits() public onlyOwner {
        limitsIsActive = false;
    }

    function setFees(uint256 setBuyLiquidityFee, uint256 setBuyMarketingFee, uint256 setBuyUtility, uint256 setSellLiquidityFee, uint256 setSellMarketingFee, uint256 setSellUtility) public onlyOwner {
        require(setBuyLiquidityFee + setBuyMarketingFee + setBuyUtility <= 25, "Total buy fee cannot be set higher than 25%.");
        require(setSellLiquidityFee + setSellMarketingFee + setSellUtility<= 25, "Total sell fee cannot be set higher than 25%.");

        buyFeeDetails.liquidity = setBuyLiquidityFee;
        buyFeeDetails.marketing = setBuyMarketingFee;
        buyFeeDetails.utility = setBuyUtility;

        sellFeeDetails.liquidity = setSellLiquidityFee;
        sellFeeDetails.marketing = setSellMarketingFee;
        sellFeeDetails.utility = setSellUtility;
    }

    function setMaxTransactionAmount(uint256 maxTransactionAmount) public onlyOwner {
        require(maxTransactionAmount >= 5000000000, "Max Transaction cannot be set lower than 0.5%.");
        _maxTxAmount = maxTransactionAmount * 10**9;
    }

    function setMaxWalletAmount(uint256 maxWalletAmount) public onlyOwner {
        require(maxWalletAmount >= 10000000000, "Max Wallet cannot be set lower than 1%.");
        _maxWalletAmount = maxWalletAmount * 10**9;
    }

    function setSwapBackSettings(bool enabled, uint256 swapAtAmount, bool dynamicSwap) public onlyOwner {
        require(swapAtAmount <= 40000000000, "SwapTokenAtAmount cannot be set higher than 4%.");
        swapEnabled = enabled;
        swapTokenAtAmount = swapAtAmount * 10**9;
        dynamicSwapAmount = dynamicSwap;
    }

    function setLiquidityWallet(address newLiquidityWallet) public onlyOwner {
        liquidityReceiver = newLiquidityWallet;
    }

    function setMarketingWallet(address newMarketingWallet) public onlyOwner {
        marketingWallet = newMarketingWallet;
    }

    function setutilityWallet(address newutilityWallet) public onlyOwner {
        utilityWallet = newutilityWallet;
    }

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFeeDetails.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFeeDetails.marketing / 100;
        uint256 utilityTokens = amount * buyFeeDetails.utility /100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens + utilityTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken + utilityTokens);
        return (amount -liquidityFeeToken -marketingFeeTokens -utilityTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFeeDetails.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFeeDetails.marketing / 100;
        uint256 utilityTokens = amount * buyFeeDetails.utility /100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens + utilityTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken + utilityTokens);
        return (amount -liquidityFeeToken -marketingFeeTokens -utilityTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        balances[from] -= amount;
        uint256 transferAmount = amount;
        
        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        }

        if(takeFee){
            if(to != uniswapV2Pair && from == uniswapV2Pair){
                if(limitsIsActive) {
                    require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                    require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                }
                transferAmount = takeBuyFees(amount, to);
            }

            if(from != uniswapV2Pair && to == uniswapV2Pair){
                if(limitsIsActive) {
                    require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                }
                transferAmount = takeSellFees(amount, from);

               if (swapEnabled && balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    if(!dynamicSwapAmount || transferAmount >= swapTokenAtAmount) {
                        swapBack(swapTokenAtAmount);
                    } else {
                        swapBack(transferAmount);
                    }
                    swapping = false;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                if(limitsIsActive) {
                    require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                    require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                }
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
   
    function swapBack(uint256 amount) private {
        uint256 swapAmount = amount;
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : (buyFeeDetails.liquidity + sellFeeDetails.liquidity);
        uint256 liquidityTokens = swapAmount * (dynamicLiquidityFee) / (dynamicLiquidityFee + buyFeeDetails.marketing + sellFeeDetails.marketing + buyFeeDetails.utility + sellFeeDetails.utility);
        uint256 marketingTokens = swapAmount * (buyFeeDetails.marketing + sellFeeDetails.marketing) / (dynamicLiquidityFee + buyFeeDetails.marketing + sellFeeDetails.marketing + buyFeeDetails.utility + sellFeeDetails.utility);
        uint256 utilityTokens = swapAmount * (buyFeeDetails.utility + sellFeeDetails.utility) / ( dynamicLiquidityFee + buyFeeDetails.marketing + sellFeeDetails.marketing + buyFeeDetails.utility + sellFeeDetails.utility);
        feeDistributionDetails.tokenToLiquidity += liquidityTokens;
        feeDistributionDetails.tokenToMarketing += marketingTokens;
        feeDistributionDetails.tokenToutility += utilityTokens;

        uint256 totalTokensToSwap = liquidityTokens + marketingTokens + utilityTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        feeDistributionDetails.liquidityToken += tokensForLiquidity;
        uint256 amountToSwapForETH = swapAmount.sub(tokensForLiquidity);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);
        uint256 ethForUtility = ethBalance.mul(utilityTokens).div(totalTokensToSwap);
        feeDistributionDetails.liquidityETH += ethForLiquidity;
        feeDistributionDetails.utilityETH += ethForUtility;

        addLiquidity(tokensForLiquidity, ethForLiquidity);
        feeDistributionDetails.marketingETH += address(this).balance;
        (bool success,) = address(utilityWallet).call{value: ethForUtility}("");
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }

    function withdrawForeignToken(address tokenContract) public onlyOwner {
        IERC20(tokenContract).transfer(address(msg.sender), IERC20(tokenContract).balanceOf(address(this)));
    }
}

File 1 of 7: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

File 2 of 7: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 3 of 7: IUniswapV2Factory.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

File 4 of 7: IUniswapV2Router02.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IUniswapV2Router02 {
    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;

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

File 6 of 7: Ownable.sol
// SPDX-License-Identifier: MIT

import './Context.sol';

pragma solidity ^0.8.19;

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

File 7 of 7: SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"},{"internalType":"address","name":"utilityAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeDetails","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"utility","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dynamicSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDistributionDetails","outputs":[{"internalType":"uint256","name":"tokenToLiquidity","type":"uint256"},{"internalType":"uint256","name":"tokenToMarketing","type":"uint256"},{"internalType":"uint256","name":"tokenToutility","type":"uint256"},{"internalType":"uint256","name":"liquidityToken","type":"uint256"},{"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"internalType":"uint256","name":"marketingETH","type":"uint256"},{"internalType":"uint256","name":"utilityETH","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"forceSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityDetails","outputs":[{"internalType":"uint256","name":"targetLiquidity","type":"uint256"},{"internalType":"uint256","name":"currentLiquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTransactionAndWalletLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeDetails","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"utility","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"setBuyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"setBuyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"setBuyUtility","type":"uint256"},{"internalType":"uint256","name":"setSellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"setSellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"setSellUtility","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"swapAtAmount","type":"uint256"},{"internalType":"bool","name":"dynamicSwap","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newutilityWallet","type":"address"}],"name":"setutilityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"utilityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"}],"name":"withdrawForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006006556801158e460913d00000600781905560088190556009805460ff199081166001908117909255600a92909255600b805490921617905560c8600c556064600d556010805460ff60a01b1916600160a01b1790553480156200007157600080fd5b5060405162003629380380620036298339810160408190526200009491620003d0565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b03199081166001600160a01b038581169190911790925560108054821692841692909217909155600e805433921682179055600654600091825260036020908152604080842092909255600a6011819055601255601383905560148080556015556016839055815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a0155926004808401938290030181865afa15801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b9919062000408565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d919062000408565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a1919062000408565b600180546001600160a01b038086166001600160a01b03199283161783556002805482861693169290921790915533600081815260056020526040808220805460ff1990811687179091556010549094168252808220805485168617905530825280822080548516861790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805485168617905561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490941690941790925560065492519394509290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620003a191815260200190565b60405180910390a3505050506200042d565b80516001600160a01b0381168114620003cb57600080fd5b919050565b60008060408385031215620003e457600080fd5b620003ef83620003b3565b9150620003ff60208401620003b3565b90509250929050565b6000602082840312156200041b57600080fd5b6200042682620003b3565b9392505050565b6131ec806200043d6000396000f3fe6080604052600436106102eb5760003560e01c80637202085a11610184578063a457c2d7116100d6578063d51ed1c81161008a578063ea65bad911610064578063ea65bad914610991578063f1e55257146109b1578063f2fde38b146109e357600080fd5b8063d51ed1c8146108ba578063dc35f3a8146108da578063dd62ed3e1461093e57600080fd5b8063acc6bc72116100bb578063acc6bc7214610853578063bf4cc52b1461086d578063c02466681461089a57600080fd5b8063a457c2d714610813578063a9059cbb1461083357600080fd5b806380471faa11610138578063885a4cd011610112578063885a4cd0146107825780638da5cb5b146107a257806395d89b41146107cd57600080fd5b806380471faa1461072357806384d521031461074257806386f6c3c11461076257600080fd5b806378a52a591161016957806378a52a59146106d85780637d1db4a5146106ed5780637daf4b2b1461070357600080fd5b80637202085a1461067157806375f0a874146106ab57600080fd5b8063296f0a0c1161023d5780635342acb4116101f15780636ddd1713116101cb5780636ddd1713146105ff57806370a0823114610619578063715018a61461065c57600080fd5b80635342acb4146105835780635d098b38146105c95780636c0a24eb146105e957600080fd5b8063313ce56711610222578063313ce5671461051a578063395093511461053657806349bd5a5e1461055657600080fd5b8063296f0a0c146104e55780632b112e491461050557600080fd5b80631694505e1161029f57806323b872dd1161027957806323b872dd14610478578063264d26dd1461049857806327a14fc2146104c557600080fd5b80631694505e146103ef57806318160ddd146104415780631e293c101461045657600080fd5b806307a130f7116102d057806307a130f71461036f578063095ea7b31461039f5780631161ae39146103cf57600080fd5b806303e403b0146102f757806306fdde031461032057600080fd5b366102f257005b600080fd5b34801561030357600080fd5b5061030d600a5481565b6040519081526020015b60405180910390f35b34801561032c57600080fd5b5060408051808201909152600881527f4b6f646120496e7500000000000000000000000000000000000000000000000060208201525b6040516103179190612d87565b34801561037b57600080fd5b50601e54601f5461038a919082565b60408051928352602083019190915201610317565b3480156103ab57600080fd5b506103bf6103ba366004612e15565b610a03565b6040519015158152602001610317565b3480156103db57600080fd5b506103bf6103ea366004612e41565b610a1a565b3480156103fb57600080fd5b5060015461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610317565b34801561044d57600080fd5b5060065461030d565b34801561046257600080fd5b50610476610471366004612e63565b610a2e565b005b34801561048457600080fd5b506103bf610493366004612e7c565b610b5d565b3480156104a457600080fd5b50600e5461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104d157600080fd5b506104766104e0366004612e63565b610bbc565b3480156104f157600080fd5b50610476610500366004612ebd565b610ce6565b34801561051157600080fd5b5061030d610dae565b34801561052657600080fd5b5060405160098152602001610317565b34801561054257600080fd5b506103bf610551366004612e15565b610e1c565b34801561056257600080fd5b5060025461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058f57600080fd5b506103bf61059e366004612ebd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205460ff1690565b3480156105d557600080fd5b506104766105e4366004612ebd565b610e60565b3480156105f557600080fd5b5061030d60075481565b34801561060b57600080fd5b506009546103bf9060ff1681565b34801561062557600080fd5b5061030d610634366004612ebd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b34801561066857600080fd5b50610476610f28565b34801561067d57600080fd5b5060145460155460165461069092919083565b60408051938452602084019290925290820152606001610317565b3480156106b757600080fd5b50600f5461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106e457600080fd5b50610476611018565b3480156106f957600080fd5b5061030d60085481565b34801561070f57600080fd5b5061047661071e366004612ee8565b6110c3565b34801561072f57600080fd5b5060115460125460135461069092919083565b34801561074e57600080fd5b5061047661075d366004612ebd565b611249565b34801561076e57600080fd5b5061047661077d366004612f2a565b611311565b34801561078e57600080fd5b5061047661079d366004612ebd565b6114f9565b3480156107ae57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661041c565b3480156107d957600080fd5b5060408051808201909152600481527f4b4f4441000000000000000000000000000000000000000000000000000000006020820152610362565b34801561081f57600080fd5b506103bf61082e366004612e15565b6116aa565b34801561083f57600080fd5b506103bf61084e366004612e15565b6116ee565b34801561085f57600080fd5b50600b546103bf9060ff1681565b34801561087957600080fd5b5060105461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156108a657600080fd5b506104766108b5366004612f6d565b6116fb565b3480156108c657600080fd5b5061030d6108d5366004612e63565b6117d2565b3480156108e657600080fd5b50601754601854601954601a54601b54601c54601d546109099695949392919087565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610317565b34801561094a57600080fd5b5061030d610959366004612fa6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205490565b34801561099d57600080fd5b506104766109ac366004612e63565b611823565b3480156109bd57600080fd5b506010546103bf9074010000000000000000000000000000000000000000900460ff1681565b3480156109ef57600080fd5b506104766109fe366004612ebd565b6118b0565b6000610a10338484611a61565b5060015b92915050565b600082610a26836117d2565b119392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b64012a05f200811015610b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d6178205472616e73616374696f6e2063616e6e6f7420626520736574206c6f60448201527f776572207468616e20302e35252e0000000000000000000000000000000000006064820152608401610aab565b610b5781633b9aca00613003565b60085550565b6000610b6a848484611c14565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033808552925290912054610bb2918691610bad90869061301a565b611a61565b5060019392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6402540be400811015610cd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61782057616c6c65742063616e6e6f7420626520736574206c6f776572207460448201527f68616e2031252e000000000000000000000000000000000000000000000000006064820152608401610aab565b610ce081633b9aca00613003565b60075550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5460008080527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546006549192610e17929091610e1191906124a1565b906124a1565b905090565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610a10918590610bad90869061302d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ee1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b600f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b601080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6409502f90008211156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53776170546f6b656e4174416d6f756e742063616e6e6f74206265207365742060448201527f686967686572207468616e2034252e00000000000000000000000000000000006064820152608401610aab565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001684151517905561121382633b9aca00613003565b600a55600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790555050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b601080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b60198461139f878961302d565b6113a9919061302d565b1115611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f546f74616c20627579206665652063616e6e6f7420626520736574206869676860448201527f6572207468616e203235252e00000000000000000000000000000000000000006064820152608401610aab565b601981611444848661302d565b61144e919061302d565b11156114dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f546f74616c2073656c6c206665652063616e6e6f74206265207365742068696760448201527f686572207468616e203235252e000000000000000000000000000000000000006064820152608401610aab565b601195909555601293909355601391909155601455601555601655565b60005473ffffffffffffffffffffffffffffffffffffffff16331461157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116129190613040565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190613059565b5050565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610a10918590610bad90869061301a565b6000610a10338484611c14565b60005473ffffffffffffffffffffffffffffffffffffffff16331461177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6000610a146117df610dae565b6002805473ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205461181d9161181691906124ea565b85906124ea565b906125a2565b60005473ffffffffffffffffffffffffffffffffffffffff1633146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6118ad816125e4565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b73ffffffffffffffffffffffffffffffffffffffff81166119d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610aab565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff8216611ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611cb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff8216611d5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610aab565b60008111611dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054839290611e1f90849061301a565b909155505073ffffffffffffffffffffffffffffffffffffffff831660009081526005602052604081205482919060ff16158015611e83575073ffffffffffffffffffffffffffffffffffffffff841660009081526005602052604090205460ff16155b15611e8c575060015b80156123f75760025473ffffffffffffffffffffffffffffffffffffffff858116911614801590611ed7575060025473ffffffffffffffffffffffffffffffffffffffff8681169116145b156120665760105474010000000000000000000000000000000000000000900460ff161561205957600854831115611f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d61785460448201527f786e73416d6f756e7400000000000000000000000000000000000000000000006064820152608401610aab565b60075483611fc18673ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b611fcb919061302d565b1115612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c6574416d6f756e742e00000000000000000000000000000000000000006064820152608401610aab565b612063838561292a565b91505b60025473ffffffffffffffffffffffffffffffffffffffff8681169116148015906120ab575060025473ffffffffffffffffffffffffffffffffffffffff8581169116145b1561222f5760105474010000000000000000000000000000000000000000900460ff161561216557600854831115612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d61785460448201527f786e73416d6f756e7400000000000000000000000000000000000000000000006064820152608401610aab565b61216f838661292a565b60095490925060ff1680156121955750600a543060009081526003602052604090205410155b80156121a4575060205460ff16155b1561222f57602080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600b5460ff1615806121e85750600a548210155b156121fd576121f8600a546125e4565b612206565b612206826125e4565b602080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b60025473ffffffffffffffffffffffffffffffffffffffff858116911614801590612275575060025473ffffffffffffffffffffffffffffffffffffffff868116911614155b156123f75760105474010000000000000000000000000000000000000000900460ff16156123f75760085483111561232f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d61785460448201527f786e73416d6f756e7400000000000000000000000000000000000000000000006064820152608401610aab565b6007548361235f8673ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b612369919061302d565b11156123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c6574416d6f756e742e00000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061242c90849061302d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161249291815260200190565b60405180910390a35050505050565b60006124e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a51565b9392505050565b6000826000036124fc57506000610a14565b60006125088385613003565b9050826125158583613076565b146124e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610aab565b60006124e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612aa5565b600081905060006125f9600c54600d54610a1a565b6126125760145460115461260d919061302d565b612615565b60005b601654601354601554601254939450600093612631908661302d565b61263b919061302d565b612645919061302d565b61264f919061302d565b6126598385613003565b6126639190613076565b60165460135460155460125493945060009361267f908761302d565b612689919061302d565b612693919061302d565b61269d919061302d565b6015546012546126ad919061302d565b6126b79086613003565b6126c19190613076565b6016546013546015546012549394506000936126dd908861302d565b6126e7919061302d565b6126f1919061302d565b6126fb919061302d565b60165460135461270b919061302d565b6127159087613003565b61271f9190613076565b90508260176000016000828254612736919061302d565b90915550506018805483919060009061275090849061302d565b90915550506019805482919060009061276a90849061302d565b90915550600090508161277d848661302d565b612787919061302d565b905060006127968560026125a2565b905080601760030160008282546127ad919061302d565b90915550600090506127bf88836124a1565b9050476127cb82612aed565b60006127d747836124a1565b905060006127e98661181d848c6124ea565b905060006127fb8761181d858b6124ea565b90508160176004016000828254612812919061302d565b9091555050601d805482919060009061282c90849061302d565b9091555061283c90508683612ca0565b4760176005016000828254612851919061302d565b909155505060105460405160009173ffffffffffffffffffffffffffffffffffffffff169083908381818185875af1925050503d80600081146128b0576040519150601f19603f3d011682016040523d82523d6000602084013e6128b5565b606091505b5050600f5460405191925073ffffffffffffffffffffffffffffffffffffffff16904790600081818185875af1925050503d8060008114612912576040519150601f19603f3d011682016040523d82523d6000602084013e612917565b606091505b5050505050505050505050505050505050565b6000806064601160000154856129409190613003565b61294a9190613076565b905060006064601160010154866129619190613003565b61296b9190613076565b905060006064601160020154876129829190613003565b61298c9190613076565b905080612999838561302d565b6129a3919061302d565b30600090815260036020526040812080549091906129c290849061302d565b9091555030905073ffffffffffffffffffffffffffffffffffffffff86167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83612a0c878761302d565b612a16919061302d565b60405190815260200160405180910390a38082612a33858961301a565b612a3d919061301a565b612a47919061301a565b9695505050505050565b60008184841115612a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab9190612d87565b506000612a9c848661301a565b95945050505050565b60008183612ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab9190612d87565b506000612a9c8486613076565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612b2257612b226130b1565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600154604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015612ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc591906130e0565b81600181518110612bd857612bd86130b1565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600154612c0b9130911684611a61565b6001546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac94790612c6a9085906000908690309042906004016130fd565b600060405180830381600087803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050505050565b600154612cc590309073ffffffffffffffffffffffffffffffffffffffff1684611a61565b600154600e546040517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101859052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff91821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612d5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d809190613188565b5050505050565b600060208083528351808285015260005b81811015612db457858101830151858201604001528201612d98565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146118ad57600080fd5b60008060408385031215612e2857600080fd5b8235612e3381612df3565b946020939093013593505050565b60008060408385031215612e5457600080fd5b50508035926020909101359150565b600060208284031215612e7557600080fd5b5035919050565b600080600060608486031215612e9157600080fd5b8335612e9c81612df3565b92506020840135612eac81612df3565b929592945050506040919091013590565b600060208284031215612ecf57600080fd5b81356124e381612df3565b80151581146118ad57600080fd5b600080600060608486031215612efd57600080fd5b8335612f0881612eda565b9250602084013591506040840135612f1f81612eda565b809150509250925092565b60008060008060008060c08789031215612f4357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215612f8057600080fd5b8235612f8b81612df3565b91506020830135612f9b81612eda565b809150509250929050565b60008060408385031215612fb957600080fd5b8235612fc481612df3565b91506020830135612f9b81612df3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610a1457610a14612fd4565b81810381811115610a1457610a14612fd4565b80820180821115610a1457610a14612fd4565b60006020828403121561305257600080fd5b5051919050565b60006020828403121561306b57600080fd5b81516124e381612eda565b6000826130ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156130f257600080fd5b81516124e381612df3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561315a57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101613128565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b60008060006060848603121561319d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c9cebab9168218688f5be3248bf41bd58b117ae1df9f55eaf0cbea7e6fa757e964736f6c6343000813003300000000000000000000000087049cfb96fc280eb04b558d079b7c979da514f3000000000000000000000000210f938abda121454ddc98c048a36dc878ac0ada

Deployed Bytecode

0x6080604052600436106102eb5760003560e01c80637202085a11610184578063a457c2d7116100d6578063d51ed1c81161008a578063ea65bad911610064578063ea65bad914610991578063f1e55257146109b1578063f2fde38b146109e357600080fd5b8063d51ed1c8146108ba578063dc35f3a8146108da578063dd62ed3e1461093e57600080fd5b8063acc6bc72116100bb578063acc6bc7214610853578063bf4cc52b1461086d578063c02466681461089a57600080fd5b8063a457c2d714610813578063a9059cbb1461083357600080fd5b806380471faa11610138578063885a4cd011610112578063885a4cd0146107825780638da5cb5b146107a257806395d89b41146107cd57600080fd5b806380471faa1461072357806384d521031461074257806386f6c3c11461076257600080fd5b806378a52a591161016957806378a52a59146106d85780637d1db4a5146106ed5780637daf4b2b1461070357600080fd5b80637202085a1461067157806375f0a874146106ab57600080fd5b8063296f0a0c1161023d5780635342acb4116101f15780636ddd1713116101cb5780636ddd1713146105ff57806370a0823114610619578063715018a61461065c57600080fd5b80635342acb4146105835780635d098b38146105c95780636c0a24eb146105e957600080fd5b8063313ce56711610222578063313ce5671461051a578063395093511461053657806349bd5a5e1461055657600080fd5b8063296f0a0c146104e55780632b112e491461050557600080fd5b80631694505e1161029f57806323b872dd1161027957806323b872dd14610478578063264d26dd1461049857806327a14fc2146104c557600080fd5b80631694505e146103ef57806318160ddd146104415780631e293c101461045657600080fd5b806307a130f7116102d057806307a130f71461036f578063095ea7b31461039f5780631161ae39146103cf57600080fd5b806303e403b0146102f757806306fdde031461032057600080fd5b366102f257005b600080fd5b34801561030357600080fd5b5061030d600a5481565b6040519081526020015b60405180910390f35b34801561032c57600080fd5b5060408051808201909152600881527f4b6f646120496e7500000000000000000000000000000000000000000000000060208201525b6040516103179190612d87565b34801561037b57600080fd5b50601e54601f5461038a919082565b60408051928352602083019190915201610317565b3480156103ab57600080fd5b506103bf6103ba366004612e15565b610a03565b6040519015158152602001610317565b3480156103db57600080fd5b506103bf6103ea366004612e41565b610a1a565b3480156103fb57600080fd5b5060015461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610317565b34801561044d57600080fd5b5060065461030d565b34801561046257600080fd5b50610476610471366004612e63565b610a2e565b005b34801561048457600080fd5b506103bf610493366004612e7c565b610b5d565b3480156104a457600080fd5b50600e5461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104d157600080fd5b506104766104e0366004612e63565b610bbc565b3480156104f157600080fd5b50610476610500366004612ebd565b610ce6565b34801561051157600080fd5b5061030d610dae565b34801561052657600080fd5b5060405160098152602001610317565b34801561054257600080fd5b506103bf610551366004612e15565b610e1c565b34801561056257600080fd5b5060025461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058f57600080fd5b506103bf61059e366004612ebd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205460ff1690565b3480156105d557600080fd5b506104766105e4366004612ebd565b610e60565b3480156105f557600080fd5b5061030d60075481565b34801561060b57600080fd5b506009546103bf9060ff1681565b34801561062557600080fd5b5061030d610634366004612ebd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b34801561066857600080fd5b50610476610f28565b34801561067d57600080fd5b5060145460155460165461069092919083565b60408051938452602084019290925290820152606001610317565b3480156106b757600080fd5b50600f5461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106e457600080fd5b50610476611018565b3480156106f957600080fd5b5061030d60085481565b34801561070f57600080fd5b5061047661071e366004612ee8565b6110c3565b34801561072f57600080fd5b5060115460125460135461069092919083565b34801561074e57600080fd5b5061047661075d366004612ebd565b611249565b34801561076e57600080fd5b5061047661077d366004612f2a565b611311565b34801561078e57600080fd5b5061047661079d366004612ebd565b6114f9565b3480156107ae57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661041c565b3480156107d957600080fd5b5060408051808201909152600481527f4b4f4441000000000000000000000000000000000000000000000000000000006020820152610362565b34801561081f57600080fd5b506103bf61082e366004612e15565b6116aa565b34801561083f57600080fd5b506103bf61084e366004612e15565b6116ee565b34801561085f57600080fd5b50600b546103bf9060ff1681565b34801561087957600080fd5b5060105461041c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156108a657600080fd5b506104766108b5366004612f6d565b6116fb565b3480156108c657600080fd5b5061030d6108d5366004612e63565b6117d2565b3480156108e657600080fd5b50601754601854601954601a54601b54601c54601d546109099695949392919087565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610317565b34801561094a57600080fd5b5061030d610959366004612fa6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205490565b34801561099d57600080fd5b506104766109ac366004612e63565b611823565b3480156109bd57600080fd5b506010546103bf9074010000000000000000000000000000000000000000900460ff1681565b3480156109ef57600080fd5b506104766109fe366004612ebd565b6118b0565b6000610a10338484611a61565b5060015b92915050565b600082610a26836117d2565b119392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b64012a05f200811015610b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d6178205472616e73616374696f6e2063616e6e6f7420626520736574206c6f60448201527f776572207468616e20302e35252e0000000000000000000000000000000000006064820152608401610aab565b610b5781633b9aca00613003565b60085550565b6000610b6a848484611c14565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033808552925290912054610bb2918691610bad90869061301a565b611a61565b5060019392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6402540be400811015610cd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61782057616c6c65742063616e6e6f7420626520736574206c6f776572207460448201527f68616e2031252e000000000000000000000000000000000000000000000000006064820152608401610aab565b610ce081633b9aca00613003565b60075550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5460008080527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546006549192610e17929091610e1191906124a1565b906124a1565b905090565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610a10918590610bad90869061302d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ee1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b600f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b601080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6409502f90008211156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53776170546f6b656e4174416d6f756e742063616e6e6f74206265207365742060448201527f686967686572207468616e2034252e00000000000000000000000000000000006064820152608401610aab565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001684151517905561121382633b9aca00613003565b600a55600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790555050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b601080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b60198461139f878961302d565b6113a9919061302d565b1115611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f546f74616c20627579206665652063616e6e6f7420626520736574206869676860448201527f6572207468616e203235252e00000000000000000000000000000000000000006064820152608401610aab565b601981611444848661302d565b61144e919061302d565b11156114dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f546f74616c2073656c6c206665652063616e6e6f74206265207365742068696760448201527f686572207468616e203235252e000000000000000000000000000000000000006064820152608401610aab565b601195909555601293909355601391909155601455601555601655565b60005473ffffffffffffffffffffffffffffffffffffffff16331461157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116129190613040565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190613059565b5050565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610a10918590610bad90869061301a565b6000610a10338484611c14565b60005473ffffffffffffffffffffffffffffffffffffffff16331461177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6000610a146117df610dae565b6002805473ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205461181d9161181691906124ea565b85906124ea565b906125a2565b60005473ffffffffffffffffffffffffffffffffffffffff1633146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6118ad816125e4565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b73ffffffffffffffffffffffffffffffffffffffff81166119d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610aab565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff8216611ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611cb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff8216611d5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610aab565b60008111611dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054839290611e1f90849061301a565b909155505073ffffffffffffffffffffffffffffffffffffffff831660009081526005602052604081205482919060ff16158015611e83575073ffffffffffffffffffffffffffffffffffffffff841660009081526005602052604090205460ff16155b15611e8c575060015b80156123f75760025473ffffffffffffffffffffffffffffffffffffffff858116911614801590611ed7575060025473ffffffffffffffffffffffffffffffffffffffff8681169116145b156120665760105474010000000000000000000000000000000000000000900460ff161561205957600854831115611f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d61785460448201527f786e73416d6f756e7400000000000000000000000000000000000000000000006064820152608401610aab565b60075483611fc18673ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b611fcb919061302d565b1115612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c6574416d6f756e742e00000000000000000000000000000000000000006064820152608401610aab565b612063838561292a565b91505b60025473ffffffffffffffffffffffffffffffffffffffff8681169116148015906120ab575060025473ffffffffffffffffffffffffffffffffffffffff8581169116145b1561222f5760105474010000000000000000000000000000000000000000900460ff161561216557600854831115612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d61785460448201527f786e73416d6f756e7400000000000000000000000000000000000000000000006064820152608401610aab565b61216f838661292a565b60095490925060ff1680156121955750600a543060009081526003602052604090205410155b80156121a4575060205460ff16155b1561222f57602080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600b5460ff1615806121e85750600a548210155b156121fd576121f8600a546125e4565b612206565b612206826125e4565b602080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b60025473ffffffffffffffffffffffffffffffffffffffff858116911614801590612275575060025473ffffffffffffffffffffffffffffffffffffffff868116911614155b156123f75760105474010000000000000000000000000000000000000000900460ff16156123f75760085483111561232f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d61785460448201527f786e73416d6f756e7400000000000000000000000000000000000000000000006064820152608401610aab565b6007548361235f8673ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b612369919061302d565b11156123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c6574416d6f756e742e00000000000000000000000000000000000000006064820152608401610aab565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061242c90849061302d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161249291815260200190565b60405180910390a35050505050565b60006124e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a51565b9392505050565b6000826000036124fc57506000610a14565b60006125088385613003565b9050826125158583613076565b146124e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610aab565b60006124e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612aa5565b600081905060006125f9600c54600d54610a1a565b6126125760145460115461260d919061302d565b612615565b60005b601654601354601554601254939450600093612631908661302d565b61263b919061302d565b612645919061302d565b61264f919061302d565b6126598385613003565b6126639190613076565b60165460135460155460125493945060009361267f908761302d565b612689919061302d565b612693919061302d565b61269d919061302d565b6015546012546126ad919061302d565b6126b79086613003565b6126c19190613076565b6016546013546015546012549394506000936126dd908861302d565b6126e7919061302d565b6126f1919061302d565b6126fb919061302d565b60165460135461270b919061302d565b6127159087613003565b61271f9190613076565b90508260176000016000828254612736919061302d565b90915550506018805483919060009061275090849061302d565b90915550506019805482919060009061276a90849061302d565b90915550600090508161277d848661302d565b612787919061302d565b905060006127968560026125a2565b905080601760030160008282546127ad919061302d565b90915550600090506127bf88836124a1565b9050476127cb82612aed565b60006127d747836124a1565b905060006127e98661181d848c6124ea565b905060006127fb8761181d858b6124ea565b90508160176004016000828254612812919061302d565b9091555050601d805482919060009061282c90849061302d565b9091555061283c90508683612ca0565b4760176005016000828254612851919061302d565b909155505060105460405160009173ffffffffffffffffffffffffffffffffffffffff169083908381818185875af1925050503d80600081146128b0576040519150601f19603f3d011682016040523d82523d6000602084013e6128b5565b606091505b5050600f5460405191925073ffffffffffffffffffffffffffffffffffffffff16904790600081818185875af1925050503d8060008114612912576040519150601f19603f3d011682016040523d82523d6000602084013e612917565b606091505b5050505050505050505050505050505050565b6000806064601160000154856129409190613003565b61294a9190613076565b905060006064601160010154866129619190613003565b61296b9190613076565b905060006064601160020154876129829190613003565b61298c9190613076565b905080612999838561302d565b6129a3919061302d565b30600090815260036020526040812080549091906129c290849061302d565b9091555030905073ffffffffffffffffffffffffffffffffffffffff86167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83612a0c878761302d565b612a16919061302d565b60405190815260200160405180910390a38082612a33858961301a565b612a3d919061301a565b612a47919061301a565b9695505050505050565b60008184841115612a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab9190612d87565b506000612a9c848661301a565b95945050505050565b60008183612ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab9190612d87565b506000612a9c8486613076565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612b2257612b226130b1565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600154604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015612ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc591906130e0565b81600181518110612bd857612bd86130b1565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600154612c0b9130911684611a61565b6001546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac94790612c6a9085906000908690309042906004016130fd565b600060405180830381600087803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050505050565b600154612cc590309073ffffffffffffffffffffffffffffffffffffffff1684611a61565b600154600e546040517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101859052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff91821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612d5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d809190613188565b5050505050565b600060208083528351808285015260005b81811015612db457858101830151858201604001528201612d98565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146118ad57600080fd5b60008060408385031215612e2857600080fd5b8235612e3381612df3565b946020939093013593505050565b60008060408385031215612e5457600080fd5b50508035926020909101359150565b600060208284031215612e7557600080fd5b5035919050565b600080600060608486031215612e9157600080fd5b8335612e9c81612df3565b92506020840135612eac81612df3565b929592945050506040919091013590565b600060208284031215612ecf57600080fd5b81356124e381612df3565b80151581146118ad57600080fd5b600080600060608486031215612efd57600080fd5b8335612f0881612eda565b9250602084013591506040840135612f1f81612eda565b809150509250925092565b60008060008060008060c08789031215612f4357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215612f8057600080fd5b8235612f8b81612df3565b91506020830135612f9b81612eda565b809150509250929050565b60008060408385031215612fb957600080fd5b8235612fc481612df3565b91506020830135612f9b81612df3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610a1457610a14612fd4565b81810381811115610a1457610a14612fd4565b80820180821115610a1457610a14612fd4565b60006020828403121561305257600080fd5b5051919050565b60006020828403121561306b57600080fd5b81516124e381612eda565b6000826130ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156130f257600080fd5b81516124e381612df3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561315a57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101613128565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b60008060006060848603121561319d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c9cebab9168218688f5be3248bf41bd58b117ae1df9f55eaf0cbea7e6fa757e964736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000087049cfb96fc280eb04b558d079b7c979da514f3000000000000000000000000210f938abda121454ddc98c048a36dc878ac0ada

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x87049CFB96fc280Eb04b558d079B7c979DA514f3
Arg [1] : utilityAddress (address): 0x210f938ABda121454Ddc98c048a36dc878aC0ADa

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000087049cfb96fc280eb04b558d079b7c979da514f3
Arg [1] : 000000000000000000000000210f938abda121454ddc98c048a36dc878ac0ada


Deployed Bytecode Sourcemap

224:14986:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;941:54;;;;;;;;;;;;;;;;;;;160:25:7;;;148:2;133:18;941:54:4;;;;;;;;3365:83;;;;;;;;;;-1:-1:-1;3435:5:4;;;;;;;;;;;;;;;;;3365:83;;;;;;;:::i;2005:40::-;;;;;;;;;;-1:-1:-1;2005:40:4;;;;;;;;;;;;;982:25:7;;;1038:2;1023:18;;1016:34;;;;955:18;2005:40:4;808:248:7;4197:161:4;;;;;;;;;;-1:-1:-1;4197:161:4;;;;;:::i;:::-;;:::i;:::-;;;1705:14:7;;1698:22;1680:41;;1668:2;1653:18;4197:161:4;1540:187:7;5610:150:4;;;;;;;;;;-1:-1:-1;5610:150:4;;;;;:::i;:::-;;:::i;309:41::-;;;;;;;;;;-1:-1:-1;309:41:4;;;;;;;;;;;2187:42:7;2175:55;;;2157:74;;2145:2;2130:18;309:41:4;1985:252:7;3642:95:4;;;;;;;;;;-1:-1:-1;3722:7:4;;3642:95;;6812:246;;;;;;;;;;-1:-1:-1;6812:246:4;;;;;:::i;:::-;;:::i;:::-;;4366:266;;;;;;;;;;-1:-1:-1;4366:266:4;;;;;:::i;:::-;;:::i;1136:32::-;;;;;;;;;;-1:-1:-1;1136:32:4;;;;;;;;7066:224;;;;;;;;;;-1:-1:-1;7066:224:4;;;;;:::i;:::-;;:::i;7637:130::-;;;;;;;;;;-1:-1:-1;7637:130:4;;;;;:::i;:::-;;:::i;5248:161::-;;;;;;;;;;;;;:::i;3551:83::-;;;;;;;;;;-1:-1:-1;3551:83:4;;720:1;3513:36:7;;3501:2;3486:18;3551:83:4;3371:184:7;4640:215:4;;;;;;;;;;-1:-1:-1;4640:215:4;;;;;:::i;:::-;;:::i;359:28::-;;;;;;;;;;-1:-1:-1;359:28:4;;;;;;;;9230:123;;;;;;;;;;-1:-1:-1;9230:123:4;;;;;:::i;:::-;9318:27;;9294:4;9318:27;;;:18;:27;;;;;;;;;9230:123;7775:128;;;;;;;;;;-1:-1:-1;7775:128:4;;;;;:::i;:::-;;:::i;786:53::-;;;;;;;;;;;;;;;;904:30;;;;;;;;;;-1:-1:-1;904:30:4;;;;;;;;3745:118;;;;;;;;;;-1:-1:-1;3745:118:4;;;;;:::i;:::-;3838:17;;3811:7;3838:17;;;:8;:17;;;;;;;3745:118;624:148:5;;;;;;;;;;;;;:::i;1920:30:4:-;;;;;;;;;;-1:-1:-1;1920:30:4;;;;;;;;;;;;;;;;3762:25:7;;;3818:2;3803:18;;3796:34;;;;3846:18;;;3839:34;3750:2;3735:18;1920:30:4;3560:319:7;1175:30:4;;;;;;;;;;-1:-1:-1;1175:30:4;;;;;;;;5904:102;;;;;;;;;;;;;:::i;846:49::-;;;;;;;;;;;;;;;;7298:331;;;;;;;;;;-1:-1:-1;7298:331:4;;;;;:::i;:::-;;:::i;1885:28::-;;;;;;;;;;-1:-1:-1;1885:28:4;;;;;;;;;;;;7911:120;;;;;;;;;;-1:-1:-1;7911:120:4;;;;;:::i;:::-;;:::i;6014:790::-;;;;;;;;;;-1:-1:-1;6014:790:4;;;;;:::i;:::-;;:::i;15019:188::-;;;;;;;;;;-1:-1:-1;15019:188:4;;;;;:::i;:::-;;:::i;410:79:5:-;;;;;;;;;;-1:-1:-1;448:7:5;475:6;;;410:79;;3456:87:4;;;;;;;;;;-1:-1:-1;3528:7:4;;;;;;;;;;;;;;;;;3456:87;;4863:225;;;;;;;;;;-1:-1:-1;4863:225:4;;;;;:::i;:::-;;:::i;3871:167::-;;;;;;;;;;-1:-1:-1;3871:167:4;;;;;:::i;:::-;;:::i;1002:36::-;;;;;;;;;;-1:-1:-1;1002:36:4;;;;;;;;1212:28;;;;;;;;;;-1:-1:-1;1212:28:4;;;;;;;;5100:140;;;;;;;;;;-1:-1:-1;5100:140:4;;;;;:::i;:::-;;:::i;5417:185::-;;;;;;;;;;-1:-1:-1;5417:185:4;;;;;:::i;:::-;;:::i;1957:41::-;;;;;;;;;;-1:-1:-1;1957:41:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;5686:25:7;;;5742:2;5727:18;;5720:34;;;;5770:18;;;5763:34;;;;5828:2;5813:18;;5806:34;;;;5871:3;5856:19;;5849:35;5915:3;5900:19;;5893:35;5959:3;5944:19;;5937:35;5673:3;5658:19;1957:41:4;5371:607:7;4046:143:4;;;;;;;;;;-1:-1:-1;4046:143:4;;;;;:::i;:::-;4154:18;;;;4127:7;4154:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4046:143;5809:87;;;;;;;;;;-1:-1:-1;5809:87:4;;;;;:::i;:::-;;:::i;1249:33::-;;;;;;;;;;-1:-1:-1;1249:33:4;;;;;;;;;;;780:244:5;;;;;;;;;;-1:-1:-1;780:244:5;;;;;:::i;:::-;;:::i;4197:161:4:-;4272:4;4289:39;192:10:0;4312:7:4;4321:6;4289:8;:39::i;:::-;-1:-1:-1;4346:4:4;4197:161;;;;;:::o;5610:150::-;5690:4;5746:6;5714:29;5734:8;5714:19;:29::i;:::-;:38;;5610:150;-1:-1:-1;;;5610:150:4:o;6812:246::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;;;;;;;;;6935:10:4::1;6911:20;:34;;6903:93;;;::::0;::::1;::::0;;6939:2:7;6903:93:4::1;::::0;::::1;6921:21:7::0;6978:2;6958:18;;;6951:30;7017:34;6997:18;;;6990:62;7088:16;7068:18;;;7061:44;7122:19;;6903:93:4::1;6737:410:7::0;6903:93:4::1;7022:28;:20:::0;7045:5:::1;7022:28;:::i;:::-;7007:12;:43:::0;-1:-1:-1;6812:246:4:o;4366:266::-;4464:4;4481:36;4491:6;4499:9;4510:6;4481:9;:36::i;:::-;4559:19;;;;;;;:11;:19;;;;;;;;192:10:0;4559:33:4;;;;;;;;;4528:74;;4537:6;;4559:42;;4595:6;;4559:42;:::i;:::-;4528:8;:74::i;:::-;-1:-1:-1;4620:4:4;4366:266;;;;;:::o;7066:224::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;7174:11:4::1;7155:15;:30;;7147:82;;;::::0;::::1;::::0;;7849:2:7;7147:82:4::1;::::0;::::1;7831:21:7::0;7888:2;7868:18;;;7861:30;7927:34;7907:18;;;7900:62;7998:9;7978:18;;;7971:37;8025:19;;7147:82:4::1;7647:403:7::0;7147:82:4::1;7259:23;:15:::0;7277:5:::1;7259:23;:::i;:::-;7240:16;:42:::0;-1:-1:-1;7066:224:4:o;7637:130::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;7721:17:4::1;:38:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7637:130::o;5248:161::-;3838:8;:17;;;;5301:7;3838:17;;;;;5328:7;;5301;;5328:73;;3838:17;;5328:40;;:7;:11;:40::i;:::-;:44;;:73::i;:::-;5321:80;;5248:161;:::o;4640:215::-;192:10:0;4728:4:4;4777:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;4728:4;;4745:80;;4768:7;;4777:47;;4814:10;;4777:47;:::i;7775:128::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;7859:15:4::1;:36:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7775:128::o;624:148:5:-;537:6;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;731:1:::1;715:6:::0;;694:40:::1;::::0;::::1;715:6:::0;;::::1;::::0;694:40:::1;::::0;731:1;;694:40:::1;762:1;745:19:::0;;;::::1;::::0;;624:148::o;5904:102:4:-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;5976:14:4::1;:22:::0;;;::::1;::::0;;5904:102::o;7298:331::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;7433:11:4::1;7417:12;:27;;7409:87;;;::::0;::::1;::::0;;8387:2:7;7409:87:4::1;::::0;::::1;8369:21:7::0;8426:2;8406:18;;;8399:30;8465:34;8445:18;;;8438:62;8536:17;8516:18;;;8509:45;8571:19;;7409:87:4::1;8185:411:7::0;7409:87:4::1;7507:11;:21:::0;;;::::1;::::0;::::1;;;::::0;;7559:20:::1;:12:::0;7574:5:::1;7559:20;:::i;:::-;7539:17;:40:::0;7590:17:::1;:31:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;;7298:331:4:o;7911:120::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;7991:13:4::1;:32:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7911:120::o;6014:790::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;6287:2:4::1;6270:13:::0;6228:39:::1;6249:18:::0;6228;:39:::1;:::i;:::-;:55;;;;:::i;:::-;:61;;6220:118;;;::::0;::::1;::::0;;8803:2:7;6220:118:4::1;::::0;::::1;8785:21:7::0;8842:2;8822:18;;;8815:30;8881:34;8861:18;;;8854:62;8952:14;8932:18;;;8925:42;8984:19;;6220:118:4::1;8601:408:7::0;6220:118:4::1;6418:2;6401:14:::0;6357:41:::1;6379:19:::0;6357;:41:::1;:::i;:::-;:58;;;;:::i;:::-;:63;;6349:121;;;::::0;::::1;::::0;;9216:2:7;6349:121:4::1;::::0;::::1;9198:21:7::0;9255:2;9235:18;;;9228:30;9294:34;9274:18;;;9267:62;9365:15;9345:18;;;9338:43;9398:19;;6349:121:4::1;9014:409:7::0;6349:121:4::1;6483:13;:44:::0;;;;6538:23;:44;;;;6593:21;:37;;;;6643:14:::1;:46:::0;6700:24;:46;6757:22;:39;6014:790::o;15019:188::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;15152:46:4::1;::::0;;;;15192:4:::1;15152:46;::::0;::::1;2157:74:7::0;15100:30:4::1;::::0;::::1;::::0;::::1;::::0;15139:10:::1;::::0;15100:30;;15152:31:::1;::::0;2130:18:7;;15152:46:4::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15100:99;::::0;;::::1;::::0;;;;;;9821:42:7;9809:55;;;15100:99:4::1;::::0;::::1;9791:74:7::0;9881:18;;;9874:34;9764:18;;15100:99:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15019:188:::0;:::o;4863:225::-;192:10:0;4956:4:4;5005:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;4956:4;;4973:85;;4996:7;;5005:52;;5042:15;;5005:52;:::i;3871:167::-;3949:4;3966:42;192:10:0;3990:9:4;4001:6;3966:9;:42::i;5100:140::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;5185:36:4::1;::::0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;5100:140::o;5417:185::-;5485:7;5512:82;5571:22;:20;:22::i;:::-;5563:1;5543:13;;;;3811:7;3838:17;;;:8;:17;;;;;;5512:54;;5525:40;;:37;;:40::i;:::-;5512:8;;:12;:54::i;:::-;:58;;:82::i;5809:87::-;537:6:5;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;5872:16:4::1;5881:6;5872:8;:16::i;:::-;5809:87:::0;:::o;780:244:5:-;537:6;;:22;:6;192:10:0;537:22:5;529:67;;;;;;;6578:2:7;529:67:5;;;6560:21:7;;;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;6708:18;;529:67:5;6376:356:7;529:67:5;869:22:::1;::::0;::::1;861:73;;;::::0;::::1;::::0;;10371:2:7;861:73:5::1;::::0;::::1;10353:21:7::0;10410:2;10390:18;;;10383:30;10449:34;10429:18;;;10422:62;10520:8;10500:18;;;10493:36;10546:19;;861:73:5::1;10169:402:7::0;861:73:5::1;971:6;::::0;;950:38:::1;::::0;::::1;::::0;;::::1;::::0;971:6;::::1;::::0;950:38:::1;::::0;::::1;999:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;780:244::o;9361:337:4:-;9454:19;;;9446:68;;;;;;;10778:2:7;9446:68:4;;;10760:21:7;10817:2;10797:18;;;10790:30;10856:34;10836:18;;;10829:62;10927:6;10907:18;;;10900:34;10951:19;;9446:68:4;10576:400:7;9446:68:4;9533:21;;;9525:68;;;;;;;11183:2:7;9525:68:4;;;11165:21:7;11222:2;11202:18;;;11195:30;11261:34;11241:18;;;11234:62;11332:4;11312:18;;;11305:32;11354:19;;9525:68:4;10981:398:7;9525:68:4;9606:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9658:32;;160:25:7;;;9658:32:4;;133:18:7;9658:32:4;;;;;;;9361:337;;;:::o;9706:2212::-;9828:18;;;9820:68;;;;;;;11586:2:7;9820:68:4;;;11568:21:7;11625:2;11605:18;;;11598:30;11664:34;11644:18;;;11637:62;11735:7;11715:18;;;11708:35;11760:19;;9820:68:4;11384:401:7;9820:68:4;9907:16;;;9899:64;;;;;;;11992:2:7;9899:64:4;;;11974:21:7;12031:2;12011:18;;;12004:30;12070:34;12050:18;;;12043:62;12141:5;12121:18;;;12114:33;12164:19;;9899:64:4;11790:399:7;9899:64:4;9991:1;9982:6;:10;9974:64;;;;;;;12396:2:7;9974:64:4;;;12378:21:7;12435:2;12415:18;;;12408:30;12474:34;12454:18;;;12447:62;12545:11;12525:18;;;12518:39;12574:19;;9974:64:4;12194:405:7;9974:64:4;10059:14;;;;;;;:8;:14;;;;;:24;;10077:6;;10059:14;:24;;10077:6;;10059:24;:::i;:::-;;;;-1:-1:-1;;10175:24:4;;;10094:22;10175:24;;;:18;:24;;;;;;10119:6;;10094:22;10175:24;;10174:25;:52;;;;-1:-1:-1;10204:22:4;;;;;;;:18;:22;;;;;;;;10203:23;10174:52;10171:97;;;-1:-1:-1;10252:4:4;10171:97;10283:7;10280:1530;;;10315:13;;;10309:19;;;10315:13;;10309:19;;;;:44;;-1:-1:-1;10340:13:4;;;10332:21;;;10340:13;;10332:21;10309:44;10306:401;;;10376:14;;;;;;;10373:260;;;10433:12;;10423:6;:22;;10415:76;;;;;;;12806:2:7;10415:76:4;;;12788:21:7;12845:2;12825:18;;;12818:30;12884:34;12864:18;;;12857:62;12955:11;12935:18;;;12928:39;12984:19;;10415:76:4;12604:405:7;10415:76:4;10548:16;;10538:6;10522:13;10532:2;3838:17;;3811:7;3838:17;;;:8;:17;;;;;;;3745:118;10522:13;:22;;;;:::i;:::-;:42;;10514:99;;;;;;;13216:2:7;10514:99:4;;;13198:21:7;13255:2;13235:18;;;13228:30;13294:34;13274:18;;;13267:62;13365:14;13345:18;;;13338:42;13397:19;;10514:99:4;13014:408:7;10514:99:4;10668:23;10680:6;10688:2;10668:11;:23::i;:::-;10651:40;;10306:401;10734:13;;;10726:21;;;10734:13;;10726:21;;;;:44;;-1:-1:-1;10757:13:4;;;10751:19;;;10757:13;;10751:19;10726:44;10723:718;;;10793:14;;;;;;;10790:138;;;10850:12;;10840:6;:22;;10832:76;;;;;;;12806:2:7;10832:76:4;;;12788:21:7;12845:2;12825:18;;;12818:30;12884:34;12864:18;;;12857:62;12955:11;12935:18;;;12928:39;12984:19;;10832:76:4;12604:405:7;10832:76:4;10963:26;10976:6;10984:4;10963:12;:26::i;:::-;11013:11;;10946:43;;-1:-1:-1;11013:11:4;;:60;;;;-1:-1:-1;11056:17:4;;11046:4;3811:7;3838:17;;;:8;:17;;;;;;11028:45;;11013:60;:73;;;;-1:-1:-1;11078:8:4;;;;11077:9;11013:73;11009:417;;;11111:8;:15;;;;11122:4;11111:15;;;11153:17;;11111:15;11153:17;11152:18;;:57;;;11192:17;;11174:14;:35;;11152:57;11149:221;;;11238:27;11247:17;;11238:8;:27::i;:::-;11149:221;;;11322:24;11331:14;11322:8;:24::i;:::-;11392:8;:16;;;;;;11009:417;11466:13;;;11460:19;;;11466:13;;11460:19;;;;:44;;-1:-1:-1;11491:13:4;;;11483:21;;;11491:13;;11483:21;;11460:44;11457:342;;;11527:14;;;;;;;11524:260;;;11584:12;;11574:6;:22;;11566:76;;;;;;;12806:2:7;11566:76:4;;;12788:21:7;12845:2;12825:18;;;12818:30;12884:34;12864:18;;;12857:62;12955:11;12935:18;;;12928:39;12984:19;;11566:76:4;12604:405:7;11566:76:4;11699:16;;11689:6;11673:13;11683:2;3838:17;;3811:7;3838:17;;;:8;:17;;;;;;;3745:118;11673:13;:22;;;;:::i;:::-;:42;;11665:99;;;;;;;13216:2:7;11665:99:4;;;13198:21:7;13255:2;13235:18;;;13228:30;13294:34;13274:18;;;13267:62;13365:14;13345:18;;;13338:42;13397:19;;11665:99:4;13014:408:7;11665:99:4;11830:12;;;;;;;:8;:12;;;;;:30;;11846:14;;11830:12;:30;;11846:14;;11830:30;:::i;:::-;;;;;;;;11891:2;11876:34;;11885:4;11876:34;;;11895:14;11876:34;;;;160:25:7;;148:2;133:18;;14:177;11876:34:4;;;;;;;;9809:2109;;9706:2212;;;:::o;276:136:6:-;334:7;361:43;365:1;368;361:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;354:50;276:136;-1:-1:-1;;;276:136:6:o;620:250::-;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:6;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:6;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;;;;13908:2:7;785:56:6;;;13890:21:7;13947:2;13927:18;;;13920:30;13986:34;13966:18;;;13959:62;14057:3;14037:18;;;14030:31;14078:19;;785:56:6;13706:397:7;878:132:6;936:7;963:39;967:1;970;963:39;;;;;;;;;;;;;;;;;:3;:39::i;11929:2217:4:-;11982:18;12003:6;11982:27;;12020;12050:60;12066:15;;12083:26;;12050:15;:60::i;:::-;:119;;12144:14;:24;12118:13;:23;:50;;12144:24;12118:50;:::i;:::-;12050:119;;;12113:1;12050:119;12343:22;;12319:21;;12292:24;;12266:23;;12020:149;;-1:-1:-1;12180:23:4;;12244:45;;12020:149;12244:45;:::i;:::-;:72;;;;:::i;:::-;:96;;;;:::i;:::-;:121;;;;:::i;:::-;12206:34;12220:19;12206:10;:34;:::i;:::-;:160;;;;:::i;:::-;12571:22;;12547:21;;12520:24;;12494:23;;12180:186;;-1:-1:-1;12377:23:4;;12472:45;;:19;:45;:::i;:::-;:72;;;;:::i;:::-;:96;;;;:::i;:::-;:121;;;;:::i;:::-;12443:24;;12417:23;;:50;;12443:24;12417:50;:::i;:::-;12403:65;;:10;:65;:::i;:::-;:191;;;;:::i;:::-;12794:22;;12770:21;;12743:24;;12717:23;;12377:217;;-1:-1:-1;12605:21:4;;12695:45;;:19;:45;:::i;:::-;:72;;;;:::i;:::-;:96;;;;:::i;:::-;:121;;;;:::i;:::-;12667:22;;12643:21;;:46;;12667:22;12643:46;:::i;:::-;12629:61;;:10;:61;:::i;:::-;:188;;;;:::i;:::-;12605:212;;12871:15;12828:22;:39;;;:58;;;;;;;:::i;:::-;;;;-1:-1:-1;;12897:39:4;:58;;12940:15;;12897:39;;;:58;;12940:15;;12897:58;:::i;:::-;;;;-1:-1:-1;;12966:37:4;:54;;13007:13;;12966:37;;;:54;;13007:13;;12966:54;:::i;:::-;;;;-1:-1:-1;13033:25:4;;-1:-1:-1;13097:13:4;13061:33;13079:15;13061;:33;:::i;:::-;:49;;;;:::i;:::-;13033:77;-1:-1:-1;13131:26:4;13160:22;:15;13180:1;13160:19;:22::i;:::-;13131:51;;13234:18;13193:22;:37;;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;13263:26:4;;-1:-1:-1;13292:34:4;:10;13307:18;13292:14;:34::i;:::-;13263:63;-1:-1:-1;13375:21:4;13409:36;13263:63;13409:16;:36::i;:::-;13457:18;13478:44;:21;13504:17;13478:25;:44::i;:::-;13457:65;-1:-1:-1;13543:23:4;13569:54;13605:17;13569:31;13457:65;13584:15;13569:14;:31::i;:54::-;13543:80;-1:-1:-1;13634:21:4;13658:52;13692:17;13658:29;:10;13673:13;13658:14;:29::i;:52::-;13634:76;;13760:15;13721:22;:35;;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;13786:33:4;:50;;13823:13;;13786:33;;;:50;;13823:13;;13786:50;:::i;:::-;;;;-1:-1:-1;13849:49:4;;-1:-1:-1;13862:18:4;13882:15;13849:12;:49::i;:::-;13948:21;13909:22;:35;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;14006:13:4;;13998:53;;13981:12;;14006:13;;;14033;;13981:12;13998:53;13981:12;13998:53;14033:13;14006;13998:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14083:15:4;;14075:63;;13980:71;;-1:-1:-1;14083:15:4;;;14112:21;;14075:63;;;;14112:21;14083:15;14075:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;11929:2217:4:o;8039:587::-;8107:7;8127:25;8190:3;8164:13;:23;;;8155:6;:32;;;;:::i;:::-;:38;;;;:::i;:::-;8127:66;;8205:26;8269:3;8243:13;:23;;;8234:6;:32;;;;:::i;:::-;:38;;;;:::i;:::-;8205:67;;8283:21;8339:3;8316:13;:21;;;8307:6;:30;;;;:::i;:::-;:35;;;;:::i;:::-;8283:59;-1:-1:-1;8283:59:4;8382:38;8402:18;8382:17;:38;:::i;:::-;:54;;;;:::i;:::-;8372:4;8355:23;;;;:8;:23;;;;;:81;;:23;;;:81;;;;;:::i;:::-;;;;-1:-1:-1;8476:4:4;;-1:-1:-1;8452:86:4;;;;8524:13;8483:38;8504:17;8483:18;:38;:::i;:::-;:54;;;;:::i;:::-;8452:86;;160:25:7;;;148:2;133:18;8452:86:4;;;;;;;8604:13;8584:18;8557:25;8565:17;8557:6;:25;:::i;:::-;:45;;;;:::i;:::-;:60;;;;:::i;:::-;8549:69;8039:587;-1:-1:-1;;;;;;8039:587:4:o;420:192:6:-;506:7;542:12;534:6;;;;526:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;566:9:6;578:5;582:1;578;:5;:::i;:::-;566:17;420:192;-1:-1:-1;;;;;420:192:6:o;1018:278::-;1104:7;1139:12;1132:5;1124:28;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1163:9:6;1175:5;1179:1;1175;:5;:::i;14154:475:4:-;14244:16;;;14258:1;14244:16;;;;;;;;14220:21;;14244:16;;;;;;;;;;-1:-1:-1;14244:16:4;14220:40;;14289:4;14271;14276:1;14271:7;;;;;;;;:::i;:::-;:23;;;;:7;;;;;;;;;;:23;;;;14315:15;;:22;;;;;;;;:15;;;;;:20;;:22;;;;;14271:7;;14315:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14305:4;14310:1;14305:7;;;;;;;;:::i;:::-;:32;;;;:7;;;;;;;;;:32;14382:15;;14350:62;;14367:4;;14382:15;14400:11;14350:8;:62::i;:::-;14425:15;;:196;;;;;:15;;;;;:66;;:196;;14506:11;;14425:15;;14548:4;;14575;;14595:15;;14425:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14209:420;14154:475;:::o;14637:374::-;14750:15;;14718:62;;14735:4;;14750:15;;14768:11;14718:8;:62::i;:::-;14793:15;;14945:17;;14793:210;;;;;14867:4;14793:210;;;16347:34:7;16397:18;;;16390:34;;;14793:15:4;16440:18:7;;;16433:34;;;16483:18;;;16476:34;14793:15:4;14945:17;;;16526:19:7;;;16519:44;14977:15:4;16579:19:7;;;16572:35;14793:15:4;;;:31;;14833:9;;16258:19:7;;14793:210:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14637:374;;:::o;196:607:7:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;794:2;724:66;719:2;711:6;707:15;703:88;692:9;688:104;684:113;676:121;;;;196:607;;;;:::o;1061:154::-;1147:42;1140:5;1136:54;1129:5;1126:65;1116:93;;1205:1;1202;1195:12;1220:315;1288:6;1296;1349:2;1337:9;1328:7;1324:23;1320:32;1317:52;;;1365:1;1362;1355:12;1317:52;1404:9;1391:23;1423:31;1448:5;1423:31;:::i;:::-;1473:5;1525:2;1510:18;;;;1497:32;;-1:-1:-1;;;1220:315:7:o;1732:248::-;1800:6;1808;1861:2;1849:9;1840:7;1836:23;1832:32;1829:52;;;1877:1;1874;1867:12;1829:52;-1:-1:-1;;1900:23:7;;;1970:2;1955:18;;;1942:32;;-1:-1:-1;1732:248:7:o;2242:180::-;2301:6;2354:2;2342:9;2333:7;2329:23;2325:32;2322:52;;;2370:1;2367;2360:12;2322:52;-1:-1:-1;2393:23:7;;2242:180;-1:-1:-1;2242:180:7:o;2427:456::-;2504:6;2512;2520;2573:2;2561:9;2552:7;2548:23;2544:32;2541:52;;;2589:1;2586;2579:12;2541:52;2628:9;2615:23;2647:31;2672:5;2647:31;:::i;:::-;2697:5;-1:-1:-1;2754:2:7;2739:18;;2726:32;2767:33;2726:32;2767:33;:::i;:::-;2427:456;;2819:7;;-1:-1:-1;;;2873:2:7;2858:18;;;;2845:32;;2427:456::o;3119:247::-;3178:6;3231:2;3219:9;3210:7;3206:23;3202:32;3199:52;;;3247:1;3244;3237:12;3199:52;3286:9;3273:23;3305:31;3330:5;3305:31;:::i;3884:118::-;3970:5;3963:13;3956:21;3949:5;3946:32;3936:60;;3992:1;3989;3982:12;4007:444;4078:6;4086;4094;4147:2;4135:9;4126:7;4122:23;4118:32;4115:52;;;4163:1;4160;4153:12;4115:52;4202:9;4189:23;4221:28;4243:5;4221:28;:::i;:::-;4268:5;-1:-1:-1;4320:2:7;4305:18;;4292:32;;-1:-1:-1;4376:2:7;4361:18;;4348:32;4389:30;4348:32;4389:30;:::i;:::-;4438:7;4428:17;;;4007:444;;;;;:::o;4456:523::-;4560:6;4568;4576;4584;4592;4600;4653:3;4641:9;4632:7;4628:23;4624:33;4621:53;;;4670:1;4667;4660:12;4621:53;-1:-1:-1;;4693:23:7;;;4763:2;4748:18;;4735:32;;-1:-1:-1;4814:2:7;4799:18;;4786:32;;4865:2;4850:18;;4837:32;;-1:-1:-1;4916:3:7;4901:19;;4888:33;;-1:-1:-1;4968:3:7;4953:19;4940:33;;-1:-1:-1;4456:523:7;-1:-1:-1;4456:523:7:o;4984:382::-;5049:6;5057;5110:2;5098:9;5089:7;5085:23;5081:32;5078:52;;;5126:1;5123;5116:12;5078:52;5165:9;5152:23;5184:31;5209:5;5184:31;:::i;:::-;5234:5;-1:-1:-1;5291:2:7;5276:18;;5263:32;5304:30;5263:32;5304:30;:::i;:::-;5353:7;5343:17;;;4984:382;;;;;:::o;5983:388::-;6051:6;6059;6112:2;6100:9;6091:7;6087:23;6083:32;6080:52;;;6128:1;6125;6118:12;6080:52;6167:9;6154:23;6186:31;6211:5;6186:31;:::i;:::-;6236:5;-1:-1:-1;6293:2:7;6278:18;;6265:32;6306:33;6265:32;6306:33;:::i;7152:184::-;7204:77;7201:1;7194:88;7301:4;7298:1;7291:15;7325:4;7322:1;7315:15;7341:168;7414:9;;;7445;;7462:15;;;7456:22;;7442:37;7432:71;;7483:18;;:::i;7514:128::-;7581:9;;;7602:11;;;7599:37;;;7616:18;;:::i;8055:125::-;8120:9;;;8141:10;;;8138:36;;;8154:18;;:::i;9428:184::-;9498:6;9551:2;9539:9;9530:7;9526:23;9522:32;9519:52;;;9567:1;9564;9557:12;9519:52;-1:-1:-1;9590:16:7;;9428:184;-1:-1:-1;9428:184:7:o;9919:245::-;9986:6;10039:2;10027:9;10018:7;10014:23;10010:32;10007:52;;;10055:1;10052;10045:12;10007:52;10087:9;10081:16;10106:28;10128:5;10106:28;:::i;13427:274::-;13467:1;13493;13483:189;;13528:77;13525:1;13518:88;13629:4;13626:1;13619:15;13657:4;13654:1;13647:15;13483:189;-1:-1:-1;13686:9:7;;13427:274::o;14507:184::-;14559:77;14556:1;14549:88;14656:4;14653:1;14646:15;14680:4;14677:1;14670:15;14696:251;14766:6;14819:2;14807:9;14798:7;14794:23;14790:32;14787:52;;;14835:1;14832;14825:12;14787:52;14867:9;14861:16;14886:31;14911:5;14886:31;:::i;14952:1026::-;15214:4;15262:3;15251:9;15247:19;15293:6;15282:9;15275:25;15319:2;15357:6;15352:2;15341:9;15337:18;15330:34;15400:3;15395:2;15384:9;15380:18;15373:31;15424:6;15459;15453:13;15490:6;15482;15475:22;15528:3;15517:9;15513:19;15506:26;;15567:2;15559:6;15555:15;15541:29;;15588:1;15598:218;15612:6;15609:1;15606:13;15598:218;;;15677:13;;15692:42;15673:62;15661:75;;15791:15;;;;15756:12;;;;15634:1;15627:9;15598:218;;;-1:-1:-1;;15884:42:7;15872:55;;;;15867:2;15852:18;;15845:83;-1:-1:-1;;;15959:3:7;15944:19;15937:35;15833:3;14952:1026;-1:-1:-1;;;14952:1026:7:o;16618:306::-;16706:6;16714;16722;16775:2;16763:9;16754:7;16750:23;16746:32;16743:52;;;16791:1;16788;16781:12;16743:52;16820:9;16814:16;16804:26;;16870:2;16859:9;16855:18;16849:25;16839:35;;16914:2;16903:9;16899:18;16893:25;16883:35;;16618:306;;;;;:::o

Swarm Source

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