ETH Price: $3,491.74 (-0.38%)
Gas: 6 Gwei

Token

Bichon Inu (BICHON)
 

Overview

Max Total Supply

100,000,000 BICHON

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,926,947.528755743189328586 BICHON

Value
$0.00
0x8968d124D9fB704bbc4b4eB827e19b61c2D7Bf8d
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:
BICHON

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-03-25
*/

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

// SPDX-License-Identifier: MIT

/*
Website : https://bichoninu.org/
Telegram : https://t.me/bichoninuEntry
**/

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 BICHON 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 = "Bichon Inu";
    string private constant _symbol = "BICHON";
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =  100000000  * 10**18;

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

    address public liquidityReceiver;
    address public marketingWallet;
    address public RnDWallet;

    bool public limitsIsActive = true;

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

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

    struct FeesDetails{
        uint256 tokenToLiquidity;
        uint256 tokenToMarketing;
        uint256 tokenToRnD;
        uint256 liquidityToken;
        uint256 liquidityETH;
        uint256 marketingETH;
        uint256 RnDETH;
    }

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

    uint256 private liquidityFee;
    uint256 private marketingFee;
    uint256 private RnDFee;

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

    constructor (address marketingAddress, address RnDAddress) {
        marketingWallet = marketingAddress;
        RnDWallet = RnDAddress;
        liquidityReceiver = msg.sender;
        balances[address(liquidityReceiver)] = _tTotal;
        
        buyFee.liquidity = 10;
        buyFee.marketing = 8;
        buyFee.RnD = 2;

        sellFee.liquidity = 15;
        sellFee.marketing = 10;
        sellFee.RnD = 2;

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

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[RnDWallet] = 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 setRnDFee) public onlyOwner {
        require(setLiquidityFee + setMarketingFee + setRnDFee <= 25, "Total buy fee cannot be set higher than 25%.");
        buyFee.liquidity = setLiquidityFee;
        buyFee.marketing = setMarketingFee;
        buyFee.RnD = setRnDFee;

    }

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

    function setMaxTransactionAmount(uint256 maxTransactionAmount) public onlyOwner {
        require(maxTransactionAmount >= 1000000, "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 setRnDWallet(address newRnDWallet) public onlyOwner {
        RnDWallet = newRnDWallet;
    }

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

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

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

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

    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.RnD + sellFee.RnD);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity + buyFee.RnD + sellFee.RnD);
        uint256 RnDTokens = contractBalance * (buyFee.RnD + sellFee.RnD) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity + buyFee.RnD + sellFee.RnD);
        feeDistribution.tokenToLiquidity += liquidityTokens;
        feeDistribution.tokenToMarketing += marketingTokens;
        feeDistribution.tokenToRnD += RnDTokens;

        uint256 totalTokensToSwap = liquidityTokens + marketingTokens + RnDTokens;
        
        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 ethForRnD = ethBalance.mul(RnDTokens).div(totalTokensToSwap);
        feeDistribution.liquidityETH += ethForLiquidity;
        feeDistribution.RnDETH += ethForRnD;

        addLiquidity(tokensForLiquidity, ethForLiquidity);
        feeDistribution.marketingETH += address(this).balance;
        payable(RnDWallet).transfer(ethForRnD);
        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":"RnDAddress","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":"RnDWallet","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":"RnD","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":"tokenToRnD","type":"uint256"},{"internalType":"uint256","name":"liquidityToken","type":"uint256"},{"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"internalType":"uint256","name":"marketingETH","type":"uint256"},{"internalType":"uint256","name":"RnDETH","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":"RnD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"setLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"setMarketingFee","type":"uint256"},{"internalType":"uint256","name":"setRnDFee","type":"uint256"}],"name":"setBuyFee","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":"address","name":"newRnDWallet","type":"address"}],"name":"setRnDWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"setLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"setMarketingFee","type":"uint256"},{"internalType":"uint256","name":"setRnDFee","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"}]

60806040526a52b7d2dcc80cd2e40000006006556a01a784379d99db420000006007556a01a784379d99db4200000060085569d3c21bcecceda10000006009556001600c60146101000a81548160ff0219169083151502179055503480156200006757600080fd5b5060405162004cfb38038062004cfb83398181016040528101906200008d919062000770565b60006200009f620006fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a600d600001819055506008600d600101819055506002600d60020181905550600f601060000181905550600a60106001018190555060026010600201819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000311573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003379190620007b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c59190620007b7565b6040518363ffffffff1660e01b8152600401620003e4929190620007fa565b6020604051808303816000875af115801562000404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042a9190620007b7565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620006ec919062000842565b60405180910390a3505050506200085f565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000738826200070b565b9050919050565b6200074a816200072b565b81146200075657600080fd5b50565b6000815190506200076a816200073f565b92915050565b600080604083850312156200078a576200078962000706565b5b60006200079a8582860162000759565b9250506020620007ad8582860162000759565b9150509250929050565b600060208284031215620007d057620007cf62000706565b5b6000620007e08482850162000759565b91505092915050565b620007f4816200072b565b82525050565b6000604082019050620008116000830185620007e9565b620008206020830184620007e9565b9392505050565b6000819050919050565b6200083c8162000827565b82525050565b600060208201905062000859600083018462000831565b92915050565b61448c806200086f6000396000f3fe6080604052600436106102345760003560e01c80635d098b381161012e5780638da5cb5b116100ab578063c02466681161006f578063c024666814610844578063dd62ed3e1461086d578063df778d26146108aa578063f1e55257146108c1578063f2fde38b146108ec5761023b565b80638da5cb5b1461074b57806395d89b4114610776578063a10eea98146107a1578063a457c2d7146107ca578063a9059cbb146108075761023b565b8063751039fc116100f2578063751039fc1461068a57806375f0a874146106a15780637d1db4a5146106cc57806384b47971146106f7578063885a4cd0146107225761023b565b80635d098b38146105b95780636402511e146105e25780636c0a24eb1461060b57806370a0823114610636578063715018a6146106735761023b565b806325519cf2116101bc578063313ce56711610180578063313ce567146104bc57806339509351146104e7578063470624021461052457806349bd5a5e146105515780635342acb41461057c5761023b565b806325519cf2146103e9578063264d26dd1461041257806327a14fc21461043d578063296f0a0c146104665780632b14ca561461048f5761023b565b806318160ddd1161020357806318160ddd146102fe5780631d865c30146103295780631e293c101461035257806323b872dd1461037b5780632479b177146103b85761023b565b806303e403b01461024057806306fdde031461026b578063095ea7b3146102965780631694505e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610915565b6040516102629190613262565b60405180910390f35b34801561027757600080fd5b5061028061091b565b60405161028d919061330d565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906133be565b610958565b6040516102ca9190613419565b60405180910390f35b3480156102df57600080fd5b506102e8610976565b6040516102f59190613493565b60405180910390f35b34801561030a57600080fd5b5061031361099c565b6040516103209190613262565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b91906134ae565b6109a6565b005b34801561035e57600080fd5b5061037960048036038101906103749190613501565b610ab8565b005b34801561038757600080fd5b506103a2600480360381019061039d919061352e565b610bb0565b6040516103af9190613419565b60405180910390f35b3480156103c457600080fd5b506103cd610c68565b6040516103e09796959493929190613581565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b91906134ae565b610c98565b005b34801561041e57600080fd5b50610427610daa565b60405161043491906135ff565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190613501565b610dd0565b005b34801561047257600080fd5b5061048d6004803603810190610488919061361a565b610ec8565b005b34801561049b57600080fd5b506104a4610fa1565b6040516104b393929190613647565b60405180910390f35b3480156104c857600080fd5b506104d1610fb9565b6040516104de919061369a565b60405180910390f35b3480156104f357600080fd5b5061050e600480360381019061050991906133be565b610fc2565b60405161051b9190613419565b60405180910390f35b34801561053057600080fd5b5061053961106e565b60405161054893929190613647565b60405180910390f35b34801561055d57600080fd5b50610566611086565b60405161057391906135ff565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e919061361a565b6110ac565b6040516105b09190613419565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db919061361a565b611102565b005b3480156105ee57600080fd5b5061060960048036038101906106049190613501565b6111db565b005b34801561061757600080fd5b506106206112d4565b60405161062d9190613262565b60405180910390f35b34801561064257600080fd5b5061065d6004803603810190610658919061361a565b6112da565b60405161066a9190613262565b60405180910390f35b34801561067f57600080fd5b50610688611323565b005b34801561069657600080fd5b5061069f611476565b005b3480156106ad57600080fd5b506106b66114f4565b6040516106c391906135ff565b60405180910390f35b3480156106d857600080fd5b506106e161151a565b6040516106ee9190613262565b60405180910390f35b34801561070357600080fd5b5061070c611520565b60405161071991906135ff565b60405180910390f35b34801561072e57600080fd5b506107496004803603810190610744919061361a565b611546565b005b34801561075757600080fd5b506107606116d6565b60405161076d91906135ff565b60405180910390f35b34801561078257600080fd5b5061078b6116ff565b604051610798919061330d565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c3919061361a565b61173c565b005b3480156107d657600080fd5b506107f160048036038101906107ec91906133be565b611815565b6040516107fe9190613419565b60405180910390f35b34801561081357600080fd5b5061082e600480360381019061082991906133be565b6118c1565b60405161083b9190613419565b60405180910390f35b34801561085057600080fd5b5061086b600480360381019061086691906136e1565b6118df565b005b34801561087957600080fd5b50610894600480360381019061088f9190613721565b6119cf565b6040516108a19190613262565b60405180910390f35b3480156108b657600080fd5b506108bf611a56565b005b3480156108cd57600080fd5b506108d6611b31565b6040516108e39190613419565b60405180910390f35b3480156108f857600080fd5b50610913600480360381019061090e919061361a565b611b44565b005b60095481565b60606040518060400160405280600a81526020017f426963686f6e20496e7500000000000000000000000000000000000000000000815250905090565b600061096c610965611d05565b8484611d0d565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b6109ae611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906137ad565b60405180910390fd5b6050818385610a4a91906137fc565b610a5491906137fc565b1115610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c906138a2565b60405180910390fd5b826010600001819055508160106001018190555080601060020181905550505050565b610ac0611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b44906137ad565b60405180910390fd5b620f4240811015610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90613934565b60405180910390fd5b670de0b6b3a764000081610ba79190613954565b60088190555050565b6000610bbd848484611ed6565b610c5d84610bc9611d05565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c13611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589190613996565b611d0d565b600190509392505050565b60138060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b610ca0611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906137ad565b60405180910390fd5b6019818385610d3c91906137fc565b610d4691906137fc565b1115610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90613a3c565b60405180910390fd5b82600d6000018190555081600d6001018190555080600d60020181905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dd8611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906137ad565b60405180910390fd5b62989680811015610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290613ace565b60405180910390fd5b670de0b6b3a764000081610ebf9190613954565b60078190555050565b610ed0611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906137ad565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60108060000154908060010154908060020154905083565b60006012905090565b6000611064610fcf611d05565b848460046000610fdd611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105f91906137fc565b611d0d565b6001905092915050565b600d8060000154908060010154908060020154905083565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61110a611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906137ad565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111e3611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611267906137ad565b60405180910390fd5b6302625a008111156112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90613b60565b60405180910390fd5b670de0b6b3a7640000816112cb9190613954565b60098190555050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61132b611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114b7611d05565b73ffffffffffffffffffffffffffffffffffffffff16146114d757600080fd5b6000600c60146101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61154e611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906137ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161163191906135ff565b602060405180830381865afa15801561164e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116729190613b95565b6040518363ffffffff1660e01b815260040161168f929190613bc2565b6020604051808303816000875af11580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d29190613c00565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f424943484f4e0000000000000000000000000000000000000000000000000000815250905090565b611744611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906137ad565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006118b7611822611d05565b848460046000611830611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b29190613996565b611d0d565b6001905092915050565b60006118d56118ce611d05565b8484611ed6565b6001905092915050565b6118e7611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906137ad565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a97611d05565b73ffffffffffffffffffffffffffffffffffffffff1614611ab757600080fd5b6000611ac2306112da565b90506000811115611ad757611ad68161263e565b5b60004790506000811115611b2d573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b2b573d6000803e3d6000fd5b505b5050565b600c60149054906101000a900460ff1681565b611b4c611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd0906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613c9f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390613d31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290613dc3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ec99190613262565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613e55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613ee7565b60405180910390fd5b60008111611ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fee90613f79565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120469190613996565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561210257600190505b801561257c57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121b35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561227857600c60149054906101000a900460ff161561226b57600854831115612212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122099061400b565b60405180910390fd5b6007548361221f866112da565b61222991906137fc565b111561226a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122619061409d565b60405180910390fd5b5b6122758385612a41565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156123235750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561241657600c60149054906101000a900460ff161561238357600854831115612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123799061400b565b60405180910390fd5b5b61238d8386612bb9565b915060095461239b306112da565b101580156123b65750601d60009054906101000a900460ff16155b15612415576001601d60006101000a81548160ff02191690831515021790555060095482106123ef576123ea60095461263e565b6123f9565b6123f88261263e565b5b6000601d60006101000a81548160ff0219169083151502179055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124c25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561257b57600c60149054906101000a900460ff161561257a57600854831115612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189061400b565b60405180910390fd5b6007548361252e866112da565b61253891906137fc565b1115612579576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125709061409d565b60405180910390fd5b5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125cb91906137fc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161262f9190613262565b60405180910390a35050505050565b60008190506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461267391906137fc565b61267d91906137fc565b61268791906137fc565b61269191906137fc565b61269b91906137fc565b601060000154600d600001546126b191906137fc565b836126bc9190613954565b6126c691906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d600101546126f891906137fc565b61270291906137fc565b61270c91906137fc565b61271691906137fc565b61272091906137fc565b601060010154600d6001015461273691906137fc565b846127419190613954565b61274b91906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461277d91906137fc565b61278791906137fc565b61279191906137fc565b61279b91906137fc565b6127a591906137fc565b601060020154600d600201546127bb91906137fc565b856127c69190613954565b6127d091906140ec565b905082601360000160008282546127e791906137fc565b92505081905550816013600101600082825461280391906137fc565b92505081905550806013600201600082825461281f91906137fc565b92505081905550600081838561283591906137fc565b61283f91906137fc565b90506000612857600286612d3190919063ffffffff16565b9050806013600301600082825461286e91906137fc565b92505081905550600061288a8288612d7b90919063ffffffff16565b9050600047905061289a82612dc5565b60006128af8247612d7b90919063ffffffff16565b905060006128d8866128ca8b8561300890919063ffffffff16565b612d3190919063ffffffff16565b90506000612901876128f38a8661300890919063ffffffff16565b612d3190919063ffffffff16565b9050816013600401600082825461291891906137fc565b92505081905550806013600601600082825461293491906137fc565b925050819055506129458683613082565b476013600501600082825461295a91906137fc565b92505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129c9573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612a32573d6000803e3d6000fd5b50505050505050505050505050565b6000806064600d6000015485612a579190613954565b612a6191906140ec565b905060006064600d6001015486612a789190613954565b612a8291906140ec565b905060006064600d6002015487612a999190613954565b612aa391906140ec565b9050808284612ab291906137fc565b612abc91906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b0a91906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612b6d91906137fc565b612b7791906137fc565b604051612b849190613262565b60405180910390a380828488612b9a9190613996565b612ba49190613996565b612bae9190613996565b935050505092915050565b6000806064600d6000015485612bcf9190613954565b612bd991906140ec565b905060006064600d6001015486612bf09190613954565b612bfa91906140ec565b905060006064600d6002015487612c119190613954565b612c1b91906140ec565b9050808284612c2a91906137fc565b612c3491906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c8291906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612ce591906137fc565b612cef91906137fc565b604051612cfc9190613262565b60405180910390a380828488612d129190613996565b612d1c9190613996565b612d269190613996565b935050505092915050565b6000612d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613182565b905092915050565b6000612dbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131e5565b905092915050565b6000600267ffffffffffffffff811115612de257612de161411d565b5b604051908082528060200260200182016040528015612e105781602001602082028036833780820191505090505b5090503081600081518110612e2857612e2761414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef39190614190565b81600181518110612f0757612f0661414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f6e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fd29594939291906142b6565b600060405180830381600087803b158015612fec57600080fd5b505af1158015613000573d6000803e3d6000fd5b505050505050565b600080830361301a576000905061307c565b600082846130289190613954565b905082848261303791906140ec565b14613077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306e90614382565b60405180910390fd5b809150505b92915050565b6130af30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613138969594939291906143a2565b60606040518083038185885af1158015613156573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061317b9190614403565b5050505050565b600080831182906131c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c0919061330d565b60405180910390fd5b50600083856131d891906140ec565b9050809150509392505050565b600083831115829061322d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613224919061330d565b60405180910390fd5b506000838561323c9190613996565b9050809150509392505050565b6000819050919050565b61325c81613249565b82525050565b60006020820190506132776000830184613253565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132b757808201518184015260208101905061329c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132df8261327d565b6132e98185613288565b93506132f9818560208601613299565b613302816132c3565b840191505092915050565b6000602082019050818103600083015261332781846132d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061335f82613334565b9050919050565b61336f81613354565b811461337a57600080fd5b50565b60008135905061338c81613366565b92915050565b61339b81613249565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d461332f565b5b60006133e38582860161337d565b92505060206133f4858286016133a9565b9150509250929050565b60008115159050919050565b613413816133fe565b82525050565b600060208201905061342e600083018461340a565b92915050565b6000819050919050565b600061345961345461344f84613334565b613434565b613334565b9050919050565b600061346b8261343e565b9050919050565b600061347d82613460565b9050919050565b61348d81613472565b82525050565b60006020820190506134a86000830184613484565b92915050565b6000806000606084860312156134c7576134c661332f565b5b60006134d5868287016133a9565b93505060206134e6868287016133a9565b92505060406134f7868287016133a9565b9150509250925092565b6000602082840312156135175761351661332f565b5b6000613525848285016133a9565b91505092915050565b6000806000606084860312156135475761354661332f565b5b60006135558682870161337d565b93505060206135668682870161337d565b9250506040613577868287016133a9565b9150509250925092565b600060e082019050613596600083018a613253565b6135a36020830189613253565b6135b06040830188613253565b6135bd6060830187613253565b6135ca6080830186613253565b6135d760a0830185613253565b6135e460c0830184613253565b98975050505050505050565b6135f981613354565b82525050565b600060208201905061361460008301846135f0565b92915050565b6000602082840312156136305761362f61332f565b5b600061363e8482850161337d565b91505092915050565b600060608201905061365c6000830186613253565b6136696020830185613253565b6136766040830184613253565b949350505050565b600060ff82169050919050565b6136948161367e565b82525050565b60006020820190506136af600083018461368b565b92915050565b6136be816133fe565b81146136c957600080fd5b50565b6000813590506136db816136b5565b92915050565b600080604083850312156136f8576136f761332f565b5b60006137068582860161337d565b9250506020613717858286016136cc565b9150509250929050565b600080604083850312156137385761373761332f565b5b60006137468582860161337d565b92505060206137578582860161337d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613797602083613288565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380782613249565b915061381283613249565b925082820190508082111561382a576138296137cd565b5b92915050565b7f546f74616c2073656c6c206665652063616e6e6f74206265207365742068696760008201527f686572207468616e203235252e00000000000000000000000000000000000000602082015250565b600061388c602d83613288565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f4d6178205472616e73616374696f6e2063616e6e6f7420626520736574206c6f60008201527f776572207468616e20302e35252e000000000000000000000000000000000000602082015250565b600061391e602e83613288565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b600061395f82613249565b915061396a83613249565b925082820261397881613249565b9150828204841483151761398f5761398e6137cd565b5b5092915050565b60006139a182613249565b91506139ac83613249565b92508282039050818111156139c4576139c36137cd565b5b92915050565b7f546f74616c20627579206665652063616e6e6f7420626520736574206869676860008201527f6572207468616e203235252e0000000000000000000000000000000000000000602082015250565b6000613a26602c83613288565b9150613a31826139ca565b604082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f4d61782057616c6c65742063616e6e6f7420626520736574206c6f776572207460008201527f68616e2031252e00000000000000000000000000000000000000000000000000602082015250565b6000613ab8602783613288565b9150613ac382613a5c565b604082019050919050565b60006020820190508181036000830152613ae781613aab565b9050919050565b7f53776170546f6b656e4174416d6f756e742063616e6e6f74206265207365742060008201527f686967686572207468616e2034252e0000000000000000000000000000000000602082015250565b6000613b4a602f83613288565b9150613b5582613aee565b604082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b600081519050613b8f81613392565b92915050565b600060208284031215613bab57613baa61332f565b5b6000613bb984828501613b80565b91505092915050565b6000604082019050613bd760008301856135f0565b613be46020830184613253565b9392505050565b600081519050613bfa816136b5565b92915050565b600060208284031215613c1657613c1561332f565b5b6000613c2484828501613beb565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c89602683613288565b9150613c9482613c2d565b604082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d1b602483613288565b9150613d2682613cbf565b604082019050919050565b60006020820190508181036000830152613d4a81613d0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dad602283613288565b9150613db882613d51565b604082019050919050565b60006020820190508181036000830152613ddc81613da0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e3f602583613288565b9150613e4a82613de3565b604082019050919050565b60006020820190508181036000830152613e6e81613e32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed1602383613288565b9150613edc82613e75565b604082019050919050565b60006020820190508181036000830152613f0081613ec4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f63602983613288565b9150613f6e82613f07565b604082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000613ff5602983613288565b915061400082613f99565b604082019050919050565b6000602082019050818103600083015261402481613fe8565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000614087602c83613288565b91506140928261402b565b604082019050919050565b600060208201905081810360008301526140b68161407a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140f782613249565b915061410283613249565b925082614112576141116140bd565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061418a81613366565b92915050565b6000602082840312156141a6576141a561332f565b5b60006141b48482850161417b565b91505092915050565b6000819050919050565b60006141e26141dd6141d8846141bd565b613434565b613249565b9050919050565b6141f2816141c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61422d81613354565b82525050565b600061423f8383614224565b60208301905092915050565b6000602082019050919050565b6000614263826141f8565b61426d8185614203565b935061427883614214565b8060005b838110156142a95781516142908882614233565b975061429b8361424b565b92505060018101905061427c565b5085935050505092915050565b600060a0820190506142cb6000830188613253565b6142d860208301876141e9565b81810360408301526142ea8186614258565b90506142f960608301856135f0565b6143066080830184613253565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061436c602183613288565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b600060c0820190506143b760008301896135f0565b6143c46020830188613253565b6143d160408301876141e9565b6143de60608301866141e9565b6143eb60808301856135f0565b6143f860a0830184613253565b979650505050505050565b60008060006060848603121561441c5761441b61332f565b5b600061442a86828701613b80565b935050602061443b86828701613b80565b925050604061444c86828701613b80565b915050925092509256fea264697066735822122093009d55e12e220d69ee4c02a215a2ee1647634c60438ef7c1a867963eb7652864736f6c634300081300330000000000000000000000004d90f812192b1c8dc1b104a613033730f762d9b50000000000000000000000004d90f812192b1c8dc1b104a613033730f762d9b5

Deployed Bytecode

0x6080604052600436106102345760003560e01c80635d098b381161012e5780638da5cb5b116100ab578063c02466681161006f578063c024666814610844578063dd62ed3e1461086d578063df778d26146108aa578063f1e55257146108c1578063f2fde38b146108ec5761023b565b80638da5cb5b1461074b57806395d89b4114610776578063a10eea98146107a1578063a457c2d7146107ca578063a9059cbb146108075761023b565b8063751039fc116100f2578063751039fc1461068a57806375f0a874146106a15780637d1db4a5146106cc57806384b47971146106f7578063885a4cd0146107225761023b565b80635d098b38146105b95780636402511e146105e25780636c0a24eb1461060b57806370a0823114610636578063715018a6146106735761023b565b806325519cf2116101bc578063313ce56711610180578063313ce567146104bc57806339509351146104e7578063470624021461052457806349bd5a5e146105515780635342acb41461057c5761023b565b806325519cf2146103e9578063264d26dd1461041257806327a14fc21461043d578063296f0a0c146104665780632b14ca561461048f5761023b565b806318160ddd1161020357806318160ddd146102fe5780631d865c30146103295780631e293c101461035257806323b872dd1461037b5780632479b177146103b85761023b565b806303e403b01461024057806306fdde031461026b578063095ea7b3146102965780631694505e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610915565b6040516102629190613262565b60405180910390f35b34801561027757600080fd5b5061028061091b565b60405161028d919061330d565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906133be565b610958565b6040516102ca9190613419565b60405180910390f35b3480156102df57600080fd5b506102e8610976565b6040516102f59190613493565b60405180910390f35b34801561030a57600080fd5b5061031361099c565b6040516103209190613262565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b91906134ae565b6109a6565b005b34801561035e57600080fd5b5061037960048036038101906103749190613501565b610ab8565b005b34801561038757600080fd5b506103a2600480360381019061039d919061352e565b610bb0565b6040516103af9190613419565b60405180910390f35b3480156103c457600080fd5b506103cd610c68565b6040516103e09796959493929190613581565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b91906134ae565b610c98565b005b34801561041e57600080fd5b50610427610daa565b60405161043491906135ff565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190613501565b610dd0565b005b34801561047257600080fd5b5061048d6004803603810190610488919061361a565b610ec8565b005b34801561049b57600080fd5b506104a4610fa1565b6040516104b393929190613647565b60405180910390f35b3480156104c857600080fd5b506104d1610fb9565b6040516104de919061369a565b60405180910390f35b3480156104f357600080fd5b5061050e600480360381019061050991906133be565b610fc2565b60405161051b9190613419565b60405180910390f35b34801561053057600080fd5b5061053961106e565b60405161054893929190613647565b60405180910390f35b34801561055d57600080fd5b50610566611086565b60405161057391906135ff565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e919061361a565b6110ac565b6040516105b09190613419565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db919061361a565b611102565b005b3480156105ee57600080fd5b5061060960048036038101906106049190613501565b6111db565b005b34801561061757600080fd5b506106206112d4565b60405161062d9190613262565b60405180910390f35b34801561064257600080fd5b5061065d6004803603810190610658919061361a565b6112da565b60405161066a9190613262565b60405180910390f35b34801561067f57600080fd5b50610688611323565b005b34801561069657600080fd5b5061069f611476565b005b3480156106ad57600080fd5b506106b66114f4565b6040516106c391906135ff565b60405180910390f35b3480156106d857600080fd5b506106e161151a565b6040516106ee9190613262565b60405180910390f35b34801561070357600080fd5b5061070c611520565b60405161071991906135ff565b60405180910390f35b34801561072e57600080fd5b506107496004803603810190610744919061361a565b611546565b005b34801561075757600080fd5b506107606116d6565b60405161076d91906135ff565b60405180910390f35b34801561078257600080fd5b5061078b6116ff565b604051610798919061330d565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c3919061361a565b61173c565b005b3480156107d657600080fd5b506107f160048036038101906107ec91906133be565b611815565b6040516107fe9190613419565b60405180910390f35b34801561081357600080fd5b5061082e600480360381019061082991906133be565b6118c1565b60405161083b9190613419565b60405180910390f35b34801561085057600080fd5b5061086b600480360381019061086691906136e1565b6118df565b005b34801561087957600080fd5b50610894600480360381019061088f9190613721565b6119cf565b6040516108a19190613262565b60405180910390f35b3480156108b657600080fd5b506108bf611a56565b005b3480156108cd57600080fd5b506108d6611b31565b6040516108e39190613419565b60405180910390f35b3480156108f857600080fd5b50610913600480360381019061090e919061361a565b611b44565b005b60095481565b60606040518060400160405280600a81526020017f426963686f6e20496e7500000000000000000000000000000000000000000000815250905090565b600061096c610965611d05565b8484611d0d565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b6109ae611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906137ad565b60405180910390fd5b6050818385610a4a91906137fc565b610a5491906137fc565b1115610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c906138a2565b60405180910390fd5b826010600001819055508160106001018190555080601060020181905550505050565b610ac0611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b44906137ad565b60405180910390fd5b620f4240811015610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90613934565b60405180910390fd5b670de0b6b3a764000081610ba79190613954565b60088190555050565b6000610bbd848484611ed6565b610c5d84610bc9611d05565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c13611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c589190613996565b611d0d565b600190509392505050565b60138060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b610ca0611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906137ad565b60405180910390fd5b6019818385610d3c91906137fc565b610d4691906137fc565b1115610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90613a3c565b60405180910390fd5b82600d6000018190555081600d6001018190555080600d60020181905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dd8611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906137ad565b60405180910390fd5b62989680811015610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290613ace565b60405180910390fd5b670de0b6b3a764000081610ebf9190613954565b60078190555050565b610ed0611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906137ad565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60108060000154908060010154908060020154905083565b60006012905090565b6000611064610fcf611d05565b848460046000610fdd611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105f91906137fc565b611d0d565b6001905092915050565b600d8060000154908060010154908060020154905083565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61110a611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906137ad565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111e3611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611267906137ad565b60405180910390fd5b6302625a008111156112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90613b60565b60405180910390fd5b670de0b6b3a7640000816112cb9190613954565b60098190555050565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61132b611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114b7611d05565b73ffffffffffffffffffffffffffffffffffffffff16146114d757600080fd5b6000600c60146101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61154e611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906137ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161163191906135ff565b602060405180830381865afa15801561164e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116729190613b95565b6040518363ffffffff1660e01b815260040161168f929190613bc2565b6020604051808303816000875af11580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d29190613c00565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f424943484f4e0000000000000000000000000000000000000000000000000000815250905090565b611744611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906137ad565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006118b7611822611d05565b848460046000611830611d05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118b29190613996565b611d0d565b6001905092915050565b60006118d56118ce611d05565b8484611ed6565b6001905092915050565b6118e7611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906137ad565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a97611d05565b73ffffffffffffffffffffffffffffffffffffffff1614611ab757600080fd5b6000611ac2306112da565b90506000811115611ad757611ad68161263e565b5b60004790506000811115611b2d573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b2b573d6000803e3d6000fd5b505b5050565b600c60149054906101000a900460ff1681565b611b4c611d05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd0906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613c9f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390613d31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290613dc3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ec99190613262565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613e55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613ee7565b60405180910390fd5b60008111611ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fee90613f79565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120469190613996565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561210257600190505b801561257c57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121b35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561227857600c60149054906101000a900460ff161561226b57600854831115612212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122099061400b565b60405180910390fd5b6007548361221f866112da565b61222991906137fc565b111561226a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122619061409d565b60405180910390fd5b5b6122758385612a41565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156123235750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561241657600c60149054906101000a900460ff161561238357600854831115612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123799061400b565b60405180910390fd5b5b61238d8386612bb9565b915060095461239b306112da565b101580156123b65750601d60009054906101000a900460ff16155b15612415576001601d60006101000a81548160ff02191690831515021790555060095482106123ef576123ea60095461263e565b6123f9565b6123f88261263e565b5b6000601d60006101000a81548160ff0219169083151502179055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124c25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561257b57600c60149054906101000a900460ff161561257a57600854831115612521576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125189061400b565b60405180910390fd5b6007548361252e866112da565b61253891906137fc565b1115612579576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125709061409d565b60405180910390fd5b5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125cb91906137fc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161262f9190613262565b60405180910390a35050505050565b60008190506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461267391906137fc565b61267d91906137fc565b61268791906137fc565b61269191906137fc565b61269b91906137fc565b601060000154600d600001546126b191906137fc565b836126bc9190613954565b6126c691906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d600101546126f891906137fc565b61270291906137fc565b61270c91906137fc565b61271691906137fc565b61272091906137fc565b601060010154600d6001015461273691906137fc565b846127419190613954565b61274b91906140ec565b90506000601060020154600d60020154601060000154601060010154600d60000154600d6001015461277d91906137fc565b61278791906137fc565b61279191906137fc565b61279b91906137fc565b6127a591906137fc565b601060020154600d600201546127bb91906137fc565b856127c69190613954565b6127d091906140ec565b905082601360000160008282546127e791906137fc565b92505081905550816013600101600082825461280391906137fc565b92505081905550806013600201600082825461281f91906137fc565b92505081905550600081838561283591906137fc565b61283f91906137fc565b90506000612857600286612d3190919063ffffffff16565b9050806013600301600082825461286e91906137fc565b92505081905550600061288a8288612d7b90919063ffffffff16565b9050600047905061289a82612dc5565b60006128af8247612d7b90919063ffffffff16565b905060006128d8866128ca8b8561300890919063ffffffff16565b612d3190919063ffffffff16565b90506000612901876128f38a8661300890919063ffffffff16565b612d3190919063ffffffff16565b9050816013600401600082825461291891906137fc565b92505081905550806013600601600082825461293491906137fc565b925050819055506129458683613082565b476013600501600082825461295a91906137fc565b92505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156129c9573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612a32573d6000803e3d6000fd5b50505050505050505050505050565b6000806064600d6000015485612a579190613954565b612a6191906140ec565b905060006064600d6001015486612a789190613954565b612a8291906140ec565b905060006064600d6002015487612a999190613954565b612aa391906140ec565b9050808284612ab291906137fc565b612abc91906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b0a91906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612b6d91906137fc565b612b7791906137fc565b604051612b849190613262565b60405180910390a380828488612b9a9190613996565b612ba49190613996565b612bae9190613996565b935050505092915050565b6000806064600d6000015485612bcf9190613954565b612bd991906140ec565b905060006064600d6001015486612bf09190613954565b612bfa91906140ec565b905060006064600d6002015487612c119190613954565b612c1b91906140ec565b9050808284612c2a91906137fc565b612c3491906137fc565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c8291906137fc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838686612ce591906137fc565b612cef91906137fc565b604051612cfc9190613262565b60405180910390a380828488612d129190613996565b612d1c9190613996565b612d269190613996565b935050505092915050565b6000612d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613182565b905092915050565b6000612dbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131e5565b905092915050565b6000600267ffffffffffffffff811115612de257612de161411d565b5b604051908082528060200260200182016040528015612e105781602001602082028036833780820191505090505b5090503081600081518110612e2857612e2761414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef39190614190565b81600181518110612f0757612f0661414c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f6e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fd29594939291906142b6565b600060405180830381600087803b158015612fec57600080fd5b505af1158015613000573d6000803e3d6000fd5b505050505050565b600080830361301a576000905061307c565b600082846130289190613954565b905082848261303791906140ec565b14613077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306e90614382565b60405180910390fd5b809150505b92915050565b6130af30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613138969594939291906143a2565b60606040518083038185885af1158015613156573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061317b9190614403565b5050505050565b600080831182906131c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c0919061330d565b60405180910390fd5b50600083856131d891906140ec565b9050809150509392505050565b600083831115829061322d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613224919061330d565b60405180910390fd5b506000838561323c9190613996565b9050809150509392505050565b6000819050919050565b61325c81613249565b82525050565b60006020820190506132776000830184613253565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132b757808201518184015260208101905061329c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132df8261327d565b6132e98185613288565b93506132f9818560208601613299565b613302816132c3565b840191505092915050565b6000602082019050818103600083015261332781846132d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061335f82613334565b9050919050565b61336f81613354565b811461337a57600080fd5b50565b60008135905061338c81613366565b92915050565b61339b81613249565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d461332f565b5b60006133e38582860161337d565b92505060206133f4858286016133a9565b9150509250929050565b60008115159050919050565b613413816133fe565b82525050565b600060208201905061342e600083018461340a565b92915050565b6000819050919050565b600061345961345461344f84613334565b613434565b613334565b9050919050565b600061346b8261343e565b9050919050565b600061347d82613460565b9050919050565b61348d81613472565b82525050565b60006020820190506134a86000830184613484565b92915050565b6000806000606084860312156134c7576134c661332f565b5b60006134d5868287016133a9565b93505060206134e6868287016133a9565b92505060406134f7868287016133a9565b9150509250925092565b6000602082840312156135175761351661332f565b5b6000613525848285016133a9565b91505092915050565b6000806000606084860312156135475761354661332f565b5b60006135558682870161337d565b93505060206135668682870161337d565b9250506040613577868287016133a9565b9150509250925092565b600060e082019050613596600083018a613253565b6135a36020830189613253565b6135b06040830188613253565b6135bd6060830187613253565b6135ca6080830186613253565b6135d760a0830185613253565b6135e460c0830184613253565b98975050505050505050565b6135f981613354565b82525050565b600060208201905061361460008301846135f0565b92915050565b6000602082840312156136305761362f61332f565b5b600061363e8482850161337d565b91505092915050565b600060608201905061365c6000830186613253565b6136696020830185613253565b6136766040830184613253565b949350505050565b600060ff82169050919050565b6136948161367e565b82525050565b60006020820190506136af600083018461368b565b92915050565b6136be816133fe565b81146136c957600080fd5b50565b6000813590506136db816136b5565b92915050565b600080604083850312156136f8576136f761332f565b5b60006137068582860161337d565b9250506020613717858286016136cc565b9150509250929050565b600080604083850312156137385761373761332f565b5b60006137468582860161337d565b92505060206137578582860161337d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613797602083613288565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380782613249565b915061381283613249565b925082820190508082111561382a576138296137cd565b5b92915050565b7f546f74616c2073656c6c206665652063616e6e6f74206265207365742068696760008201527f686572207468616e203235252e00000000000000000000000000000000000000602082015250565b600061388c602d83613288565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f4d6178205472616e73616374696f6e2063616e6e6f7420626520736574206c6f60008201527f776572207468616e20302e35252e000000000000000000000000000000000000602082015250565b600061391e602e83613288565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b600061395f82613249565b915061396a83613249565b925082820261397881613249565b9150828204841483151761398f5761398e6137cd565b5b5092915050565b60006139a182613249565b91506139ac83613249565b92508282039050818111156139c4576139c36137cd565b5b92915050565b7f546f74616c20627579206665652063616e6e6f7420626520736574206869676860008201527f6572207468616e203235252e0000000000000000000000000000000000000000602082015250565b6000613a26602c83613288565b9150613a31826139ca565b604082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f4d61782057616c6c65742063616e6e6f7420626520736574206c6f776572207460008201527f68616e2031252e00000000000000000000000000000000000000000000000000602082015250565b6000613ab8602783613288565b9150613ac382613a5c565b604082019050919050565b60006020820190508181036000830152613ae781613aab565b9050919050565b7f53776170546f6b656e4174416d6f756e742063616e6e6f74206265207365742060008201527f686967686572207468616e2034252e0000000000000000000000000000000000602082015250565b6000613b4a602f83613288565b9150613b5582613aee565b604082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b600081519050613b8f81613392565b92915050565b600060208284031215613bab57613baa61332f565b5b6000613bb984828501613b80565b91505092915050565b6000604082019050613bd760008301856135f0565b613be46020830184613253565b9392505050565b600081519050613bfa816136b5565b92915050565b600060208284031215613c1657613c1561332f565b5b6000613c2484828501613beb565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c89602683613288565b9150613c9482613c2d565b604082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d1b602483613288565b9150613d2682613cbf565b604082019050919050565b60006020820190508181036000830152613d4a81613d0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dad602283613288565b9150613db882613d51565b604082019050919050565b60006020820190508181036000830152613ddc81613da0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e3f602583613288565b9150613e4a82613de3565b604082019050919050565b60006020820190508181036000830152613e6e81613e32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed1602383613288565b9150613edc82613e75565b604082019050919050565b60006020820190508181036000830152613f0081613ec4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f63602983613288565b9150613f6e82613f07565b604082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000613ff5602983613288565b915061400082613f99565b604082019050919050565b6000602082019050818103600083015261402481613fe8565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000614087602c83613288565b91506140928261402b565b604082019050919050565b600060208201905081810360008301526140b68161407a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140f782613249565b915061410283613249565b925082614112576141116140bd565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061418a81613366565b92915050565b6000602082840312156141a6576141a561332f565b5b60006141b48482850161417b565b91505092915050565b6000819050919050565b60006141e26141dd6141d8846141bd565b613434565b613249565b9050919050565b6141f2816141c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61422d81613354565b82525050565b600061423f8383614224565b60208301905092915050565b6000602082019050919050565b6000614263826141f8565b61426d8185614203565b935061427883614214565b8060005b838110156142a95781516142908882614233565b975061429b8361424b565b92505060018101905061427c565b5085935050505092915050565b600060a0820190506142cb6000830188613253565b6142d860208301876141e9565b81810360408301526142ea8186614258565b90506142f960608301856135f0565b6143066080830184613253565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061436c602183613288565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b600060c0820190506143b760008301896135f0565b6143c46020830188613253565b6143d160408301876141e9565b6143de60608301866141e9565b6143eb60808301856135f0565b6143f860a0830184613253565b979650505050505050565b60008060006060848603121561441c5761441b61332f565b5b600061442a86828701613b80565b935050602061443b86828701613b80565b925050604061444c86828701613b80565b915050925092509256fea264697066735822122093009d55e12e220d69ee4c02a215a2ee1647634c60438ef7c1a867963eb7652864736f6c63430008130033

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

0000000000000000000000004d90f812192b1c8dc1b104a613033730f762d9b50000000000000000000000004d90f812192b1c8dc1b104a613033730f762d9b5

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x4d90F812192B1c8Dc1B104a613033730F762d9b5
Arg [1] : RnDAddress (address): 0x4d90F812192B1c8Dc1B104a613033730F762d9b5

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004d90f812192b1c8dc1b104a613033730f762d9b5
Arg [1] : 0000000000000000000000004d90f812192b1c8dc1b104a613033730f762d9b5


Deployed Bytecode Sourcemap

4800:13780:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5473:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7600:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8432:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4884:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7877:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10388:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10755:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8601:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6212:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;10023:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5533:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11007:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11464:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6182:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7786:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8875:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6154:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4934:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12983:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11602:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11237:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7980:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3261:148;;;;;;;;;;;;;:::i;:::-;;9892:123;;;;;;;;;;;;;:::i;:::-;;5572:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5420:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5609:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18389:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3047:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7691:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11738:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9098:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8106:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9335:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8281:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9524:360;;;;;;;;;;;;;:::i;:::-;;5642:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3417:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5473:51;;;;:::o;7600:83::-;7637:13;7670:5;;;;;;;;;;;;;;;;;7663:12;;7600:83;:::o;8432:161::-;8507:4;8524:39;8533:12;:10;:12::i;:::-;8547:7;8556:6;8524:8;:39::i;:::-;8581:4;8574:11;;8432:161;;;;:::o;4884:41::-;;;;;;;;;;;;;:::o;7877:95::-;7930:7;7957;;7950:14;;7877:95;:::o;10388:359::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10561:2:::1;10549:9;10531:15;10513;:33;;;;:::i;:::-;:45;;;;:::i;:::-;:50;;10505:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;10644:15;10624:7;:17;;:35;;;;10690:15;10670:7;:17;;:35;;;;10730:9;10716:7;:11;;:23;;;;10388:359:::0;;;:::o;10755:244::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10878:7:::1;10854:20;:31;;10846:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;10985:6;10962:20;:29;;;;:::i;:::-;10947:12;:44;;;;10755:244:::0;:::o;8601:266::-;8699:4;8716:36;8726:6;8734:9;8745:6;8716:9;:36::i;:::-;8763:74;8772:6;8780:12;:10;:12::i;:::-;8830:6;8794:11;:19;8806:6;8794:19;;;;;;;;;;;;;;;:33;8814:12;:10;:12::i;:::-;8794:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8763:8;:74::i;:::-;8855:4;8848:11;;8601:266;;;;;:::o;6212:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10023:357::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10196:2:::1;10183:9;10165:15;10147;:33;;;;:::i;:::-;:45;;;;:::i;:::-;:51;;10139:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;10277:15;10258:6;:16;;:34;;;;10322:15;10303:6;:16;;:34;;;;10361:9;10348:6;:10;;:22;;;;10023:357:::0;;;:::o;5533:32::-;;;;;;;;;;;;;:::o;11007:222::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11115:8:::1;11096:15;:27;;11088:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11215:6;11197:15;:24;;;;:::i;:::-;11178:16;:43;;;;11007:222:::0;:::o;11464:130::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11568:18:::1;11548:17;;:38;;;;;;;;;;;;;;;;;;11464:130:::0;:::o;6182:23::-;;;;;;;;;;;;;;;;;;;:::o;7786:83::-;7827:5;5299:2;7845:16;;7786:83;:::o;8875:215::-;8963:4;8980:80;8989:12;:10;:12::i;:::-;9003:7;9049:10;9012:11;:25;9024:12;:10;:12::i;:::-;9012:25;;;;;;;;;;;;;;;:34;9038:7;9012:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8980:8;:80::i;:::-;9078:4;9071:11;;8875:215;;;;:::o;6154:21::-;;;;;;;;;;;;;;;;;;;:::o;4934:28::-;;;;;;;;;;;;;:::o;12983:123::-;13047:4;13071:18;:27;13090:7;13071:27;;;;;;;;;;;;;;;;;;;;;;;;;13064:34;;12983:123;;;:::o;11602:128::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11704:18:::1;11686:15;;:36;;;;;;;;;;;;;;;;;;11602:128:::0;:::o;11237:219::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11336:8:::1;11320:12;:24;;11312:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11442:6;11427:12;:21;;;;:::i;:::-;11407:17;:41;;;;11237:219:::0;:::o;5363:50::-;;;;:::o;7980:118::-;8046:7;8073:8;:17;8082:7;8073:17;;;;;;;;;;;;;;;;8066:24;;7980:118;;;:::o;3261:148::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3368:1:::1;3331:40;;3352:6;::::0;::::1;;;;;;;;3331:40;;;;;;;;;;;;3399:1;3382:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3261:148::o:0;9892:123::-;9956:17;;;;;;;;;;;9942:31;;:12;:10;:12::i;:::-;:31;;;9934:40;;;;;;10002:5;9985:14;;:22;;;;;;;;;;;;;;;;;;9892:123::o;5572:30::-;;;;;;;;;;;;;:::o;5420:46::-;;;;:::o;5609:24::-;;;;;;;;;;;;;:::o;18389:188::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18477:13:::1;18470:30;;;18509:10;18529:13;18522:31;;;18562:4;18522:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18470:99;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18389:188:::0;:::o;3047:79::-;3085:7;3112:6;;;;;;;;;;;3105:13;;3047:79;:::o;7691:87::-;7730:13;7763:7;;;;;;;;;;;;;;;;;7756:14;;7691:87;:::o;11738:104::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11822:12:::1;11810:9;;:24;;;;;;;;;;;;;;;;;;11738:104:::0;:::o;9098:225::-;9191:4;9208:85;9217:12;:10;:12::i;:::-;9231:7;9277:15;9240:11;:25;9252:12;:10;:12::i;:::-;9240:25;;;;;;;;;;;;;;;:34;9266:7;9240:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;9208:8;:85::i;:::-;9311:4;9304:11;;9098:225;;;;:::o;8106:167::-;8184:4;8201:42;8211:12;:10;:12::i;:::-;8225:9;8236:6;8201:9;:42::i;:::-;8261:4;8254:11;;8106:167;;;;:::o;9335:140::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9459:8:::1;9420:18;:36;9447:7;9420:36;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;9335:140:::0;;:::o;8281:143::-;8362:7;8389:11;:18;8401:5;8389:18;;;;;;;;;;;;;;;:27;8408:7;8389:27;;;;;;;;;;;;;;;;8382:34;;8281:143;;;;:::o;9524:360::-;9585:17;;;;;;;;;;;9571:31;;:12;:10;:12::i;:::-;:31;;;9563:40;;;;;;9614:20;9635:24;9653:4;9635:9;:24::i;:::-;9614:45;;9686:1;9673:12;:14;9670:65;;;9701:22;9710:12;9701:8;:22::i;:::-;9670:65;9745:18;9764:21;9745:40;;9810:1;9799:10;:12;9796:81;;;9833:10;9825:28;;:40;9854:10;9825:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9796:81;9552:332;;9524:360::o;5642:33::-;;;;;;;;;;;;;:::o;3417:244::-;3184:12;:10;:12::i;:::-;3174:22;;:6;;;;;;;;;;:22;;;3166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3526:1:::1;3506:22;;:8;:22;;::::0;3498:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3616:8;3587:38;;3608:6;::::0;::::1;;;;;;;;3587:38;;;;;;;;;;;;3645:8;3636:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3417:244:::0;:::o;2483:115::-;2536:15;2579:10;2564:26;;2483:115;:::o;13114:337::-;13224:1;13207:19;;:5;:19;;;13199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13305:1;13286:21;;:7;:21;;;13278:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13389:6;13359:11;:18;13371:5;13359:18;;;;;;;;;;;;;;;:27;13378:7;13359:27;;;;;;;;;;;;;;;:36;;;;13427:7;13411:32;;13420:5;13411:32;;;13436:6;13411:32;;;;;;:::i;:::-;;;;;;;;13114:337;;;:::o;13459:2175::-;13597:1;13581:18;;:4;:18;;;13573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13674:1;13660:16;;:2;:16;;;13652:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13744:1;13735:6;:10;13727:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13830:6;13812:8;:14;13821:4;13812:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13847:22;13872:6;13847:31;;13899:12;13928:18;:24;13947:4;13928:24;;;;;;;;;;;;;;;;;;;;;;;;;13927:25;:52;;;;;13957:18;:22;13976:2;13957:22;;;;;;;;;;;;;;;;;;;;;;;;;13956:23;13927:52;13924:97;;;14005:4;13995:14;;13924:97;14036:7;14033:1493;;;14068:13;;;;;;;;;;;14062:19;;:2;:19;;;;:44;;;;;14093:13;;;;;;;;;;;14085:21;;:4;:21;;;14062:44;14059:401;;;14129:14;;;;;;;;;;;14126:260;;;14186:12;;14176:6;:22;;14168:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14301:16;;14291:6;14275:13;14285:2;14275:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;14267:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;14126:260;14421:23;14433:6;14441:2;14421:11;:23::i;:::-;14404:40;;14059:401;14487:13;;;;;;;;;;;14479:21;;:4;:21;;;;:44;;;;;14510:13;;;;;;;;;;;14504:19;;:2;:19;;;14479:44;14476:681;;;14546:14;;;;;;;;;;;14543:138;;;14603:12;;14593:6;:22;;14585:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14543:138;14716:26;14729:6;14737:4;14716:12;:26::i;:::-;14699:43;;14794:17;;14766:24;14784:4;14766:9;:24::i;:::-;:45;;:58;;;;;14816:8;;;;;;;;;;;14815:9;14766:58;14762:380;;;14860:4;14849:8;;:15;;;;;;;;;;;;;;;;;;14908:17;;14890:14;:35;14887:199;;14954:27;14963:17;;14954:8;:27::i;:::-;14887:199;;;15038:24;15047:14;15038:8;:24::i;:::-;14887:199;15119:5;15108:8;;:16;;;;;;;;;;;;;;;;;;14762:380;14476:681;15182:13;;;;;;;;;;;15176:19;;:2;:19;;;;:44;;;;;15207:13;;;;;;;;;;;15199:21;;:4;:21;;;;15176:44;15173:342;;;15243:14;;;;;;;;;;;15240:260;;;15300:12;;15290:6;:22;;15282:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;15415:16;;15405:6;15389:13;15399:2;15389:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;15381:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;15240:260;15173:342;14033:1493;15562:14;15546:8;:12;15555:2;15546:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15607:2;15592:34;;15601:4;15592:34;;;15611:14;15592:34;;;;;;:::i;:::-;;;;;;;;13562:2072;;13459:2175;;;:::o;15645:1871::-;15698:23;15724:6;15698:32;;15741:23;15918:7;:11;;;15905:6;:10;;;15885:7;:17;;;15865:7;:17;;;15846:6;:16;;;15827:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;:88;;;;:::i;:::-;:102;;;;:::i;:::-;15805:7;:17;;;15786:6;:16;;;:36;;;;:::i;:::-;15767:15;:56;;;;:::i;:::-;:163;;;;:::i;:::-;15741:189;;15941:23;16118:7;:11;;;16105:6;:10;;;16085:7;:17;;;16065:7;:17;;;16046:6;:16;;;16027:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;:88;;;;:::i;:::-;:102;;;;:::i;:::-;16005:7;:17;;;15986:6;:16;;;:36;;;;:::i;:::-;15967:15;:56;;;;:::i;:::-;:163;;;;:::i;:::-;15941:189;;16141:17;16300:7;:11;;;16287:6;:10;;;16267:7;:17;;;16247:7;:17;;;16228:6;:16;;;16209:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;:88;;;;:::i;:::-;:102;;;;:::i;:::-;16193:7;:11;;;16180:6;:10;;;:24;;;;:::i;:::-;16161:15;:44;;;;:::i;:::-;:151;;;;:::i;:::-;16141:171;;16359:15;16323;:32;;;:51;;;;;;;:::i;:::-;;;;;;;;16421:15;16385;:32;;;:51;;;;;;;:::i;:::-;;;;;;;;16477:9;16447:15;:26;;;:39;;;;;;;:::i;:::-;;;;;;;;16499:25;16563:9;16545:15;16527;:33;;;;:::i;:::-;:45;;;;:::i;:::-;16499:73;;16593:26;16622:22;16642:1;16622:15;:19;;:22;;;;:::i;:::-;16593:51;;16689:18;16655:15;:30;;;:52;;;;;;;:::i;:::-;;;;;;;;16718:26;16747:39;16767:18;16747:15;:19;;:39;;;;:::i;:::-;16718:68;;16807:25;16835:21;16807:49;;16869:36;16886:18;16869:16;:36::i;:::-;16917:18;16938:44;16964:17;16938:21;:25;;:44;;;;:::i;:::-;16917:65;;17003:23;17029:54;17065:17;17029:31;17044:15;17029:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;17003:80;;17094:17;17114:48;17144:17;17114:25;17129:9;17114:10;:14;;:25;;;;:::i;:::-;:29;;:48;;;;:::i;:::-;17094:68;;17205:15;17173;:28;;;:47;;;;;;;:::i;:::-;;;;;;;;17257:9;17231:15;:22;;;:35;;;;;;;:::i;:::-;;;;;;;;17279:49;17292:18;17312:15;17279:12;:49::i;:::-;17371:21;17339:15;:28;;;:53;;;;;;;:::i;:::-;;;;;;;;17411:9;;;;;;;;;;;17403:27;;:38;17431:9;17403:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17460:15;;;;;;;;;;;17452:33;;:56;17486:21;17452:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15687:1829;;;;;;;;;;;15645:1871;:::o;11850:558::-;11918:7;11938:25;11994:3;11975:6;:16;;;11966:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;11938:59;;12009:26;12066:3;12047:6;:16;;;12038:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;12009:60;;12080:20;12124:3;12112:6;:10;;;12103:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;12080:47;;12208:12;12187:18;12167:17;:38;;;;:::i;:::-;:53;;;;:::i;:::-;12140:8;:23;12157:4;12140:23;;;;;;;;;;;;;;;;:80;;;;;;;:::i;:::-;;;;;;;;12260:4;12236:85;;12246:4;12236:85;;;12308:12;12288:17;12267:18;:38;;;;:::i;:::-;:53;;;;:::i;:::-;12236:85;;;;;;:::i;:::-;;;;;;;;12387:12;12367:18;12348:17;12340:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;:59;;;;:::i;:::-;12332:68;;;;;11850:558;;;;:::o;12416:559::-;12485:7;12505:25;12561:3;12542:6;:16;;;12533:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;12505:59;;12576:26;12633:3;12614:6;:16;;;12605:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;12576:60;;12647:20;12691:3;12679:6;:10;;;12670:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;12647:47;;12775:12;12754:18;12734:17;:38;;;;:::i;:::-;:53;;;;:::i;:::-;12707:8;:23;12724:4;12707:23;;;;;;;;;;;;;;;;:80;;;;;;;:::i;:::-;;;;;;;;12827:4;12803:85;;12813:4;12803:85;;;12875:12;12855:17;12834:18;:38;;;;:::i;:::-;:53;;;;:::i;:::-;12803:85;;;;;;:::i;:::-;;;;;;;;12954:12;12934:18;12915:17;12907:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;:59;;;;:::i;:::-;12899:68;;;;;12416:559;;;;:::o;1713:132::-;1771:7;1798:39;1802:1;1805;1798:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1791:46;;1713:132;;;;:::o;1111:136::-;1169:7;1196:43;1200:1;1203;1196:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1189:50;;1111:136;;;;:::o;17524:475::-;17590:21;17628:1;17614:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17590:40;;17659:4;17641;17646:1;17641:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17685:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17675:4;17680:1;17675:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17720:62;17737:4;17752:15;;;;;;;;;;;17770:11;17720:8;:62::i;:::-;17795:15;;;;;;;;;;;:66;;;17876:11;17902:1;17918:4;17945;17965:15;17795:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17579:420;17524:475;:::o;1455:250::-;1513:7;1542:1;1537;:6;1533:47;;1567:1;1560:8;;;;1533:47;1592:9;1608:1;1604;:5;;;;:::i;:::-;1592:17;;1637:1;1632;1628;:5;;;;:::i;:::-;:10;1620:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1696:1;1689:8;;;1455:250;;;;;:::o;18007:374::-;18088:62;18105:4;18120:15;;;;;;;;;;;18138:11;18088:8;:62::i;:::-;18163:15;;;;;;;;;;;:31;;;18203:9;18237:4;18257:11;18283:1;18299;18315:17;;;;;;;;;;;18347:15;18163:210;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18007:374;;:::o;1853:278::-;1939:7;1971:1;1967;:5;1974:12;1959:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1998:9;2014:1;2010;:5;;;;:::i;:::-;1998:17;;2122:1;2115:8;;;1853:278;;;;;:::o;1255:192::-;1341:7;1374:1;1369;:6;;1377:12;1361:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1401:9;1417:1;1413;:5;;;;:::i;:::-;1401:17;;1438:1;1431:8;;;1255: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:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:619::-;5808:6;5816;5824;5873:2;5861:9;5852:7;5848:23;5844:32;5841:119;;;5879:79;;:::i;:::-;5841:119;5999:1;6024:53;6069:7;6060:6;6049:9;6045:22;6024:53;:::i;:::-;6014:63;;5970:117;6126:2;6152:53;6197:7;6188:6;6177:9;6173:22;6152:53;:::i;:::-;6142:63;;6097:118;6254:2;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6225:118;5731:619;;;;;:::o;6356:886::-;6617:4;6655:3;6644:9;6640:19;6632:27;;6669:71;6737:1;6726:9;6722:17;6713:6;6669:71;:::i;:::-;6750:72;6818:2;6807:9;6803:18;6794:6;6750:72;:::i;:::-;6832;6900:2;6889:9;6885:18;6876:6;6832:72;:::i;:::-;6914;6982:2;6971:9;6967:18;6958:6;6914:72;:::i;:::-;6996:73;7064:3;7053:9;7049:19;7040:6;6996:73;:::i;:::-;7079;7147:3;7136:9;7132:19;7123:6;7079:73;:::i;:::-;7162;7230:3;7219:9;7215:19;7206:6;7162:73;:::i;:::-;6356:886;;;;;;;;;;:::o;7248:118::-;7335:24;7353:5;7335:24;:::i;:::-;7330:3;7323:37;7248:118;;:::o;7372:222::-;7465:4;7503:2;7492:9;7488:18;7480:26;;7516:71;7584:1;7573:9;7569:17;7560:6;7516:71;:::i;:::-;7372:222;;;;:::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://93009d55e12e220d69ee4c02a215a2ee1647634c60438ef7c1a867963eb76528
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.