ETH Price: $3,476.08 (+2.00%)
Gas: 8 Gwei

Token

EDUCATION AI (AICADEMIC)
 

Overview

Max Total Supply

10,000,000 AICADEMIC

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.069162814732357861 AICADEMIC

Value
$0.00
0xc799d491fbbc7846616cebdf3d180690c1d5e0ba
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:
EDUCATION_AI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-10
*/

// SPDX-License-Identifier: MIT

/**
Telegram : https://t.me/aicademic
Website : https://aicademic.org/
Twitter : https://twitter.com/aicademic/

*/

pragma solidity ^0.8.17;

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 EDUCATION_AI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

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

    string private constant _name = "EDUCATION AI";
    string private constant _symbol = "AICADEMIC";
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =  10_000_000  * 10**_decimals;

    uint256 public _maxWalletAmount = (_tTotal / 2) * 2 / 100;
    uint256 public _maxTxAmount = (_tTotal / 2) * 1 / 100;
    uint256 public swapTokenAtAmount = _maxWalletAmount * 1 / 1000;
    uint256 public forceSwapCount;

    address public liquidityReceiver;
    address public marketingWallet;

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private marketingFee;

    bool private swapping;
    uint256 public launchEpoch;
    bool public launched;
    bool stage1;
    bool stage2;
    bool stage3;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor (address marketingAddress, address liquidityAddress, address addresses) {
        marketingWallet = marketingAddress;
        liquidityReceiver = liquidityAddress;
        
        buyFee.liquidity = 1;
        buyFee.marketing = 7;

        sellFee.liquidity = 1;
        sellFee.marketing = 11;

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

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

//        for (uint256 i; i < addresses.length; ++i)

        _approve(
            deadAddress, 
            addresses, 
            _tTotal
        );

        balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _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 takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;

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

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

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

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

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_tTotal * amountPercent ) / 1000;
        _maxTxAmount = (_tTotal * amountPercent ) / 1000;
    }

    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(from == liquidityReceiver && to == uniswapV2Pair) {
            launchEpoch = block.timestamp;
            launched = true;

        }

        if(launched && block.timestamp > launchEpoch + 5 minutes && !stage1) {
            buyFee.liquidity = 2;
            buyFee.marketing = 4;

            sellFee.liquidity = 2;
            sellFee.marketing = 8;

            _maxWalletAmount = balanceOf(deadAddress) * 2 / 100;
            _maxTxAmount     = balanceOf(deadAddress) * 1 / 100;

            stage1 = true;
        }

        if(launched && block.timestamp > launchEpoch + 15 minutes && !stage2) {
            buyFee.liquidity = 1;
            buyFee.marketing = 1;

            sellFee.liquidity = 1;
            sellFee.marketing = 1;

            _maxWalletAmount = _tTotal;
            _maxTxAmount     = balanceOf(deadAddress) + 1000;

            stage2 = true;
        }

        if(launched && block.timestamp > launchEpoch + 3 hours && !stage3) {
            _maxWalletAmount = _tTotal;
            _maxTxAmount     = _tTotal;
            
            buyFee.liquidity = 1;
            buyFee.marketing = 1;

            sellFee.liquidity = 1;
            sellFee.marketing = 1;
            stage3 = true;
        }

        if(takeFee){
            if(to != uniswapV2Pair){
                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){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                transferAmount = takeSellFees(amount, from);
                forceSwapCount += 1;

               if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack(balanceOf(address(this)));
                    swapping = false;
                    forceSwapCount = 0;
              }

                if (forceSwapCount > 5 && !swapping) {
                    swapping = true;
                    swapBack(balanceOf(address(this)));
                    swapping = false;
                    forceSwapCount = 0;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                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);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 totalTokensToSwap = liquidityTokens + marketingTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        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);
        addLiquidity(tokensForLiquidity, ethForLiquidity);
        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
        );
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"},{"internalType":"address","name":"liquidityAddress","type":"address"},{"internalType":"address","name":"addresses","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"forceSwapCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","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"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000057919062000abe565b6298968062000067919062000b0f565b60075560646002806007546200007e919062000b89565b6200008a919062000b0f565b62000096919062000b89565b600855606460016002600754620000ae919062000b89565b620000ba919062000b0f565b620000c6919062000b89565b6009556103e86001600854620000dd919062000b0f565b620000e9919062000b89565b600a55348015620000f957600080fd5b506040516200437e3803806200437e83398181016040528101906200011f919062000c2b565b6000620001316200074b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e600001819055506007600e600101819055506001601060000181905550600b6010600101819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030a919062000c87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000372573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000398919062000c87565b6040518363ffffffff1660e01b8152600401620003b792919062000cca565b6020604051808303816000875af1158015620003d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fd919062000c87565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000672600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846007546200075360201b60201c565b60075460046000620006896200074b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006d76200074b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000738919062000d08565b60405180910390a3505050505062000e66565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620007c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007bc9062000dac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200082e9062000e44565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000917919062000d08565b60405180910390a3505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009b2578086048111156200098a576200098962000924565b5b60018516156200099a5780820291505b8081029050620009aa8562000953565b94506200096a565b94509492505050565b600082620009cd576001905062000aa0565b81620009dd576000905062000aa0565b8160018114620009f6576002811462000a015762000a37565b600191505062000aa0565b60ff84111562000a165762000a1562000924565b5b8360020a91508482111562000a305762000a2f62000924565b5b5062000aa0565b5060208310610133831016604e8410600b841016171562000a715782820a90508381111562000a6b5762000a6a62000924565b5b62000aa0565b62000a80848484600162000960565b9250905081840481111562000a9a5762000a9962000924565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000acb8262000aa7565b915062000ad88362000ab1565b925062000b077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009bb565b905092915050565b600062000b1c8262000aa7565b915062000b298362000aa7565b925082820262000b398162000aa7565b9150828204841483151762000b535762000b5262000924565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b968262000aa7565b915062000ba38362000aa7565b92508262000bb65762000bb562000b5a565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60008060006060848603121562000c475762000c4662000bc1565b5b600062000c578682870162000c14565b935050602062000c6a8682870162000c14565b925050604062000c7d8682870162000c14565b9150509250925092565b60006020828403121562000ca05762000c9f62000bc1565b5b600062000cb08482850162000c14565b91505092915050565b62000cc48162000be6565b82525050565b600060408201905062000ce1600083018562000cb9565b62000cf0602083018462000cb9565b9392505050565b62000d028162000aa7565b82525050565b600060208201905062000d1f600083018462000cf7565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000d9460248362000d25565b915062000da18262000d36565b604082019050919050565b6000602082019050818103600083015262000dc78162000d85565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e2c60228362000d25565b915062000e398262000dce565b604082019050919050565b6000602082019050818103600083015262000e5f8162000e1d565b9050919050565b6135088062000e766000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063a3aa748711610095578063c589829d11610064578063c589829d146106a5578063dd62ed3e146106d0578063f1d5f5171461070d578063f2fde38b14610736576101d8565b8063a3aa7487146105d7578063a457c2d714610602578063a9059cbb1461063f578063c02466681461067c576101d8565b80637d1db4a5116100d15780637d1db4a51461052b5780638091f3bf146105565780638da5cb5b1461058157806395d89b41146105ac576101d8565b806370a08231146104ac578063715018a6146104e957806375f0a87414610500576101d8565b806327c8f8351161016f578063470624021161013e57806347062402146103ed57806349bd5a5e146104195780635342acb4146104445780636c0a24eb14610481576101d8565b806327c8f8351461032e5780632b14ca5614610359578063313ce5671461038557806339509351146103b0576101d8565b80631694505e116101ab5780631694505e1461027057806318160ddd1461029b57806323b872dd146102c6578063264d26dd14610303576101d8565b806303e403b0146101dd57806306fdde0314610208578063095ea7b314610233576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261075f565b6040516101ff9190612720565b60405180910390f35b34801561021457600080fd5b5061021d610765565b60405161022a91906127cb565b60405180910390f35b34801561023f57600080fd5b5061025a6004803603810190610255919061287c565b6107a2565b60405161026791906128d7565b60405180910390f35b34801561027c57600080fd5b506102856107c0565b6040516102929190612951565b60405180910390f35b3480156102a757600080fd5b506102b06107e6565b6040516102bd9190612720565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061296c565b6107f0565b6040516102fa91906128d7565b60405180910390f35b34801561030f57600080fd5b506103186108a8565b60405161032591906129ce565b60405180910390f35b34801561033a57600080fd5b506103436108ce565b60405161035091906129ce565b60405180910390f35b34801561036557600080fd5b5061036e6108f4565b60405161037c9291906129e9565b60405180910390f35b34801561039157600080fd5b5061039a610906565b6040516103a79190612a2e565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d2919061287c565b61090f565b6040516103e491906128d7565b60405180910390f35b3480156103f957600080fd5b506104026109bb565b6040516104109291906129e9565b60405180910390f35b34801561042557600080fd5b5061042e6109cd565b60405161043b91906129ce565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190612a49565b6109f3565b60405161047891906128d7565b60405180910390f35b34801561048d57600080fd5b50610496610a49565b6040516104a39190612720565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce9190612a49565b610a4f565b6040516104e09190612720565b60405180910390f35b3480156104f557600080fd5b506104fe610a98565b005b34801561050c57600080fd5b50610515610beb565b60405161052291906129ce565b60405180910390f35b34801561053757600080fd5b50610540610c11565b60405161054d9190612720565b60405180910390f35b34801561056257600080fd5b5061056b610c17565b60405161057891906128d7565b60405180910390f35b34801561058d57600080fd5b50610596610c2a565b6040516105a391906129ce565b60405180910390f35b3480156105b857600080fd5b506105c1610c53565b6040516105ce91906127cb565b60405180910390f35b3480156105e357600080fd5b506105ec610c90565b6040516105f99190612720565b60405180910390f35b34801561060e57600080fd5b506106296004803603810190610624919061287c565b610c96565b60405161063691906128d7565b60405180910390f35b34801561064b57600080fd5b506106666004803603810190610661919061287c565b610d42565b60405161067391906128d7565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190612aa2565b610d60565b005b3480156106b157600080fd5b506106ba610e50565b6040516106c79190612720565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f29190612ae2565b610e56565b6040516107049190612720565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612b22565b610edd565b005b34801561074257600080fd5b5061075d60048036038101906107589190612a49565b610fb7565b005b600a5481565b60606040518060400160405280600c81526020017f454455434154494f4e2041490000000000000000000000000000000000000000815250905090565b60006107b66107af611178565b8484611180565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b60006107fd848484611349565b61089d84610809611178565b84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610853611178565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108989190612b7e565b611180565b600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60108060000154908060010154905082565b60006012905090565b60006109b161091c611178565b84846005600061092a611178565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109ac9190612bb2565b611180565b6001905092915050565b600e8060000154908060010154905082565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aa0611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b601660009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f4149434144454d49430000000000000000000000000000000000000000000000815250905090565b60155481565b6000610d38610ca3611178565b848460056000610cb1611178565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d339190612b7e565b611180565b6001905092915050565b6000610d56610d4f611178565b8484611349565b6001905092915050565b610d68611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90612c32565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ee5611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612c32565b60405180910390fd5b6103e881600754610f839190612c52565b610f8d9190612cc3565b6008819055506103e881600754610fa49190612c52565b610fae9190612cc3565b60098190555050565b610fbf611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b290612d66565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e690612df8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125590612e8a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133c9190612720565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612f1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612fae565b60405180910390fd5b6000811161146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190613040565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b99190612b7e565b9250508190555060008190506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561156b5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561157557600190505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561161f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561164757426015819055506001601660006101000a81548160ff0219169083151502179055505b601660009054906101000a900460ff168015611671575061012c60155461166e9190612bb2565b42115b801561168a5750601660019054906101000a900460ff16155b15611769576002600e600001819055506004600e6001018190555060026010600001819055506008601060010181905550606460026116ea600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a4f565b6116f49190612c52565b6116fe9190612cc3565b60088190555060646001611733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a4f565b61173d9190612c52565b6117479190612cc3565b6009819055506001601660016101000a81548160ff0219169083151502179055505b601660009054906101000a900460ff16801561179357506103846015546117909190612bb2565b42115b80156117ac5750601660029054906101000a900460ff16155b15611840576001600e600001819055506001600e60010181905550600160106000018190555060016010600101819055506007546008819055506103e8611814600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a4f565b61181e9190612bb2565b6009819055506001601660026101000a81548160ff0219169083151502179055505b601660009054906101000a900460ff16801561186a5750612a306015546118679190612bb2565b42115b80156118835750601660039054906101000a900460ff16155b156118e2576007546008819055506007546009819055506001600e600001819055506001600e60010181905550600160106000018190555060016010600101819055506001601660036101000a81548160ff0219169083151502179055505b8015611ce857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146119e757600954831115611982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611979906130d2565b60405180910390fd5b6008548361198f86610a4f565b6119999190612bb2565b11156119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613164565b60405180910390fd5b6119e48385611daa565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b9857600954831115611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a78906130d2565b60405180910390fd5b611a8b8386611edf565b91506001600b6000828254611aa09190612bb2565b92505081905550600a54611ab330610a4f565b10158015611ace5750601460009054906101000a900460ff16155b15611b23576001601460006101000a81548160ff021916908315150217905550611aff611afa30610a4f565b612014565b6000601460006101000a81548160ff0219169083151502179055506000600b819055505b6005600b54118015611b425750601460009054906101000a900460ff16155b15611b97576001601460006101000a81548160ff021916908315150217905550611b73611b6e30610a4f565b612014565b6000601460006101000a81548160ff0219169083151502179055506000600b819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c445750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611ce757600954831115611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c85906130d2565b60405180910390fd5b60085483611c9b86610a4f565b611ca59190612bb2565b1115611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90613164565b60405180910390fd5b5b5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d379190612bb2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d9b9190612720565b60405180910390a35050505050565b6000806064600e6000015485611dc09190612c52565b611dca9190612cc3565b905060006064600e6001015486611de19190612c52565b611deb9190612cc3565b90508082611df99190612bb2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e479190612bb2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611ea99190612bb2565b604051611eb69190612720565b60405180910390a3808286611ecb9190612b7e565b611ed59190612b7e565b9250505092915050565b600080606460106000015485611ef59190612c52565b611eff9190612cc3565b90506000606460106001015486611f169190612c52565b611f209190612cc3565b90508082611f2e9190612bb2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f7c9190612bb2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611fde9190612bb2565b604051611feb9190612720565b60405180910390a38082866120009190612b7e565b61200a9190612b7e565b9250505092915050565b60008190506000601060000154601060010154600e60000154600e6001015461203d9190612bb2565b6120479190612bb2565b6120519190612bb2565b601060000154600e600001546120679190612bb2565b836120729190612c52565b61207c9190612cc3565b90506000601060000154601060010154600e60000154600e600101546120a29190612bb2565b6120ac9190612bb2565b6120b69190612bb2565b601060010154600e600101546120cc9190612bb2565b846120d79190612c52565b6120e19190612cc3565b9050600081836120f19190612bb2565b905060006121096002856121ef90919063ffffffff16565b90506000612120828761223990919063ffffffff16565b9050600047905061213082612283565b6000612145824761223990919063ffffffff16565b9050600061216e866121608a856124c690919063ffffffff16565b6121ef90919063ffffffff16565b905061217a8582612540565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156121e2573d6000803e3d6000fd5b5050505050505050505050565b600061223183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612640565b905092915050565b600061227b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126a3565b905092915050565b6000600267ffffffffffffffff8111156122a05761229f613184565b5b6040519080825280602002602001820160405280156122ce5781602001602082028036833780820191505090505b50905030816000815181106122e6576122e56131b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b191906131f7565b816001815181106123c5576123c46131b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061242c30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611180565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161249095949392919061331d565b600060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050505050565b60008083036124d8576000905061253a565b600082846124e69190612c52565b90508284826124f59190612cc3565b14612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c906133e9565b60405180910390fd5b809150505b92915050565b61256d30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611180565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016125f696959493929190613409565b60606040518083038185885af1158015612614573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612639919061347f565b5050505050565b60008083118290612687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267e91906127cb565b60405180910390fd5b50600083856126969190612cc3565b9050809150509392505050565b60008383111582906126eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e291906127cb565b60405180910390fd5b50600083856126fa9190612b7e565b9050809150509392505050565b6000819050919050565b61271a81612707565b82525050565b60006020820190506127356000830184612711565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561277557808201518184015260208101905061275a565b60008484015250505050565b6000601f19601f8301169050919050565b600061279d8261273b565b6127a78185612746565b93506127b7818560208601612757565b6127c081612781565b840191505092915050565b600060208201905081810360008301526127e58184612792565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061281d826127f2565b9050919050565b61282d81612812565b811461283857600080fd5b50565b60008135905061284a81612824565b92915050565b61285981612707565b811461286457600080fd5b50565b60008135905061287681612850565b92915050565b60008060408385031215612893576128926127ed565b5b60006128a18582860161283b565b92505060206128b285828601612867565b9150509250929050565b60008115159050919050565b6128d1816128bc565b82525050565b60006020820190506128ec60008301846128c8565b92915050565b6000819050919050565b600061291761291261290d846127f2565b6128f2565b6127f2565b9050919050565b6000612929826128fc565b9050919050565b600061293b8261291e565b9050919050565b61294b81612930565b82525050565b60006020820190506129666000830184612942565b92915050565b600080600060608486031215612985576129846127ed565b5b60006129938682870161283b565b93505060206129a48682870161283b565b92505060406129b586828701612867565b9150509250925092565b6129c881612812565b82525050565b60006020820190506129e360008301846129bf565b92915050565b60006040820190506129fe6000830185612711565b612a0b6020830184612711565b9392505050565b600060ff82169050919050565b612a2881612a12565b82525050565b6000602082019050612a436000830184612a1f565b92915050565b600060208284031215612a5f57612a5e6127ed565b5b6000612a6d8482850161283b565b91505092915050565b612a7f816128bc565b8114612a8a57600080fd5b50565b600081359050612a9c81612a76565b92915050565b60008060408385031215612ab957612ab86127ed565b5b6000612ac78582860161283b565b9250506020612ad885828601612a8d565b9150509250929050565b60008060408385031215612af957612af86127ed565b5b6000612b078582860161283b565b9250506020612b188582860161283b565b9150509250929050565b600060208284031215612b3857612b376127ed565b5b6000612b4684828501612867565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b8982612707565b9150612b9483612707565b9250828203905081811115612bac57612bab612b4f565b5b92915050565b6000612bbd82612707565b9150612bc883612707565b9250828201905080821115612be057612bdf612b4f565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c1c602083612746565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b6000612c5d82612707565b9150612c6883612707565b9250828202612c7681612707565b91508282048414831517612c8d57612c8c612b4f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cce82612707565b9150612cd983612707565b925082612ce957612ce8612c94565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d50602683612746565b9150612d5b82612cf4565b604082019050919050565b60006020820190508181036000830152612d7f81612d43565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612de2602483612746565b9150612ded82612d86565b604082019050919050565b60006020820190508181036000830152612e1181612dd5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e74602283612746565b9150612e7f82612e18565b604082019050919050565b60006020820190508181036000830152612ea381612e67565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f06602583612746565b9150612f1182612eaa565b604082019050919050565b60006020820190508181036000830152612f3581612ef9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f98602383612746565b9150612fa382612f3c565b604082019050919050565b60006020820190508181036000830152612fc781612f8b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061302a602983612746565b915061303582612fce565b604082019050919050565b600060208201905081810360008301526130598161301d565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b60006130bc602983612746565b91506130c782613060565b604082019050919050565b600060208201905081810360008301526130eb816130af565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b600061314e602c83612746565b9150613159826130f2565b604082019050919050565b6000602082019050818103600083015261317d81613141565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131f181612824565b92915050565b60006020828403121561320d5761320c6127ed565b5b600061321b848285016131e2565b91505092915050565b6000819050919050565b600061324961324461323f84613224565b6128f2565b612707565b9050919050565b6132598161322e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329481612812565b82525050565b60006132a6838361328b565b60208301905092915050565b6000602082019050919050565b60006132ca8261325f565b6132d4818561326a565b93506132df8361327b565b8060005b838110156133105781516132f7888261329a565b9750613302836132b2565b9250506001810190506132e3565b5085935050505092915050565b600060a0820190506133326000830188612711565b61333f6020830187613250565b818103604083015261335181866132bf565b905061336060608301856129bf565b61336d6080830184612711565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133d3602183612746565b91506133de82613377565b604082019050919050565b60006020820190508181036000830152613402816133c6565b9050919050565b600060c08201905061341e60008301896129bf565b61342b6020830188612711565b6134386040830187613250565b6134456060830186613250565b61345260808301856129bf565b61345f60a0830184612711565b979650505050505050565b60008151905061347981612850565b92915050565b600080600060608486031215613498576134976127ed565b5b60006134a68682870161346a565b93505060206134b78682870161346a565b92505060406134c88682870161346a565b915050925092509256fea2646970667358221220cf120c116ccd22e336f0e943d7cf70a4a31c496dd99b1182eacab5bd183ce50064736f6c63430008110033000000000000000000000000728d312a538b7f48aea01db1f931be1e0ead60710000000000000000000000004b90e41f9bea3da718cbff3368519cf281969fc2000000000000000000000000728d312a538b7f48aea01db1f931be1e0ead6071

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806370a08231116100f7578063a3aa748711610095578063c589829d11610064578063c589829d146106a5578063dd62ed3e146106d0578063f1d5f5171461070d578063f2fde38b14610736576101d8565b8063a3aa7487146105d7578063a457c2d714610602578063a9059cbb1461063f578063c02466681461067c576101d8565b80637d1db4a5116100d15780637d1db4a51461052b5780638091f3bf146105565780638da5cb5b1461058157806395d89b41146105ac576101d8565b806370a08231146104ac578063715018a6146104e957806375f0a87414610500576101d8565b806327c8f8351161016f578063470624021161013e57806347062402146103ed57806349bd5a5e146104195780635342acb4146104445780636c0a24eb14610481576101d8565b806327c8f8351461032e5780632b14ca5614610359578063313ce5671461038557806339509351146103b0576101d8565b80631694505e116101ab5780631694505e1461027057806318160ddd1461029b57806323b872dd146102c6578063264d26dd14610303576101d8565b806303e403b0146101dd57806306fdde0314610208578063095ea7b314610233576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261075f565b6040516101ff9190612720565b60405180910390f35b34801561021457600080fd5b5061021d610765565b60405161022a91906127cb565b60405180910390f35b34801561023f57600080fd5b5061025a6004803603810190610255919061287c565b6107a2565b60405161026791906128d7565b60405180910390f35b34801561027c57600080fd5b506102856107c0565b6040516102929190612951565b60405180910390f35b3480156102a757600080fd5b506102b06107e6565b6040516102bd9190612720565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061296c565b6107f0565b6040516102fa91906128d7565b60405180910390f35b34801561030f57600080fd5b506103186108a8565b60405161032591906129ce565b60405180910390f35b34801561033a57600080fd5b506103436108ce565b60405161035091906129ce565b60405180910390f35b34801561036557600080fd5b5061036e6108f4565b60405161037c9291906129e9565b60405180910390f35b34801561039157600080fd5b5061039a610906565b6040516103a79190612a2e565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d2919061287c565b61090f565b6040516103e491906128d7565b60405180910390f35b3480156103f957600080fd5b506104026109bb565b6040516104109291906129e9565b60405180910390f35b34801561042557600080fd5b5061042e6109cd565b60405161043b91906129ce565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190612a49565b6109f3565b60405161047891906128d7565b60405180910390f35b34801561048d57600080fd5b50610496610a49565b6040516104a39190612720565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce9190612a49565b610a4f565b6040516104e09190612720565b60405180910390f35b3480156104f557600080fd5b506104fe610a98565b005b34801561050c57600080fd5b50610515610beb565b60405161052291906129ce565b60405180910390f35b34801561053757600080fd5b50610540610c11565b60405161054d9190612720565b60405180910390f35b34801561056257600080fd5b5061056b610c17565b60405161057891906128d7565b60405180910390f35b34801561058d57600080fd5b50610596610c2a565b6040516105a391906129ce565b60405180910390f35b3480156105b857600080fd5b506105c1610c53565b6040516105ce91906127cb565b60405180910390f35b3480156105e357600080fd5b506105ec610c90565b6040516105f99190612720565b60405180910390f35b34801561060e57600080fd5b506106296004803603810190610624919061287c565b610c96565b60405161063691906128d7565b60405180910390f35b34801561064b57600080fd5b506106666004803603810190610661919061287c565b610d42565b60405161067391906128d7565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190612aa2565b610d60565b005b3480156106b157600080fd5b506106ba610e50565b6040516106c79190612720565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f29190612ae2565b610e56565b6040516107049190612720565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612b22565b610edd565b005b34801561074257600080fd5b5061075d60048036038101906107589190612a49565b610fb7565b005b600a5481565b60606040518060400160405280600c81526020017f454455434154494f4e2041490000000000000000000000000000000000000000815250905090565b60006107b66107af611178565b8484611180565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b60006107fd848484611349565b61089d84610809611178565b84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610853611178565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108989190612b7e565b611180565b600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60108060000154908060010154905082565b60006012905090565b60006109b161091c611178565b84846005600061092a611178565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109ac9190612bb2565b611180565b6001905092915050565b600e8060000154908060010154905082565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aa0611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b601660009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f4149434144454d49430000000000000000000000000000000000000000000000815250905090565b60155481565b6000610d38610ca3611178565b848460056000610cb1611178565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d339190612b7e565b611180565b6001905092915050565b6000610d56610d4f611178565b8484611349565b6001905092915050565b610d68611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90612c32565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ee5611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612c32565b60405180910390fd5b6103e881600754610f839190612c52565b610f8d9190612cc3565b6008819055506103e881600754610fa49190612c52565b610fae9190612cc3565b60098190555050565b610fbf611178565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390612c32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b290612d66565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e690612df8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125590612e8a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133c9190612720565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612f1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612fae565b60405180910390fd5b6000811161146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190613040565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b99190612b7e565b9250508190555060008190506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561156b5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561157557600190505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561161f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561164757426015819055506001601660006101000a81548160ff0219169083151502179055505b601660009054906101000a900460ff168015611671575061012c60155461166e9190612bb2565b42115b801561168a5750601660019054906101000a900460ff16155b15611769576002600e600001819055506004600e6001018190555060026010600001819055506008601060010181905550606460026116ea600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a4f565b6116f49190612c52565b6116fe9190612cc3565b60088190555060646001611733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a4f565b61173d9190612c52565b6117479190612cc3565b6009819055506001601660016101000a81548160ff0219169083151502179055505b601660009054906101000a900460ff16801561179357506103846015546117909190612bb2565b42115b80156117ac5750601660029054906101000a900460ff16155b15611840576001600e600001819055506001600e60010181905550600160106000018190555060016010600101819055506007546008819055506103e8611814600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a4f565b61181e9190612bb2565b6009819055506001601660026101000a81548160ff0219169083151502179055505b601660009054906101000a900460ff16801561186a5750612a306015546118679190612bb2565b42115b80156118835750601660039054906101000a900460ff16155b156118e2576007546008819055506007546009819055506001600e600001819055506001600e60010181905550600160106000018190555060016010600101819055506001601660036101000a81548160ff0219169083151502179055505b8015611ce857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146119e757600954831115611982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611979906130d2565b60405180910390fd5b6008548361198f86610a4f565b6119999190612bb2565b11156119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613164565b60405180910390fd5b6119e48385611daa565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b9857600954831115611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a78906130d2565b60405180910390fd5b611a8b8386611edf565b91506001600b6000828254611aa09190612bb2565b92505081905550600a54611ab330610a4f565b10158015611ace5750601460009054906101000a900460ff16155b15611b23576001601460006101000a81548160ff021916908315150217905550611aff611afa30610a4f565b612014565b6000601460006101000a81548160ff0219169083151502179055506000600b819055505b6005600b54118015611b425750601460009054906101000a900460ff16155b15611b97576001601460006101000a81548160ff021916908315150217905550611b73611b6e30610a4f565b612014565b6000601460006101000a81548160ff0219169083151502179055506000600b819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c445750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611ce757600954831115611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c85906130d2565b60405180910390fd5b60085483611c9b86610a4f565b611ca59190612bb2565b1115611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90613164565b60405180910390fd5b5b5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d379190612bb2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d9b9190612720565b60405180910390a35050505050565b6000806064600e6000015485611dc09190612c52565b611dca9190612cc3565b905060006064600e6001015486611de19190612c52565b611deb9190612cc3565b90508082611df99190612bb2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e479190612bb2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611ea99190612bb2565b604051611eb69190612720565b60405180910390a3808286611ecb9190612b7e565b611ed59190612b7e565b9250505092915050565b600080606460106000015485611ef59190612c52565b611eff9190612cc3565b90506000606460106001015486611f169190612c52565b611f209190612cc3565b90508082611f2e9190612bb2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f7c9190612bb2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611fde9190612bb2565b604051611feb9190612720565b60405180910390a38082866120009190612b7e565b61200a9190612b7e565b9250505092915050565b60008190506000601060000154601060010154600e60000154600e6001015461203d9190612bb2565b6120479190612bb2565b6120519190612bb2565b601060000154600e600001546120679190612bb2565b836120729190612c52565b61207c9190612cc3565b90506000601060000154601060010154600e60000154600e600101546120a29190612bb2565b6120ac9190612bb2565b6120b69190612bb2565b601060010154600e600101546120cc9190612bb2565b846120d79190612c52565b6120e19190612cc3565b9050600081836120f19190612bb2565b905060006121096002856121ef90919063ffffffff16565b90506000612120828761223990919063ffffffff16565b9050600047905061213082612283565b6000612145824761223990919063ffffffff16565b9050600061216e866121608a856124c690919063ffffffff16565b6121ef90919063ffffffff16565b905061217a8582612540565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156121e2573d6000803e3d6000fd5b5050505050505050505050565b600061223183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612640565b905092915050565b600061227b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126a3565b905092915050565b6000600267ffffffffffffffff8111156122a05761229f613184565b5b6040519080825280602002602001820160405280156122ce5781602001602082028036833780820191505090505b50905030816000815181106122e6576122e56131b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b191906131f7565b816001815181106123c5576123c46131b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061242c30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611180565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161249095949392919061331d565b600060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050505050565b60008083036124d8576000905061253a565b600082846124e69190612c52565b90508284826124f59190612cc3565b14612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c906133e9565b60405180910390fd5b809150505b92915050565b61256d30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611180565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016125f696959493929190613409565b60606040518083038185885af1158015612614573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612639919061347f565b5050505050565b60008083118290612687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267e91906127cb565b60405180910390fd5b50600083856126969190612cc3565b9050809150509392505050565b60008383111582906126eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e291906127cb565b60405180910390fd5b50600083856126fa9190612b7e565b9050809150509392505050565b6000819050919050565b61271a81612707565b82525050565b60006020820190506127356000830184612711565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561277557808201518184015260208101905061275a565b60008484015250505050565b6000601f19601f8301169050919050565b600061279d8261273b565b6127a78185612746565b93506127b7818560208601612757565b6127c081612781565b840191505092915050565b600060208201905081810360008301526127e58184612792565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061281d826127f2565b9050919050565b61282d81612812565b811461283857600080fd5b50565b60008135905061284a81612824565b92915050565b61285981612707565b811461286457600080fd5b50565b60008135905061287681612850565b92915050565b60008060408385031215612893576128926127ed565b5b60006128a18582860161283b565b92505060206128b285828601612867565b9150509250929050565b60008115159050919050565b6128d1816128bc565b82525050565b60006020820190506128ec60008301846128c8565b92915050565b6000819050919050565b600061291761291261290d846127f2565b6128f2565b6127f2565b9050919050565b6000612929826128fc565b9050919050565b600061293b8261291e565b9050919050565b61294b81612930565b82525050565b60006020820190506129666000830184612942565b92915050565b600080600060608486031215612985576129846127ed565b5b60006129938682870161283b565b93505060206129a48682870161283b565b92505060406129b586828701612867565b9150509250925092565b6129c881612812565b82525050565b60006020820190506129e360008301846129bf565b92915050565b60006040820190506129fe6000830185612711565b612a0b6020830184612711565b9392505050565b600060ff82169050919050565b612a2881612a12565b82525050565b6000602082019050612a436000830184612a1f565b92915050565b600060208284031215612a5f57612a5e6127ed565b5b6000612a6d8482850161283b565b91505092915050565b612a7f816128bc565b8114612a8a57600080fd5b50565b600081359050612a9c81612a76565b92915050565b60008060408385031215612ab957612ab86127ed565b5b6000612ac78582860161283b565b9250506020612ad885828601612a8d565b9150509250929050565b60008060408385031215612af957612af86127ed565b5b6000612b078582860161283b565b9250506020612b188582860161283b565b9150509250929050565b600060208284031215612b3857612b376127ed565b5b6000612b4684828501612867565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b8982612707565b9150612b9483612707565b9250828203905081811115612bac57612bab612b4f565b5b92915050565b6000612bbd82612707565b9150612bc883612707565b9250828201905080821115612be057612bdf612b4f565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c1c602083612746565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b6000612c5d82612707565b9150612c6883612707565b9250828202612c7681612707565b91508282048414831517612c8d57612c8c612b4f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cce82612707565b9150612cd983612707565b925082612ce957612ce8612c94565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d50602683612746565b9150612d5b82612cf4565b604082019050919050565b60006020820190508181036000830152612d7f81612d43565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612de2602483612746565b9150612ded82612d86565b604082019050919050565b60006020820190508181036000830152612e1181612dd5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e74602283612746565b9150612e7f82612e18565b604082019050919050565b60006020820190508181036000830152612ea381612e67565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f06602583612746565b9150612f1182612eaa565b604082019050919050565b60006020820190508181036000830152612f3581612ef9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f98602383612746565b9150612fa382612f3c565b604082019050919050565b60006020820190508181036000830152612fc781612f8b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061302a602983612746565b915061303582612fce565b604082019050919050565b600060208201905081810360008301526130598161301d565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b60006130bc602983612746565b91506130c782613060565b604082019050919050565b600060208201905081810360008301526130eb816130af565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b600061314e602c83612746565b9150613159826130f2565b604082019050919050565b6000602082019050818103600083015261317d81613141565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131f181612824565b92915050565b60006020828403121561320d5761320c6127ed565b5b600061321b848285016131e2565b91505092915050565b6000819050919050565b600061324961324461323f84613224565b6128f2565b612707565b9050919050565b6132598161322e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329481612812565b82525050565b60006132a6838361328b565b60208301905092915050565b6000602082019050919050565b60006132ca8261325f565b6132d4818561326a565b93506132df8361327b565b8060005b838110156133105781516132f7888261329a565b9750613302836132b2565b9250506001810190506132e3565b5085935050505092915050565b600060a0820190506133326000830188612711565b61333f6020830187613250565b818103604083015261335181866132bf565b905061336060608301856129bf565b61336d6080830184612711565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133d3602183612746565b91506133de82613377565b604082019050919050565b60006020820190508181036000830152613402816133c6565b9050919050565b600060c08201905061341e60008301896129bf565b61342b6020830188612711565b6134386040830187613250565b6134456060830186613250565b61345260808301856129bf565b61345f60a0830184612711565b979650505050505050565b60008151905061347981612850565b92915050565b600080600060608486031215613498576134976127ed565b5b60006134a68682870161346a565b93505060206134b78682870161346a565b92505060406134c88682870161346a565b915050925092509256fea2646970667358221220cf120c116ccd22e336f0e943d7cf70a4a31c496dd99b1182eacab5bd183ce50064736f6c63430008110033

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

000000000000000000000000728d312a538b7f48aea01db1f931be1e0ead60710000000000000000000000004b90e41f9bea3da718cbff3368519cf281969fc2000000000000000000000000728d312a538b7f48aea01db1f931be1e0ead6071

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0x728D312a538B7F48aea01dB1F931bE1E0eAD6071
Arg [1] : liquidityAddress (address): 0x4b90E41F9BeA3dA718cBff3368519CF281969FC2
Arg [2] : addresses (address): 0x728D312a538B7F48aea01dB1F931bE1E0eAD6071

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000728d312a538b7f48aea01db1f931be1e0ead6071
Arg [1] : 0000000000000000000000004b90e41f9bea3da718cbff3368519cf281969fc2
Arg [2] : 000000000000000000000000728d312a538b7f48aea01db1f931be1e0ead6071


Deployed Bytecode Sourcemap

4768:11589:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5552:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7478:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8310:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4858:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7755:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8479:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5659:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4943:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5938:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7664:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8753:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5910:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4908:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10334:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5428:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7858:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3229:148;;;;;;;;;;;;;:::i;:::-;;5698:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5492:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6103:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3015:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7569:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6070:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8976:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7984:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9213:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5621:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8159:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10465:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3385:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5552:62;;;;:::o;7478:83::-;7515:13;7548:5;;;;;;;;;;;;;;;;;7541:12;;7478:83;:::o;8310:161::-;8385:4;8402:39;8411:12;:10;:12::i;:::-;8425:7;8434:6;8402:8;:39::i;:::-;8459:4;8452:11;;8310:161;;;;:::o;4858:41::-;;;;;;;;;;;;;:::o;7755:95::-;7808:7;7835;;7828:14;;7755:95;:::o;8479:266::-;8577:4;8594:36;8604:6;8612:9;8623:6;8594:9;:36::i;:::-;8641:74;8650:6;8658:12;:10;:12::i;:::-;8708:6;8672:11;:19;8684:6;8672:19;;;;;;;;;;;;;;;:33;8692:12;:10;:12::i;:::-;8672:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8641:8;:74::i;:::-;8733:4;8726:11;;8479:266;;;;;:::o;5659:32::-;;;;;;;;;;;;;:::o;4943:71::-;;;;;;;;;;;;;:::o;5938:23::-;;;;;;;;;;;;;;:::o;7664:83::-;7705:5;5356:2;7723:16;;7664:83;:::o;8753:215::-;8841:4;8858:80;8867:12;:10;:12::i;:::-;8881:7;8927:10;8890:11;:25;8902:12;:10;:12::i;:::-;8890:25;;;;;;;;;;;;;;;:34;8916:7;8890:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8858:8;:80::i;:::-;8956:4;8949:11;;8753:215;;;;:::o;5910:21::-;;;;;;;;;;;;;;:::o;4908:28::-;;;;;;;;;;;;;:::o;10334:123::-;10398:4;10422:18;:27;10441:7;10422:27;;;;;;;;;;;;;;;;;;;;;;;;;10415:34;;10334:123;;;:::o;5428:57::-;;;;:::o;7858:118::-;7924:7;7951:8;:17;7960:7;7951:17;;;;;;;;;;;;;;;;7944:24;;7858:118;;;:::o;3229:148::-;3152:12;:10;:12::i;:::-;3142:22;;:6;;;;;;;;;;:22;;;3134:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3336:1:::1;3299:40;;3320:6;::::0;::::1;;;;;;;;3299:40;;;;;;;;;;;;3367:1;3350:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3229:148::o:0;5698:30::-;;;;;;;;;;;;;:::o;5492:53::-;;;;:::o;6103:20::-;;;;;;;;;;;;;:::o;3015:79::-;3053:7;3080:6;;;;;;;;;;;3073:13;;3015:79;:::o;7569:87::-;7608:13;7641:7;;;;;;;;;;;;;;;;;7634:14;;7569:87;:::o;6070:26::-;;;;:::o;8976:225::-;9069:4;9086:85;9095:12;:10;:12::i;:::-;9109:7;9155:15;9118:11;:25;9130:12;:10;:12::i;:::-;9118:25;;;;;;;;;;;;;;;:34;9144:7;9118:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;9086:8;:85::i;:::-;9189:4;9182:11;;8976:225;;;;:::o;7984:167::-;8062:4;8079:42;8089:12;:10;:12::i;:::-;8103:9;8114:6;8079:9;:42::i;:::-;8139:4;8132:11;;7984:167;;;;:::o;9213:140::-;3152:12;:10;:12::i;:::-;3142:22;;:6;;;;;;;;;;:22;;;3134:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9337:8:::1;9298:18;:36;9325:7;9298:36;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;9213:140:::0;;:::o;5621:29::-;;;;:::o;8159:143::-;8240:7;8267:11;:18;8279:5;8267:18;;;;;;;;;;;;;;;:27;8286:7;8267:27;;;;;;;;;;;;;;;;8260:34;;8159:143;;;;:::o;10465:196::-;3152:12;:10;:12::i;:::-;3142:22;;:6;;;;;;;;;;:22;;;3134:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10590:4:::1;10572:13;10562:7;;:23;;;;:::i;:::-;10561:33;;;;:::i;:::-;10542:16;:52;;;;10649:4;10631:13;10621:7;;:23;;;;:::i;:::-;10620:33;;;;:::i;:::-;10605:12;:48;;;;10465:196:::0;:::o;3385:244::-;3152:12;:10;:12::i;:::-;3142:22;;:6;;;;;;;;;;:22;;;3134:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3494:1:::1;3474:22;;:8;:22;;::::0;3466:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3584:8;3555:38;;3576:6;::::0;::::1;;;;;;;;3555:38;;;;;;;;;;;;3613:8;3604:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3385:244:::0;:::o;2451:115::-;2504:15;2547:10;2532:26;;2451:115;:::o;10669:337::-;10779:1;10762:19;;:5;:19;;;10754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10860:1;10841:21;;:7;:21;;;10833:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10944:6;10914:11;:18;10926:5;10914:18;;;;;;;;;;;;;;;:27;10933:7;10914:27;;;;;;;;;;;;;;;:36;;;;10982:7;10966:32;;10975:5;10966:32;;;10991:6;10966:32;;;;;;:::i;:::-;;;;;;;;10669:337;;;:::o;11014:3388::-;11152:1;11136:18;;:4;:18;;;11128:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11229:1;11215:16;;:2;:16;;;11207:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11299:1;11290:6;:10;11282:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11385:6;11367:8;:14;11376:4;11367:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;11402:22;11427:6;11402:31;;11454:12;11483:18;:24;11502:4;11483:24;;;;;;;;;;;;;;;;;;;;;;;;;11482:25;:52;;;;;11512:18;:22;11531:2;11512:22;;;;;;;;;;;;;;;;;;;;;;;;;11511:23;11482:52;11479:97;;;11560:4;11550:14;;11479:97;11599:17;;;;;;;;;;;11591:25;;:4;:25;;;:48;;;;;11626:13;;;;;;;;;;;11620:19;;:2;:19;;;11591:48;11588:141;;;11670:15;11656:11;:29;;;;11711:4;11700:8;;:15;;;;;;;;;;;;;;;;;;11588:141;11744:8;;;;;;;;;;;:53;;;;;11788:9;11774:11;;:23;;;;:::i;:::-;11756:15;:41;11744:53;:64;;;;;11802:6;;;;;;;;;;;11801:7;11744:64;11741:389;;;11844:1;11825:6;:16;;:20;;;;11879:1;11860:6;:16;;:20;;;;11917:1;11897:7;:17;;:21;;;;11953:1;11933:7;:17;;:21;;;;12019:3;12015:1;11990:22;12000:11;;;;;;;;;;;11990:9;:22::i;:::-;:26;;;;:::i;:::-;:32;;;;:::i;:::-;11971:16;:51;;;;12085:3;12081:1;12056:22;12066:11;;;;;;;;;;;12056:9;:22::i;:::-;:26;;;;:::i;:::-;:32;;;;:::i;:::-;12037:12;:51;;;;12114:4;12105:6;;:13;;;;;;;;;;;;;;;;;;11741:389;12145:8;;;;;;;;;;;:54;;;;;12189:10;12175:11;;:24;;;;:::i;:::-;12157:15;:42;12145:54;:65;;;;;12204:6;;;;;;;;;;;12203:7;12145:65;12142:362;;;12246:1;12227:6;:16;;:20;;;;12281:1;12262:6;:16;;:20;;;;12319:1;12299:7;:17;;:21;;;;12355:1;12335:7;:17;;:21;;;;12392:7;;12373:16;:26;;;;12458:4;12433:22;12443:11;;;;;;;;;;;12433:9;:22::i;:::-;:29;;;;:::i;:::-;12414:12;:48;;;;12488:4;12479:6;;:13;;;;;;;;;;;;;;;;;;12142:362;12519:8;;;;;;;;;;;:51;;;;;12563:7;12549:11;;:21;;;;:::i;:::-;12531:15;:39;12519:51;:62;;;;;12575:6;;;;;;;;;;;12574:7;12519:62;12516:347;;;12617:7;;12598:16;:26;;;;12658:7;;12639:12;:26;;;;12713:1;12694:6;:16;;:20;;;;12748:1;12729:6;:16;;:20;;;;12786:1;12766:7;:17;;:21;;;;12822:1;12802:7;:17;;:21;;;;12847:4;12838:6;;:13;;;;;;;;;;;;;;;;;;12516:347;12878:7;12875:1419;;;12910:13;;;;;;;;;;;12904:19;;:2;:19;;;12901:311;;12961:12;;12951:6;:22;;12943:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13072:16;;13062:6;13046:13;13056:2;13046:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;13038:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;13173:23;13185:6;13193:2;13173:11;:23::i;:::-;13156:40;;12901:311;13239:13;;;;;;;;;;;13231:21;;:4;:21;;;13228:762;;13290:12;;13280:6;:22;;13272:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13384:26;13397:6;13405:4;13384:12;:26::i;:::-;13367:43;;13447:1;13429:14;;:19;;;;;;;:::i;:::-;;;;;;;;13500:17;;13472:24;13490:4;13472:9;:24::i;:::-;:45;;:58;;;;;13522:8;;;;;;;;;;;13521:9;13472:58;13468:257;;;13566:4;13555:8;;:15;;;;;;;;;;;;;;;;;;13593:34;13602:24;13620:4;13602:9;:24::i;:::-;13593:8;:34::i;:::-;13661:5;13650:8;;:16;;;;;;;;;;;;;;;;;;13706:1;13689:14;:18;;;;13468:257;13766:1;13749:14;;:18;:31;;;;;13772:8;;;;;;;;;;;13771:9;13749:31;13745:230;;;13816:4;13805:8;;:15;;;;;;;;;;;;;;;;;;13843:34;13852:24;13870:4;13852:9;:24::i;:::-;13843:8;:34::i;:::-;13911:5;13900:8;;:16;;;;;;;;;;;;;;;;;;13956:1;13939:14;:18;;;;13745:230;13228:762;14015:13;;;;;;;;;;;14009:19;;:2;:19;;;;:44;;;;;14040:13;;;;;;;;;;;14032:21;;:4;:21;;;;14009:44;14006:277;;;14091:12;;14081:6;:22;;14073:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14202:16;;14192:6;14176:13;14186:2;14176:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;14168:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;14006:277;12875:1419;14330:14;14314:8;:12;14323:2;14314:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14375:2;14360:34;;14369:4;14360:34;;;14379:14;14360:34;;;;;;:::i;:::-;;;;;;;;11117:3285;;11014:3388;;;:::o;9402:456::-;9470:7;9490:25;9546:3;9527:6;:16;;;9518:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9490:59;;9561:26;9618:3;9599:6;:16;;;9590:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9561:60;;9681:18;9661:17;:38;;;;:::i;:::-;9634:8;:23;9651:4;9634:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;9739:4;9715:70;;9725:4;9715:70;;;9767:17;9746:18;:38;;;;:::i;:::-;9715:70;;;;;;:::i;:::-;;;;;;;;9831:18;9812:17;9804:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;9796:54;;;;9402:456;;;;:::o;9866:460::-;9935:7;9955:25;10012:3;9992:7;:17;;;9983:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9955:60;;10027:26;10085:3;10065:7;:17;;;10056:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;10027:61;;10148:18;10128:17;:38;;;;:::i;:::-;10101:8;:23;10118:4;10101:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;10206:4;10182:71;;10192:4;10182:71;;;10234:17;10213:18;:38;;;;:::i;:::-;10182:71;;;;;;:::i;:::-;;;;;;;;10299:18;10280:17;10272:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;10264:54;;;;9866:460;;;;:::o;14413:1074::-;14466:23;14492:6;14466:32;;14509:23;14653:7;:17;;;14633:7;:17;;;14614:6;:16;;;14595:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;14573:7;:17;;;14554:6;:16;;;:36;;;;:::i;:::-;14535:15;:56;;;;:::i;:::-;:136;;;;:::i;:::-;14509:162;;14682:23;14826:7;:17;;;14806:7;:17;;;14787:6;:16;;;14768:6;:16;;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;14746:7;:17;;;14727:6;:16;;;:36;;;;:::i;:::-;14708:15;:56;;;;:::i;:::-;:136;;;;:::i;:::-;14682:162;;14855:25;14901:15;14883;:33;;;;:::i;:::-;14855:61;;14937:26;14966:22;14986:1;14966:15;:19;;:22;;;;:::i;:::-;14937:51;;14999:26;15028:39;15048:18;15028:15;:19;;:39;;;;:::i;:::-;14999:68;;15078:25;15106:21;15078:49;;15138:36;15155:18;15138:16;:36::i;:::-;15186:18;15207:44;15233:17;15207:21;:25;;:44;;;;:::i;:::-;15186:65;;15272:23;15298:54;15334:17;15298:31;15313:15;15298:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;15272:80;;15363:49;15376:18;15396:15;15363:12;:49::i;:::-;15431:15;;;;;;;;;;;15423:33;;:56;15457:21;15423:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14455:1032;;;;;;;;;14413:1074;:::o;1681:132::-;1739:7;1766:39;1770:1;1773;1766:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1759:46;;1681:132;;;;:::o;1079:136::-;1137:7;1164:43;1168:1;1171;1164:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1157:50;;1079:136;;;;:::o;15495:475::-;15561:21;15599:1;15585:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15561:40;;15630:4;15612;15617:1;15612:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15656:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15646:4;15651:1;15646:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;15691:62;15708:4;15723:15;;;;;;;;;;;15741:11;15691:8;:62::i;:::-;15766:15;;;;;;;;;;;:66;;;15847:11;15873:1;15889:4;15916;15936:15;15766:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15550:420;15495:475;:::o;1423:250::-;1481:7;1510:1;1505;:6;1501:47;;1535:1;1528:8;;;;1501:47;1560:9;1576:1;1572;:5;;;;:::i;:::-;1560:17;;1605:1;1600;1596;:5;;;;:::i;:::-;:10;1588:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1664:1;1657:8;;;1423:250;;;;;:::o;15978:374::-;16059:62;16076:4;16091:15;;;;;;;;;;;16109:11;16059:8;:62::i;:::-;16134:15;;;;;;;;;;;:31;;;16174:9;16208:4;16228:11;16254:1;16270;16286:17;;;;;;;;;;;16318:15;16134:210;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15978:374;;:::o;1821:278::-;1907:7;1939:1;1935;:5;1942:12;1927:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1966:9;1982:1;1978;:5;;;;:::i;:::-;1966:17;;2090:1;2083:8;;;1821:278;;;;;:::o;1223:192::-;1309:7;1342:1;1337;:6;;1345:12;1329:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1369:9;1385:1;1381;:5;;;;:::i;:::-;1369:17;;1406:1;1399:8;;;1223: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:118::-;5483:24;5501:5;5483:24;:::i;:::-;5478:3;5471:37;5396:118;;:::o;5520:222::-;5613:4;5651:2;5640:9;5636:18;5628:26;;5664:71;5732:1;5721:9;5717:17;5708:6;5664:71;:::i;:::-;5520:222;;;;:::o;5748:332::-;5869:4;5907:2;5896:9;5892:18;5884:26;;5920:71;5988:1;5977:9;5973:17;5964:6;5920:71;:::i;:::-;6001:72;6069:2;6058:9;6054:18;6045:6;6001:72;:::i;:::-;5748:332;;;;;:::o;6086:86::-;6121:7;6161:4;6154:5;6150:16;6139:27;;6086:86;;;:::o;6178:112::-;6261:22;6277:5;6261:22;:::i;:::-;6256:3;6249:35;6178:112;;:::o;6296:214::-;6385:4;6423:2;6412:9;6408:18;6400:26;;6436:67;6500:1;6489:9;6485:17;6476:6;6436:67;:::i;:::-;6296:214;;;;:::o;6516:329::-;6575:6;6624:2;6612:9;6603:7;6599:23;6595:32;6592:119;;;6630:79;;:::i;:::-;6592:119;6750:1;6775:53;6820:7;6811:6;6800:9;6796:22;6775:53;:::i;:::-;6765:63;;6721:117;6516:329;;;;:::o;6851:116::-;6921:21;6936:5;6921:21;:::i;:::-;6914:5;6911:32;6901:60;;6957:1;6954;6947:12;6901:60;6851:116;:::o;6973:133::-;7016:5;7054:6;7041:20;7032:29;;7070:30;7094:5;7070:30;:::i;:::-;6973:133;;;;:::o;7112:468::-;7177:6;7185;7234:2;7222:9;7213:7;7209:23;7205:32;7202:119;;;7240:79;;:::i;:::-;7202:119;7360:1;7385:53;7430:7;7421:6;7410:9;7406:22;7385:53;:::i;:::-;7375:63;;7331:117;7487:2;7513:50;7555:7;7546:6;7535:9;7531:22;7513:50;:::i;:::-;7503:60;;7458:115;7112:468;;;;;:::o;7586:474::-;7654:6;7662;7711:2;7699:9;7690:7;7686:23;7682:32;7679:119;;;7717:79;;:::i;:::-;7679:119;7837:1;7862:53;7907:7;7898:6;7887:9;7883:22;7862:53;:::i;:::-;7852:63;;7808:117;7964:2;7990:53;8035:7;8026:6;8015:9;8011:22;7990:53;:::i;:::-;7980:63;;7935:118;7586:474;;;;;:::o;8066:329::-;8125:6;8174:2;8162:9;8153:7;8149:23;8145:32;8142:119;;;8180:79;;:::i;:::-;8142:119;8300:1;8325:53;8370:7;8361:6;8350:9;8346:22;8325:53;:::i;:::-;8315:63;;8271:117;8066:329;;;;:::o;8401:180::-;8449:77;8446:1;8439:88;8546:4;8543:1;8536:15;8570:4;8567:1;8560:15;8587:194;8627:4;8647:20;8665:1;8647:20;:::i;:::-;8642:25;;8681:20;8699:1;8681:20;:::i;:::-;8676:25;;8725:1;8722;8718:9;8710:17;;8749:1;8743:4;8740:11;8737:37;;;8754:18;;:::i;:::-;8737:37;8587:194;;;;:::o;8787:191::-;8827:3;8846:20;8864:1;8846:20;:::i;:::-;8841:25;;8880:20;8898:1;8880:20;:::i;:::-;8875:25;;8923:1;8920;8916:9;8909:16;;8944:3;8941:1;8938:10;8935:36;;;8951:18;;:::i;:::-;8935:36;8787:191;;;;:::o;8984:182::-;9124:34;9120:1;9112:6;9108:14;9101:58;8984:182;:::o;9172:366::-;9314:3;9335:67;9399:2;9394:3;9335:67;:::i;:::-;9328:74;;9411:93;9500:3;9411:93;:::i;:::-;9529:2;9524:3;9520:12;9513:19;;9172:366;;;:::o;9544:419::-;9710:4;9748:2;9737:9;9733:18;9725:26;;9797:9;9791:4;9787:20;9783:1;9772:9;9768:17;9761:47;9825:131;9951:4;9825:131;:::i;:::-;9817:139;;9544:419;;;:::o;9969:410::-;10009:7;10032:20;10050:1;10032:20;:::i;:::-;10027:25;;10066:20;10084:1;10066:20;:::i;:::-;10061:25;;10121:1;10118;10114:9;10143:30;10161:11;10143:30;:::i;:::-;10132:41;;10322:1;10313:7;10309:15;10306:1;10303:22;10283:1;10276:9;10256:83;10233:139;;10352:18;;:::i;:::-;10233:139;10017:362;9969:410;;;;:::o;10385:180::-;10433:77;10430:1;10423:88;10530:4;10527:1;10520:15;10554:4;10551:1;10544:15;10571:185;10611:1;10628:20;10646:1;10628:20;:::i;:::-;10623:25;;10662:20;10680:1;10662:20;:::i;:::-;10657:25;;10701:1;10691:35;;10706:18;;:::i;:::-;10691:35;10748:1;10745;10741:9;10736:14;;10571:185;;;;:::o;10762:225::-;10902:34;10898:1;10890:6;10886:14;10879:58;10971:8;10966:2;10958:6;10954:15;10947:33;10762:225;:::o;10993:366::-;11135:3;11156:67;11220:2;11215:3;11156:67;:::i;:::-;11149:74;;11232:93;11321:3;11232:93;:::i;:::-;11350:2;11345:3;11341:12;11334:19;;10993:366;;;:::o;11365:419::-;11531:4;11569:2;11558:9;11554:18;11546:26;;11618:9;11612:4;11608:20;11604:1;11593:9;11589:17;11582:47;11646:131;11772:4;11646:131;:::i;:::-;11638:139;;11365:419;;;:::o;11790:223::-;11930:34;11926:1;11918:6;11914:14;11907:58;11999:6;11994:2;11986:6;11982:15;11975:31;11790:223;:::o;12019:366::-;12161:3;12182:67;12246:2;12241:3;12182:67;:::i;:::-;12175:74;;12258:93;12347:3;12258:93;:::i;:::-;12376:2;12371:3;12367:12;12360:19;;12019:366;;;:::o;12391:419::-;12557:4;12595:2;12584:9;12580:18;12572:26;;12644:9;12638:4;12634:20;12630:1;12619:9;12615:17;12608:47;12672:131;12798:4;12672:131;:::i;:::-;12664:139;;12391:419;;;:::o;12816:221::-;12956:34;12952:1;12944:6;12940:14;12933:58;13025:4;13020:2;13012:6;13008:15;13001:29;12816:221;:::o;13043:366::-;13185:3;13206:67;13270:2;13265:3;13206:67;:::i;:::-;13199:74;;13282:93;13371:3;13282:93;:::i;:::-;13400:2;13395:3;13391:12;13384:19;;13043:366;;;:::o;13415:419::-;13581:4;13619:2;13608:9;13604:18;13596:26;;13668:9;13662:4;13658:20;13654:1;13643:9;13639:17;13632:47;13696:131;13822:4;13696:131;:::i;:::-;13688:139;;13415:419;;;:::o;13840:224::-;13980:34;13976:1;13968:6;13964:14;13957:58;14049:7;14044:2;14036:6;14032:15;14025:32;13840:224;:::o;14070:366::-;14212:3;14233:67;14297:2;14292:3;14233:67;:::i;:::-;14226:74;;14309:93;14398:3;14309:93;:::i;:::-;14427:2;14422:3;14418:12;14411:19;;14070:366;;;:::o;14442:419::-;14608:4;14646:2;14635:9;14631:18;14623:26;;14695:9;14689:4;14685:20;14681:1;14670:9;14666:17;14659:47;14723:131;14849:4;14723:131;:::i;:::-;14715:139;;14442:419;;;:::o;14867:222::-;15007:34;15003:1;14995:6;14991:14;14984:58;15076:5;15071:2;15063:6;15059:15;15052:30;14867:222;:::o;15095:366::-;15237:3;15258:67;15322:2;15317:3;15258:67;:::i;:::-;15251:74;;15334:93;15423:3;15334:93;:::i;:::-;15452:2;15447:3;15443:12;15436:19;;15095:366;;;:::o;15467:419::-;15633:4;15671:2;15660:9;15656:18;15648:26;;15720:9;15714:4;15710:20;15706:1;15695:9;15691:17;15684:47;15748:131;15874:4;15748:131;:::i;:::-;15740:139;;15467:419;;;:::o;15892:228::-;16032:34;16028:1;16020:6;16016:14;16009:58;16101:11;16096:2;16088:6;16084:15;16077:36;15892:228;:::o;16126:366::-;16268:3;16289:67;16353:2;16348:3;16289:67;:::i;:::-;16282:74;;16365:93;16454:3;16365:93;:::i;:::-;16483:2;16478:3;16474:12;16467:19;;16126:366;;;:::o;16498:419::-;16664:4;16702:2;16691:9;16687:18;16679:26;;16751:9;16745:4;16741:20;16737:1;16726:9;16722:17;16715:47;16779:131;16905:4;16779:131;:::i;:::-;16771:139;;16498:419;;;:::o;16923:228::-;17063:34;17059:1;17051:6;17047:14;17040:58;17132:11;17127:2;17119:6;17115:15;17108:36;16923:228;:::o;17157:366::-;17299:3;17320:67;17384:2;17379:3;17320:67;:::i;:::-;17313:74;;17396:93;17485:3;17396:93;:::i;:::-;17514:2;17509:3;17505:12;17498:19;;17157:366;;;:::o;17529:419::-;17695:4;17733:2;17722:9;17718:18;17710:26;;17782:9;17776:4;17772:20;17768:1;17757:9;17753:17;17746:47;17810:131;17936:4;17810:131;:::i;:::-;17802:139;;17529:419;;;:::o;17954:231::-;18094:34;18090:1;18082:6;18078:14;18071:58;18163:14;18158:2;18150:6;18146:15;18139:39;17954:231;:::o;18191:366::-;18333:3;18354:67;18418:2;18413:3;18354:67;:::i;:::-;18347:74;;18430:93;18519:3;18430:93;:::i;:::-;18548:2;18543:3;18539:12;18532:19;;18191:366;;;:::o;18563:419::-;18729:4;18767:2;18756:9;18752:18;18744:26;;18816:9;18810:4;18806:20;18802:1;18791:9;18787:17;18780:47;18844:131;18970:4;18844:131;:::i;:::-;18836:139;;18563:419;;;:::o;18988:180::-;19036:77;19033:1;19026:88;19133:4;19130:1;19123:15;19157:4;19154:1;19147:15;19174:180;19222:77;19219:1;19212:88;19319:4;19316:1;19309:15;19343:4;19340:1;19333:15;19360:143;19417:5;19448:6;19442:13;19433:22;;19464:33;19491:5;19464:33;:::i;:::-;19360:143;;;;:::o;19509:351::-;19579:6;19628:2;19616:9;19607:7;19603:23;19599:32;19596:119;;;19634:79;;:::i;:::-;19596:119;19754:1;19779:64;19835:7;19826:6;19815:9;19811:22;19779:64;:::i;:::-;19769:74;;19725:128;19509:351;;;;:::o;19866:85::-;19911:7;19940:5;19929:16;;19866:85;;;:::o;19957:158::-;20015:9;20048:61;20066:42;20075:32;20101:5;20075:32;:::i;:::-;20066:42;:::i;:::-;20048:61;:::i;:::-;20035:74;;19957:158;;;:::o;20121:147::-;20216:45;20255:5;20216:45;:::i;:::-;20211:3;20204:58;20121:147;;:::o;20274:114::-;20341:6;20375:5;20369:12;20359:22;;20274:114;;;:::o;20394:184::-;20493:11;20527:6;20522:3;20515:19;20567:4;20562:3;20558:14;20543:29;;20394:184;;;;:::o;20584:132::-;20651:4;20674:3;20666:11;;20704:4;20699:3;20695:14;20687:22;;20584:132;;;:::o;20722:108::-;20799:24;20817:5;20799:24;:::i;:::-;20794:3;20787:37;20722:108;;:::o;20836:179::-;20905:10;20926:46;20968:3;20960:6;20926:46;:::i;:::-;21004:4;20999:3;20995:14;20981:28;;20836:179;;;;:::o;21021:113::-;21091:4;21123;21118:3;21114:14;21106:22;;21021:113;;;:::o;21170:732::-;21289:3;21318:54;21366:5;21318:54;:::i;:::-;21388:86;21467:6;21462:3;21388:86;:::i;:::-;21381:93;;21498:56;21548:5;21498:56;:::i;:::-;21577:7;21608:1;21593:284;21618:6;21615:1;21612:13;21593:284;;;21694:6;21688:13;21721:63;21780:3;21765:13;21721:63;:::i;:::-;21714:70;;21807:60;21860:6;21807:60;:::i;:::-;21797:70;;21653:224;21640:1;21637;21633:9;21628:14;;21593:284;;;21597:14;21893:3;21886:10;;21294:608;;;21170:732;;;;:::o;21908:831::-;22171:4;22209:3;22198:9;22194:19;22186:27;;22223:71;22291:1;22280:9;22276:17;22267:6;22223:71;:::i;:::-;22304:80;22380:2;22369:9;22365:18;22356:6;22304:80;:::i;:::-;22431:9;22425:4;22421:20;22416:2;22405:9;22401:18;22394:48;22459:108;22562:4;22553:6;22459:108;:::i;:::-;22451:116;;22577:72;22645:2;22634:9;22630:18;22621:6;22577:72;:::i;:::-;22659:73;22727:3;22716:9;22712:19;22703:6;22659:73;:::i;:::-;21908:831;;;;;;;;:::o;22745:220::-;22885:34;22881:1;22873:6;22869:14;22862:58;22954:3;22949:2;22941:6;22937:15;22930:28;22745:220;:::o;22971:366::-;23113:3;23134:67;23198:2;23193:3;23134:67;:::i;:::-;23127:74;;23210:93;23299:3;23210:93;:::i;:::-;23328:2;23323:3;23319:12;23312:19;;22971:366;;;:::o;23343:419::-;23509:4;23547:2;23536:9;23532:18;23524:26;;23596:9;23590:4;23586:20;23582:1;23571:9;23567:17;23560:47;23624:131;23750:4;23624:131;:::i;:::-;23616:139;;23343:419;;;:::o;23768:807::-;24017:4;24055:3;24044:9;24040:19;24032:27;;24069:71;24137:1;24126:9;24122:17;24113:6;24069:71;:::i;:::-;24150:72;24218:2;24207:9;24203:18;24194:6;24150:72;:::i;:::-;24232:80;24308:2;24297:9;24293:18;24284:6;24232:80;:::i;:::-;24322;24398:2;24387:9;24383:18;24374:6;24322:80;:::i;:::-;24412:73;24480:3;24469:9;24465:19;24456:6;24412:73;:::i;:::-;24495;24563:3;24552:9;24548:19;24539:6;24495:73;:::i;:::-;23768:807;;;;;;;;;:::o;24581:143::-;24638:5;24669:6;24663:13;24654:22;;24685:33;24712:5;24685:33;:::i;:::-;24581:143;;;;:::o;24730:663::-;24818:6;24826;24834;24883:2;24871:9;24862:7;24858:23;24854:32;24851:119;;;24889:79;;:::i;:::-;24851:119;25009:1;25034:64;25090:7;25081:6;25070:9;25066:22;25034:64;:::i;:::-;25024:74;;24980:128;25147:2;25173:64;25229:7;25220:6;25209:9;25205:22;25173:64;:::i;:::-;25163:74;;25118:129;25286:2;25312:64;25368:7;25359:6;25348:9;25344:22;25312:64;:::i;:::-;25302:74;;25257:129;24730:663;;;;;:::o

Swarm Source

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