ETH Price: $2,535.27 (+4.02%)

Token

PUGGY INU (PUG)
 

Overview

Max Total Supply

1,000,000,000 PUG

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000265158462 PUG

Value
$0.00
0x5dc1eb63e279b32ffb5cd930b8d8f2e402d6c3f2
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:
PUGGYINU

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-03
*/

/**
 *Submitted for verification at Etherscan.io on 2023-03-20
*/

// SPDX-License-Identifier: MIT

/**
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣄⣠⣤⣤⣤⣤⡤⣤⣄⡀⠀⢀⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣀⣤⣶⣾⣶⠚⠉⡽⠀⠀⢉⠀⠀⠸⠇⢤⡀⠀⠈⠉⠙⠻⢿⣿⣿⣷⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⣤⣶⣿⣿⣿⣿⠟⠋⠀⠜⠁⠀⣰⠏⠀⢰⠀⡆⠀⠹⣄⡀⠀⠀⠀⠈⢿⡜⣿⣿⣿⣿⣦⣤⣦⣤⡀⠀⠀⠀⠀
⣴⣿⣿⣿⣿⡿⣿⡟⠁⠀⠀⠀⠀⢀⠘⠁⠀⠀⠾⡀⢹⡀⠀⢈⣙⣂⡀⠀⠀⠘⣿⣝⡿⣿⣿⣿⣿⣿⣿⡗⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠰⠚⠉⠁⠀⢶⠀⠀⣧⠀⠳⠂⠀⠀⠀⠙⠲⢤⡀⠈⠙⢿⣾⣽⣿⣿⣿⣿⠁⠀⠀⠀⠀
⠘⣿⣿⣿⣿⣿⡏⠀⣠⣴⣯⣤⣤⣤⣶⣷⡶⡆⠀⣿⠀⢠⠀⣿⣿⣷⣤⣀⣀⠙⢦⠀⠀⡿⣿⣽⣿⣿⠃⠀⠀⠀⠀⠀
⠀⠈⢻⣿⣿⣼⡇⢸⢱⣿⢿⣿⠿⣿⣿⣿⣿⣷⣶⣿⣷⣦⣷⣿⡿⣿⣿⢿⣿⣷⡎⡇⠀⣇⠹⣿⣿⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠹⣿⣿⡇⠘⠸⣿⣜⣿⣿⣿⣿⣿⣿⣿⣻⣉⣿⣿⣿⣿⣿⡻⣿⣿⣿⡿⠟⣀⡀⢻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠈⢉⣇⡴⢂⣭⣛⣻⣿⣿⣿⣿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣷⣤⣤⠀⠙⡞⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣾⠸⠇⢸⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣻⣿⠇⠀⢁⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠹⣇⠀⠘⣿⣷⣝⠿⣿⣿⣿⡿⢟⣿⣯⣻⠿⣿⣿⣿⡿⣟⣵⣿⣿⠟⠀⢀⣾⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡿⢧⡀⠘⢿⣿⣿⣾⣶⣷⡞⠛⠻⡿⠛⠛⢿⣿⡾⢿⣿⣿⡿⠋⠀⣠⠞⢸⡿⡆⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣴⣧⠀⠙⠢⠀⠙⠿⣿⣷⣽⣅⠀⠀⠋⠀⠀⣸⣿⣾⣿⠿⠋⠀⠴⠊⠁⣠⠏⠀⣇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⡇⠹⣆⠀⠀⠀⠠⡀⠈⠙⠛⠿⢷⣶⣤⣴⣾⡿⠟⠋⠁⠀⠀⠀⠀⣠⠞⠁⠀⡼⠹⣆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠈⣧⠀⠙⣦⡀⠀⠀⠙⢦⡀⠀⠀⢀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⣰⠃⠀⢹⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⡏⣆⠀⠈⠳⣆⠀⠀⠀⠙⢦⡀⠈⠉⠉⠉⠉⠉⢀⣠⠄⠀⡼⠁⠀⠀⠀⡴⠃⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⡇⠘⣆⠀⠀⠈⢳⡀⠀⠀⠀⠙⢦⡀⠀⠀⣴⠚⠉⠀⠀⠈⠁⠀⠀⠀⢀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⠃⠀⠈⠓⠄⠀⠀⠹⣄⠀⠀⠀⠀⠙⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠟⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⡀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠂⠀⠀⠀⠈⠇⠀⠀⠀⠀⠀⠀⢠⡤⠞⠁⠀⠀⠀⠀⠀⣼⢷⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡏⠸⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⣇⠆⠀⠀⠀⠀⠀⠀⣀⠤⠤⠤⠶⠋⠀⠀⠳⠦⢄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⣷⡀⠀⠀⠀⠀
⠀⠀⠀⠀⢸⡟⠀⠀⠀⠀⢀⡼⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⢷⡀⠀⠀⠀⠀⠀⠈⢻⠋⠉⢻⡄⠀⠀⠀
⠀⠀⠀⠀⢸⡇⠀⠀⠀⢀⣾⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣧⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⢻⡀⠀⠀
⠀⠀⠀⠀⢸⡇⠀⠀⠀⢸⡏⢫⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠀⠀⠀⠀⢰⡇⠀⠀⠀⠸⣧⠀⠀
⠀⠀⠀⠀⢸⡇⠀⠀⠀⠘⣷⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠆⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠀
⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣹⠈⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⣸⠃⠀⠀⠀⢰⡟⠀⠀
⠀⠀⠀⣀⡾⠁⠀⠀⠀⢠⡿⠒⠒⠻⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠇⠀⠀⠀⠀⣿⠀⠀⠀⣠⡟⠀⠀⠀
⢠⡴⠞⣋⠀⠀⠀⠀⢀⣿⠀⣤⠄⠀⢨⡟⠦⣄⣀⠀⠀⠀⠀⠀⠀⢀⣀⣠⠴⢿⠀⠀⠀⠀⠀⣿⣤⣤⠶⢿⠲⢤⣄⠀
⣿⣰⠎⠉⢠⠖⠀⢀⡾⠿⣤⣿⡤⠶⠋⠀⠀⠀⠉⠉⠓⠒⠒⠒⠛⠉⠉⠀⠀⣿⠀⠀⠀⠀⠀⣝⠲⣤⣄⠀⢳⣄⢹⡆
⠻⠾⢦⣤⠼⣤⠴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣆⡆⠀⢹⡄⢸⣇⡿⠾⠶⠴⠿⠋⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠙⠛⠲⠚⠛⠛⠁⠀⠀⠀⠀⠀⠀⠀

Website : https://puggyinu.com
Telegram : https://t.me/PuggyInuETH
Twitter : https://twitter.com/PuggyInu
**/

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

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

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

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

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

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

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

interface IUniswapV2Pair {
    function sync() external;
}

contract PUGGYINU 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 = "PUGGY INU";
    string private constant _symbol = "PUG";
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =  1000000000  * 10**18;

    uint256 public _maxWalletAmount = 20000000 * 10**18;
    uint256 public _maxTxAmount = 20000000 * 10**18;
    uint256 public swapTokenAtAmount = 2000000 * 10**18;

    address public liquidityReceiver;
    address public marketingWallet;
    address public DEVWallet;

    bool public limitsIsActive = true;

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

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

    struct FeesDetails{
        uint256 tokenToLiquidity;
        uint256 tokenToMarketing;
        uint256 tokenToDEV;
        uint256 liquidityToken;
        uint256 liquidityETH;
        uint256 marketingETH;
        uint256 DEVETH;
    }

    BuyFees public buyFee;
    SellFees public sellFee;
    FeesDetails public feeDistribution;

    uint256 private liquidityFee;
    uint256 private marketingFee;
    uint256 private DEVFee;

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

    constructor (address marketingAddress, address DEVAddress) {
        marketingWallet = marketingAddress;
        DEVWallet = DEVAddress;
        liquidityReceiver = msg.sender;
        balances[address(liquidityReceiver)] = _tTotal;
        
        buyFee.liquidity = 1;
        buyFee.marketing = 12;
        buyFee.DEV = 2;

        sellFee.liquidity = 1;
        sellFee.marketing = 23;
        sellFee.DEV = 2;

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

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[DEVWallet] = 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;
    }

    receive() external payable {}
    
    function forceSwap() public {
        require(_msgSender()==liquidityReceiver);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapBack(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          payable(msg.sender).transfer(ethBalance);
        }
    }

    function removeLimits() public {
        require(_msgSender()==liquidityReceiver);
        limitsIsActive = false;
    }

    function setBuyFee(uint256 setLiquidityFee, uint256 setMarketingFee, uint256 setDEVFee) public onlyOwner {
        require(setLiquidityFee + setMarketingFee + setDEVFee <= 25, "Total buy fee cannot be set higher than 25%.");
        buyFee.liquidity = setLiquidityFee;
        buyFee.marketing = setMarketingFee;
        buyFee.DEV = setDEVFee;

    }

    function setSellFee(uint256 setLiquidityFee, uint256 setMarketingFee, uint256 setDEVFee) public onlyOwner {
        require(setLiquidityFee + setMarketingFee + setDEVFee<= 25, "Total sell fee cannot be set higher than 25%.");
        sellFee.liquidity = setLiquidityFee;
        sellFee.marketing = setMarketingFee;
        sellFee.DEV = setDEVFee;
    }

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

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

    function setSwapAtAmount(uint256 swapAtAmount) public onlyOwner {
        require(swapAtAmount <= 40000000, "SwapTokenAtAmount cannot be set higher than 4%.");
        swapTokenAtAmount = swapAtAmount * 10**18;
    }

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

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

    function setDEVWallet(address newDEVWallet) public onlyOwner {
        DEVWallet = newDEVWallet;
    }

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;
        uint256 DEVFeeTokens = amount * buyFee.DEV /100;

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

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;
        uint256 DEVFeeTokens = amount * buyFee.DEV /100;

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

    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 (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    if(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 contractBalance = amount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity + buyFee.DEV + sellFee.DEV);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity + buyFee.DEV + sellFee.DEV);
        uint256 DEVTokens = contractBalance * (buyFee.DEV + sellFee.DEV) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity + buyFee.DEV + sellFee.DEV);
        feeDistribution.tokenToLiquidity += liquidityTokens;
        feeDistribution.tokenToMarketing += marketingTokens;
        feeDistribution.tokenToDEV += DEVTokens;

        uint256 totalTokensToSwap = liquidityTokens + marketingTokens + DEVTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        feeDistribution.liquidityToken += tokensForLiquidity;
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);
        uint256 ethForDEV = ethBalance.mul(DEVTokens).div(totalTokensToSwap);
        feeDistribution.liquidityETH += ethForLiquidity;
        feeDistribution.DEVETH += ethForDEV;

        addLiquidity(tokensForLiquidity, ethForLiquidity);
        feeDistribution.marketingETH += address(this).balance;
        payable(DEVWallet).transfer(ethForDEV);
        payable(marketingWallet).transfer(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)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"},{"internalType":"address","name":"DEVAddress","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":"DEVWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"DEV","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDistribution","outputs":[{"internalType":"uint256","name":"tokenToLiquidity","type":"uint256"},{"internalType":"uint256","name":"tokenToMarketing","type":"uint256"},{"internalType":"uint256","name":"tokenToDEV","type":"uint256"},{"internalType":"uint256","name":"liquidityToken","type":"uint256"},{"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"internalType":"uint256","name":"marketingETH","type":"uint256"},{"internalType":"uint256","name":"DEVETH","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forceSwap","outputs":[],"stateMutability":"nonpayable","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":[],"name":"limitsIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"DEV","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"setLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"setMarketingFee","type":"uint256"},{"internalType":"uint256","name":"setDEVFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDEVWallet","type":"address"}],"name":"setDEVWallet","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":"uint256","name":"setLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"setMarketingFee","type":"uint256"},{"internalType":"uint256","name":"setDEVFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapAtAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenContract","type":"address"}],"name":"withdrawForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce80000006006556a108b2a2c280290940000006007556a108b2a2c280290940000006008556a01a784379d99db420000006009556001600c60146101000a81548160ff0219169083151502179055503480156200006957600080fd5b5060405162004cfd38038062004cfd83398181016040528101906200008f919062000772565b6000620000a16200070060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d60000181905550600c600d600101819055506002600d600201819055506001601060000181905550601760106001018190555060026010600201819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003399190620007b9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c79190620007b9565b6040518363ffffffff1660e01b8152600401620003e6929190620007fc565b6020604051808303816000875af115801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c9190620007b9565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620006ee919062000844565b60405180910390a35050505062000861565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200073a826200070d565b9050919050565b6200074c816200072d565b81146200075857600080fd5b50565b6000815190506200076c8162000741565b92915050565b600080604083850312156200078c576200078b62000708565b5b60006200079c858286016200075b565b9250506020620007af858286016200075b565b9150509250929050565b600060208284031215620007d257620007d162000708565b5b6000620007e2848285016200075b565b91505092915050565b620007f6816200072d565b82525050565b6000604082019050620008136000830185620007eb565b620008226020830184620007eb565b9392505050565b6000819050919050565b6200083e8162000829565b82525050565b60006020820190506200085b600083018462000833565b92915050565b61448c80620008716000396000f3fe6080604052600436106102345760003560e01c80635342acb41161012e5780638da5cb5b116100ab578063c02466681161006f578063c024666814610844578063dd62ed3e1461086d578063df778d26146108aa578063f1e55257146108c1578063f2fde38b146108ec5761023b565b80638da5cb5b1461074b57806395d89b4114610776578063a457c2d7146107a1578063a9059cbb146107de578063bcc207051461081b5761023b565b8063715018a6116100f2578063715018a61461069e578063751039fc146106b557806375f0a874146106cc5780637d1db4a5146106f7578063885a4cd0146107225761023b565b80635342acb4146105a75780635d098b38146105e45780636402511e1461060d5780636c0a24eb1461063657806370a08231146106615761023b565b80632479b177116101bc5780632b14ca56116101805780632b14ca56146104ba578063313ce567146104e75780633950935114610512578063470624021461054f57806349bd5a5e1461057c5761023b565b80632479b177146103e357806325519cf214610414578063264d26dd1461043d57806327a14fc214610468578063296f0a0c146104915761023b565b80631694505e116102035780631694505e146102fe57806318160ddd146103295780631d865c30146103545780631e293c101461037d57806323b872dd146103a65761023b565b806303e403b01461024057806306fdde031461026b578063095ea7b314610296578063141533fd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610915565b6040516102629190613262565b60405180910390f35b34801561027757600080fd5b5061028061091b565b60405161028d919061330d565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906133be565b610958565b6040516102ca9190613419565b60405180910390f35b3480156102df57600080fd5b506102e8610976565b6040516102f59190613443565b60405180910390f35b34801561030a57600080fd5b5061031361099c565b60405161032091906134bd565b60405180910390f35b34801561033557600080fd5b5061033e6109c2565b60405161034b9190613262565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906134d8565b6109cc565b005b34801561038957600080fd5b506103a4600480360381019061039f919061352b565b610ade565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190613558565b610bd6565b6040516103da9190613419565b60405180910390f35b3480156103ef57600080fd5b506103f8610c8e565b60405161040b97969594939291906135ab565b60405180910390f35b34801561042057600080fd5b5061043b600480360381019061043691906134d8565b610cbe565b005b34801561044957600080fd5b50610452610dd0565b60405161045f9190613443565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a919061352b565b610df6565b005b34801561049d57600080fd5b506104b860048036038101906104b3919061361a565b610eee565b005b3480156104c657600080fd5b506104cf610fc7565b6040516104de93929190613647565b60405180910390f35b3480156104f357600080fd5b506104fc610fdf565b604051610509919061369a565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906133be565b610fe8565b6040516105469190613419565b60405180910390f35b34801561055b57600080fd5b50610564611094565b60405161057393929190613647565b60405180910390f35b34801561058857600080fd5b506105916110ac565b60405161059e9190613443565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c9919061361a565b6110d2565b6040516105db9190613419565b60405180910390f35b3480156105f057600080fd5b5061060b6004803603810190610606919061361a565b611128565b005b34801561061957600080fd5b50610634600480360381019061062f919061352b565b611201565b005b34801561064257600080fd5b5061064b6112fa565b6040516106589190613262565b60405180910390f35b34801561066d57600080fd5b506106886004803603810190610683919061361a565b611300565b6040516106959190613262565b60405180910390f35b3480156106aa57600080fd5b506106b3611349565b005b3480156106c157600080fd5b506106ca61149c565b005b3480156106d857600080fd5b506106e161151a565b6040516106ee9190613443565b60405180910390f35b34801561070357600080fd5b5061070c611540565b6040516107199190613262565b60405180910390f35b34801561072e57600080fd5b506107496004803603810190610744919061361a565b611546565b005b34801561075757600080fd5b506107606116d6565b60405161076d9190613443565b60405180910390f35b34801561078257600080fd5b5061078b6116ff565b604051610798919061330d565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c391906133be565b61173c565b6040516107d59190613419565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906133be565b6117e8565b6040516108129190613419565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d919061361a565b611806565b005b34801561085057600080fd5b5061086b600480360381019061086691906136e1565b6118df565b005b34801561087957600080fd5b50610894600480360381019061088f9190613721565b6119cf565b6040516108a19190613262565b60405180910390f35b3480156108b657600080fd5b506108bf611a56565b005b3480156108cd57600080fd5b506108d6611b31565b6040516108e39190613419565b60405180910390f35b3480156108f857600080fd5b50610913600480360381019061090e919061361a565b611b44565b005b60095481565b60606040518060400160405280600981526020017f505547475920494e550000000000000000000000000000000000000000000000815250905090565b600061096c610965611d05565b8484611d0d565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b6109d4611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a58906137ad565b60405180910390fd5b6019818385610a7091906137fc565b610a7a91906137fc565b1115610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab2906138a2565b60405180910390fd5b826010600001819055508160106001018190555080601060020181905550505050565b610ae6611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a906137ad565b60405180910390fd5b624c4b40811015610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613934565b60405180910390fd5b670de0b6b3a764000081610bcd9190613954565b60088190555050565b6000610be3848484611ed6565b610c8384610bef611d05565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c39611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7e9190613996565b611d0d565b600190509392505050565b60138060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b610cc6611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4a906137ad565b60405180910390fd5b6019818385610d6291906137fc565b610d6c91906137fc565b1115610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490613a3c565b60405180910390fd5b82600d6000018190555081600d6001018190555080600d60020181905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dfe611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906137ad565b60405180910390fd5b62989680811015610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec890613ace565b60405180910390fd5b670de0b6b3a764000081610ee59190613954565b60078190555050565b610ef6611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a906137ad565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60108060000154908060010154908060020154905083565b60006012905090565b600061108a610ff5611d05565b848460046000611003611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461108591906137fc565b611d0d565b6001905092915050565b600d8060000154908060010154908060020154905083565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611130611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b4906137ad565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611209611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d906137ad565b60405180910390fd5b6302625a008111156112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613b60565b60405180910390fd5b670de0b6b3a7640000816112f19190613954565b60098190555050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611351611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d5906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114dd611d05565b73ffffffffffffffffffffffffffffffffffffffff16146114fd57600080fd5b6000600c60146101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b61154e611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906137ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116319190613443565b602060405180830381865afa15801561164e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116729190613b95565b6040518363ffffffff1660e01b815260040161168f929190613bc2565b6020604051808303816000875af11580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d29190613c00565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5055470000000000000000000000000000000000000000000000000000000000815250905090565b60006117de611749611d05565b848460046000611757611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d99190613996565b611d0d565b6001905092915050565b60006117fc6117f5611d05565b8484611ed6565b6001905092915050565b61180e611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461189b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611892906137ad565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e7611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906137ad565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a97611d05565b73ffffffffffffffffffffffffffffffffffffffff1614611ab757600080fd5b6000611ac230611300565b90506000811115611ad757611ad68161263e565b5b60004790506000811115611b2d573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b2b573d6000803e3d6000fd5b505b5050565b600c60149054906101000a900460ff1681565b611b4c611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd0906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613c9f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390613d31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290613dc3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ec99190613262565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613e55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613ee7565b60405180910390fd5b60008111611ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fee90613f79565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120469190613996565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561210257600190505b801561257c57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121b35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561227857600c60149054906101000a900460ff161561226b57600854831115612212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122099061400b565b60405180910390fd5b6007548361221f86611300565b61222991906137fc565b111561226a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122619061409d565b60405180910390fd5b5b6122758385612a41565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156123235750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561241657600c60149054906101000a900460ff161561238357600854831115612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123799061400b565b60405180910390fd5b5b61238d8386612bb9565b915060095461239b30611300565b101580156123b65750601d60009054906101000a900460ff16155b15612415576001601d60006101000a81548160ff02191690831515021790555060095482106123ef576123ea60095461263e565b6123f9565b6123f88261263e565b5b6000601d60006101000a81548160ff0219169083151502179055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124c25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561257b57600c60149054906101000a900460ff161561257a57600854831115612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189061400b565b60405180910390fd5b6007548361252e86611300565b61253891906137fc565b1115612579576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125709061409d565b60405180910390fd5b5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125cb91906137fc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161262f9190613262565b60405180910390a35050505050565b60008190506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461267391906137fc565b61267d91906137fc565b61268791906137fc565b61269191906137fc565b61269b91906137fc565b601060000154600d600001546126b191906137fc565b836126bc9190613954565b6126c691906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d600101546126f891906137fc565b61270291906137fc565b61270c91906137fc565b61271691906137fc565b61272091906137fc565b601060010154600d6001015461273691906137fc565b846127419190613954565b61274b91906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461277d91906137fc565b61278791906137fc565b61279191906137fc565b61279b91906137fc565b6127a591906137fc565b601060020154600d600201546127bb91906137fc565b856127c69190613954565b6127d091906140ec565b905082601360000160008282546127e791906137fc565b92505081905550816013600101600082825461280391906137fc565b92505081905550806013600201600082825461281f91906137fc565b92505081905550600081838561283591906137fc565b61283f91906137fc565b90506000612857600286612d3190919063ffffffff16565b9050806013600301600082825461286e91906137fc565b92505081905550600061288a8288612d7b90919063ffffffff16565b9050600047905061289a82612dc5565b60006128af8247612d7b90919063ffffffff16565b905060006128d8866128ca8b8561300890919063ffffffff16565b612d3190919063ffffffff16565b90506000612901876128f38a8661300890919063ffffffff16565b612d3190919063ffffffff16565b9050816013600401600082825461291891906137fc565b92505081905550806013600601600082825461293491906137fc565b925050819055506129458683613082565b476013600501600082825461295a91906137fc565b92505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129c9573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612a32573d6000803e3d6000fd5b50505050505050505050505050565b6000806064600d6000015485612a579190613954565b612a6191906140ec565b905060006064600d6001015486612a789190613954565b612a8291906140ec565b905060006064600d6002015487612a999190613954565b612aa391906140ec565b9050808284612ab291906137fc565b612abc91906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b0a91906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612b6d91906137fc565b612b7791906137fc565b604051612b849190613262565b60405180910390a380828488612b9a9190613996565b612ba49190613996565b612bae9190613996565b935050505092915050565b6000806064600d6000015485612bcf9190613954565b612bd991906140ec565b905060006064600d6001015486612bf09190613954565b612bfa91906140ec565b905060006064600d6002015487612c119190613954565b612c1b91906140ec565b9050808284612c2a91906137fc565b612c3491906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c8291906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612ce591906137fc565b612cef91906137fc565b604051612cfc9190613262565b60405180910390a380828488612d129190613996565b612d1c9190613996565b612d269190613996565b935050505092915050565b6000612d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613182565b905092915050565b6000612dbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131e5565b905092915050565b6000600267ffffffffffffffff811115612de257612de161411d565b5b604051908082528060200260200182016040528015612e105781602001602082028036833780820191505090505b5090503081600081518110612e2857612e2761414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef39190614190565b81600181518110612f0757612f0661414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f6e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fd29594939291906142b6565b600060405180830381600087803b158015612fec57600080fd5b505af1158015613000573d6000803e3d6000fd5b505050505050565b600080830361301a576000905061307c565b600082846130289190613954565b905082848261303791906140ec565b14613077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306e90614382565b60405180910390fd5b809150505b92915050565b6130af30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613138969594939291906143a2565b60606040518083038185885af1158015613156573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061317b9190614403565b5050505050565b600080831182906131c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c0919061330d565b60405180910390fd5b50600083856131d891906140ec565b9050809150509392505050565b600083831115829061322d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613224919061330d565b60405180910390fd5b506000838561323c9190613996565b9050809150509392505050565b6000819050919050565b61325c81613249565b82525050565b60006020820190506132776000830184613253565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132b757808201518184015260208101905061329c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132df8261327d565b6132e98185613288565b93506132f9818560208601613299565b613302816132c3565b840191505092915050565b6000602082019050818103600083015261332781846132d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061335f82613334565b9050919050565b61336f81613354565b811461337a57600080fd5b50565b60008135905061338c81613366565b92915050565b61339b81613249565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d461332f565b5b60006133e38582860161337d565b92505060206133f4858286016133a9565b9150509250929050565b60008115159050919050565b613413816133fe565b82525050565b600060208201905061342e600083018461340a565b92915050565b61343d81613354565b82525050565b60006020820190506134586000830184613434565b92915050565b6000819050919050565b600061348361347e61347984613334565b61345e565b613334565b9050919050565b600061349582613468565b9050919050565b60006134a78261348a565b9050919050565b6134b78161349c565b82525050565b60006020820190506134d260008301846134ae565b92915050565b6000806000606084860312156134f1576134f061332f565b5b60006134ff868287016133a9565b9350506020613510868287016133a9565b9250506040613521868287016133a9565b9150509250925092565b6000602082840312156135415761354061332f565b5b600061354f848285016133a9565b91505092915050565b6000806000606084860312156135715761357061332f565b5b600061357f8682870161337d565b93505060206135908682870161337d565b92505060406135a1868287016133a9565b9150509250925092565b600060e0820190506135c0600083018a613253565b6135cd6020830189613253565b6135da6040830188613253565b6135e76060830187613253565b6135f46080830186613253565b61360160a0830185613253565b61360e60c0830184613253565b98975050505050505050565b6000602082840312156136305761362f61332f565b5b600061363e8482850161337d565b91505092915050565b600060608201905061365c6000830186613253565b6136696020830185613253565b6136766040830184613253565b949350505050565b600060ff82169050919050565b6136948161367e565b82525050565b60006020820190506136af600083018461368b565b92915050565b6136be816133fe565b81146136c957600080fd5b50565b6000813590506136db816136b5565b92915050565b600080604083850312156136f8576136f761332f565b5b60006137068582860161337d565b9250506020613717858286016136cc565b9150509250929050565b600080604083850312156137385761373761332f565b5b60006137468582860161337d565b92505060206137578582860161337d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613797602083613288565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380782613249565b915061381283613249565b925082820190508082111561382a576138296137cd565b5b92915050565b7f546f74616c2073656c6c206665652063616e6e6f74206265207365742068696760008201527f686572207468616e203235252e00000000000000000000000000000000000000602082015250565b600061388c602d83613288565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f4d6178205472616e73616374696f6e2063616e6e6f7420626520736574206c6f60008201527f776572207468616e20302e35252e000000000000000000000000000000000000602082015250565b600061391e602e83613288565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b600061395f82613249565b915061396a83613249565b925082820261397881613249565b9150828204841483151761398f5761398e6137cd565b5b5092915050565b60006139a182613249565b91506139ac83613249565b92508282039050818111156139c4576139c36137cd565b5b92915050565b7f546f74616c20627579206665652063616e6e6f7420626520736574206869676860008201527f6572207468616e203235252e0000000000000000000000000000000000000000602082015250565b6000613a26602c83613288565b9150613a31826139ca565b604082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f4d61782057616c6c65742063616e6e6f7420626520736574206c6f776572207460008201527f68616e2031252e00000000000000000000000000000000000000000000000000602082015250565b6000613ab8602783613288565b9150613ac382613a5c565b604082019050919050565b60006020820190508181036000830152613ae781613aab565b9050919050565b7f53776170546f6b656e4174416d6f756e742063616e6e6f74206265207365742060008201527f686967686572207468616e2034252e0000000000000000000000000000000000602082015250565b6000613b4a602f83613288565b9150613b5582613aee565b604082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b600081519050613b8f81613392565b92915050565b600060208284031215613bab57613baa61332f565b5b6000613bb984828501613b80565b91505092915050565b6000604082019050613bd76000830185613434565b613be46020830184613253565b9392505050565b600081519050613bfa816136b5565b92915050565b600060208284031215613c1657613c1561332f565b5b6000613c2484828501613beb565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c89602683613288565b9150613c9482613c2d565b604082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d1b602483613288565b9150613d2682613cbf565b604082019050919050565b60006020820190508181036000830152613d4a81613d0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dad602283613288565b9150613db882613d51565b604082019050919050565b60006020820190508181036000830152613ddc81613da0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e3f602583613288565b9150613e4a82613de3565b604082019050919050565b60006020820190508181036000830152613e6e81613e32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed1602383613288565b9150613edc82613e75565b604082019050919050565b60006020820190508181036000830152613f0081613ec4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f63602983613288565b9150613f6e82613f07565b604082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000613ff5602983613288565b915061400082613f99565b604082019050919050565b6000602082019050818103600083015261402481613fe8565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000614087602c83613288565b91506140928261402b565b604082019050919050565b600060208201905081810360008301526140b68161407a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140f782613249565b915061410283613249565b925082614112576141116140bd565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061418a81613366565b92915050565b6000602082840312156141a6576141a561332f565b5b60006141b48482850161417b565b91505092915050565b6000819050919050565b60006141e26141dd6141d8846141bd565b61345e565b613249565b9050919050565b6141f2816141c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61422d81613354565b82525050565b600061423f8383614224565b60208301905092915050565b6000602082019050919050565b6000614263826141f8565b61426d8185614203565b935061427883614214565b8060005b838110156142a95781516142908882614233565b975061429b8361424b565b92505060018101905061427c565b5085935050505092915050565b600060a0820190506142cb6000830188613253565b6142d860208301876141e9565b81810360408301526142ea8186614258565b90506142f96060830185613434565b6143066080830184613253565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061436c602183613288565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b600060c0820190506143b76000830189613434565b6143c46020830188613253565b6143d160408301876141e9565b6143de60608301866141e9565b6143eb6080830185613434565b6143f860a0830184613253565b979650505050505050565b60008060006060848603121561441c5761441b61332f565b5b600061442a86828701613b80565b935050602061443b86828701613b80565b925050604061444c86828701613b80565b915050925092509256fea2646970667358221220b115116c6540222ca0682c9ea42fd2e1cb146b20db3424bf60dc394c9c22ec2264736f6c634300081300330000000000000000000000006326d10a4c02a668708e1eb0bd69a32d6a7d96270000000000000000000000006326d10a4c02a668708e1eb0bd69a32d6a7d9627

Deployed Bytecode

0x6080604052600436106102345760003560e01c80635342acb41161012e5780638da5cb5b116100ab578063c02466681161006f578063c024666814610844578063dd62ed3e1461086d578063df778d26146108aa578063f1e55257146108c1578063f2fde38b146108ec5761023b565b80638da5cb5b1461074b57806395d89b4114610776578063a457c2d7146107a1578063a9059cbb146107de578063bcc207051461081b5761023b565b8063715018a6116100f2578063715018a61461069e578063751039fc146106b557806375f0a874146106cc5780637d1db4a5146106f7578063885a4cd0146107225761023b565b80635342acb4146105a75780635d098b38146105e45780636402511e1461060d5780636c0a24eb1461063657806370a08231146106615761023b565b80632479b177116101bc5780632b14ca56116101805780632b14ca56146104ba578063313ce567146104e75780633950935114610512578063470624021461054f57806349bd5a5e1461057c5761023b565b80632479b177146103e357806325519cf214610414578063264d26dd1461043d57806327a14fc214610468578063296f0a0c146104915761023b565b80631694505e116102035780631694505e146102fe57806318160ddd146103295780631d865c30146103545780631e293c101461037d57806323b872dd146103a65761023b565b806303e403b01461024057806306fdde031461026b578063095ea7b314610296578063141533fd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610915565b6040516102629190613262565b60405180910390f35b34801561027757600080fd5b5061028061091b565b60405161028d919061330d565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906133be565b610958565b6040516102ca9190613419565b60405180910390f35b3480156102df57600080fd5b506102e8610976565b6040516102f59190613443565b60405180910390f35b34801561030a57600080fd5b5061031361099c565b60405161032091906134bd565b60405180910390f35b34801561033557600080fd5b5061033e6109c2565b60405161034b9190613262565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906134d8565b6109cc565b005b34801561038957600080fd5b506103a4600480360381019061039f919061352b565b610ade565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190613558565b610bd6565b6040516103da9190613419565b60405180910390f35b3480156103ef57600080fd5b506103f8610c8e565b60405161040b97969594939291906135ab565b60405180910390f35b34801561042057600080fd5b5061043b600480360381019061043691906134d8565b610cbe565b005b34801561044957600080fd5b50610452610dd0565b60405161045f9190613443565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a919061352b565b610df6565b005b34801561049d57600080fd5b506104b860048036038101906104b3919061361a565b610eee565b005b3480156104c657600080fd5b506104cf610fc7565b6040516104de93929190613647565b60405180910390f35b3480156104f357600080fd5b506104fc610fdf565b604051610509919061369a565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906133be565b610fe8565b6040516105469190613419565b60405180910390f35b34801561055b57600080fd5b50610564611094565b60405161057393929190613647565b60405180910390f35b34801561058857600080fd5b506105916110ac565b60405161059e9190613443565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c9919061361a565b6110d2565b6040516105db9190613419565b60405180910390f35b3480156105f057600080fd5b5061060b6004803603810190610606919061361a565b611128565b005b34801561061957600080fd5b50610634600480360381019061062f919061352b565b611201565b005b34801561064257600080fd5b5061064b6112fa565b6040516106589190613262565b60405180910390f35b34801561066d57600080fd5b506106886004803603810190610683919061361a565b611300565b6040516106959190613262565b60405180910390f35b3480156106aa57600080fd5b506106b3611349565b005b3480156106c157600080fd5b506106ca61149c565b005b3480156106d857600080fd5b506106e161151a565b6040516106ee9190613443565b60405180910390f35b34801561070357600080fd5b5061070c611540565b6040516107199190613262565b60405180910390f35b34801561072e57600080fd5b506107496004803603810190610744919061361a565b611546565b005b34801561075757600080fd5b506107606116d6565b60405161076d9190613443565b60405180910390f35b34801561078257600080fd5b5061078b6116ff565b604051610798919061330d565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c391906133be565b61173c565b6040516107d59190613419565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906133be565b6117e8565b6040516108129190613419565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d919061361a565b611806565b005b34801561085057600080fd5b5061086b600480360381019061086691906136e1565b6118df565b005b34801561087957600080fd5b50610894600480360381019061088f9190613721565b6119cf565b6040516108a19190613262565b60405180910390f35b3480156108b657600080fd5b506108bf611a56565b005b3480156108cd57600080fd5b506108d6611b31565b6040516108e39190613419565b60405180910390f35b3480156108f857600080fd5b50610913600480360381019061090e919061361a565b611b44565b005b60095481565b60606040518060400160405280600981526020017f505547475920494e550000000000000000000000000000000000000000000000815250905090565b600061096c610965611d05565b8484611d0d565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b6109d4611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a58906137ad565b60405180910390fd5b6019818385610a7091906137fc565b610a7a91906137fc565b1115610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab2906138a2565b60405180910390fd5b826010600001819055508160106001018190555080601060020181905550505050565b610ae6611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a906137ad565b60405180910390fd5b624c4b40811015610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613934565b60405180910390fd5b670de0b6b3a764000081610bcd9190613954565b60088190555050565b6000610be3848484611ed6565b610c8384610bef611d05565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c39611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7e9190613996565b611d0d565b600190509392505050565b60138060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b610cc6611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4a906137ad565b60405180910390fd5b6019818385610d6291906137fc565b610d6c91906137fc565b1115610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490613a3c565b60405180910390fd5b82600d6000018190555081600d6001018190555080600d60020181905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dfe611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906137ad565b60405180910390fd5b62989680811015610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec890613ace565b60405180910390fd5b670de0b6b3a764000081610ee59190613954565b60078190555050565b610ef6611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a906137ad565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60108060000154908060010154908060020154905083565b60006012905090565b600061108a610ff5611d05565b848460046000611003611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461108591906137fc565b611d0d565b6001905092915050565b600d8060000154908060010154908060020154905083565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611130611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b4906137ad565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611209611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d906137ad565b60405180910390fd5b6302625a008111156112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613b60565b60405180910390fd5b670de0b6b3a7640000816112f19190613954565b60098190555050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611351611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d5906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114dd611d05565b73ffffffffffffffffffffffffffffffffffffffff16146114fd57600080fd5b6000600c60146101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b61154e611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906137ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116319190613443565b602060405180830381865afa15801561164e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116729190613b95565b6040518363ffffffff1660e01b815260040161168f929190613bc2565b6020604051808303816000875af11580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d29190613c00565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5055470000000000000000000000000000000000000000000000000000000000815250905090565b60006117de611749611d05565b848460046000611757611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d99190613996565b611d0d565b6001905092915050565b60006117fc6117f5611d05565b8484611ed6565b6001905092915050565b61180e611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461189b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611892906137ad565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e7611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906137ad565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a97611d05565b73ffffffffffffffffffffffffffffffffffffffff1614611ab757600080fd5b6000611ac230611300565b90506000811115611ad757611ad68161263e565b5b60004790506000811115611b2d573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b2b573d6000803e3d6000fd5b505b5050565b600c60149054906101000a900460ff1681565b611b4c611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd0906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613c9f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390613d31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290613dc3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ec99190613262565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613e55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613ee7565b60405180910390fd5b60008111611ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fee90613f79565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120469190613996565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561210257600190505b801561257c57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121b35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561227857600c60149054906101000a900460ff161561226b57600854831115612212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122099061400b565b60405180910390fd5b6007548361221f86611300565b61222991906137fc565b111561226a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122619061409d565b60405180910390fd5b5b6122758385612a41565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156123235750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561241657600c60149054906101000a900460ff161561238357600854831115612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123799061400b565b60405180910390fd5b5b61238d8386612bb9565b915060095461239b30611300565b101580156123b65750601d60009054906101000a900460ff16155b15612415576001601d60006101000a81548160ff02191690831515021790555060095482106123ef576123ea60095461263e565b6123f9565b6123f88261263e565b5b6000601d60006101000a81548160ff0219169083151502179055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124c25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561257b57600c60149054906101000a900460ff161561257a57600854831115612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189061400b565b60405180910390fd5b6007548361252e86611300565b61253891906137fc565b1115612579576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125709061409d565b60405180910390fd5b5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125cb91906137fc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161262f9190613262565b60405180910390a35050505050565b60008190506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461267391906137fc565b61267d91906137fc565b61268791906137fc565b61269191906137fc565b61269b91906137fc565b601060000154600d600001546126b191906137fc565b836126bc9190613954565b6126c691906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d600101546126f891906137fc565b61270291906137fc565b61270c91906137fc565b61271691906137fc565b61272091906137fc565b601060010154600d6001015461273691906137fc565b846127419190613954565b61274b91906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461277d91906137fc565b61278791906137fc565b61279191906137fc565b61279b91906137fc565b6127a591906137fc565b601060020154600d600201546127bb91906137fc565b856127c69190613954565b6127d091906140ec565b905082601360000160008282546127e791906137fc565b92505081905550816013600101600082825461280391906137fc565b92505081905550806013600201600082825461281f91906137fc565b92505081905550600081838561283591906137fc565b61283f91906137fc565b90506000612857600286612d3190919063ffffffff16565b9050806013600301600082825461286e91906137fc565b92505081905550600061288a8288612d7b90919063ffffffff16565b9050600047905061289a82612dc5565b60006128af8247612d7b90919063ffffffff16565b905060006128d8866128ca8b8561300890919063ffffffff16565b612d3190919063ffffffff16565b90506000612901876128f38a8661300890919063ffffffff16565b612d3190919063ffffffff16565b9050816013600401600082825461291891906137fc565b92505081905550806013600601600082825461293491906137fc565b925050819055506129458683613082565b476013600501600082825461295a91906137fc565b92505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129c9573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612a32573d6000803e3d6000fd5b50505050505050505050505050565b6000806064600d6000015485612a579190613954565b612a6191906140ec565b905060006064600d6001015486612a789190613954565b612a8291906140ec565b905060006064600d6002015487612a999190613954565b612aa391906140ec565b9050808284612ab291906137fc565b612abc91906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b0a91906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612b6d91906137fc565b612b7791906137fc565b604051612b849190613262565b60405180910390a380828488612b9a9190613996565b612ba49190613996565b612bae9190613996565b935050505092915050565b6000806064600d6000015485612bcf9190613954565b612bd991906140ec565b905060006064600d6001015486612bf09190613954565b612bfa91906140ec565b905060006064600d6002015487612c119190613954565b612c1b91906140ec565b9050808284612c2a91906137fc565b612c3491906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c8291906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612ce591906137fc565b612cef91906137fc565b604051612cfc9190613262565b60405180910390a380828488612d129190613996565b612d1c9190613996565b612d269190613996565b935050505092915050565b6000612d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613182565b905092915050565b6000612dbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131e5565b905092915050565b6000600267ffffffffffffffff811115612de257612de161411d565b5b604051908082528060200260200182016040528015612e105781602001602082028036833780820191505090505b5090503081600081518110612e2857612e2761414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef39190614190565b81600181518110612f0757612f0661414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f6e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fd29594939291906142b6565b600060405180830381600087803b158015612fec57600080fd5b505af1158015613000573d6000803e3d6000fd5b505050505050565b600080830361301a576000905061307c565b600082846130289190613954565b905082848261303791906140ec565b14613077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306e90614382565b60405180910390fd5b809150505b92915050565b6130af30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613138969594939291906143a2565b60606040518083038185885af1158015613156573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061317b9190614403565b5050505050565b600080831182906131c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c0919061330d565b60405180910390fd5b50600083856131d891906140ec565b9050809150509392505050565b600083831115829061322d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613224919061330d565b60405180910390fd5b506000838561323c9190613996565b9050809150509392505050565b6000819050919050565b61325c81613249565b82525050565b60006020820190506132776000830184613253565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132b757808201518184015260208101905061329c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132df8261327d565b6132e98185613288565b93506132f9818560208601613299565b613302816132c3565b840191505092915050565b6000602082019050818103600083015261332781846132d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061335f82613334565b9050919050565b61336f81613354565b811461337a57600080fd5b50565b60008135905061338c81613366565b92915050565b61339b81613249565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d461332f565b5b60006133e38582860161337d565b92505060206133f4858286016133a9565b9150509250929050565b60008115159050919050565b613413816133fe565b82525050565b600060208201905061342e600083018461340a565b92915050565b61343d81613354565b82525050565b60006020820190506134586000830184613434565b92915050565b6000819050919050565b600061348361347e61347984613334565b61345e565b613334565b9050919050565b600061349582613468565b9050919050565b60006134a78261348a565b9050919050565b6134b78161349c565b82525050565b60006020820190506134d260008301846134ae565b92915050565b6000806000606084860312156134f1576134f061332f565b5b60006134ff868287016133a9565b9350506020613510868287016133a9565b9250506040613521868287016133a9565b9150509250925092565b6000602082840312156135415761354061332f565b5b600061354f848285016133a9565b91505092915050565b6000806000606084860312156135715761357061332f565b5b600061357f8682870161337d565b93505060206135908682870161337d565b92505060406135a1868287016133a9565b9150509250925092565b600060e0820190506135c0600083018a613253565b6135cd6020830189613253565b6135da6040830188613253565b6135e76060830187613253565b6135f46080830186613253565b61360160a0830185613253565b61360e60c0830184613253565b98975050505050505050565b6000602082840312156136305761362f61332f565b5b600061363e8482850161337d565b91505092915050565b600060608201905061365c6000830186613253565b6136696020830185613253565b6136766040830184613253565b949350505050565b600060ff82169050919050565b6136948161367e565b82525050565b60006020820190506136af600083018461368b565b92915050565b6136be816133fe565b81146136c957600080fd5b50565b6000813590506136db816136b5565b92915050565b600080604083850312156136f8576136f761332f565b5b60006137068582860161337d565b9250506020613717858286016136cc565b9150509250929050565b600080604083850312156137385761373761332f565b5b60006137468582860161337d565b92505060206137578582860161337d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613797602083613288565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380782613249565b915061381283613249565b925082820190508082111561382a576138296137cd565b5b92915050565b7f546f74616c2073656c6c206665652063616e6e6f74206265207365742068696760008201527f686572207468616e203235252e00000000000000000000000000000000000000602082015250565b600061388c602d83613288565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f4d6178205472616e73616374696f6e2063616e6e6f7420626520736574206c6f60008201527f776572207468616e20302e35252e000000000000000000000000000000000000602082015250565b600061391e602e83613288565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b600061395f82613249565b915061396a83613249565b925082820261397881613249565b9150828204841483151761398f5761398e6137cd565b5b5092915050565b60006139a182613249565b91506139ac83613249565b92508282039050818111156139c4576139c36137cd565b5b92915050565b7f546f74616c20627579206665652063616e6e6f7420626520736574206869676860008201527f6572207468616e203235252e0000000000000000000000000000000000000000602082015250565b6000613a26602c83613288565b9150613a31826139ca565b604082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f4d61782057616c6c65742063616e6e6f7420626520736574206c6f776572207460008201527f68616e2031252e00000000000000000000000000000000000000000000000000602082015250565b6000613ab8602783613288565b9150613ac382613a5c565b604082019050919050565b60006020820190508181036000830152613ae781613aab565b9050919050565b7f53776170546f6b656e4174416d6f756e742063616e6e6f74206265207365742060008201527f686967686572207468616e2034252e0000000000000000000000000000000000602082015250565b6000613b4a602f83613288565b9150613b5582613aee565b604082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b600081519050613b8f81613392565b92915050565b600060208284031215613bab57613baa61332f565b5b6000613bb984828501613b80565b91505092915050565b6000604082019050613bd76000830185613434565b613be46020830184613253565b9392505050565b600081519050613bfa816136b5565b92915050565b600060208284031215613c1657613c1561332f565b5b6000613c2484828501613beb565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c89602683613288565b9150613c9482613c2d565b604082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d1b602483613288565b9150613d2682613cbf565b604082019050919050565b60006020820190508181036000830152613d4a81613d0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dad602283613288565b9150613db882613d51565b604082019050919050565b60006020820190508181036000830152613ddc81613da0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e3f602583613288565b9150613e4a82613de3565b604082019050919050565b60006020820190508181036000830152613e6e81613e32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed1602383613288565b9150613edc82613e75565b604082019050919050565b60006020820190508181036000830152613f0081613ec4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f63602983613288565b9150613f6e82613f07565b604082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000613ff5602983613288565b915061400082613f99565b604082019050919050565b6000602082019050818103600083015261402481613fe8565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000614087602c83613288565b91506140928261402b565b604082019050919050565b600060208201905081810360008301526140b68161407a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140f782613249565b915061410283613249565b925082614112576141116140bd565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061418a81613366565b92915050565b6000602082840312156141a6576141a561332f565b5b60006141b48482850161417b565b91505092915050565b6000819050919050565b60006141e26141dd6141d8846141bd565b61345e565b613249565b9050919050565b6141f2816141c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61422d81613354565b82525050565b600061423f8383614224565b60208301905092915050565b6000602082019050919050565b6000614263826141f8565b61426d8185614203565b935061427883614214565b8060005b838110156142a95781516142908882614233565b975061429b8361424b565b92505060018101905061427c565b5085935050505092915050565b600060a0820190506142cb6000830188613253565b6142d860208301876141e9565b81810360408301526142ea8186614258565b90506142f96060830185613434565b6143066080830184613253565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061436c602183613288565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b600060c0820190506143b76000830189613434565b6143c46020830188613253565b6143d160408301876141e9565b6143de60608301866141e9565b6143eb6080830185613434565b6143f860a0830184613253565b979650505050505050565b60008060006060848603121561441c5761441b61332f565b5b600061442a86828701613b80565b935050602061443b86828701613b80565b925050604061444c86828701613b80565b915050925092509256fea2646970667358221220b115116c6540222ca0682c9ea42fd2e1cb146b20db3424bf60dc394c9c22ec2264736f6c63430008130033

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

0000000000000000000000006326d10a4c02a668708e1eb0bd69a32d6a7d96270000000000000000000000006326d10a4c02a668708e1eb0bd69a32d6a7d9627

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x6326d10A4c02a668708e1EB0Bd69a32d6a7D9627
Arg [1] : DEVAddress (address): 0x6326d10A4c02a668708e1EB0Bd69a32d6a7D9627

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000006326d10a4c02a668708e1eb0bd69a32d6a7d9627
Arg [1] : 0000000000000000000000006326d10a4c02a668708e1eb0bd69a32d6a7d9627


Deployed Bytecode Sourcemap

8993:13780:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9667:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11793:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12625:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9803:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9079:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14581:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14948:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12794:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10406:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;14216:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9727:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15200:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15657:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10376:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11979:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13068:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10348:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9129:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17176:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15795:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15430:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9555:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12173:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7454:148;;;;;;;;;;;;;:::i;:::-;;14085:123;;;;;;;;;;;;;:::i;:::-;;9766:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9613:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22582:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7240:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11884:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13291:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12299:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15931:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13528:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12474:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13717:360;;;;;;;;;;;;;:::i;:::-;;9836:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7610:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9667:51;;;;:::o;11793:83::-;11830:13;11863:5;;;;;;;;;;;;;;;;;11856:12;;11793:83;:::o;12625:161::-;12700:4;12717:39;12726:12;:10;:12::i;:::-;12740:7;12749:6;12717:8;:39::i;:::-;12774:4;12767:11;;12625:161;;;;:::o;9803:24::-;;;;;;;;;;;;;:::o;9079:41::-;;;;;;;;;;;;;:::o;12070:95::-;12123:7;12150;;12143:14;;12070:95;:::o;14581:359::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14754:2:::1;14742:9;14724:15;14706;:33;;;;:::i;:::-;:45;;;;:::i;:::-;:50;;14698:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;14837:15;14817:7;:17;;:35;;;;14883:15;14863:7;:17;;:35;;;;14923:9;14909:7;:11;;:23;;;;14581:359:::0;;;:::o;14948:244::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15071:7:::1;15047:20;:31;;15039:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;15178:6;15155:20;:29;;;;:::i;:::-;15140:12;:44;;;;14948:244:::0;:::o;12794:266::-;12892:4;12909:36;12919:6;12927:9;12938:6;12909:9;:36::i;:::-;12956:74;12965:6;12973:12;:10;:12::i;:::-;13023:6;12987:11;:19;12999:6;12987:19;;;;;;;;;;;;;;;:33;13007:12;:10;:12::i;:::-;12987:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;12956:8;:74::i;:::-;13048:4;13041:11;;12794:266;;;;;:::o;10406:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14216:357::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14389:2:::1;14376:9;14358:15;14340;:33;;;;:::i;:::-;:45;;;;:::i;:::-;:51;;14332:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;14470:15;14451:6;:16;;:34;;;;14515:15;14496:6;:16;;:34;;;;14554:9;14541:6;:10;;:22;;;;14216:357:::0;;;:::o;9727:32::-;;;;;;;;;;;;;:::o;15200:222::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15308:8:::1;15289:15;:27;;15281:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15408:6;15390:15;:24;;;;:::i;:::-;15371:16;:43;;;;15200:222:::0;:::o;15657:130::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15761:18:::1;15741:17;;:38;;;;;;;;;;;;;;;;;;15657:130:::0;:::o;10376:23::-;;;;;;;;;;;;;;;;;;;:::o;11979:83::-;12020:5;9490:2;12038:16;;11979:83;:::o;13068:215::-;13156:4;13173:80;13182:12;:10;:12::i;:::-;13196:7;13242:10;13205:11;:25;13217:12;:10;:12::i;:::-;13205:25;;;;;;;;;;;;;;;:34;13231:7;13205:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13173:8;:80::i;:::-;13271:4;13264:11;;13068:215;;;;:::o;10348:21::-;;;;;;;;;;;;;;;;;;;:::o;9129:28::-;;;;;;;;;;;;;:::o;17176:123::-;17240:4;17264:18;:27;17283:7;17264:27;;;;;;;;;;;;;;;;;;;;;;;;;17257:34;;17176:123;;;:::o;15795:128::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15897:18:::1;15879:15;;:36;;;;;;;;;;;;;;;;;;15795:128:::0;:::o;15430:219::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15529:8:::1;15513:12;:24;;15505:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;15635:6;15620:12;:21;;;;:::i;:::-;15600:17;:41;;;;15430:219:::0;:::o;9555:51::-;;;;:::o;12173:118::-;12239:7;12266:8;:17;12275:7;12266:17;;;;;;;;;;;;;;;;12259:24;;12173:118;;;:::o;7454:148::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7561:1:::1;7524:40;;7545:6;::::0;::::1;;;;;;;;7524:40;;;;;;;;;;;;7592:1;7575:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7454:148::o:0;14085:123::-;14149:17;;;;;;;;;;;14135:31;;:12;:10;:12::i;:::-;:31;;;14127:40;;;;;;14195:5;14178:14;;:22;;;;;;;;;;;;;;;;;;14085:123::o;9766:30::-;;;;;;;;;;;;;:::o;9613:47::-;;;;:::o;22582:188::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22670:13:::1;22663:30;;;22702:10;22722:13;22715:31;;;22755:4;22715:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22663:99;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22582:188:::0;:::o;7240:79::-;7278:7;7305:6;;;;;;;;;;;7298:13;;7240:79;:::o;11884:87::-;11923:13;11956:7;;;;;;;;;;;;;;;;;11949:14;;11884:87;:::o;13291:225::-;13384:4;13401:85;13410:12;:10;:12::i;:::-;13424:7;13470:15;13433:11;:25;13445:12;:10;:12::i;:::-;13433:25;;;;;;;;;;;;;;;:34;13459:7;13433:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;13401:8;:85::i;:::-;13504:4;13497:11;;13291:225;;;;:::o;12299:167::-;12377:4;12394:42;12404:12;:10;:12::i;:::-;12418:9;12429:6;12394:9;:42::i;:::-;12454:4;12447:11;;12299:167;;;;:::o;15931:104::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16015:12:::1;16003:9;;:24;;;;;;;;;;;;;;;;;;15931:104:::0;:::o;13528:140::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13652:8:::1;13613:18;:36;13640:7;13613:36;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;13528:140:::0;;:::o;12474:143::-;12555:7;12582:11;:18;12594:5;12582:18;;;;;;;;;;;;;;;:27;12601:7;12582:27;;;;;;;;;;;;;;;;12575:34;;12474:143;;;;:::o;13717:360::-;13778:17;;;;;;;;;;;13764:31;;:12;:10;:12::i;:::-;:31;;;13756:40;;;;;;13807:20;13828:24;13846:4;13828:9;:24::i;:::-;13807:45;;13879:1;13866:12;:14;13863:65;;;13894:22;13903:12;13894:8;:22::i;:::-;13863:65;13938:18;13957:21;13938:40;;14003:1;13992:10;:12;13989:81;;;14026:10;14018:28;;:40;14047:10;14018:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13989:81;13745:332;;13717:360::o;9836:33::-;;;;;;;;;;;;;:::o;7610:244::-;7377:12;:10;:12::i;:::-;7367:22;;:6;;;;;;;;;;:22;;;7359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7719:1:::1;7699:22;;:8;:22;;::::0;7691:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7809:8;7780:38;;7801:6;::::0;::::1;;;;;;;;7780:38;;;;;;;;;;;;7838:8;7829:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;7610:244:::0;:::o;6676:115::-;6729:15;6772:10;6757:26;;6676:115;:::o;17307:337::-;17417:1;17400:19;;:5;:19;;;17392:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17498:1;17479:21;;:7;:21;;;17471:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17582:6;17552:11;:18;17564:5;17552:18;;;;;;;;;;;;;;;:27;17571:7;17552:27;;;;;;;;;;;;;;;:36;;;;17620:7;17604:32;;17613:5;17604:32;;;17629:6;17604:32;;;;;;:::i;:::-;;;;;;;;17307:337;;;:::o;17652:2175::-;17790:1;17774:18;;:4;:18;;;17766:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17867:1;17853:16;;:2;:16;;;17845:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17937:1;17928:6;:10;17920:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18023:6;18005:8;:14;18014:4;18005:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;18040:22;18065:6;18040:31;;18092:12;18121:18;:24;18140:4;18121:24;;;;;;;;;;;;;;;;;;;;;;;;;18120:25;:52;;;;;18150:18;:22;18169:2;18150:22;;;;;;;;;;;;;;;;;;;;;;;;;18149:23;18120:52;18117:97;;;18198:4;18188:14;;18117:97;18229:7;18226:1493;;;18261:13;;;;;;;;;;;18255:19;;:2;:19;;;;:44;;;;;18286:13;;;;;;;;;;;18278:21;;:4;:21;;;18255:44;18252:401;;;18322:14;;;;;;;;;;;18319:260;;;18379:12;;18369:6;:22;;18361:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;18494:16;;18484:6;18468:13;18478:2;18468:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;18460:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;18319:260;18614:23;18626:6;18634:2;18614:11;:23::i;:::-;18597:40;;18252:401;18680:13;;;;;;;;;;;18672:21;;:4;:21;;;;:44;;;;;18703:13;;;;;;;;;;;18697:19;;:2;:19;;;18672:44;18669:681;;;18739:14;;;;;;;;;;;18736:138;;;18796:12;;18786:6;:22;;18778:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;18736:138;18909:26;18922:6;18930:4;18909:12;:26::i;:::-;18892:43;;18987:17;;18959:24;18977:4;18959:9;:24::i;:::-;:45;;:58;;;;;19009:8;;;;;;;;;;;19008:9;18959:58;18955:380;;;19053:4;19042:8;;:15;;;;;;;;;;;;;;;;;;19101:17;;19083:14;:35;19080:199;;19147:27;19156:17;;19147:8;:27::i;:::-;19080:199;;;19231:24;19240:14;19231:8;:24::i;:::-;19080:199;19312:5;19301:8;;:16;;;;;;;;;;;;;;;;;;18955:380;18669:681;19375:13;;;;;;;;;;;19369:19;;:2;:19;;;;:44;;;;;19400:13;;;;;;;;;;;19392:21;;:4;:21;;;;19369:44;19366:342;;;19436:14;;;;;;;;;;;19433:260;;;19493:12;;19483:6;:22;;19475:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;19608:16;;19598:6;19582:13;19592:2;19582:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;19574:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;19433:260;19366:342;18226:1493;19755:14;19739:8;:12;19748:2;19739:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;19800:2;19785:34;;19794:4;19785:34;;;19804:14;19785:34;;;;;;:::i;:::-;;;;;;;;17755:2072;;17652:2175;;;:::o;19838:1871::-;19891:23;19917:6;19891:32;;19934:23;20111:7;:11;;;20098:6;:10;;;20078:7;:17;;;20058:7;:17;;;20039:6;:16;;;20020:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;:88;;;;:::i;:::-;:102;;;;:::i;:::-;19998:7;:17;;;19979:6;:16;;;:36;;;;:::i;:::-;19960:15;:56;;;;:::i;:::-;:163;;;;:::i;:::-;19934:189;;20134:23;20311:7;:11;;;20298:6;:10;;;20278:7;:17;;;20258:7;:17;;;20239:6;:16;;;20220:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;:88;;;;:::i;:::-;:102;;;;:::i;:::-;20198:7;:17;;;20179:6;:16;;;:36;;;;:::i;:::-;20160:15;:56;;;;:::i;:::-;:163;;;;:::i;:::-;20134:189;;20334:17;20493:7;:11;;;20480:6;:10;;;20460:7;:17;;;20440:7;:17;;;20421:6;:16;;;20402:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;:88;;;;:::i;:::-;:102;;;;:::i;:::-;20386:7;:11;;;20373:6;:10;;;:24;;;;:::i;:::-;20354:15;:44;;;;:::i;:::-;:151;;;;:::i;:::-;20334:171;;20552:15;20516;:32;;;:51;;;;;;;:::i;:::-;;;;;;;;20614:15;20578;:32;;;:51;;;;;;;:::i;:::-;;;;;;;;20670:9;20640:15;:26;;;:39;;;;;;;:::i;:::-;;;;;;;;20692:25;20756:9;20738:15;20720;:33;;;;:::i;:::-;:45;;;;:::i;:::-;20692:73;;20786:26;20815:22;20835:1;20815:15;:19;;:22;;;;:::i;:::-;20786:51;;20882:18;20848:15;:30;;;:52;;;;;;;:::i;:::-;;;;;;;;20911:26;20940:39;20960:18;20940:15;:19;;:39;;;;:::i;:::-;20911:68;;21000:25;21028:21;21000:49;;21062:36;21079:18;21062:16;:36::i;:::-;21110:18;21131:44;21157:17;21131:21;:25;;:44;;;;:::i;:::-;21110:65;;21196:23;21222:54;21258:17;21222:31;21237:15;21222:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;21196:80;;21287:17;21307:48;21337:17;21307:25;21322:9;21307:10;:14;;:25;;;;:::i;:::-;:29;;:48;;;;:::i;:::-;21287:68;;21398:15;21366;:28;;;:47;;;;;;;:::i;:::-;;;;;;;;21450:9;21424:15;:22;;;:35;;;;;;;:::i;:::-;;;;;;;;21472:49;21485:18;21505:15;21472:12;:49::i;:::-;21564:21;21532:15;:28;;;:53;;;;;;;:::i;:::-;;;;;;;;21604:9;;;;;;;;;;;21596:27;;:38;21624:9;21596:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21653:15;;;;;;;;;;;21645:33;;:56;21679:21;21645:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19880:1829;;;;;;;;;;;19838:1871;:::o;16043:558::-;16111:7;16131:25;16187:3;16168:6;:16;;;16159:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;16131:59;;16202:26;16259:3;16240:6;:16;;;16231:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;16202:60;;16273:20;16317:3;16305:6;:10;;;16296:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;16273:47;;16401:12;16380:18;16360:17;:38;;;;:::i;:::-;:53;;;;:::i;:::-;16333:8;:23;16350:4;16333:23;;;;;;;;;;;;;;;;:80;;;;;;;:::i;:::-;;;;;;;;16453:4;16429:85;;16439:4;16429:85;;;16501:12;16481:17;16460:18;:38;;;;:::i;:::-;:53;;;;:::i;:::-;16429:85;;;;;;:::i;:::-;;;;;;;;16580:12;16560:18;16541:17;16533:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;:59;;;;:::i;:::-;16525:68;;;;;16043:558;;;;:::o;16609:559::-;16678:7;16698:25;16754:3;16735:6;:16;;;16726:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;16698:59;;16769:26;16826:3;16807:6;:16;;;16798:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;16769:60;;16840:20;16884:3;16872:6;:10;;;16863:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;16840:47;;16968:12;16947:18;16927:17;:38;;;;:::i;:::-;:53;;;;:::i;:::-;16900:8;:23;16917:4;16900:23;;;;;;;;;;;;;;;;:80;;;;;;;:::i;:::-;;;;;;;;17020:4;16996:85;;17006:4;16996:85;;;17068:12;17048:17;17027:18;:38;;;;:::i;:::-;:53;;;;:::i;:::-;16996:85;;;;;;:::i;:::-;;;;;;;;17147:12;17127:18;17108:17;17100:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;:59;;;;:::i;:::-;17092:68;;;;;16609:559;;;;:::o;5906:132::-;5964:7;5991:39;5995:1;5998;5991:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5984:46;;5906:132;;;;:::o;5304:136::-;5362:7;5389:43;5393:1;5396;5389:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5382:50;;5304:136;;;;:::o;21717:475::-;21783:21;21821:1;21807:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21783:40;;21852:4;21834;21839:1;21834:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21878:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21868:4;21873:1;21868:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21913:62;21930:4;21945:15;;;;;;;;;;;21963:11;21913:8;:62::i;:::-;21988:15;;;;;;;;;;;:66;;;22069:11;22095:1;22111:4;22138;22158:15;21988:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21772:420;21717:475;:::o;5648:250::-;5706:7;5735:1;5730;:6;5726:47;;5760:1;5753:8;;;;5726:47;5785:9;5801:1;5797;:5;;;;:::i;:::-;5785:17;;5830:1;5825;5821;:5;;;;:::i;:::-;:10;5813:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5889:1;5882:8;;;5648:250;;;;;:::o;22200:374::-;22281:62;22298:4;22313:15;;;;;;;;;;;22331:11;22281:8;:62::i;:::-;22356:15;;;;;;;;;;;:31;;;22396:9;22430:4;22450:11;22476:1;22492;22508:17;;;;;;;;;;;22540:15;22356:210;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22200:374;;:::o;6046:278::-;6132:7;6164:1;6160;:5;6167:12;6152:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6191:9;6207:1;6203;:5;;;;:::i;:::-;6191:17;;6315:1;6308:8;;;6046:278;;;;;:::o;5448:192::-;5534:7;5567:1;5562;:6;;5570:12;5554:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5594:9;5610:1;5606;:5;;;;:::i;:::-;5594:17;;5631:1;5624:8;;;5448:192;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:60::-;4178:3;4199:5;4192:12;;4150:60;;;:::o;4216:142::-;4266:9;4299:53;4317:34;4326:24;4344:5;4326:24;:::i;:::-;4317:34;:::i;:::-;4299:53;:::i;:::-;4286:66;;4216:142;;;:::o;4364:126::-;4414:9;4447:37;4478:5;4447:37;:::i;:::-;4434:50;;4364:126;;;:::o;4496:152::-;4572:9;4605:37;4636:5;4605:37;:::i;:::-;4592:50;;4496:152;;;:::o;4654:183::-;4767:63;4824:5;4767:63;:::i;:::-;4762:3;4755:76;4654:183;;:::o;4843:274::-;4962:4;5000:2;4989:9;4985:18;4977:26;;5013:97;5107:1;5096:9;5092:17;5083:6;5013:97;:::i;:::-;4843:274;;;;:::o;5123:619::-;5200:6;5208;5216;5265:2;5253:9;5244:7;5240:23;5236:32;5233:119;;;5271:79;;:::i;:::-;5233:119;5391:1;5416:53;5461:7;5452:6;5441:9;5437:22;5416:53;:::i;:::-;5406:63;;5362:117;5518:2;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5489:118;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5123:619;;;;;:::o;5748:329::-;5807:6;5856:2;5844:9;5835:7;5831:23;5827:32;5824:119;;;5862:79;;:::i;:::-;5824:119;5982:1;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5953:117;5748:329;;;;:::o;6083:619::-;6160:6;6168;6176;6225:2;6213:9;6204:7;6200:23;6196:32;6193:119;;;6231:79;;:::i;:::-;6193:119;6351:1;6376:53;6421:7;6412:6;6401:9;6397:22;6376:53;:::i;:::-;6366:63;;6322:117;6478:2;6504:53;6549:7;6540:6;6529:9;6525:22;6504:53;:::i;:::-;6494:63;;6449:118;6606:2;6632:53;6677:7;6668:6;6657:9;6653:22;6632:53;:::i;:::-;6622:63;;6577:118;6083:619;;;;;:::o;6708:886::-;6969:4;7007:3;6996:9;6992:19;6984:27;;7021:71;7089:1;7078:9;7074:17;7065:6;7021:71;:::i;:::-;7102:72;7170:2;7159:9;7155:18;7146:6;7102:72;:::i;:::-;7184;7252:2;7241:9;7237:18;7228:6;7184:72;:::i;:::-;7266;7334:2;7323:9;7319:18;7310:6;7266:72;:::i;:::-;7348:73;7416:3;7405:9;7401:19;7392:6;7348:73;:::i;:::-;7431;7499:3;7488:9;7484:19;7475:6;7431:73;:::i;:::-;7514;7582:3;7571:9;7567:19;7558:6;7514:73;:::i;:::-;6708:886;;;;;;;;;;:::o;7600:329::-;7659:6;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7600:329;;;;:::o;7935:442::-;8084:4;8122:2;8111:9;8107:18;8099:26;;8135:71;8203:1;8192:9;8188:17;8179:6;8135:71;:::i;:::-;8216:72;8284:2;8273:9;8269:18;8260:6;8216:72;:::i;:::-;8298;8366:2;8355:9;8351:18;8342:6;8298:72;:::i;:::-;7935:442;;;;;;:::o;8383:86::-;8418:7;8458:4;8451:5;8447:16;8436:27;;8383:86;;;:::o;8475:112::-;8558:22;8574:5;8558:22;:::i;:::-;8553:3;8546:35;8475:112;;:::o;8593:214::-;8682:4;8720:2;8709:9;8705:18;8697:26;;8733:67;8797:1;8786:9;8782:17;8773:6;8733:67;:::i;:::-;8593:214;;;;:::o;8813:116::-;8883:21;8898:5;8883:21;:::i;:::-;8876:5;8873:32;8863:60;;8919:1;8916;8909:12;8863:60;8813:116;:::o;8935:133::-;8978:5;9016:6;9003:20;8994:29;;9032:30;9056:5;9032:30;:::i;:::-;8935:133;;;;:::o;9074:468::-;9139:6;9147;9196:2;9184:9;9175:7;9171:23;9167:32;9164:119;;;9202:79;;:::i;:::-;9164:119;9322:1;9347:53;9392:7;9383:6;9372:9;9368:22;9347:53;:::i;:::-;9337:63;;9293:117;9449:2;9475:50;9517:7;9508:6;9497:9;9493:22;9475:50;:::i;:::-;9465:60;;9420:115;9074:468;;;;;:::o;9548:474::-;9616:6;9624;9673:2;9661:9;9652:7;9648:23;9644:32;9641:119;;;9679:79;;:::i;:::-;9641:119;9799:1;9824:53;9869:7;9860:6;9849:9;9845:22;9824:53;:::i;:::-;9814:63;;9770:117;9926:2;9952:53;9997:7;9988:6;9977:9;9973:22;9952:53;:::i;:::-;9942:63;;9897:118;9548:474;;;;;:::o;10028:182::-;10168:34;10164:1;10156:6;10152:14;10145:58;10028:182;:::o;10216:366::-;10358:3;10379:67;10443:2;10438:3;10379:67;:::i;:::-;10372:74;;10455:93;10544:3;10455:93;:::i;:::-;10573:2;10568:3;10564:12;10557:19;;10216:366;;;:::o;10588:419::-;10754:4;10792:2;10781:9;10777:18;10769:26;;10841:9;10835:4;10831:20;10827:1;10816:9;10812:17;10805:47;10869:131;10995:4;10869:131;:::i;:::-;10861:139;;10588:419;;;:::o;11013:180::-;11061:77;11058:1;11051:88;11158:4;11155:1;11148:15;11182:4;11179:1;11172:15;11199:191;11239:3;11258:20;11276:1;11258:20;:::i;:::-;11253:25;;11292:20;11310:1;11292:20;:::i;:::-;11287:25;;11335:1;11332;11328:9;11321:16;;11356:3;11353:1;11350:10;11347:36;;;11363:18;;:::i;:::-;11347:36;11199:191;;;;:::o;11396:232::-;11536:34;11532:1;11524:6;11520:14;11513:58;11605:15;11600:2;11592:6;11588:15;11581:40;11396:232;:::o;11634:366::-;11776:3;11797:67;11861:2;11856:3;11797:67;:::i;:::-;11790:74;;11873:93;11962:3;11873:93;:::i;:::-;11991:2;11986:3;11982:12;11975:19;;11634:366;;;:::o;12006:419::-;12172:4;12210:2;12199:9;12195:18;12187:26;;12259:9;12253:4;12249:20;12245:1;12234:9;12230:17;12223:47;12287:131;12413:4;12287:131;:::i;:::-;12279:139;;12006:419;;;:::o;12431:233::-;12571:34;12567:1;12559:6;12555:14;12548:58;12640:16;12635:2;12627:6;12623:15;12616:41;12431:233;:::o;12670:366::-;12812:3;12833:67;12897:2;12892:3;12833:67;:::i;:::-;12826:74;;12909:93;12998:3;12909:93;:::i;:::-;13027:2;13022:3;13018:12;13011:19;;12670:366;;;:::o;13042:419::-;13208:4;13246:2;13235:9;13231:18;13223:26;;13295:9;13289:4;13285:20;13281:1;13270:9;13266:17;13259:47;13323:131;13449:4;13323:131;:::i;:::-;13315:139;;13042:419;;;:::o;13467:410::-;13507:7;13530:20;13548:1;13530:20;:::i;:::-;13525:25;;13564:20;13582:1;13564:20;:::i;:::-;13559:25;;13619:1;13616;13612:9;13641:30;13659:11;13641:30;:::i;:::-;13630:41;;13820:1;13811:7;13807:15;13804:1;13801:22;13781:1;13774:9;13754:83;13731:139;;13850:18;;:::i;:::-;13731:139;13515:362;13467:410;;;;:::o;13883:194::-;13923:4;13943:20;13961:1;13943:20;:::i;:::-;13938:25;;13977:20;13995:1;13977:20;:::i;:::-;13972:25;;14021:1;14018;14014:9;14006:17;;14045:1;14039:4;14036:11;14033:37;;;14050:18;;:::i;:::-;14033:37;13883:194;;;;:::o;14083:231::-;14223:34;14219:1;14211:6;14207:14;14200:58;14292:14;14287:2;14279:6;14275:15;14268:39;14083:231;:::o;14320:366::-;14462:3;14483:67;14547:2;14542:3;14483:67;:::i;:::-;14476:74;;14559:93;14648:3;14559:93;:::i;:::-;14677:2;14672:3;14668:12;14661:19;;14320:366;;;:::o;14692:419::-;14858:4;14896:2;14885:9;14881:18;14873:26;;14945:9;14939:4;14935:20;14931:1;14920:9;14916:17;14909:47;14973:131;15099:4;14973:131;:::i;:::-;14965:139;;14692:419;;;:::o;15117:226::-;15257:34;15253:1;15245:6;15241:14;15234:58;15326:9;15321:2;15313:6;15309:15;15302:34;15117:226;:::o;15349:366::-;15491:3;15512:67;15576:2;15571:3;15512:67;:::i;:::-;15505:74;;15588:93;15677:3;15588:93;:::i;:::-;15706:2;15701:3;15697:12;15690:19;;15349:366;;;:::o;15721:419::-;15887:4;15925:2;15914:9;15910:18;15902:26;;15974:9;15968:4;15964:20;15960:1;15949:9;15945:17;15938:47;16002:131;16128:4;16002:131;:::i;:::-;15994:139;;15721:419;;;:::o;16146:234::-;16286:34;16282:1;16274:6;16270:14;16263:58;16355:17;16350:2;16342:6;16338:15;16331:42;16146:234;:::o;16386:366::-;16528:3;16549:67;16613:2;16608:3;16549:67;:::i;:::-;16542:74;;16625:93;16714:3;16625:93;:::i;:::-;16743:2;16738:3;16734:12;16727:19;;16386:366;;;:::o;16758:419::-;16924:4;16962:2;16951:9;16947:18;16939:26;;17011:9;17005:4;17001:20;16997:1;16986:9;16982:17;16975:47;17039:131;17165:4;17039:131;:::i;:::-;17031:139;;16758:419;;;:::o;17183:143::-;17240:5;17271:6;17265:13;17256:22;;17287:33;17314:5;17287:33;:::i;:::-;17183:143;;;;:::o;17332:351::-;17402:6;17451:2;17439:9;17430:7;17426:23;17422:32;17419:119;;;17457:79;;:::i;:::-;17419:119;17577:1;17602:64;17658:7;17649:6;17638:9;17634:22;17602:64;:::i;:::-;17592:74;;17548:128;17332:351;;;;:::o;17689:332::-;17810:4;17848:2;17837:9;17833:18;17825:26;;17861:71;17929:1;17918:9;17914:17;17905:6;17861:71;:::i;:::-;17942:72;18010:2;17999:9;17995:18;17986:6;17942:72;:::i;:::-;17689:332;;;;;:::o;18027:137::-;18081:5;18112:6;18106:13;18097:22;;18128:30;18152:5;18128:30;:::i;:::-;18027:137;;;;:::o;18170:345::-;18237:6;18286:2;18274:9;18265:7;18261:23;18257:32;18254:119;;;18292:79;;:::i;:::-;18254:119;18412:1;18437:61;18490:7;18481:6;18470:9;18466:22;18437:61;:::i;:::-;18427:71;;18383:125;18170:345;;;;:::o;18521:225::-;18661:34;18657:1;18649:6;18645:14;18638:58;18730:8;18725:2;18717:6;18713:15;18706:33;18521:225;:::o;18752:366::-;18894:3;18915:67;18979:2;18974:3;18915:67;:::i;:::-;18908:74;;18991:93;19080:3;18991:93;:::i;:::-;19109:2;19104:3;19100:12;19093:19;;18752:366;;;:::o;19124:419::-;19290:4;19328:2;19317:9;19313:18;19305:26;;19377:9;19371:4;19367:20;19363:1;19352:9;19348:17;19341:47;19405:131;19531:4;19405:131;:::i;:::-;19397:139;;19124:419;;;:::o;19549:223::-;19689:34;19685:1;19677:6;19673:14;19666:58;19758:6;19753:2;19745:6;19741:15;19734:31;19549:223;:::o;19778:366::-;19920:3;19941:67;20005:2;20000:3;19941:67;:::i;:::-;19934:74;;20017:93;20106:3;20017:93;:::i;:::-;20135:2;20130:3;20126:12;20119:19;;19778:366;;;:::o;20150:419::-;20316:4;20354:2;20343:9;20339:18;20331:26;;20403:9;20397:4;20393:20;20389:1;20378:9;20374:17;20367:47;20431:131;20557:4;20431:131;:::i;:::-;20423:139;;20150:419;;;:::o;20575:221::-;20715:34;20711:1;20703:6;20699:14;20692:58;20784:4;20779:2;20771:6;20767:15;20760:29;20575:221;:::o;20802:366::-;20944:3;20965:67;21029:2;21024:3;20965:67;:::i;:::-;20958:74;;21041:93;21130:3;21041:93;:::i;:::-;21159:2;21154:3;21150:12;21143:19;;20802:366;;;:::o;21174:419::-;21340:4;21378:2;21367:9;21363:18;21355:26;;21427:9;21421:4;21417:20;21413:1;21402:9;21398:17;21391:47;21455:131;21581:4;21455:131;:::i;:::-;21447:139;;21174:419;;;:::o;21599:224::-;21739:34;21735:1;21727:6;21723:14;21716:58;21808:7;21803:2;21795:6;21791:15;21784:32;21599:224;:::o;21829:366::-;21971:3;21992:67;22056:2;22051:3;21992:67;:::i;:::-;21985:74;;22068:93;22157:3;22068:93;:::i;:::-;22186:2;22181:3;22177:12;22170:19;;21829:366;;;:::o;22201:419::-;22367:4;22405:2;22394:9;22390:18;22382:26;;22454:9;22448:4;22444:20;22440:1;22429:9;22425:17;22418:47;22482:131;22608:4;22482:131;:::i;:::-;22474:139;;22201:419;;;:::o;22626:222::-;22766:34;22762:1;22754:6;22750:14;22743:58;22835:5;22830:2;22822:6;22818:15;22811:30;22626:222;:::o;22854:366::-;22996:3;23017:67;23081:2;23076:3;23017:67;:::i;:::-;23010:74;;23093:93;23182:3;23093:93;:::i;:::-;23211:2;23206:3;23202:12;23195:19;;22854:366;;;:::o;23226:419::-;23392:4;23430:2;23419:9;23415:18;23407:26;;23479:9;23473:4;23469:20;23465:1;23454:9;23450:17;23443:47;23507:131;23633:4;23507:131;:::i;:::-;23499:139;;23226:419;;;:::o;23651:228::-;23791:34;23787:1;23779:6;23775:14;23768:58;23860:11;23855:2;23847:6;23843:15;23836:36;23651:228;:::o;23885:366::-;24027:3;24048:67;24112:2;24107:3;24048:67;:::i;:::-;24041:74;;24124:93;24213:3;24124:93;:::i;:::-;24242:2;24237:3;24233:12;24226:19;;23885:366;;;:::o;24257:419::-;24423:4;24461:2;24450:9;24446:18;24438:26;;24510:9;24504:4;24500:20;24496:1;24485:9;24481:17;24474:47;24538:131;24664:4;24538:131;:::i;:::-;24530:139;;24257:419;;;:::o;24682:228::-;24822:34;24818:1;24810:6;24806:14;24799:58;24891:11;24886:2;24878:6;24874:15;24867:36;24682:228;:::o;24916:366::-;25058:3;25079:67;25143:2;25138:3;25079:67;:::i;:::-;25072:74;;25155:93;25244:3;25155:93;:::i;:::-;25273:2;25268:3;25264:12;25257:19;;24916:366;;;:::o;25288:419::-;25454:4;25492:2;25481:9;25477:18;25469:26;;25541:9;25535:4;25531:20;25527:1;25516:9;25512:17;25505:47;25569:131;25695:4;25569:131;:::i;:::-;25561:139;;25288:419;;;:::o;25713:231::-;25853:34;25849:1;25841:6;25837:14;25830:58;25922:14;25917:2;25909:6;25905:15;25898:39;25713:231;:::o;25950:366::-;26092:3;26113:67;26177:2;26172:3;26113:67;:::i;:::-;26106:74;;26189:93;26278:3;26189:93;:::i;:::-;26307:2;26302:3;26298:12;26291:19;;25950:366;;;:::o;26322:419::-;26488:4;26526:2;26515:9;26511:18;26503:26;;26575:9;26569:4;26565:20;26561:1;26550:9;26546:17;26539:47;26603:131;26729:4;26603:131;:::i;:::-;26595:139;;26322:419;;;:::o;26747:180::-;26795:77;26792:1;26785:88;26892:4;26889:1;26882:15;26916:4;26913:1;26906:15;26933:185;26973:1;26990:20;27008:1;26990:20;:::i;:::-;26985:25;;27024:20;27042:1;27024:20;:::i;:::-;27019:25;;27063:1;27053:35;;27068:18;;:::i;:::-;27053:35;27110:1;27107;27103:9;27098:14;;26933:185;;;;:::o;27124:180::-;27172:77;27169:1;27162:88;27269:4;27266:1;27259:15;27293:4;27290:1;27283:15;27310:180;27358:77;27355:1;27348:88;27455:4;27452:1;27445:15;27479:4;27476:1;27469:15;27496:143;27553:5;27584:6;27578:13;27569:22;;27600:33;27627:5;27600:33;:::i;:::-;27496:143;;;;:::o;27645:351::-;27715:6;27764:2;27752:9;27743:7;27739:23;27735:32;27732:119;;;27770:79;;:::i;:::-;27732:119;27890:1;27915:64;27971:7;27962:6;27951:9;27947:22;27915:64;:::i;:::-;27905:74;;27861:128;27645:351;;;;:::o;28002:85::-;28047:7;28076:5;28065:16;;28002:85;;;:::o;28093:158::-;28151:9;28184:61;28202:42;28211:32;28237:5;28211:32;:::i;:::-;28202:42;:::i;:::-;28184:61;:::i;:::-;28171:74;;28093:158;;;:::o;28257:147::-;28352:45;28391:5;28352:45;:::i;:::-;28347:3;28340:58;28257:147;;:::o;28410:114::-;28477:6;28511:5;28505:12;28495:22;;28410:114;;;:::o;28530:184::-;28629:11;28663:6;28658:3;28651:19;28703:4;28698:3;28694:14;28679:29;;28530:184;;;;:::o;28720:132::-;28787:4;28810:3;28802:11;;28840:4;28835:3;28831:14;28823:22;;28720:132;;;:::o;28858:108::-;28935:24;28953:5;28935:24;:::i;:::-;28930:3;28923:37;28858:108;;:::o;28972:179::-;29041:10;29062:46;29104:3;29096:6;29062:46;:::i;:::-;29140:4;29135:3;29131:14;29117:28;;28972:179;;;;:::o;29157:113::-;29227:4;29259;29254:3;29250:14;29242:22;;29157:113;;;:::o;29306:732::-;29425:3;29454:54;29502:5;29454:54;:::i;:::-;29524:86;29603:6;29598:3;29524:86;:::i;:::-;29517:93;;29634:56;29684:5;29634:56;:::i;:::-;29713:7;29744:1;29729:284;29754:6;29751:1;29748:13;29729:284;;;29830:6;29824:13;29857:63;29916:3;29901:13;29857:63;:::i;:::-;29850:70;;29943:60;29996:6;29943:60;:::i;:::-;29933:70;;29789:224;29776:1;29773;29769:9;29764:14;;29729:284;;;29733:14;30029:3;30022:10;;29430:608;;;29306:732;;;;:::o;30044:831::-;30307:4;30345:3;30334:9;30330:19;30322:27;;30359:71;30427:1;30416:9;30412:17;30403:6;30359:71;:::i;:::-;30440:80;30516:2;30505:9;30501:18;30492:6;30440:80;:::i;:::-;30567:9;30561:4;30557:20;30552:2;30541:9;30537:18;30530:48;30595:108;30698:4;30689:6;30595:108;:::i;:::-;30587:116;;30713:72;30781:2;30770:9;30766:18;30757:6;30713:72;:::i;:::-;30795:73;30863:3;30852:9;30848:19;30839:6;30795:73;:::i;:::-;30044:831;;;;;;;;:::o;30881:220::-;31021:34;31017:1;31009:6;31005:14;30998:58;31090:3;31085:2;31077:6;31073:15;31066:28;30881:220;:::o;31107:366::-;31249:3;31270:67;31334:2;31329:3;31270:67;:::i;:::-;31263:74;;31346:93;31435:3;31346:93;:::i;:::-;31464:2;31459:3;31455:12;31448:19;;31107:366;;;:::o;31479:419::-;31645:4;31683:2;31672:9;31668:18;31660:26;;31732:9;31726:4;31722:20;31718:1;31707:9;31703:17;31696:47;31760:131;31886:4;31760:131;:::i;:::-;31752:139;;31479:419;;;:::o;31904:807::-;32153:4;32191:3;32180:9;32176:19;32168:27;;32205:71;32273:1;32262:9;32258:17;32249:6;32205:71;:::i;:::-;32286:72;32354:2;32343:9;32339:18;32330:6;32286:72;:::i;:::-;32368:80;32444:2;32433:9;32429:18;32420:6;32368:80;:::i;:::-;32458;32534:2;32523:9;32519:18;32510:6;32458:80;:::i;:::-;32548:73;32616:3;32605:9;32601:19;32592:6;32548:73;:::i;:::-;32631;32699:3;32688:9;32684:19;32675:6;32631:73;:::i;:::-;31904:807;;;;;;;;;:::o;32717:663::-;32805:6;32813;32821;32870:2;32858:9;32849:7;32845:23;32841:32;32838:119;;;32876:79;;:::i;:::-;32838:119;32996:1;33021:64;33077:7;33068:6;33057:9;33053:22;33021:64;:::i;:::-;33011:74;;32967:128;33134:2;33160:64;33216:7;33207:6;33196:9;33192:22;33160:64;:::i;:::-;33150:74;;33105:129;33273:2;33299:64;33355:7;33346:6;33335:9;33331:22;33299:64;:::i;:::-;33289:74;;33244:129;32717:663;;;;;:::o

Swarm Source

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