ETH Price: $3,456.55 (-0.88%)
Gas: 2 Gwei

Token

Alice 2.0 (ALICE2.0)
 

Overview

Max Total Supply

1,000,000,000 ALICE2.0

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,719,091.959491606 ALICE2.0

Value
$0.00
0x27ce434a3a25812eec6f78320054b6f2cd549198
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:
Alice

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-28
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event changeBlacklist(address _wallet, bool status);

}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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;

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


contract Alice is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "Alice 2.0";
    string private constant _symbol = "ALICE2.0";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    //max wallet holding of 3% 
    uint256 public _maxTokenPerWallet = ( _totalSupply * 3 ) / 100;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private cooldown;

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping(address => bool) private isBlacklist;

            
    uint256 public buyFeeRate = 30;
    uint256 public sellFeeRate = 40;

    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x55c0d40Ca7a581f92E1a57132D8745dAd17A168C);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private limitEffect = true;

    uint256 private maxBuyTransaction = ( _totalSupply * 30 ) / 1000; // 3% max tx
    uint256 public numTokensSellToAddToLiquidity = _totalSupply * 5 / 10000; // 0.05% swap wallet
    
    bool public maxWalletEnabled = true;
    bool private inSwap;

    // Cooldown & timer functionality
    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 0;

    mapping (address => uint) private cooldownTimer;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isTxLimitExempt[msg.sender] = true;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;             

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

        _balances[msg.sender] = _totalSupply;
    
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(!authorizations[sender] && !authorizations[recipient]){ 
            require(tradingOpen, "Trading not yet enabled.");
            require(!isBlacklist[sender],"User blacklisted");

        }

        if(limitEffect){
            // Checks max transaction limit
            require(amount <= maxBuyTransaction || isTxLimitExempt[sender], "TX Limit Exceeded");

            // max wallet code
            if (maxWalletEnabled && !authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingWallet){
                uint256 heldTokens = balanceOf(recipient);
                require((heldTokens + amount) <= _maxTokenPerWallet,"Total Holding is currently limited, you can not buy that much.");
            }

            // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades.
            if (sender == pair &&
                buyCooldownEnabled &&
                !isTimelockExempt[recipient]) {
                require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys");
                cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
            }
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(numTokensSellToAddToLiquidity); }

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

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 transferFeeRate = recipient == pair ? sellFeeRate : buyFeeRate;
        uint256 feeAmount;
        feeAmount = amount.mul(transferFeeRate).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack(uint256 amount) internal swapping {
        swapTokensForEth(amount);
    }

    
    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function swapToken() public onlyOwner {

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ 
            swapTokensForEth(numTokensSellToAddToLiquidity);
         }
    }

    function openTrade() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _sellFeeRate, uint256 _buyFeeRate) external onlyOwner {
        require (_buyFeeRate <= 100, "Fee can't exceed 100%");
        require (_sellFeeRate <= 100, "Fee can't exceed 100%");
        sellFeeRate = _sellFeeRate;
        buyFeeRate = _buyFeeRate;
    }

    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setBot(address _wallet, bool _status) external onlyOwner {
        isBlacklist[_wallet]= _status;
    emit changeBlacklist(_wallet, _status);        
    }   

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 

    function removeLimitEffect() external onlyOwner {
        limitEffect = false;
    }

    function setMaxWalletEnabled(bool value) external onlyOwner {
        maxWalletEnabled = value;
    }

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 9;
    } 

    function setMaxBuyAmount (uint256 maxBuyPercent) external onlyOwner {
        maxBuyTransaction = (_totalSupply * maxBuyPercent ) / 1000;
    } 

    function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner {
        _maxTokenPerWallet = (_totalSupply * maxWallPercent ) / 100;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsTimelockExempt(address holder, bool exempt) external onlyOwner {
        isTimelockExempt[holder] = exempt;
    }
    
    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer(
            (amountETH * amountPercentage) / 100
        );
    }

    function rescueToken(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"changeBlacklist","type":"event"},{"inputs":[],"name":"_maxTokenPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFeeRate","type":"uint256"},{"internalType":"uint256","name":"_buyFeeRate","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuyPercent","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setMaxWalletEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToken","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000a94565b633b9aca00620000aa919062000ae5565b60055560646003600554620000c0919062000ae5565b620000cc919062000b75565b600655601e600e556028600f5560646010557355c0d40ca7a581f92e1a57132d8745dad17a168c601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560016101000a81548160ff0219169083151502179055506103e8601e60055462000162919062000ae5565b6200016e919062000b75565b6016556127106005805462000184919062000ae5565b62000190919062000b75565b6017556001601860006101000a81548160ff0219169083151502179055506000601860026101000a81548160ff0219169083151502179055506000601860036101000a81548160ff021916908360ff160217905550348015620001f257600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000375919062000c17565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000423573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000449919062000c17565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004a792919062000c5a565b6020604051808303816000875af1158015620004c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ed919062000c17565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620008ec919062000c98565b60405180910390a362000cb5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009885780860481111562000960576200095f620008fa565b5b6001851615620009705780820291505b8081029050620009808562000929565b945062000940565b94509492505050565b600082620009a3576001905062000a76565b81620009b3576000905062000a76565b8160018114620009cc5760028114620009d75762000a0d565b600191505062000a76565b60ff841115620009ec57620009eb620008fa565b5b8360020a91508482111562000a065762000a05620008fa565b5b5062000a76565b5060208310610133831016604e8410600b841016171562000a475782820a90508381111562000a415762000a40620008fa565b5b62000a76565b62000a56848484600162000936565b9250905081840481111562000a705762000a6f620008fa565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aa18262000a7d565b915062000aae8362000a87565b925062000add7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000991565b905092915050565b600062000af28262000a7d565b915062000aff8362000a7d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b3b5762000b3a620008fa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b828262000a7d565b915062000b8f8362000a7d565b92508262000ba25762000ba162000b46565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bdf8262000bb2565b9050919050565b62000bf18162000bd2565b811462000bfd57600080fd5b50565b60008151905062000c118162000be6565b92915050565b60006020828403121562000c305762000c2f62000bad565b5b600062000c408482850162000c00565b91505092915050565b62000c548162000bd2565b82525050565b600060408201905062000c71600083018562000c49565b62000c80602083018462000c49565b9392505050565b62000c928162000a7d565b82525050565b600060208201905062000caf600083018462000c87565b92915050565b613df68062000cc56000396000f3fe6080604052600436106102765760003560e01c806370a082311161014f578063d045a329116100c1578063f2fde38b1161007a578063f2fde38b14610971578063f34eb0b81461099a578063f84ba65d146109c3578063f887ea40146109ec578063fb201b1d14610a17578063fe9fbb8014610a2e5761027d565b8063d045a32914610887578063d12a7688146108b2578063d47edea2146108dd578063dc73e49c146108f4578063dd62ed3e1461090b578063f0b37c04146109485761027d565b806395d89b411161011357806395d89b4114610777578063a614ff75146107a2578063a8aa1b31146107cb578063a9059cbb146107f6578063b6a5d7de14610833578063bf56b3711461085c5761027d565b806370a0823114610690578063722b62ad146106cd57806375f0a874146106f857806382bf293c14610723578063893d20e81461074c5761027d565b806333f3d628116101e8578063571ac8b0116101ac578063571ac8b0146105805780635b149feb146105bd5780635d098b38146105e8578063617fe0ed14610611578063658d4b7f1461063c5780636b1b4987146106655761027d565b806333f3d6281461049f578063342aa8b5146104dc57806350db71fb1461050557806352f7c9881461052e57806356a227f2146105575761027d565b806323b872dd1161023a57806323b872dd1461037d57806329e04b4a146103ba5780632b112e49146103e35780632d5945671461040e5780632f54bf6e14610437578063313ce567146104745761027d565b80630252765a1461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd1461031557806323b63585146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a6b565b6040516102a49190612f65565b60405180910390f35b3480156102b957600080fd5b506102c2610a71565b6040516102cf9190613019565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906130ca565b610aae565b60405161030c9190613125565b60405180910390f35b34801561032157600080fd5b5061032a610ba0565b6040516103379190612f65565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190613140565b610baa565b6040516103749190613125565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f919061316d565b610c28565b6040516103b19190613125565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613140565b610e28565b005b3480156103ef57600080fd5b506103f8610ee1565b6040516104059190612f65565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190613225565b610f63565b005b34801561044357600080fd5b5061045e60048036038101906104599190613265565b610fe4565b60405161046b9190613125565b60405180910390f35b34801561048057600080fd5b5061048961103d565b60405161049691906132a1565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c191906130ca565b611046565b6040516104d39190613125565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906132bc565b611116565b005b34801561051157600080fd5b5061052c600480360381019061052791906132bc565b6111f2565b005b34801561053a57600080fd5b50610555600480360381019061055091906132fc565b611295565b005b34801561056357600080fd5b5061057e6004803603810190610579919061333c565b611377565b005b34801561058c57600080fd5b506105a760048036038101906105a29190613265565b611427565b6040516105b49190613125565b60405180910390f35b3480156105c957600080fd5b506105d261145a565b6040516105df9190612f65565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190613265565b611460565b005b34801561061d57600080fd5b506106266114ec565b6040516106339190613125565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e91906132bc565b6114ff565b005b34801561067157600080fd5b5061067a6115a2565b6040516106879190612f65565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613265565b6115a8565b6040516106c49190612f65565b60405180910390f35b3480156106d957600080fd5b506106e26115f1565b6040516106ef91906132a1565b60405180910390f35b34801561070457600080fd5b5061070d611604565b60405161071a919061339d565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190613140565b61162a565b005b34801561075857600080fd5b50610761611695565b60405161076e91906133c7565b60405180910390f35b34801561078357600080fd5b5061078c6116be565b6040516107999190613019565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c491906133e2565b6116fb565b005b3480156107d757600080fd5b506107e0611760565b6040516107ed91906133c7565b60405180910390f35b34801561080257600080fd5b5061081d600480360381019061081891906130ca565b611786565b60405161082a9190613125565b60405180910390f35b34801561083f57600080fd5b5061085a60048036038101906108559190613265565b61179b565b005b34801561086857600080fd5b5061087161183d565b60405161087e9190612f65565b60405180910390f35b34801561089357600080fd5b5061089c611843565b6040516108a99190613125565b60405180910390f35b3480156108be57600080fd5b506108c7611856565b6040516108d49190612f65565b60405180910390f35b3480156108e957600080fd5b506108f261185c565b005b34801561090057600080fd5b506109096118c1565b005b34801561091757600080fd5b50610932600480360381019061092d919061340f565b611950565b60405161093f9190612f65565b60405180910390f35b34801561095457600080fd5b5061096f600480360381019061096a9190613265565b6119d7565b005b34801561097d57600080fd5b506109986004803603810190610993919061347b565b611a7a565b005b3480156109a657600080fd5b506109c160048036038101906109bc9190613140565b611b93565b005b3480156109cf57600080fd5b506109ea60048036038101906109e591906132bc565b611bff565b005b3480156109f857600080fd5b50610a01611ca2565b604051610a0e9190613507565b60405180910390f35b348015610a2357600080fd5b50610a2c611cc8565b005b348015610a3a57600080fd5b50610a556004803603810190610a509190613265565b611d34565b604051610a629190613125565b60405180910390f35b60065481565b60606040518060400160405280600981526020017f416c69636520322e300000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b8e9190612f65565b60405180910390a36001905092915050565b6000600554905090565b6000610bb533610fe4565b610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610beb9061356e565b60405180910390fd5b610c2130600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8a565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e1457610d93826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e1f848484611fc1565b90509392505050565b610e3133610fe4565b610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e679061356e565b60405180910390fd5b610e86606460055461286b90919063ffffffff16565b811115610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906135da565b60405180910390fd5b633b9aca0081610ed89190613629565b60178190555050565b6000610f5e610f11600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b610f50610f3f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b6005546128b590919063ffffffff16565b6128b590919063ffffffff16565b905090565b610f6c33610fe4565b610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa29061356e565b60405180910390fd5b81601860026101000a81548160ff02191690831515021790555080601860036101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600061105133610fe4565b611090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110879061356e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016110cb929190613683565b6020604051808303816000875af11580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e91906136c1565b905092915050565b61111f33610fe4565b61115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061356e565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff791a94c7f3569546a71acf39c0189bd87bd7b7e3ea76ce41fd41d837cc4bbca82826040516111e69291906136ee565b60405180910390a15050565b6111fb33610fe4565b61123a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112319061356e565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61129e33610fe4565b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d49061356e565b60405180910390fd5b6064811115611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613763565b60405180910390fd5b6064821115611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90613763565b60405180910390fd5b81600f8190555080600e819055505050565b61138033610fe4565b6113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b69061356e565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc606485846113ec9190613629565b6113f691906137b2565b9081150290604051600060405180830381858888f19350505050158015611421573d6000803e3d6000fd5b50505050565b6000611453827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aae565b9050919050565b600f5481565b61146933610fe4565b6114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f9061356e565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860029054906101000a900460ff1681565b61150833610fe4565b611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061356e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860039054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61163333610fe4565b611672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116699061356e565b60405180910390fd5b6064816005546116829190613629565b61168c91906137b2565b60068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f414c494345322e30000000000000000000000000000000000000000000000000815250905090565b61170433610fe4565b611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061356e565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611793338484611fc1565b905092915050565b6117a433610fe4565b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da9061356e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60145481565b601860009054906101000a900460ff1681565b60175481565b61186533610fe4565b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061356e565b60405180910390fd5b6000601560016101000a81548160ff021916908315150217905550565b6118ca33610fe4565b611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119009061356e565b60405180910390fd5b6000611914306115a8565b905060006017548210159050600081801561193757506000611935306115a8565b115b9050801561194b5761194a6017546128ff565b5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119e033610fe4565b611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061356e565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a8333610fe4565b611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99061356e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b889190613804565b60405180910390a150565b611b9c33610fe4565b611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd29061356e565b60405180910390fd5b6103e881600554611bec9190613629565b611bf691906137b2565b60168190555050565b611c0833610fe4565b611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e9061356e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd133610fe4565b611d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d079061356e565b60405180910390fd5b436014819055506001601560006101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611e15826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eaa82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4a9190612f65565b60405180910390a3600190509392505050565b6000838311158290611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c9190613019565b60405180910390fd5b5060008385611fb4919061381f565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120675750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214957601560009054906101000a900460ff166120bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b29061389f565b60405180910390fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f9061390b565b60405180910390fd5b5b601560019054906101000a900460ff16156125af57601654821115806121b85750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90613977565b60405180910390fd5b601860009054906101000a900460ff16801561225d5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561229557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122ef5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124075760006123b3846115a8565b905060065483826123c49190613997565b1115612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90613a5f565b60405180910390fd5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124705750601860029054906101000a900460ff165b80156124c65750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ae5742601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061254c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254390613af1565b60405180910390fd5b601860039054906101000a900460ff1660ff164261256a9190613997565b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860019054906101000a900460ff16156125d6576125cf848484611d8a565b9050612864565b60006125e1306115a8565b90506000601754821015905060008180156126495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b801561265d5750600061265b306115a8565b115b9050801561267157612670601754612b27565b5b6126fa856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006127498888612b69565b612753578561275f565b61275e888888612cc6565b5b90506127b381600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128539190612f65565b60405180910390a360019450505050505b9392505050565b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e6f565b905092915050565b60006128f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f5d565b905092915050565b6000600267ffffffffffffffff81111561291c5761291b613b11565b5b60405190808252806020026020018201604052801561294a5781602001602082028036833780820191505090505b509050308160008151811061296257612961613b40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129d3576129d2613b40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a93959493929190613c68565b600060405180830381600087803b158015612aad57600080fd5b505af1158015612ac1573d6000803e3d6000fd5b505050505050565b6000808284612ad89190613997565b905083811015612b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1490613d0e565b60405180910390fd5b8091505092915050565b6001601860016101000a81548160ff021916908315150217905550612b4b816128ff565b6000601860016101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c0c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612cbe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612cbd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612d2657600e54612d2a565b600f545b90506000612d55601054612d478487612ed290919063ffffffff16565b61286b90919063ffffffff16565b9050612da981600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e499190612f65565b60405180910390a3612e6481856128b590919063ffffffff16565b925050509392505050565b60008083118290612eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ead9190613019565b60405180910390fd5b5060008385612ec591906137b2565b9050809150509392505050565b6000808303612ee45760009050612f46565b60008284612ef29190613629565b9050828482612f0191906137b2565b14612f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3890613da0565b60405180910390fd5b809150505b92915050565b6000819050919050565b612f5f81612f4c565b82525050565b6000602082019050612f7a6000830184612f56565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fba578082015181840152602081019050612f9f565b83811115612fc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612feb82612f80565b612ff58185612f8b565b9350613005818560208601612f9c565b61300e81612fcf565b840191505092915050565b600060208201905081810360008301526130338184612fe0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306b82613040565b9050919050565b61307b81613060565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6130a781612f4c565b81146130b257600080fd5b50565b6000813590506130c48161309e565b92915050565b600080604083850312156130e1576130e061303b565b5b60006130ef85828601613089565b9250506020613100858286016130b5565b9150509250929050565b60008115159050919050565b61311f8161310a565b82525050565b600060208201905061313a6000830184613116565b92915050565b6000602082840312156131565761315561303b565b5b6000613164848285016130b5565b91505092915050565b6000806000606084860312156131865761318561303b565b5b600061319486828701613089565b93505060206131a586828701613089565b92505060406131b6868287016130b5565b9150509250925092565b6131c98161310a565b81146131d457600080fd5b50565b6000813590506131e6816131c0565b92915050565b600060ff82169050919050565b613202816131ec565b811461320d57600080fd5b50565b60008135905061321f816131f9565b92915050565b6000806040838503121561323c5761323b61303b565b5b600061324a858286016131d7565b925050602061325b85828601613210565b9150509250929050565b60006020828403121561327b5761327a61303b565b5b600061328984828501613089565b91505092915050565b61329b816131ec565b82525050565b60006020820190506132b66000830184613292565b92915050565b600080604083850312156132d3576132d261303b565b5b60006132e185828601613089565b92505060206132f2858286016131d7565b9150509250929050565b600080604083850312156133135761331261303b565b5b6000613321858286016130b5565b9250506020613332858286016130b5565b9150509250929050565b600080604083850312156133535761335261303b565b5b6000613361858286016130b5565b925050602061337285828601613089565b9150509250929050565b600061338782613040565b9050919050565b6133978161337c565b82525050565b60006020820190506133b2600083018461338e565b92915050565b6133c181613060565b82525050565b60006020820190506133dc60008301846133b8565b92915050565b6000602082840312156133f8576133f761303b565b5b6000613406848285016131d7565b91505092915050565b600080604083850312156134265761342561303b565b5b600061343485828601613089565b925050602061344585828601613089565b9150509250929050565b6134588161337c565b811461346357600080fd5b50565b6000813590506134758161344f565b92915050565b6000602082840312156134915761349061303b565b5b600061349f84828501613466565b91505092915050565b6000819050919050565b60006134cd6134c86134c384613040565b6134a8565b613040565b9050919050565b60006134df826134b2565b9050919050565b60006134f1826134d4565b9050919050565b613501816134e6565b82525050565b600060208201905061351c60008301846134f8565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613558600683612f8b565b915061356382613522565b602082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006135c4600f83612f8b565b91506135cf8261358e565b602082019050919050565b600060208201905081810360008301526135f3816135b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363482612f4c565b915061363f83612f4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613678576136776135fa565b5b828202905092915050565b600060408201905061369860008301856133b8565b6136a56020830184612f56565b9392505050565b6000815190506136bb816131c0565b92915050565b6000602082840312156136d7576136d661303b565b5b60006136e5848285016136ac565b91505092915050565b600060408201905061370360008301856133b8565b6137106020830184613116565b9392505050565b7f4665652063616e27742065786365656420313030250000000000000000000000600082015250565b600061374d601583612f8b565b915061375882613717565b602082019050919050565b6000602082019050818103600083015261377c81613740565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137bd82612f4c565b91506137c883612f4c565b9250826137d8576137d7613783565b5b828204905092915050565b60006137ee826134d4565b9050919050565b6137fe816137e3565b82525050565b600060208201905061381960008301846137f5565b92915050565b600061382a82612f4c565b915061383583612f4c565b925082821015613848576138476135fa565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613889601883612f8b565b915061389482613853565b602082019050919050565b600060208201905081810360008301526138b88161387c565b9050919050565b7f5573657220626c61636b6c697374656400000000000000000000000000000000600082015250565b60006138f5601083612f8b565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613961601183612f8b565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b60006139a282612f4c565b91506139ad83612f4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139e2576139e16135fa565b5b828201905092915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613a49603e83612f8b565b9150613a54826139ed565b604082019050919050565b60006020820190508181036000830152613a7881613a3c565b9050919050565b7f506c65617365207761697420666f7220316d696e206265747765656e2074776f60008201527f2062757973000000000000000000000000000000000000000000000000000000602082015250565b6000613adb602583612f8b565b9150613ae682613a7f565b604082019050919050565b60006020820190508181036000830152613b0a81613ace565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b94613b8f613b8a84613b6f565b6134a8565b612f4c565b9050919050565b613ba481613b79565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bdf81613060565b82525050565b6000613bf18383613bd6565b60208301905092915050565b6000602082019050919050565b6000613c1582613baa565b613c1f8185613bb5565b9350613c2a83613bc6565b8060005b83811015613c5b578151613c428882613be5565b9750613c4d83613bfd565b925050600181019050613c2e565b5085935050505092915050565b600060a082019050613c7d6000830188612f56565b613c8a6020830187613b9b565b8181036040830152613c9c8186613c0a565b9050613cab60608301856137f5565b613cb86080830184612f56565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613cf8601b83612f8b565b9150613d0382613cc2565b602082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d8a602183612f8b565b9150613d9582613d2e565b604082019050919050565b60006020820190508181036000830152613db981613d7d565b905091905056fea26469706673582212206da8f1d2185926078b6ae6ef7c7ec05db8c5570e3f48d378563c860654f50d6764736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c806370a082311161014f578063d045a329116100c1578063f2fde38b1161007a578063f2fde38b14610971578063f34eb0b81461099a578063f84ba65d146109c3578063f887ea40146109ec578063fb201b1d14610a17578063fe9fbb8014610a2e5761027d565b8063d045a32914610887578063d12a7688146108b2578063d47edea2146108dd578063dc73e49c146108f4578063dd62ed3e1461090b578063f0b37c04146109485761027d565b806395d89b411161011357806395d89b4114610777578063a614ff75146107a2578063a8aa1b31146107cb578063a9059cbb146107f6578063b6a5d7de14610833578063bf56b3711461085c5761027d565b806370a0823114610690578063722b62ad146106cd57806375f0a874146106f857806382bf293c14610723578063893d20e81461074c5761027d565b806333f3d628116101e8578063571ac8b0116101ac578063571ac8b0146105805780635b149feb146105bd5780635d098b38146105e8578063617fe0ed14610611578063658d4b7f1461063c5780636b1b4987146106655761027d565b806333f3d6281461049f578063342aa8b5146104dc57806350db71fb1461050557806352f7c9881461052e57806356a227f2146105575761027d565b806323b872dd1161023a57806323b872dd1461037d57806329e04b4a146103ba5780632b112e49146103e35780632d5945671461040e5780632f54bf6e14610437578063313ce567146104745761027d565b80630252765a1461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd1461031557806323b63585146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a6b565b6040516102a49190612f65565b60405180910390f35b3480156102b957600080fd5b506102c2610a71565b6040516102cf9190613019565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906130ca565b610aae565b60405161030c9190613125565b60405180910390f35b34801561032157600080fd5b5061032a610ba0565b6040516103379190612f65565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190613140565b610baa565b6040516103749190613125565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f919061316d565b610c28565b6040516103b19190613125565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613140565b610e28565b005b3480156103ef57600080fd5b506103f8610ee1565b6040516104059190612f65565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190613225565b610f63565b005b34801561044357600080fd5b5061045e60048036038101906104599190613265565b610fe4565b60405161046b9190613125565b60405180910390f35b34801561048057600080fd5b5061048961103d565b60405161049691906132a1565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c191906130ca565b611046565b6040516104d39190613125565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906132bc565b611116565b005b34801561051157600080fd5b5061052c600480360381019061052791906132bc565b6111f2565b005b34801561053a57600080fd5b50610555600480360381019061055091906132fc565b611295565b005b34801561056357600080fd5b5061057e6004803603810190610579919061333c565b611377565b005b34801561058c57600080fd5b506105a760048036038101906105a29190613265565b611427565b6040516105b49190613125565b60405180910390f35b3480156105c957600080fd5b506105d261145a565b6040516105df9190612f65565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190613265565b611460565b005b34801561061d57600080fd5b506106266114ec565b6040516106339190613125565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e91906132bc565b6114ff565b005b34801561067157600080fd5b5061067a6115a2565b6040516106879190612f65565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613265565b6115a8565b6040516106c49190612f65565b60405180910390f35b3480156106d957600080fd5b506106e26115f1565b6040516106ef91906132a1565b60405180910390f35b34801561070457600080fd5b5061070d611604565b60405161071a919061339d565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190613140565b61162a565b005b34801561075857600080fd5b50610761611695565b60405161076e91906133c7565b60405180910390f35b34801561078357600080fd5b5061078c6116be565b6040516107999190613019565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c491906133e2565b6116fb565b005b3480156107d757600080fd5b506107e0611760565b6040516107ed91906133c7565b60405180910390f35b34801561080257600080fd5b5061081d600480360381019061081891906130ca565b611786565b60405161082a9190613125565b60405180910390f35b34801561083f57600080fd5b5061085a60048036038101906108559190613265565b61179b565b005b34801561086857600080fd5b5061087161183d565b60405161087e9190612f65565b60405180910390f35b34801561089357600080fd5b5061089c611843565b6040516108a99190613125565b60405180910390f35b3480156108be57600080fd5b506108c7611856565b6040516108d49190612f65565b60405180910390f35b3480156108e957600080fd5b506108f261185c565b005b34801561090057600080fd5b506109096118c1565b005b34801561091757600080fd5b50610932600480360381019061092d919061340f565b611950565b60405161093f9190612f65565b60405180910390f35b34801561095457600080fd5b5061096f600480360381019061096a9190613265565b6119d7565b005b34801561097d57600080fd5b506109986004803603810190610993919061347b565b611a7a565b005b3480156109a657600080fd5b506109c160048036038101906109bc9190613140565b611b93565b005b3480156109cf57600080fd5b506109ea60048036038101906109e591906132bc565b611bff565b005b3480156109f857600080fd5b50610a01611ca2565b604051610a0e9190613507565b60405180910390f35b348015610a2357600080fd5b50610a2c611cc8565b005b348015610a3a57600080fd5b50610a556004803603810190610a509190613265565b611d34565b604051610a629190613125565b60405180910390f35b60065481565b60606040518060400160405280600981526020017f416c69636520322e300000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b8e9190612f65565b60405180910390a36001905092915050565b6000600554905090565b6000610bb533610fe4565b610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610beb9061356e565b60405180910390fd5b610c2130600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8a565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e1457610d93826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e1f848484611fc1565b90509392505050565b610e3133610fe4565b610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e679061356e565b60405180910390fd5b610e86606460055461286b90919063ffffffff16565b811115610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906135da565b60405180910390fd5b633b9aca0081610ed89190613629565b60178190555050565b6000610f5e610f11600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b610f50610f3f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b6005546128b590919063ffffffff16565b6128b590919063ffffffff16565b905090565b610f6c33610fe4565b610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa29061356e565b60405180910390fd5b81601860026101000a81548160ff02191690831515021790555080601860036101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600061105133610fe4565b611090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110879061356e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016110cb929190613683565b6020604051808303816000875af11580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e91906136c1565b905092915050565b61111f33610fe4565b61115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061356e565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff791a94c7f3569546a71acf39c0189bd87bd7b7e3ea76ce41fd41d837cc4bbca82826040516111e69291906136ee565b60405180910390a15050565b6111fb33610fe4565b61123a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112319061356e565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61129e33610fe4565b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d49061356e565b60405180910390fd5b6064811115611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613763565b60405180910390fd5b6064821115611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90613763565b60405180910390fd5b81600f8190555080600e819055505050565b61138033610fe4565b6113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b69061356e565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc606485846113ec9190613629565b6113f691906137b2565b9081150290604051600060405180830381858888f19350505050158015611421573d6000803e3d6000fd5b50505050565b6000611453827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aae565b9050919050565b600f5481565b61146933610fe4565b6114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f9061356e565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860029054906101000a900460ff1681565b61150833610fe4565b611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061356e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860039054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61163333610fe4565b611672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116699061356e565b60405180910390fd5b6064816005546116829190613629565b61168c91906137b2565b60068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f414c494345322e30000000000000000000000000000000000000000000000000815250905090565b61170433610fe4565b611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061356e565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611793338484611fc1565b905092915050565b6117a433610fe4565b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da9061356e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60145481565b601860009054906101000a900460ff1681565b60175481565b61186533610fe4565b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061356e565b60405180910390fd5b6000601560016101000a81548160ff021916908315150217905550565b6118ca33610fe4565b611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119009061356e565b60405180910390fd5b6000611914306115a8565b905060006017548210159050600081801561193757506000611935306115a8565b115b9050801561194b5761194a6017546128ff565b5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119e033610fe4565b611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061356e565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a8333610fe4565b611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99061356e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b889190613804565b60405180910390a150565b611b9c33610fe4565b611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd29061356e565b60405180910390fd5b6103e881600554611bec9190613629565b611bf691906137b2565b60168190555050565b611c0833610fe4565b611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e9061356e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd133610fe4565b611d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d079061356e565b60405180910390fd5b436014819055506001601560006101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611e15826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eaa82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4a9190612f65565b60405180910390a3600190509392505050565b6000838311158290611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c9190613019565b60405180910390fd5b5060008385611fb4919061381f565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120675750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214957601560009054906101000a900460ff166120bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b29061389f565b60405180910390fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f9061390b565b60405180910390fd5b5b601560019054906101000a900460ff16156125af57601654821115806121b85750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90613977565b60405180910390fd5b601860009054906101000a900460ff16801561225d5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561229557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122ef5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124075760006123b3846115a8565b905060065483826123c49190613997565b1115612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90613a5f565b60405180910390fd5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124705750601860029054906101000a900460ff165b80156124c65750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ae5742601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061254c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254390613af1565b60405180910390fd5b601860039054906101000a900460ff1660ff164261256a9190613997565b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860019054906101000a900460ff16156125d6576125cf848484611d8a565b9050612864565b60006125e1306115a8565b90506000601754821015905060008180156126495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b801561265d5750600061265b306115a8565b115b9050801561267157612670601754612b27565b5b6126fa856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006127498888612b69565b612753578561275f565b61275e888888612cc6565b5b90506127b381600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128539190612f65565b60405180910390a360019450505050505b9392505050565b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e6f565b905092915050565b60006128f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f5d565b905092915050565b6000600267ffffffffffffffff81111561291c5761291b613b11565b5b60405190808252806020026020018201604052801561294a5781602001602082028036833780820191505090505b509050308160008151811061296257612961613b40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129d3576129d2613b40565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a93959493929190613c68565b600060405180830381600087803b158015612aad57600080fd5b505af1158015612ac1573d6000803e3d6000fd5b505050505050565b6000808284612ad89190613997565b905083811015612b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1490613d0e565b60405180910390fd5b8091505092915050565b6001601860016101000a81548160ff021916908315150217905550612b4b816128ff565b6000601860016101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c0c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612cbe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612cbd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612d2657600e54612d2a565b600f545b90506000612d55601054612d478487612ed290919063ffffffff16565b61286b90919063ffffffff16565b9050612da981600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e499190612f65565b60405180910390a3612e6481856128b590919063ffffffff16565b925050509392505050565b60008083118290612eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ead9190613019565b60405180910390fd5b5060008385612ec591906137b2565b9050809150509392505050565b6000808303612ee45760009050612f46565b60008284612ef29190613629565b9050828482612f0191906137b2565b14612f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3890613da0565b60405180910390fd5b809150505b92915050565b6000819050919050565b612f5f81612f4c565b82525050565b6000602082019050612f7a6000830184612f56565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fba578082015181840152602081019050612f9f565b83811115612fc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612feb82612f80565b612ff58185612f8b565b9350613005818560208601612f9c565b61300e81612fcf565b840191505092915050565b600060208201905081810360008301526130338184612fe0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306b82613040565b9050919050565b61307b81613060565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6130a781612f4c565b81146130b257600080fd5b50565b6000813590506130c48161309e565b92915050565b600080604083850312156130e1576130e061303b565b5b60006130ef85828601613089565b9250506020613100858286016130b5565b9150509250929050565b60008115159050919050565b61311f8161310a565b82525050565b600060208201905061313a6000830184613116565b92915050565b6000602082840312156131565761315561303b565b5b6000613164848285016130b5565b91505092915050565b6000806000606084860312156131865761318561303b565b5b600061319486828701613089565b93505060206131a586828701613089565b92505060406131b6868287016130b5565b9150509250925092565b6131c98161310a565b81146131d457600080fd5b50565b6000813590506131e6816131c0565b92915050565b600060ff82169050919050565b613202816131ec565b811461320d57600080fd5b50565b60008135905061321f816131f9565b92915050565b6000806040838503121561323c5761323b61303b565b5b600061324a858286016131d7565b925050602061325b85828601613210565b9150509250929050565b60006020828403121561327b5761327a61303b565b5b600061328984828501613089565b91505092915050565b61329b816131ec565b82525050565b60006020820190506132b66000830184613292565b92915050565b600080604083850312156132d3576132d261303b565b5b60006132e185828601613089565b92505060206132f2858286016131d7565b9150509250929050565b600080604083850312156133135761331261303b565b5b6000613321858286016130b5565b9250506020613332858286016130b5565b9150509250929050565b600080604083850312156133535761335261303b565b5b6000613361858286016130b5565b925050602061337285828601613089565b9150509250929050565b600061338782613040565b9050919050565b6133978161337c565b82525050565b60006020820190506133b2600083018461338e565b92915050565b6133c181613060565b82525050565b60006020820190506133dc60008301846133b8565b92915050565b6000602082840312156133f8576133f761303b565b5b6000613406848285016131d7565b91505092915050565b600080604083850312156134265761342561303b565b5b600061343485828601613089565b925050602061344585828601613089565b9150509250929050565b6134588161337c565b811461346357600080fd5b50565b6000813590506134758161344f565b92915050565b6000602082840312156134915761349061303b565b5b600061349f84828501613466565b91505092915050565b6000819050919050565b60006134cd6134c86134c384613040565b6134a8565b613040565b9050919050565b60006134df826134b2565b9050919050565b60006134f1826134d4565b9050919050565b613501816134e6565b82525050565b600060208201905061351c60008301846134f8565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613558600683612f8b565b915061356382613522565b602082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006135c4600f83612f8b565b91506135cf8261358e565b602082019050919050565b600060208201905081810360008301526135f3816135b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363482612f4c565b915061363f83612f4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613678576136776135fa565b5b828202905092915050565b600060408201905061369860008301856133b8565b6136a56020830184612f56565b9392505050565b6000815190506136bb816131c0565b92915050565b6000602082840312156136d7576136d661303b565b5b60006136e5848285016136ac565b91505092915050565b600060408201905061370360008301856133b8565b6137106020830184613116565b9392505050565b7f4665652063616e27742065786365656420313030250000000000000000000000600082015250565b600061374d601583612f8b565b915061375882613717565b602082019050919050565b6000602082019050818103600083015261377c81613740565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137bd82612f4c565b91506137c883612f4c565b9250826137d8576137d7613783565b5b828204905092915050565b60006137ee826134d4565b9050919050565b6137fe816137e3565b82525050565b600060208201905061381960008301846137f5565b92915050565b600061382a82612f4c565b915061383583612f4c565b925082821015613848576138476135fa565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613889601883612f8b565b915061389482613853565b602082019050919050565b600060208201905081810360008301526138b88161387c565b9050919050565b7f5573657220626c61636b6c697374656400000000000000000000000000000000600082015250565b60006138f5601083612f8b565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613961601183612f8b565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b60006139a282612f4c565b91506139ad83612f4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139e2576139e16135fa565b5b828201905092915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613a49603e83612f8b565b9150613a54826139ed565b604082019050919050565b60006020820190508181036000830152613a7881613a3c565b9050919050565b7f506c65617365207761697420666f7220316d696e206265747765656e2074776f60008201527f2062757973000000000000000000000000000000000000000000000000000000602082015250565b6000613adb602583612f8b565b9150613ae682613a7f565b604082019050919050565b60006020820190508181036000830152613b0a81613ace565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b94613b8f613b8a84613b6f565b6134a8565b612f4c565b9050919050565b613ba481613b79565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bdf81613060565b82525050565b6000613bf18383613bd6565b60208301905092915050565b6000602082019050919050565b6000613c1582613baa565b613c1f8185613bb5565b9350613c2a83613bc6565b8060005b83811015613c5b578151613c428882613be5565b9750613c4d83613bfd565b925050600181019050613c2e565b5085935050505092915050565b600060a082019050613c7d6000830188612f56565b613c8a6020830187613b9b565b8181036040830152613c9c8186613c0a565b9050613cab60608301856137f5565b613cb86080830184612f56565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613cf8601b83612f8b565b9150613d0382613cc2565b602082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d8a602183612f8b565b9150613d9582613d2e565b604082019050919050565b60006020820190508181036000830152613db981613d7d565b905091905056fea26469706673582212206da8f1d2185926078b6ae6ef7c7ec05db8c5570e3f48d378563c860654f50d6764736f6c634300080d0033

Deployed Bytecode Sourcemap

5599:11281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8510:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8932:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8240:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14580:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9450:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15408:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14731:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16250:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3492:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8334:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16669:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14881:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16070:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14284:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16422:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9156:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15059:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7246:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14157:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6563:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8680:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7291:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6685:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15777:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8596:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8420:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15297:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6817:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9286:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3165:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6845:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7137:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7032:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15203:86;;;;;;;;;;;;;:::i;:::-;;13613:403;;;;;;;;;;;;;:::i;:::-;;8791:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3335:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3892:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15623:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15935:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6786:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14024:113;;;;;;;;;;;;;:::i;:::-;;3666:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6093:62;;;;:::o;8510:80::-;8558:13;8582:5;;;;;;;;;;;;;;;;;8575:12;;8510:80;:::o;8932:216::-;9007:4;9059:6;9024:11;:23;9036:10;9024:23;;;;;;;;;;;;;;;:32;9048:7;9024:32;;;;;;;;;;;;;;;:41;;;;9102:7;9081:37;;9090:10;9081:37;;;9111:6;9081:37;;;;;;:::i;:::-;;;;;;;;9136:4;9129:11;;8932:216;;;;:::o;8240:88::-;8295:7;8313:12;;8306:19;;8240:88;:::o;14580:139::-;14644:4;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14668:43:::1;14691:4;14698;;;;;;;;;;;14704:6;14668:14;:43::i;:::-;14661:50;;14580:139:::0;;;:::o;9450:370::-;9550:4;9605:17;9570:11;:19;9582:6;9570:19;;;;;;;;;;;;;;;:31;9590:10;9570:31;;;;;;;;;;;;;;;;:52;9567:186;;9672:69;9708:6;9672:69;;;;;;;;;;;;;;;;;:11;:19;9684:6;9672:19;;;;;;;;;;;;;;;:31;9692:10;9672:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9638:11;:19;9650:6;9638:19;;;;;;;;;;;;;;;:31;9658:10;9638:31;;;;;;;;;;;;;;;:103;;;;9567:186;9772:40;9786:6;9794:9;9805:6;9772:13;:40::i;:::-;9765:47;;9450:370;;;;;:::o;15408:206::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15506:21:::1;15523:3;15506:12;;:16;;:21;;;;:::i;:::-;15496:6;:31;;15487:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15599:7;15590:6;:16;;;;:::i;:::-;15558:29;:48;;;;15408:206:::0;:::o;14731:142::-;14784:7;14811:54;14849:15;14859:4;;;;;;;;;;;14849:9;:15::i;:::-;14811:33;14828:15;14838:4;;;;;;;;;;;14828:9;:15::i;:::-;14811:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14804:61;;14731:142;:::o;16250:164::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16355:7:::1;16334:18;;:28;;;;;;;;;;;;;;;;;;16397:9;16373:21;;:33;;;;;;;;;;;;;;;;;;16250:164:::0;;:::o;3492:103::-;3547:4;3582:5;;;;;;;;;;;3571:16;;:7;:16;;;3564:23;;3492:103;;;:::o;8334:80::-;8386:5;5982:1;8395:16;;8334:80;:::o;16669:206::-;16781:12;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16825:12:::1;16818:29;;;16848:10;16860:6;16818:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16811:56;;16669:206:::0;;;;:::o;14881:167::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14980:7:::1;14958:11;:20;14970:7;14958:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14999:33;15015:7;15024;14999:33;;;;;;;:::i;:::-;;;;;;;;14881:167:::0;;:::o;16070:129::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16185:6:::1;16158:16;:24;16175:6;16158:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16070:129:::0;;:::o;14284:288::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14398:3:::1;14383:11;:18;;14374:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14463:3;14447:12;:19;;14438:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14517:12;14503:11;:26;;;;14553:11;14540:10;:24;;;;14284:288:::0;;:::o;16422:239::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16518:17:::1;16538:21;16518:41;;16578:3;16570:21;;:83;16639:3;16619:16;16607:9;:28;;;;:::i;:::-;16606:36;;;;:::i;:::-;16570:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16507:154;16422:239:::0;;:::o;9156:122::-;9211:4;9235:35;9243:7;9252:17;9235:7;:35::i;:::-;9228:42;;9156:122;;;:::o;6600:31::-;;;;:::o;15059:135::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15169:16:::1;15143:15;;:43;;;;;;;;;;;;;;;;;;15059:135:::0;:::o;7246:38::-;;;;;;;;;;;;;:::o;14157:119::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14262:6:::1;14240:11;:19;14252:6;14240:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14157:119:::0;;:::o;6563:30::-;;;;:::o;8680:105::-;8746:7;8764:9;:18;8774:7;8764:18;;;;;;;;;;;;;;;;8757:25;;8680:105;;;:::o;7291:38::-;;;;;;;;;;;;;:::o;6685:92::-;;;;;;;;;;;;;:::o;15777:150::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15916:3:::1;15897:14;15882:12;;:29;;;;:::i;:::-;15881:38;;;;:::i;:::-;15860:18;:59;;;;15777:150:::0;:::o;8596:78::-;8648:7;8666:5;;;;;;;;;;;8659:12;;8596:78;:::o;8420:84::-;8470:13;8494:7;;;;;;;;;;;;;;;;;8487:14;;8420:84;:::o;15297:103::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15387:5:::1;15368:16;;:24;;;;;;;;;;;;;;;;;;15297:103:::0;:::o;6817:19::-;;;;;;;;;;;;;:::o;9286:156::-;9366:4;9390:44;9404:10;9416:9;9427:6;9390:13;:44::i;:::-;9383:51;;9286:156;;;;:::o;3165:94::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3247:4:::1;3225:14:::0;:19:::1;3240:3;3225:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3165:94:::0;:::o;6845:25::-;;;;:::o;7137:35::-;;;;;;;;;;;;;:::o;7032:71::-;;;;:::o;15203:86::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15276:5:::1;15262:11;;:19;;;;;;;;;;;;;;;;;;15203:86::o:0;13613:403::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13664:28:::1;13695:24;13713:4;13695:9;:24::i;:::-;13664:55;;13732:24;13783:29;;13759:20;:53;;13732:80;;13829:19;13852;:51;;;;;13902:1;13875:24;13893:4;13875:9;:24::i;:::-;:28;13852:51;13829:75;;13918:14;13915:94;;;13949:47;13966:29;;13949:16;:47::i;:::-;13915:94;13651:365;;;13613:403::o:0;8791:133::-;8875:7;8893:11;:19;8905:6;8893:19;;;;;;;;;;;;;;;:28;8913:7;8893:28;;;;;;;;;;;;;;;;8886:35;;8791:133;;;;:::o;3335:97::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3419:5:::1;3397:14;:19;3412:3;3397:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3335:97:::0;:::o;3892:173::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3976:3:::1;3968:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4012:4;3990:14:::0;:19:::1;4005:3;3990:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4032:25;4053:3;4032:25;;;;;;:::i;:::-;;;;;;;;3892:173:::0;:::o;15623:145::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15756:4:::1;15738:13;15723:12;;:28;;;;:::i;:::-;15722:38;;;;:::i;:::-;15702:17;:58;;;;15623:145:::0;:::o;15935:127::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16048:6:::1;16022:15;:23;16038:6;16022:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15935:127:::0;;:::o;6786:24::-;;;;;;;;;;;;;:::o;14024:113::-;2881:19;2889:10;2881:7;:19::i;:::-;2873:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14088:12:::1;14075:10;:25;;;;14125:4;14111:11;;:18;;;;;;;;;;;;;;;;;;14024:113::o:0;3666:107::-;3722:4;3746:14;:19;3761:3;3746:19;;;;;;;;;;;;;;;;;;;;;;;;;3739:26;;3666:107;;;:::o;11979:330::-;12072:4;12109:53;12131:6;12109:53;;;;;;;;;;;;;;;;;:9;:17;12119:6;12109:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12089:9;:17;12099:6;12089:17;;;;;;;;;;;;;;;:73;;;;12196:32;12221:6;12196:9;:20;12206:9;12196:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12173:9;:20;12183:9;12173:20;;;;;;;;;;;;;;;:55;;;;12261:9;12244:35;;12253:6;12244:35;;;12272:6;12244:35;;;;;;:::i;:::-;;;;;;;;12297:4;12290:11;;11979:330;;;;;:::o;491:192::-;577:7;610:1;605;:6;;613:12;597:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;637:9;653:1;649;:5;;;;:::i;:::-;637:17;;674:1;667:8;;;491:192;;;;;:::o;9828:2139::-;9920:4;9941:14;:22;9956:6;9941:22;;;;;;;;;;;;;;;;;;;;;;;;;9940:23;:53;;;;;9968:14;:25;9983:9;9968:25;;;;;;;;;;;;;;;;;;;;;;;;;9967:26;9940:53;9937:198;;;10018:11;;;;;;;;;;;10010:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10082:11;:19;10094:6;10082:19;;;;;;;;;;;;;;;;;;;;;;;;;10081:20;10073:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9937:198;10150:11;;;;;;;;;;;10147:1019;;;10240:17;;10230:6;:27;;:54;;;;10261:15;:23;10277:6;10261:23;;;;;;;;;;;;;;;;;;;;;;;;;10230:54;10222:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;10359:16;;;;;;;;;;;:43;;;;;10380:14;:22;10395:6;10380:22;;;;;;;;;;;;;;;;;;;;;;;;;10379:23;10359:43;:73;;;;;10427:4;10406:26;;:9;:26;;;;10359:73;:103;;;;;10457:4;;;;;;;;;;;10436:26;;:9;:26;;;;10359:103;:124;;;;;10479:4;;;;;;;;;;;10466:17;;:9;:17;;;;10359:124;:156;;;;;10500:15;;;;;;;;;;;10487:28;;:9;:28;;;;10359:156;10355:373;;;10535:18;10556:20;10566:9;10556;:20::i;:::-;10535:41;;10628:18;;10617:6;10604:10;:19;;;;:::i;:::-;10603:43;;10595:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;10516:212;10355:373;10850:4;;;;;;;;;;;10840:14;;:6;:14;;;:53;;;;;10875:18;;;;;;;;;;;10840:53;:102;;;;;10915:16;:27;10932:9;10915:27;;;;;;;;;;;;;;;;;;;;;;;;;10914:28;10840:102;10836:319;;;10998:15;10971:13;:24;10985:9;10971:24;;;;;;;;;;;;;;;;:42;10963:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11118:21;;;;;;;;;;;11100:39;;:15;:39;;;;:::i;:::-;11073:13;:24;11087:9;11073:24;;;;;;;;;;;;;;;:66;;;;10836:319;10147:1019;11181:6;;;;;;;;;;;11178:63;;;11197:41;11212:6;11220:9;11231:6;11197:14;:41::i;:::-;11190:48;;;;11178:63;11259:28;11290:24;11308:4;11290:9;:24::i;:::-;11259:55;;11327:24;11378:29;;11354:20;:53;;11327:80;;11424:19;11447;:38;;;;;11481:4;;;;;;;;;;;11470:15;;:9;:15;;;11447:38;:70;;;;;11516:1;11489:24;11507:4;11489:9;:24::i;:::-;:28;11447:70;11424:94;;11532:14;11529:62;;;11549:39;11558:29;;11549:8;:39::i;:::-;11529:62;11623:53;11645:6;11623:53;;;;;;;;;;;;;;;;;:9;:17;11633:6;11623:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11603:9;:17;11613:6;11603:17;;;;;;;;;;;;;;;:73;;;;11689:22;11714:32;11728:6;11736:9;11714:13;:32::i;:::-;:78;;11786:6;11714:78;;;11749:34;11757:6;11765:9;11776:6;11749:7;:34::i;:::-;11714:78;11689:103;;11836:40;11861:14;11836:9;:20;11846:9;11836:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11813:9;:20;11823:9;11813:20;;;;;;;;;;;;;;;:63;;;;11911:9;11894:43;;11903:6;11894:43;;;11922:14;11894:43;;;;;;:::i;:::-;;;;;;;;11955:4;11948:11;;;;;;9828:2139;;;;;;:::o;945:132::-;1003:7;1030:39;1034:1;1037;1030:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1023:46;;945:132;;;;:::o;349:136::-;407:7;434:43;438:1;441;434:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;427:50;;349:136;;;;:::o;13114:491::-;13242:21;13280:1;13266:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13242:40;;13311:4;13293;13298:1;13293:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13337:4;;;;;;;;;;;13327;13332:1;13327:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;13380:6;;;;;;;;;;;:57;;;13452:11;13478:1;13522:4;13541:15;;;;;;;;;;;13571;13380:217;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13169:436;13114:491;:::o;162:181::-;220:7;240:9;256:1;252;:5;;;;:::i;:::-;240:17;;281:1;276;:6;;268:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;334:1;327:8;;;162:181;;;;:::o;13005:95::-;7425:4;7416:6;;:13;;;;;;;;;;;;;;;;;;13068:24:::1;13085:6;13068:16;:24::i;:::-;7443:5:::0;7434:6;;:14;;;;;;;;;;;;;;;;;;13005:95;:::o;12317:206::-;12398:4;12426:11;:19;12438:6;12426:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;12449:11;:22;12461:9;12449:22;;;;;;;;;;;;;;;;;;;;;;;;;12426:45;12424:48;:90;;;;;12488:4;;;;;;;;;;;12478:14;;:6;:14;;;:35;;;;12509:4;;;;;;;;;;;12496:17;;:9;:17;;;12478:35;12424:90;12415:101;;12317:206;;;;:::o;12531:461::-;12617:7;12637:23;12676:4;;;;;;;;;;;12663:17;;:9;:17;;;:44;;12697:10;;12663:44;;;12683:11;;12663:44;12637:70;;12718:17;12758:47;12790:14;;12758:27;12769:15;12758:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;12746:59;;12843:39;12872:9;12843;:24;12861:4;12843:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12816:9;:24;12834:4;12816:24;;;;;;;;;;;;;;;:66;;;;12923:4;12898:42;;12907:6;12898:42;;;12930:9;12898:42;;;;;;:::i;:::-;;;;;;;;12963:21;12974:9;12963:6;:10;;:21;;;;:::i;:::-;12956:28;;;;12531:461;;;;;:::o;1083:345::-;1169:7;1268:1;1264;:5;1271:12;1256:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1295:9;1311:1;1307;:5;;;;:::i;:::-;1295:17;;1419:1;1412:8;;;1083:345;;;;;:::o;689:250::-;747:7;776:1;771;:6;767:47;;801:1;794:8;;;;767:47;826:9;842:1;838;:5;;;;:::i;:::-;826:17;;871:1;866;862;:5;;;;:::i;:::-;:10;854:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;930:1;923:8;;;689:250;;;;;:::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:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:116::-;4876:21;4891:5;4876:21;:::i;:::-;4869:5;4866:32;4856:60;;4912:1;4909;4902:12;4856:60;4806:116;:::o;4928:133::-;4971:5;5009:6;4996:20;4987:29;;5025:30;5049:5;5025:30;:::i;:::-;4928:133;;;;:::o;5067:86::-;5102:7;5142:4;5135:5;5131:16;5120:27;;5067:86;;;:::o;5159:118::-;5230:22;5246:5;5230:22;:::i;:::-;5223:5;5220:33;5210:61;;5267:1;5264;5257:12;5210:61;5159:118;:::o;5283:135::-;5327:5;5365:6;5352:20;5343:29;;5381:31;5406:5;5381:31;:::i;:::-;5283:135;;;;:::o;5424:464::-;5487:6;5495;5544:2;5532:9;5523:7;5519:23;5515:32;5512:119;;;5550:79;;:::i;:::-;5512:119;5670:1;5695:50;5737:7;5728:6;5717:9;5713:22;5695:50;:::i;:::-;5685:60;;5641:114;5794:2;5820:51;5863:7;5854:6;5843:9;5839:22;5820:51;:::i;:::-;5810:61;;5765:116;5424:464;;;;;:::o;5894:329::-;5953:6;6002:2;5990:9;5981:7;5977:23;5973:32;5970:119;;;6008:79;;:::i;:::-;5970:119;6128:1;6153:53;6198:7;6189:6;6178:9;6174:22;6153:53;:::i;:::-;6143:63;;6099:117;5894:329;;;;:::o;6229:112::-;6312:22;6328:5;6312:22;:::i;:::-;6307:3;6300:35;6229:112;;:::o;6347:214::-;6436:4;6474:2;6463:9;6459:18;6451:26;;6487:67;6551:1;6540:9;6536:17;6527:6;6487:67;:::i;:::-;6347:214;;;;:::o;6567:468::-;6632:6;6640;6689:2;6677:9;6668:7;6664:23;6660:32;6657:119;;;6695:79;;:::i;:::-;6657:119;6815:1;6840:53;6885:7;6876:6;6865:9;6861:22;6840:53;:::i;:::-;6830:63;;6786:117;6942:2;6968:50;7010:7;7001:6;6990:9;6986:22;6968:50;:::i;:::-;6958:60;;6913:115;6567:468;;;;;:::o;7041:474::-;7109:6;7117;7166:2;7154:9;7145:7;7141:23;7137:32;7134:119;;;7172:79;;:::i;:::-;7134:119;7292:1;7317:53;7362:7;7353:6;7342:9;7338:22;7317:53;:::i;:::-;7307:63;;7263:117;7419:2;7445:53;7490:7;7481:6;7470:9;7466:22;7445:53;:::i;:::-;7435:63;;7390:118;7041:474;;;;;:::o;7521:::-;7589:6;7597;7646:2;7634:9;7625:7;7621:23;7617:32;7614:119;;;7652:79;;:::i;:::-;7614:119;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;7521:474;;;;;:::o;8001:104::-;8046:7;8075:24;8093:5;8075:24;:::i;:::-;8064:35;;8001:104;;;:::o;8111:142::-;8214:32;8240:5;8214:32;:::i;:::-;8209:3;8202:45;8111:142;;:::o;8259:254::-;8368:4;8406:2;8395:9;8391:18;8383:26;;8419:87;8503:1;8492:9;8488:17;8479:6;8419:87;:::i;:::-;8259:254;;;;:::o;8519:118::-;8606:24;8624:5;8606:24;:::i;:::-;8601:3;8594:37;8519:118;;:::o;8643:222::-;8736:4;8774:2;8763:9;8759:18;8751:26;;8787:71;8855:1;8844:9;8840:17;8831:6;8787:71;:::i;:::-;8643:222;;;;:::o;8871:323::-;8927:6;8976:2;8964:9;8955:7;8951:23;8947:32;8944:119;;;8982:79;;:::i;:::-;8944:119;9102:1;9127:50;9169:7;9160:6;9149:9;9145:22;9127:50;:::i;:::-;9117:60;;9073:114;8871:323;;;;:::o;9200:474::-;9268:6;9276;9325:2;9313:9;9304:7;9300:23;9296:32;9293:119;;;9331:79;;:::i;:::-;9293:119;9451:1;9476:53;9521:7;9512:6;9501:9;9497:22;9476:53;:::i;:::-;9466:63;;9422:117;9578:2;9604:53;9649:7;9640:6;9629:9;9625:22;9604:53;:::i;:::-;9594:63;;9549:118;9200:474;;;;;:::o;9680:138::-;9761:32;9787:5;9761:32;:::i;:::-;9754:5;9751:43;9741:71;;9808:1;9805;9798:12;9741:71;9680:138;:::o;9824:155::-;9878:5;9916:6;9903:20;9894:29;;9932:41;9967:5;9932:41;:::i;:::-;9824:155;;;;:::o;9985:345::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:61;10305:7;10296:6;10285:9;10281:22;10252:61;:::i;:::-;10242:71;;10198:125;9985:345;;;;:::o;10336:60::-;10364:3;10385:5;10378:12;;10336:60;;;:::o;10402:142::-;10452:9;10485:53;10503:34;10512:24;10530:5;10512:24;:::i;:::-;10503:34;:::i;:::-;10485:53;:::i;:::-;10472:66;;10402:142;;;:::o;10550:126::-;10600:9;10633:37;10664:5;10633:37;:::i;:::-;10620:50;;10550:126;;;:::o;10682:144::-;10750:9;10783:37;10814:5;10783:37;:::i;:::-;10770:50;;10682:144;;;:::o;10832:167::-;10937:55;10986:5;10937:55;:::i;:::-;10932:3;10925:68;10832:167;;:::o;11005:258::-;11116:4;11154:2;11143:9;11139:18;11131:26;;11167:89;11253:1;11242:9;11238:17;11229:6;11167:89;:::i;:::-;11005:258;;;;:::o;11269:156::-;11409:8;11405:1;11397:6;11393:14;11386:32;11269:156;:::o;11431:365::-;11573:3;11594:66;11658:1;11653:3;11594:66;:::i;:::-;11587:73;;11669:93;11758:3;11669:93;:::i;:::-;11787:2;11782:3;11778:12;11771:19;;11431:365;;;:::o;11802:419::-;11968:4;12006:2;11995:9;11991:18;11983:26;;12055:9;12049:4;12045:20;12041:1;12030:9;12026:17;12019:47;12083:131;12209:4;12083:131;:::i;:::-;12075:139;;11802:419;;;:::o;12227:165::-;12367:17;12363:1;12355:6;12351:14;12344:41;12227:165;:::o;12398:366::-;12540:3;12561:67;12625:2;12620:3;12561:67;:::i;:::-;12554:74;;12637:93;12726:3;12637:93;:::i;:::-;12755:2;12750:3;12746:12;12739:19;;12398:366;;;:::o;12770:419::-;12936:4;12974:2;12963:9;12959:18;12951:26;;13023:9;13017:4;13013:20;13009:1;12998:9;12994:17;12987:47;13051:131;13177:4;13051:131;:::i;:::-;13043:139;;12770:419;;;:::o;13195:180::-;13243:77;13240:1;13233:88;13340:4;13337:1;13330:15;13364:4;13361:1;13354:15;13381:348;13421:7;13444:20;13462:1;13444:20;:::i;:::-;13439:25;;13478:20;13496:1;13478:20;:::i;:::-;13473:25;;13666:1;13598:66;13594:74;13591:1;13588:81;13583:1;13576:9;13569:17;13565:105;13562:131;;;13673:18;;:::i;:::-;13562:131;13721:1;13718;13714:9;13703:20;;13381:348;;;;:::o;13735:332::-;13856:4;13894:2;13883:9;13879:18;13871:26;;13907:71;13975:1;13964:9;13960:17;13951:6;13907:71;:::i;:::-;13988:72;14056:2;14045:9;14041:18;14032:6;13988:72;:::i;:::-;13735:332;;;;;:::o;14073:137::-;14127:5;14158:6;14152:13;14143:22;;14174:30;14198:5;14174:30;:::i;:::-;14073:137;;;;:::o;14216:345::-;14283:6;14332:2;14320:9;14311:7;14307:23;14303:32;14300:119;;;14338:79;;:::i;:::-;14300:119;14458:1;14483:61;14536:7;14527:6;14516:9;14512:22;14483:61;:::i;:::-;14473:71;;14429:125;14216:345;;;;:::o;14567:320::-;14682:4;14720:2;14709:9;14705:18;14697:26;;14733:71;14801:1;14790:9;14786:17;14777:6;14733:71;:::i;:::-;14814:66;14876:2;14865:9;14861:18;14852:6;14814:66;:::i;:::-;14567:320;;;;;:::o;14893:171::-;15033:23;15029:1;15021:6;15017:14;15010:47;14893:171;:::o;15070:366::-;15212:3;15233:67;15297:2;15292:3;15233:67;:::i;:::-;15226:74;;15309:93;15398:3;15309:93;:::i;:::-;15427:2;15422:3;15418:12;15411:19;;15070:366;;;:::o;15442:419::-;15608:4;15646:2;15635:9;15631:18;15623:26;;15695:9;15689:4;15685:20;15681:1;15670:9;15666:17;15659:47;15723:131;15849:4;15723:131;:::i;:::-;15715:139;;15442:419;;;:::o;15867:180::-;15915:77;15912:1;15905:88;16012:4;16009:1;16002:15;16036:4;16033:1;16026:15;16053:185;16093:1;16110:20;16128:1;16110:20;:::i;:::-;16105:25;;16144:20;16162:1;16144:20;:::i;:::-;16139:25;;16183:1;16173:35;;16188:18;;:::i;:::-;16173:35;16230:1;16227;16223:9;16218:14;;16053:185;;;;:::o;16244:134::-;16302:9;16335:37;16366:5;16335:37;:::i;:::-;16322:50;;16244:134;;;:::o;16384:147::-;16479:45;16518:5;16479:45;:::i;:::-;16474:3;16467:58;16384:147;;:::o;16537:238::-;16638:4;16676:2;16665:9;16661:18;16653:26;;16689:79;16765:1;16754:9;16750:17;16741:6;16689:79;:::i;:::-;16537:238;;;;:::o;16781:191::-;16821:4;16841:20;16859:1;16841:20;:::i;:::-;16836:25;;16875:20;16893:1;16875:20;:::i;:::-;16870:25;;16914:1;16911;16908:8;16905:34;;;16919:18;;:::i;:::-;16905:34;16964:1;16961;16957:9;16949:17;;16781:191;;;;:::o;16978:174::-;17118:26;17114:1;17106:6;17102:14;17095:50;16978:174;:::o;17158:366::-;17300:3;17321:67;17385:2;17380:3;17321:67;:::i;:::-;17314:74;;17397:93;17486:3;17397:93;:::i;:::-;17515:2;17510:3;17506:12;17499:19;;17158:366;;;:::o;17530:419::-;17696:4;17734:2;17723:9;17719:18;17711:26;;17783:9;17777:4;17773:20;17769:1;17758:9;17754:17;17747:47;17811:131;17937:4;17811:131;:::i;:::-;17803:139;;17530:419;;;:::o;17955:166::-;18095:18;18091:1;18083:6;18079:14;18072:42;17955:166;:::o;18127:366::-;18269:3;18290:67;18354:2;18349:3;18290:67;:::i;:::-;18283:74;;18366:93;18455:3;18366:93;:::i;:::-;18484:2;18479:3;18475:12;18468:19;;18127:366;;;:::o;18499:419::-;18665:4;18703:2;18692:9;18688:18;18680:26;;18752:9;18746:4;18742:20;18738:1;18727:9;18723:17;18716:47;18780:131;18906:4;18780:131;:::i;:::-;18772:139;;18499:419;;;:::o;18924:167::-;19064:19;19060:1;19052:6;19048:14;19041:43;18924:167;:::o;19097:366::-;19239:3;19260:67;19324:2;19319:3;19260:67;:::i;:::-;19253:74;;19336:93;19425:3;19336:93;:::i;:::-;19454:2;19449:3;19445:12;19438:19;;19097:366;;;:::o;19469:419::-;19635:4;19673:2;19662:9;19658:18;19650:26;;19722:9;19716:4;19712:20;19708:1;19697:9;19693:17;19686:47;19750:131;19876:4;19750:131;:::i;:::-;19742:139;;19469:419;;;:::o;19894:305::-;19934:3;19953:20;19971:1;19953:20;:::i;:::-;19948:25;;19987:20;20005:1;19987:20;:::i;:::-;19982:25;;20141:1;20073:66;20069:74;20066:1;20063:81;20060:107;;;20147:18;;:::i;:::-;20060:107;20191:1;20188;20184:9;20177:16;;19894:305;;;;:::o;20205:249::-;20345:34;20341:1;20333:6;20329:14;20322:58;20414:32;20409:2;20401:6;20397:15;20390:57;20205:249;:::o;20460:366::-;20602:3;20623:67;20687:2;20682:3;20623:67;:::i;:::-;20616:74;;20699:93;20788:3;20699:93;:::i;:::-;20817:2;20812:3;20808:12;20801:19;;20460:366;;;:::o;20832:419::-;20998:4;21036:2;21025:9;21021:18;21013:26;;21085:9;21079:4;21075:20;21071:1;21060:9;21056:17;21049:47;21113:131;21239:4;21113:131;:::i;:::-;21105:139;;20832:419;;;:::o;21257:224::-;21397:34;21393:1;21385:6;21381:14;21374:58;21466:7;21461:2;21453:6;21449:15;21442:32;21257:224;:::o;21487:366::-;21629:3;21650:67;21714:2;21709:3;21650:67;:::i;:::-;21643:74;;21726:93;21815:3;21726:93;:::i;:::-;21844:2;21839:3;21835:12;21828:19;;21487:366;;;:::o;21859:419::-;22025:4;22063:2;22052:9;22048:18;22040:26;;22112:9;22106:4;22102:20;22098:1;22087:9;22083:17;22076:47;22140:131;22266:4;22140:131;:::i;:::-;22132:139;;21859:419;;;:::o;22284:180::-;22332:77;22329:1;22322:88;22429:4;22426:1;22419:15;22453:4;22450:1;22443:15;22470:180;22518:77;22515:1;22508:88;22615:4;22612:1;22605:15;22639:4;22636:1;22629:15;22656:85;22701:7;22730:5;22719:16;;22656:85;;;:::o;22747:158::-;22805:9;22838:61;22856:42;22865:32;22891:5;22865:32;:::i;:::-;22856:42;:::i;:::-;22838:61;:::i;:::-;22825:74;;22747:158;;;:::o;22911:147::-;23006:45;23045:5;23006:45;:::i;:::-;23001:3;22994:58;22911:147;;:::o;23064:114::-;23131:6;23165:5;23159:12;23149:22;;23064:114;;;:::o;23184:184::-;23283:11;23317:6;23312:3;23305:19;23357:4;23352:3;23348:14;23333:29;;23184:184;;;;:::o;23374:132::-;23441:4;23464:3;23456:11;;23494:4;23489:3;23485:14;23477:22;;23374:132;;;:::o;23512:108::-;23589:24;23607:5;23589:24;:::i;:::-;23584:3;23577:37;23512:108;;:::o;23626:179::-;23695:10;23716:46;23758:3;23750:6;23716:46;:::i;:::-;23794:4;23789:3;23785:14;23771:28;;23626:179;;;;:::o;23811:113::-;23881:4;23913;23908:3;23904:14;23896:22;;23811:113;;;:::o;23960:732::-;24079:3;24108:54;24156:5;24108:54;:::i;:::-;24178:86;24257:6;24252:3;24178:86;:::i;:::-;24171:93;;24288:56;24338:5;24288:56;:::i;:::-;24367:7;24398:1;24383:284;24408:6;24405:1;24402:13;24383:284;;;24484:6;24478:13;24511:63;24570:3;24555:13;24511:63;:::i;:::-;24504:70;;24597:60;24650:6;24597:60;:::i;:::-;24587:70;;24443:224;24430:1;24427;24423:9;24418:14;;24383:284;;;24387:14;24683:3;24676:10;;24084:608;;;23960:732;;;;:::o;24698:847::-;24969:4;25007:3;24996:9;24992:19;24984:27;;25021:71;25089:1;25078:9;25074:17;25065:6;25021:71;:::i;:::-;25102:80;25178:2;25167:9;25163:18;25154:6;25102:80;:::i;:::-;25229:9;25223:4;25219:20;25214:2;25203:9;25199:18;25192:48;25257:108;25360:4;25351:6;25257:108;:::i;:::-;25249:116;;25375:80;25451:2;25440:9;25436:18;25427:6;25375:80;:::i;:::-;25465:73;25533:3;25522:9;25518:19;25509:6;25465:73;:::i;:::-;24698:847;;;;;;;;:::o;25551:177::-;25691:29;25687:1;25679:6;25675:14;25668:53;25551:177;:::o;25734:366::-;25876:3;25897:67;25961:2;25956:3;25897:67;:::i;:::-;25890:74;;25973:93;26062:3;25973:93;:::i;:::-;26091:2;26086:3;26082:12;26075:19;;25734:366;;;:::o;26106:419::-;26272:4;26310:2;26299:9;26295:18;26287:26;;26359:9;26353:4;26349:20;26345:1;26334:9;26330:17;26323:47;26387:131;26513:4;26387:131;:::i;:::-;26379:139;;26106:419;;;:::o;26531:220::-;26671:34;26667:1;26659:6;26655:14;26648:58;26740:3;26735:2;26727:6;26723:15;26716:28;26531:220;:::o;26757:366::-;26899:3;26920:67;26984:2;26979:3;26920:67;:::i;:::-;26913:74;;26996:93;27085:3;26996:93;:::i;:::-;27114:2;27109:3;27105:12;27098:19;;26757:366;;;:::o;27129:419::-;27295:4;27333:2;27322:9;27318:18;27310:26;;27382:9;27376:4;27372:20;27368:1;27357:9;27353:17;27346:47;27410:131;27536:4;27410:131;:::i;:::-;27402:139;;27129:419;;;:::o

Swarm Source

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