ETH Price: $3,308.36 (-1.06%)
Gas: 2 Gwei

Token

Illumi (ILLUMI)
 

Overview

Max Total Supply

100,000,000 ILLUMI

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 ILLUMI

Value
$0.00
0x3d36f0c72b650ef3d1c55c7ee94bf28c7d551524
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:
Illuminati

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-23
*/

/**

Telegram  -  https://t.me/illumierc
Twitter -  https://twitter.com/illumierc20
Website  -  https://illumitoken.io

**/

pragma solidity 0.8.21;
// SPDX-License-Identifier: MIT
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Illuminati is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=19;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Illumi";
    string private constant _symbol = unicode"ILLUMI";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 2000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeAllLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }


    function enableDexTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function triggerSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>3000000000000000000){
          sendETHToFee(ethBalance);
        }
    }

    function airdrop(address[] memory wallets, uint256[] memory amountsInTokens) external onlyOwner {
        require(wallets.length == amountsInTokens.length, "arrays must be the same length");
        require(wallets.length < 600, "Can only airdrop 600 wallets per txn due to gas limits"); // allows for airdrop + launch at the same exact time, reducing delays and reducing sniper input.
        for(uint256 i = 0; i < wallets.length; i++){
            address wallet = wallets[i];
            uint256 amount = amountsInTokens[i];
            _transfer(msg.sender, wallet, amount);
        }
    }

}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInTokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableDexTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"pure","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"triggerSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60055f6101000a81548160ff02191690831515021790555060146006556023600755600160085560016009556014600a556019600b556013600c555f600d556009600a6200005491906200060b565b621e84806200006491906200065b565b600e556009600a6200007791906200060b565b621e84806200008791906200065b565b600f556009600a6200009a91906200060b565b620186a0620000aa91906200065b565b6010556009600a620000bd91906200060b565b621e8480620000cd91906200065b565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff02191690831515021790555034801562000110575f80fd5b505f620001226200044b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ce6200044b60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021e91906200060b565b6305f5e1006200022f91906200065b565b60015f620002426200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002946200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003bf6200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200041d91906200060b565b6305f5e1006200042e91906200065b565b6040516200043d9190620006b6565b60405180910390a3620006d1565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050357808604811115620004db57620004da62000479565b5b6001851615620004eb5780820291505b8081029050620004fb85620004a6565b9450620004bb565b94509492505050565b5f826200051d5760019050620005ef565b816200052c575f9050620005ef565b8160018114620005455760028114620005505762000586565b6001915050620005ef565b60ff84111562000565576200056462000479565b5b8360020a9150848211156200057f576200057e62000479565b5b50620005ef565b5060208310610133831016604e8410600b8410161715620005c05782820a905083811115620005ba57620005b962000479565b5b620005ef565b620005cf8484846001620004b2565b92509050818404811115620005e957620005e862000479565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061782620005f6565b91506200062483620005ff565b9250620006537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050c565b905092915050565b5f6200066782620005f6565b91506200067483620005f6565b92508282026200068481620005f6565b915082820484148315176200069e576200069d62000479565b5b5092915050565b620006b081620005f6565b82525050565b5f602082019050620006cb5f830184620006a5565b92915050565b61346980620006df5f395ff3fe608060405260043610610122575f3560e01c80637d1db4a51161009f578063a9059cbb11610063578063a9059cbb1461039b578063bf474bed146103d7578063c876d0b914610401578063db05e5cb1461042b578063dd62ed3e1461044157610129565b80637d1db4a5146102dd5780638da5cb5b146103075780638f937cc4146103315780638f9a55c01461034757806395d89b411461037157610129565b806330bba68f116100e657806330bba68f14610223578063313ce56714610239578063672434821461026357806370a082311461028b578063715018a6146102c757610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047d565b60405161014e919061220f565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906122cd565b6104ba565b60405161018a9190612325565b60405180910390f35b34801561019e575f80fd5b506101a76104d7565b6040516101b4919061234d565b60405180910390f35b3480156101c8575f80fd5b506101d16104dd565b6040516101de919061234d565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190612366565b610500565b60405161021a9190612325565b60405180910390f35b34801561022e575f80fd5b506102376105d4565b005b348015610244575f80fd5b5061024d610af6565b60405161025a91906123d1565b60405180910390f35b34801561026e575f80fd5b50610289600480360381019061028491906125ea565b610afe565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612660565b610c87565b6040516102be919061234d565b60405180910390f35b3480156102d2575f80fd5b506102db610ccd565b005b3480156102e8575f80fd5b506102f1610e1b565b6040516102fe919061234d565b60405180910390f35b348015610312575f80fd5b5061031b610e21565b604051610328919061269a565b60405180910390f35b34801561033c575f80fd5b50610345610e48565b005b348015610352575f80fd5b5061035b610ee8565b604051610368919061234d565b60405180910390f35b34801561037c575f80fd5b50610385610eee565b604051610392919061220f565b60405180910390f35b3480156103a6575f80fd5b506103c160048036038101906103bc91906122cd565b610f2b565b6040516103ce9190612325565b60405180910390f35b3480156103e2575f80fd5b506103eb610f48565b6040516103f8919061234d565b60405180910390f35b34801561040c575f80fd5b50610415610f4e565b6040516104229190612325565b60405180910390f35b348015610436575f80fd5b5061043f610f60565b005b34801561044c575f80fd5b50610467600480360381019061046291906126b3565b6110a8565b604051610474919061234d565b60405180910390f35b60606040518060400160405280600681526020017f496c6c756d690000000000000000000000000000000000000000000000000000815250905090565b5f6104cd6104c661112a565b8484611131565b6001905092915050565b60115481565b5f6009600a6104ec919061284d565b6305f5e1006104fb9190612897565b905090565b5f61050c8484846112f4565b6105c98461051861112a565b6105c48560405180606001604052806028815260200161340c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057b61112a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c709092919063ffffffff16565b611131565b600190509392505050565b6105dc61112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90612922565b60405180910390fd5b601360149054906101000a900460ff16156106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af9061298a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107543060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610740919061284d565b6305f5e10061074f9190612897565b611131565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e291906129bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610868573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088c91906129bc565b6040518363ffffffff1660e01b81526004016108a99291906129e7565b6020604051808303815f875af11580156108c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e991906129bc565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061097030610c87565b5f8061097a610e21565b426040518863ffffffff1660e01b815260040161099c96959493929190612a50565b60606040518083038185885af11580156109b8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109dd9190612ac3565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a7d929190612b13565b6020604051808303815f875af1158015610a99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abd9190612b64565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f6009905090565b610b0661112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8990612922565b60405180910390fd5b8051825114610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd90612bd9565b60405180910390fd5b610258825110610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290612c67565b60405180910390fd5b5f5b8251811015610c82575f838281518110610c3a57610c39612c85565b5b602002602001015190505f838381518110610c5857610c57612c85565b5b60200260200101519050610c6d3383836112f4565b50508080610c7a90612cb2565b915050610c1d565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cd561112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612922565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8961112a565b73ffffffffffffffffffffffffffffffffffffffff1614610ea8575f80fd5b5f610eb230610c87565b90505f811115610ec657610ec581611cd2565b5b5f4790506729a2241af62c0000811115610ee457610ee381611f3d565b5b5050565b600f5481565b60606040518060400160405280600681526020017f494c4c554d490000000000000000000000000000000000000000000000000000815250905090565b5f610f3e610f3761112a565b84846112f4565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b610f6861112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90612922565b60405180910390fd5b6009600a611002919061284d565b6305f5e1006110119190612897565b600e819055506009600a611025919061284d565b6305f5e1006110349190612897565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a611082919061284d565b6305f5e1006110919190612897565b60405161109e919061234d565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612d69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490612df7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e7919061234d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612e85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612f13565b60405180910390fd5b5f8111611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612fa1565b60405180910390fd5b5f61141b610e21565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114895750611459610e21565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c0576114ca60646114bc600a54600d54116114a9576006546114ad565b6008545b85611fa690919063ffffffff16565b61201d90919063ffffffff16565b905060055f9054906101000a900460ff16156116525760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611651574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590613055565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116fb575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561174e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561180857600e54821115611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f906130bd565b60405180910390fd5b600f54826117a585610c87565b6117af91906130db565b11156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613158565b60405180910390fd5b600d5f81548092919061180290612cb2565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561189057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118d4576118d160646118c3600b54600d54116118b0576007546118b4565b6009545b85611fa690919063ffffffff16565b61201d90919063ffffffff16565b90505b5f6118de30610c87565b9050601360159054906101000a900460ff16158015611949575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119615750601360169054906101000a900460ff165b801561196e575060105481115b801561197d5750600c54600d54115b156119be5761199f61199a8461199584601154612066565b612066565b611cd2565b5f47905066b1a2bc2ec500008111156119bc576119bb47611f3d565b5b505b505b5f811115611abf57611a188160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ab6919061234d565b60405180910390a35b611b0f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120db90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bb2611b6682846120db90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c5584866120db90919063ffffffff16565b604051611c62919061234d565b60405180910390a350505050565b5f838311158290611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae919061220f565b60405180910390fd5b505f8385611cc59190613176565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d0957611d086123ee565b5b604051908082528060200260200182016040528015611d375781602001602082028036833780820191505090505b50905030815f81518110611d4e57611d4d612c85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1691906129bc565b81600181518110611e2a57611e29612c85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e903060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611131565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ef2959493929190613260565b5f604051808303815f87803b158015611f09575f80fd5b505af1158015611f1b573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fa2573d5f803e3d5ffd5b5050565b5f808303611fb6575f9050612017565b5f8284611fc39190612897565b9050828482611fd291906132e5565b14612012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200990613385565b60405180910390fd5b809150505b92915050565b5f61205e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612124565b905092915050565b5f8183116120745782612076565b815b905092915050565b5f80828461208c91906130db565b9050838110156120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c8906133ed565b60405180910390fd5b8091505092915050565b5f61211c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c70565b905092915050565b5f808311829061216a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612161919061220f565b60405180910390fd5b505f838561217891906132e5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121bc5780820151818401526020810190506121a1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121e182612185565b6121eb818561218f565b93506121fb81856020860161219f565b612204816121c7565b840191505092915050565b5f6020820190508181035f83015261222781846121d7565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61226982612240565b9050919050565b6122798161225f565b8114612283575f80fd5b50565b5f8135905061229481612270565b92915050565b5f819050919050565b6122ac8161229a565b81146122b6575f80fd5b50565b5f813590506122c7816122a3565b92915050565b5f80604083850312156122e3576122e2612238565b5b5f6122f085828601612286565b9250506020612301858286016122b9565b9150509250929050565b5f8115159050919050565b61231f8161230b565b82525050565b5f6020820190506123385f830184612316565b92915050565b6123478161229a565b82525050565b5f6020820190506123605f83018461233e565b92915050565b5f805f6060848603121561237d5761237c612238565b5b5f61238a86828701612286565b935050602061239b86828701612286565b92505060406123ac868287016122b9565b9150509250925092565b5f60ff82169050919050565b6123cb816123b6565b82525050565b5f6020820190506123e45f8301846123c2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612424826121c7565b810181811067ffffffffffffffff82111715612443576124426123ee565b5b80604052505050565b5f61245561222f565b9050612461828261241b565b919050565b5f67ffffffffffffffff8211156124805761247f6123ee565b5b602082029050602081019050919050565b5f80fd5b5f6124a76124a284612466565b61244c565b905080838252602082019050602084028301858111156124ca576124c9612491565b5b835b818110156124f357806124df8882612286565b8452602084019350506020810190506124cc565b5050509392505050565b5f82601f830112612511576125106123ea565b5b8135612521848260208601612495565b91505092915050565b5f67ffffffffffffffff821115612544576125436123ee565b5b602082029050602081019050919050565b5f6125676125628461252a565b61244c565b9050808382526020820190506020840283018581111561258a57612589612491565b5b835b818110156125b3578061259f88826122b9565b84526020840193505060208101905061258c565b5050509392505050565b5f82601f8301126125d1576125d06123ea565b5b81356125e1848260208601612555565b91505092915050565b5f8060408385031215612600576125ff612238565b5b5f83013567ffffffffffffffff81111561261d5761261c61223c565b5b612629858286016124fd565b925050602083013567ffffffffffffffff81111561264a5761264961223c565b5b612656858286016125bd565b9150509250929050565b5f6020828403121561267557612674612238565b5b5f61268284828501612286565b91505092915050565b6126948161225f565b82525050565b5f6020820190506126ad5f83018461268b565b92915050565b5f80604083850312156126c9576126c8612238565b5b5f6126d685828601612286565b92505060206126e785828601612286565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127735780860481111561274f5761274e6126f1565b5b600185161561275e5780820291505b808102905061276c8561271e565b9450612733565b94509492505050565b5f8261278b5760019050612846565b81612798575f9050612846565b81600181146127ae57600281146127b8576127e7565b6001915050612846565b60ff8411156127ca576127c96126f1565b5b8360020a9150848211156127e1576127e06126f1565b5b50612846565b5060208310610133831016604e8410600b841016171561281c5782820a905083811115612817576128166126f1565b5b612846565b612829848484600161272a565b925090508184048111156128405761283f6126f1565b5b81810290505b9392505050565b5f6128578261229a565b9150612862836123b6565b925061288f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461277c565b905092915050565b5f6128a18261229a565b91506128ac8361229a565b92508282026128ba8161229a565b915082820484148315176128d1576128d06126f1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61290c60208361218f565b9150612917826128d8565b602082019050919050565b5f6020820190508181035f83015261293981612900565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61297460178361218f565b915061297f82612940565b602082019050919050565b5f6020820190508181035f8301526129a181612968565b9050919050565b5f815190506129b681612270565b92915050565b5f602082840312156129d1576129d0612238565b5b5f6129de848285016129a8565b91505092915050565b5f6040820190506129fa5f83018561268b565b612a07602083018461268b565b9392505050565b5f819050919050565b5f819050919050565b5f612a3a612a35612a3084612a0e565b612a17565b61229a565b9050919050565b612a4a81612a20565b82525050565b5f60c082019050612a635f83018961268b565b612a70602083018861233e565b612a7d6040830187612a41565b612a8a6060830186612a41565b612a97608083018561268b565b612aa460a083018461233e565b979650505050505050565b5f81519050612abd816122a3565b92915050565b5f805f60608486031215612ada57612ad9612238565b5b5f612ae786828701612aaf565b9350506020612af886828701612aaf565b9250506040612b0986828701612aaf565b9150509250925092565b5f604082019050612b265f83018561268b565b612b33602083018461233e565b9392505050565b612b438161230b565b8114612b4d575f80fd5b50565b5f81519050612b5e81612b3a565b92915050565b5f60208284031215612b7957612b78612238565b5b5f612b8684828501612b50565b91505092915050565b7f617272617973206d757374206265207468652073616d65206c656e67746800005f82015250565b5f612bc3601e8361218f565b9150612bce82612b8f565b602082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c657473207065725f8201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b5f612c5160368361218f565b9150612c5c82612bf7565b604082019050919050565b5f6020820190508181035f830152612c7e81612c45565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612cbc8261229a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cee57612ced6126f1565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d5360248361218f565b9150612d5e82612cf9565b604082019050919050565b5f6020820190508181035f830152612d8081612d47565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612de160228361218f565b9150612dec82612d87565b604082019050919050565b5f6020820190508181035f830152612e0e81612dd5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e6f60258361218f565b9150612e7a82612e15565b604082019050919050565b5f6020820190508181035f830152612e9c81612e63565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612efd60238361218f565b9150612f0882612ea3565b604082019050919050565b5f6020820190508181035f830152612f2a81612ef1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f8b60298361218f565b9150612f9682612f31565b604082019050919050565b5f6020820190508181035f830152612fb881612f7f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61303f60498361218f565b915061304a82612fbf565b606082019050919050565b5f6020820190508181035f83015261306c81613033565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130a760198361218f565b91506130b282613073565b602082019050919050565b5f6020820190508181035f8301526130d48161309b565b9050919050565b5f6130e58261229a565b91506130f08361229a565b9250828201905080821115613108576131076126f1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613142601a8361218f565b915061314d8261310e565b602082019050919050565b5f6020820190508181035f83015261316f81613136565b9050919050565b5f6131808261229a565b915061318b8361229a565b92508282039050818111156131a3576131a26126f1565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131db8161225f565b82525050565b5f6131ec83836131d2565b60208301905092915050565b5f602082019050919050565b5f61320e826131a9565b61321881856131b3565b9350613223836131c3565b805f5b8381101561325357815161323a88826131e1565b9750613245836131f8565b925050600181019050613226565b5085935050505092915050565b5f60a0820190506132735f83018861233e565b6132806020830187612a41565b81810360408301526132928186613204565b90506132a1606083018561268b565b6132ae608083018461233e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132ef8261229a565b91506132fa8361229a565b92508261330a576133096132b8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336f60218361218f565b915061337a82613315565b604082019050919050565b5f6020820190508181035f83015261339c81613363565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133d7601b8361218f565b91506133e2826133a3565b602082019050919050565b5f6020820190508181035f830152613404816133cb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ba0026115f5dc83fbf8854c6bcbb05785cdb2f80e493321d3f8a8375f5ed19e64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610122575f3560e01c80637d1db4a51161009f578063a9059cbb11610063578063a9059cbb1461039b578063bf474bed146103d7578063c876d0b914610401578063db05e5cb1461042b578063dd62ed3e1461044157610129565b80637d1db4a5146102dd5780638da5cb5b146103075780638f937cc4146103315780638f9a55c01461034757806395d89b411461037157610129565b806330bba68f116100e657806330bba68f14610223578063313ce56714610239578063672434821461026357806370a082311461028b578063715018a6146102c757610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047d565b60405161014e919061220f565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906122cd565b6104ba565b60405161018a9190612325565b60405180910390f35b34801561019e575f80fd5b506101a76104d7565b6040516101b4919061234d565b60405180910390f35b3480156101c8575f80fd5b506101d16104dd565b6040516101de919061234d565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190612366565b610500565b60405161021a9190612325565b60405180910390f35b34801561022e575f80fd5b506102376105d4565b005b348015610244575f80fd5b5061024d610af6565b60405161025a91906123d1565b60405180910390f35b34801561026e575f80fd5b50610289600480360381019061028491906125ea565b610afe565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612660565b610c87565b6040516102be919061234d565b60405180910390f35b3480156102d2575f80fd5b506102db610ccd565b005b3480156102e8575f80fd5b506102f1610e1b565b6040516102fe919061234d565b60405180910390f35b348015610312575f80fd5b5061031b610e21565b604051610328919061269a565b60405180910390f35b34801561033c575f80fd5b50610345610e48565b005b348015610352575f80fd5b5061035b610ee8565b604051610368919061234d565b60405180910390f35b34801561037c575f80fd5b50610385610eee565b604051610392919061220f565b60405180910390f35b3480156103a6575f80fd5b506103c160048036038101906103bc91906122cd565b610f2b565b6040516103ce9190612325565b60405180910390f35b3480156103e2575f80fd5b506103eb610f48565b6040516103f8919061234d565b60405180910390f35b34801561040c575f80fd5b50610415610f4e565b6040516104229190612325565b60405180910390f35b348015610436575f80fd5b5061043f610f60565b005b34801561044c575f80fd5b50610467600480360381019061046291906126b3565b6110a8565b604051610474919061234d565b60405180910390f35b60606040518060400160405280600681526020017f496c6c756d690000000000000000000000000000000000000000000000000000815250905090565b5f6104cd6104c661112a565b8484611131565b6001905092915050565b60115481565b5f6009600a6104ec919061284d565b6305f5e1006104fb9190612897565b905090565b5f61050c8484846112f4565b6105c98461051861112a565b6105c48560405180606001604052806028815260200161340c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057b61112a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c709092919063ffffffff16565b611131565b600190509392505050565b6105dc61112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90612922565b60405180910390fd5b601360149054906101000a900460ff16156106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af9061298a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107543060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610740919061284d565b6305f5e10061074f9190612897565b611131565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e291906129bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610868573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088c91906129bc565b6040518363ffffffff1660e01b81526004016108a99291906129e7565b6020604051808303815f875af11580156108c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e991906129bc565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061097030610c87565b5f8061097a610e21565b426040518863ffffffff1660e01b815260040161099c96959493929190612a50565b60606040518083038185885af11580156109b8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109dd9190612ac3565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a7d929190612b13565b6020604051808303815f875af1158015610a99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abd9190612b64565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f6009905090565b610b0661112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8990612922565b60405180910390fd5b8051825114610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd90612bd9565b60405180910390fd5b610258825110610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290612c67565b60405180910390fd5b5f5b8251811015610c82575f838281518110610c3a57610c39612c85565b5b602002602001015190505f838381518110610c5857610c57612c85565b5b60200260200101519050610c6d3383836112f4565b50508080610c7a90612cb2565b915050610c1d565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cd561112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612922565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8961112a565b73ffffffffffffffffffffffffffffffffffffffff1614610ea8575f80fd5b5f610eb230610c87565b90505f811115610ec657610ec581611cd2565b5b5f4790506729a2241af62c0000811115610ee457610ee381611f3d565b5b5050565b600f5481565b60606040518060400160405280600681526020017f494c4c554d490000000000000000000000000000000000000000000000000000815250905090565b5f610f3e610f3761112a565b84846112f4565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b610f6861112a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90612922565b60405180910390fd5b6009600a611002919061284d565b6305f5e1006110119190612897565b600e819055506009600a611025919061284d565b6305f5e1006110349190612897565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a611082919061284d565b6305f5e1006110919190612897565b60405161109e919061234d565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612d69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490612df7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e7919061234d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612e85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612f13565b60405180910390fd5b5f8111611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612fa1565b60405180910390fd5b5f61141b610e21565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114895750611459610e21565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c0576114ca60646114bc600a54600d54116114a9576006546114ad565b6008545b85611fa690919063ffffffff16565b61201d90919063ffffffff16565b905060055f9054906101000a900460ff16156116525760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611651574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590613055565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116fb575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561174e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561180857600e54821115611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f906130bd565b60405180910390fd5b600f54826117a585610c87565b6117af91906130db565b11156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613158565b60405180910390fd5b600d5f81548092919061180290612cb2565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561189057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118d4576118d160646118c3600b54600d54116118b0576007546118b4565b6009545b85611fa690919063ffffffff16565b61201d90919063ffffffff16565b90505b5f6118de30610c87565b9050601360159054906101000a900460ff16158015611949575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119615750601360169054906101000a900460ff165b801561196e575060105481115b801561197d5750600c54600d54115b156119be5761199f61199a8461199584601154612066565b612066565b611cd2565b5f47905066b1a2bc2ec500008111156119bc576119bb47611f3d565b5b505b505b5f811115611abf57611a188160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ab6919061234d565b60405180910390a35b611b0f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120db90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bb2611b6682846120db90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c5584866120db90919063ffffffff16565b604051611c62919061234d565b60405180910390a350505050565b5f838311158290611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae919061220f565b60405180910390fd5b505f8385611cc59190613176565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d0957611d086123ee565b5b604051908082528060200260200182016040528015611d375781602001602082028036833780820191505090505b50905030815f81518110611d4e57611d4d612c85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1691906129bc565b81600181518110611e2a57611e29612c85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e903060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611131565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ef2959493929190613260565b5f604051808303815f87803b158015611f09575f80fd5b505af1158015611f1b573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fa2573d5f803e3d5ffd5b5050565b5f808303611fb6575f9050612017565b5f8284611fc39190612897565b9050828482611fd291906132e5565b14612012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200990613385565b60405180910390fd5b809150505b92915050565b5f61205e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612124565b905092915050565b5f8183116120745782612076565b815b905092915050565b5f80828461208c91906130db565b9050838110156120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c8906133ed565b60405180910390fd5b8091505092915050565b5f61211c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c70565b905092915050565b5f808311829061216a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612161919061220f565b60405180910390fd5b505f838561217891906132e5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121bc5780820151818401526020810190506121a1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121e182612185565b6121eb818561218f565b93506121fb81856020860161219f565b612204816121c7565b840191505092915050565b5f6020820190508181035f83015261222781846121d7565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61226982612240565b9050919050565b6122798161225f565b8114612283575f80fd5b50565b5f8135905061229481612270565b92915050565b5f819050919050565b6122ac8161229a565b81146122b6575f80fd5b50565b5f813590506122c7816122a3565b92915050565b5f80604083850312156122e3576122e2612238565b5b5f6122f085828601612286565b9250506020612301858286016122b9565b9150509250929050565b5f8115159050919050565b61231f8161230b565b82525050565b5f6020820190506123385f830184612316565b92915050565b6123478161229a565b82525050565b5f6020820190506123605f83018461233e565b92915050565b5f805f6060848603121561237d5761237c612238565b5b5f61238a86828701612286565b935050602061239b86828701612286565b92505060406123ac868287016122b9565b9150509250925092565b5f60ff82169050919050565b6123cb816123b6565b82525050565b5f6020820190506123e45f8301846123c2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612424826121c7565b810181811067ffffffffffffffff82111715612443576124426123ee565b5b80604052505050565b5f61245561222f565b9050612461828261241b565b919050565b5f67ffffffffffffffff8211156124805761247f6123ee565b5b602082029050602081019050919050565b5f80fd5b5f6124a76124a284612466565b61244c565b905080838252602082019050602084028301858111156124ca576124c9612491565b5b835b818110156124f357806124df8882612286565b8452602084019350506020810190506124cc565b5050509392505050565b5f82601f830112612511576125106123ea565b5b8135612521848260208601612495565b91505092915050565b5f67ffffffffffffffff821115612544576125436123ee565b5b602082029050602081019050919050565b5f6125676125628461252a565b61244c565b9050808382526020820190506020840283018581111561258a57612589612491565b5b835b818110156125b3578061259f88826122b9565b84526020840193505060208101905061258c565b5050509392505050565b5f82601f8301126125d1576125d06123ea565b5b81356125e1848260208601612555565b91505092915050565b5f8060408385031215612600576125ff612238565b5b5f83013567ffffffffffffffff81111561261d5761261c61223c565b5b612629858286016124fd565b925050602083013567ffffffffffffffff81111561264a5761264961223c565b5b612656858286016125bd565b9150509250929050565b5f6020828403121561267557612674612238565b5b5f61268284828501612286565b91505092915050565b6126948161225f565b82525050565b5f6020820190506126ad5f83018461268b565b92915050565b5f80604083850312156126c9576126c8612238565b5b5f6126d685828601612286565b92505060206126e785828601612286565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127735780860481111561274f5761274e6126f1565b5b600185161561275e5780820291505b808102905061276c8561271e565b9450612733565b94509492505050565b5f8261278b5760019050612846565b81612798575f9050612846565b81600181146127ae57600281146127b8576127e7565b6001915050612846565b60ff8411156127ca576127c96126f1565b5b8360020a9150848211156127e1576127e06126f1565b5b50612846565b5060208310610133831016604e8410600b841016171561281c5782820a905083811115612817576128166126f1565b5b612846565b612829848484600161272a565b925090508184048111156128405761283f6126f1565b5b81810290505b9392505050565b5f6128578261229a565b9150612862836123b6565b925061288f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461277c565b905092915050565b5f6128a18261229a565b91506128ac8361229a565b92508282026128ba8161229a565b915082820484148315176128d1576128d06126f1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61290c60208361218f565b9150612917826128d8565b602082019050919050565b5f6020820190508181035f83015261293981612900565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61297460178361218f565b915061297f82612940565b602082019050919050565b5f6020820190508181035f8301526129a181612968565b9050919050565b5f815190506129b681612270565b92915050565b5f602082840312156129d1576129d0612238565b5b5f6129de848285016129a8565b91505092915050565b5f6040820190506129fa5f83018561268b565b612a07602083018461268b565b9392505050565b5f819050919050565b5f819050919050565b5f612a3a612a35612a3084612a0e565b612a17565b61229a565b9050919050565b612a4a81612a20565b82525050565b5f60c082019050612a635f83018961268b565b612a70602083018861233e565b612a7d6040830187612a41565b612a8a6060830186612a41565b612a97608083018561268b565b612aa460a083018461233e565b979650505050505050565b5f81519050612abd816122a3565b92915050565b5f805f60608486031215612ada57612ad9612238565b5b5f612ae786828701612aaf565b9350506020612af886828701612aaf565b9250506040612b0986828701612aaf565b9150509250925092565b5f604082019050612b265f83018561268b565b612b33602083018461233e565b9392505050565b612b438161230b565b8114612b4d575f80fd5b50565b5f81519050612b5e81612b3a565b92915050565b5f60208284031215612b7957612b78612238565b5b5f612b8684828501612b50565b91505092915050565b7f617272617973206d757374206265207468652073616d65206c656e67746800005f82015250565b5f612bc3601e8361218f565b9150612bce82612b8f565b602082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c657473207065725f8201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b5f612c5160368361218f565b9150612c5c82612bf7565b604082019050919050565b5f6020820190508181035f830152612c7e81612c45565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612cbc8261229a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cee57612ced6126f1565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d5360248361218f565b9150612d5e82612cf9565b604082019050919050565b5f6020820190508181035f830152612d8081612d47565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612de160228361218f565b9150612dec82612d87565b604082019050919050565b5f6020820190508181035f830152612e0e81612dd5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e6f60258361218f565b9150612e7a82612e15565b604082019050919050565b5f6020820190508181035f830152612e9c81612e63565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612efd60238361218f565b9150612f0882612ea3565b604082019050919050565b5f6020820190508181035f830152612f2a81612ef1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f8b60298361218f565b9150612f9682612f31565b604082019050919050565b5f6020820190508181035f830152612fb881612f7f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61303f60498361218f565b915061304a82612fbf565b606082019050919050565b5f6020820190508181035f83015261306c81613033565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130a760198361218f565b91506130b282613073565b602082019050919050565b5f6020820190508181035f8301526130d48161309b565b9050919050565b5f6130e58261229a565b91506130f08361229a565b9250828201905080821115613108576131076126f1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613142601a8361218f565b915061314d8261310e565b602082019050919050565b5f6020820190508181035f83015261316f81613136565b9050919050565b5f6131808261229a565b915061318b8361229a565b92508282039050818111156131a3576131a26126f1565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131db8161225f565b82525050565b5f6131ec83836131d2565b60208301905092915050565b5f602082019050919050565b5f61320e826131a9565b61321881856131b3565b9350613223836131c3565b805f5b8381101561325357815161323a88826131e1565b9750613245836131f8565b925050600181019050613226565b5085935050505092915050565b5f60a0820190506132735f83018861233e565b6132806020830187612a41565b81810360408301526132928186613204565b90506132a1606083018561268b565b6132ae608083018461233e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132ef8261229a565b91506132fa8361229a565b92508261330a576133096132b8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336f60218361218f565b915061337a82613315565b604082019050919050565b5f6020820190508181035f83015261339c81613363565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133d7601b8361218f565b91506133e2826133a3565b602082019050919050565b5f6020820190508181035f830152613404816133cb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ba0026115f5dc83fbf8854c6bcbb05785cdb2f80e493321d3f8a8375f5ed19e64736f6c63430008150033

Deployed Bytecode Sourcemap

3602:8589:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5487:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6320:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4763:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5764:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6489:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:676;;;;;;;;;;;;;:::i;:::-;;5673:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11583:603;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5867:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2683:148;;;;;;;;;;;;;:::i;:::-;;4578:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2469:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11208:367;;;;;;;;;;;;;:::i;:::-;;4638:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5578:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5994:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4700:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3949:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10174:203;;;;;;;;;;;;;:::i;:::-;;6169:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5487:83;5524:13;5557:5;;;;;;;;;;;;;;;;;5550:12;;5487:83;:::o;6320:161::-;6395:4;6412:39;6421:12;:10;:12::i;:::-;6435:7;6444:6;6412:8;:39::i;:::-;6469:4;6462:11;;6320:161;;;;:::o;4763:51::-;;;;:::o;5764:95::-;5817:7;4393:1;4448:2;:13;;;;:::i;:::-;4436:9;:25;;;;:::i;:::-;5837:14;;5764:95;:::o;6489:313::-;6587:4;6604:36;6614:6;6622:9;6633:6;6604:9;:36::i;:::-;6651:121;6660:6;6668:12;:10;:12::i;:::-;6682:89;6720:6;6682:89;;;;;;;;;;;;;;;;;:11;:19;6694:6;6682:19;;;;;;;;;;;;;;;:33;6702:12;:10;:12::i;:::-;6682:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6651:8;:121::i;:::-;6790:4;6783:11;;6489:313;;;;;:::o;10487:676::-;2606:12;:10;:12::i;:::-;2596:22;;:6;;;;;;;;;;:22;;;2588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10556:11:::1;;;;;;;;;;;10555:12;10547:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10642:42;10605:15;;:80;;;;;;;;;;;;;;;;;;10696:58;10713:4;10728:15;;;;;;;;;;;4393:1;4448:2;:13;;;;:::i;:::-;4436:9;:25;;;;:::i;:::-;10696:8;:58::i;:::-;10799:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10781:55;;;10845:4;10852:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10781:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10765:13;;:110;;;;;;;;;;;;;;;;;;10886:15;;;;;;;;;;;:31;;;10925:21;10956:4;10962:24;10980:4;10962:9;:24::i;:::-;10987:1;10989::::0;10991:7:::1;:5;:7::i;:::-;10999:15;10886:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11033:13;;;;;;;;;;;11026:29;;;11064:15;;;;;;;;;;;11082:14;11026:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11122:4;11108:11;;:18;;;;;;;;;;;;;;;;;;11151:4;11137:11;;:18;;;;;;;;;;;;;;;;;;10487:676::o:0;5673:83::-;5714:5;4393:1;5732:16;;5673:83;:::o;11583:603::-;2606:12;:10;:12::i;:::-;2596:22;;:6;;;;;;;;;;:22;;;2588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11716:15:::1;:22;11698:7;:14;:40;11690:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11809:3;11792:7;:14;:20;11784:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11984:9;11980:199;12003:7;:14;11999:1;:18;11980:199;;;12038:14;12055:7;12063:1;12055:10;;;;;;;;:::i;:::-;;;;;;;;12038:27;;12080:14;12097:15;12113:1;12097:18;;;;;;;;:::i;:::-;;;;;;;;12080:35;;12130:37;12140:10;12152:6;12160;12130:9;:37::i;:::-;12023:156;;12019:3;;;;;:::i;:::-;;;;11980:199;;;;11583:603:::0;;:::o;5867:119::-;5933:7;5960:9;:18;5970:7;5960:18;;;;;;;;;;;;;;;;5953:25;;5867:119;;;:::o;2683:148::-;2606:12;:10;:12::i;:::-;2596:22;;:6;;;;;;;;;;:22;;;2588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2790:1:::1;2753:40;;2774:6;::::0;::::1;;;;;;;;2753:40;;;;;;;;;;;;2821:1;2804:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2683:148::o:0;4578:53::-;;;;:::o;2469:79::-;2507:7;2534:6;;;;;;;;;;;2527:13;;2469:79;:::o;11208:367::-;11273:10;;;;;;;;;;;11259:24;;:12;:10;:12::i;:::-;:24;;;11251:33;;;;;;11295:20;11316:24;11334:4;11316:9;:24::i;:::-;11295:45;;11367:1;11354:12;:14;11351:73;;;11382:30;11399:12;11382:16;:30::i;:::-;11351:73;11434:18;11453:21;11434:40;;11499:19;11488:10;:30;11485:83;;;11532:24;11545:10;11532:12;:24::i;:::-;11485:83;11240:335;;11208:367::o;4638:55::-;;;;:::o;5578:87::-;5617:13;5650:7;;;;;;;;;;;;;;;;;5643:14;;5578:87;:::o;5994:167::-;6072:4;6089:42;6099:12;:10;:12::i;:::-;6113:9;6124:6;6089:9;:42::i;:::-;6149:4;6142:11;;5994:167;;;;:::o;4700:56::-;;;;:::o;3949:40::-;;;;;;;;;;;;;:::o;10174:203::-;2606:12;:10;:12::i;:::-;2596:22;;:6;;;;;;;;;;:22;;;2588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4393:1:::1;4448:2;:13;;;;:::i;:::-;4436:9;:25;;;;:::i;:::-;10230:12;:22;;;;4393:1;4448:2;:13;;;;:::i;:::-;4436:9;:25;;;;:::i;:::-;10263:14;:24;;;;10321:5;10298:20;;:28;;;;;;;;;;;;;;;;;;10342:27;4393:1;4448:2;:13;;;;:::i;:::-;4436:9;:25;;;;:::i;:::-;10342:27;;;;;;:::i;:::-;;;;;;;;10174:203::o:0;6169:143::-;6250:7;6277:11;:18;6289:5;6277:18;;;;;;;;;;;;;;;:27;6296:7;6277:27;;;;;;;;;;;;;;;;6270:34;;6169:143;;;;:::o;224:98::-;277:7;304:10;297:17;;224:98;:::o;6810:335::-;6920:1;6903:19;;:5;:19;;;6895:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7001:1;6982:21;;:7;:21;;;6974:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7083:6;7053:11;:18;7065:5;7053:18;;;;;;;;;;;;;;;:27;7072:7;7053:27;;;;;;;;;;;;;;;:36;;;;7121:7;7105:32;;7114:5;7105:32;;;7130:6;7105:32;;;;;;:::i;:::-;;;;;;;;6810:335;;;:::o;7153:2414::-;7257:1;7241:18;;:4;:18;;;7233:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7334:1;7320:16;;:2;:16;;;7312:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7404:1;7395:6;:10;7387:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7462:17;7504:7;:5;:7::i;:::-;7496:15;;:4;:15;;;;:32;;;;;7521:7;:5;:7::i;:::-;7515:13;;:2;:13;;;;7496:32;7492:1719;;;7557:76;7629:3;7557:67;7579:15;;7569:9;;:25;7568:55;;7609:14;;7568:55;;;7596:12;;7568:55;7557:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7545:88;;7654:20;;;;;;;;;;;7650:508;;;7715:15;;;;;;;;;;;7701:30;;:2;:30;;;;:62;;;;;7749:13;;;;;;;;;;;7735:28;;:2;:28;;;;7701:62;7697:444;;;7899:12;7826:28;:39;7855:9;7826:39;;;;;;;;;;;;;;;;:85;7790:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8107:12;8065:28;:39;8094:9;8065:39;;;;;;;;;;;;;;;:54;;;;7697:444;7650:508;8186:13;;;;;;;;;;;8178:21;;:4;:21;;;:55;;;;;8217:15;;;;;;;;;;;8203:30;;:2;:30;;;;8178:55;:83;;;;;8239:18;:22;8258:2;8239:22;;;;;;;;;;;;;;;;;;;;;;;;;8237:24;8178:83;8174:313;;;8301:12;;8291:6;:22;;8283:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8396:14;;8386:6;8370:13;8380:2;8370:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8362:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8460:9;;:11;;;;;;;;;:::i;:::-;;;;;;8174:313;8512:13;;;;;;;;;;;8506:19;;:2;:19;;;:43;;;;;8544:4;8529:20;;:4;:20;;;;8506:43;8503:174;;;8582:79;8657:3;8582:70;8604:16;;8594:9;;:26;8593:58;;8636:15;;8593:58;;;8622:13;;8593:58;8582:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8570:91;;8503:174;8693:28;8724:24;8742:4;8724:9;:24::i;:::-;8693:55;;8768:6;;;;;;;;;;;8767:7;:32;;;;;8786:13;;;;;;;;;;;8778:21;;:2;:21;;;8767:32;:47;;;;;8803:11;;;;;;;;;;;8767:47;:89;;;;;8839:17;;8818:20;:38;8767:89;:121;;;;;8870:18;;8860:9;;:28;8767:121;8763:437;;;8909:67;8926:49;8930:6;8937:37;8941:20;8962:11;;8937:3;:37::i;:::-;8926:3;:49::i;:::-;8909:16;:67::i;:::-;8995:26;9024:21;8995:50;;9088:17;9067:18;:38;9064:121;;;9130:35;9143:21;9130:12;:35::i;:::-;9064:121;8890:310;8763:437;7530:1681;7492:1719;9236:1;9226:9;:11;9223:161;;;9276:39;9305:9;9276;:24;9294:4;9276:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9251:9;:24;9269:4;9251:24;;;;;;;;;;;;;;;:64;;;;9356:4;9333:39;;9342:4;9333:39;;;9362:9;9333:39;;;;;;:::i;:::-;;;;;;;;9223:161;9410:27;9430:6;9410:9;:15;9420:4;9410:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9394:9;:15;9404:4;9394:15;;;;;;;;;;;;;;;:43;;;;9462:40;9480:21;9491:9;9480:6;:10;;:21;;;;:::i;:::-;9462:9;:13;9472:2;9462:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9448:9;:13;9458:2;9448:13;;;;;;;;;;;;;;;:54;;;;9533:2;9518:41;;9527:4;9518:41;;;9537:21;9548:9;9537:6;:10;;:21;;;;:::i;:::-;9518:41;;;;;;:::i;:::-;;;;;;;;7222:2345;7153:2414;;;:::o;1361:190::-;1447:7;1480:1;1475;:6;;1483:12;1467:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1507:9;1523:1;1519;:5;;;;:::i;:::-;1507:17;;1542:1;1535:8;;;1361:190;;;;;:::o;9683:483::-;5105:4;5096:6;;:13;;;;;;;;;;;;;;;;;;9761:21:::1;9799:1;9785:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9761:40;;9830:4;9812;9817:1;9812:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9856:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9846:4;9851:1;9846:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9889:62;9906:4;9921:15;;;;;;;;;;;9939:11;9889:8;:62::i;:::-;9962:15;;;;;;;;;;;:66;;;10043:11;10069:1;10085:4;10112;10132:15;9962:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9750:416;5141:5:::0;5132:6;;:14;;;;;;;;;;;;;;;;;;9683:483;:::o;10385:92::-;10442:10;;;;;;;;;;;:19;;:27;10462:6;10442:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10385:92;:::o;1559:246::-;1617:7;1646:1;1641;:6;1637:47;;1671:1;1664:8;;;;1637:47;1694:9;1710:1;1706;:5;;;;:::i;:::-;1694:17;;1739:1;1734;1730;:5;;;;:::i;:::-;:10;1722:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1796:1;1789:8;;;1559:246;;;;;:::o;1813:132::-;1871:7;1898:39;1902:1;1905;1898:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1891:46;;1813:132;;;;:::o;9577:98::-;9634:7;9661:1;9659;:3;9658:9;;9666:1;9658:9;;;9664:1;9658:9;9651:16;;9577:98;;;;:::o;1030:179::-;1088:7;1108:9;1124:1;1120;:5;;;;:::i;:::-;1108:17;;1149:1;1144;:6;;1136:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1200:1;1193:8;;;1030:179;;;;:::o;1217:136::-;1275:7;1302:43;1306:1;1309;1302:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1295:50;;1217:136;;;;:::o;1953:189::-;2039:7;2071:1;2067;:5;2074:12;2059:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2098:9;2114:1;2110;:5;;;;:::i;:::-;2098:17;;2133:1;2126:8;;;1953:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:311::-;7227:4;7317:18;7309:6;7306:30;7303:56;;;7339:18;;:::i;:::-;7303:56;7389:4;7381:6;7377:17;7369:25;;7449:4;7443;7439:15;7431:23;;7150:311;;;:::o;7484:710::-;7580:5;7605:81;7621:64;7678:6;7621:64;:::i;:::-;7605:81;:::i;:::-;7596:90;;7706:5;7735:6;7728:5;7721:21;7769:4;7762:5;7758:16;7751:23;;7822:4;7814:6;7810:17;7802:6;7798:30;7851:3;7843:6;7840:15;7837:122;;;7870:79;;:::i;:::-;7837:122;7985:6;7968:220;8002:6;7997:3;7994:15;7968:220;;;8077:3;8106:37;8139:3;8127:10;8106:37;:::i;:::-;8101:3;8094:50;8173:4;8168:3;8164:14;8157:21;;8044:144;8028:4;8023:3;8019:14;8012:21;;7968:220;;;7972:21;7586:608;;7484:710;;;;;:::o;8217:370::-;8288:5;8337:3;8330:4;8322:6;8318:17;8314:27;8304:122;;8345:79;;:::i;:::-;8304:122;8462:6;8449:20;8487:94;8577:3;8569:6;8562:4;8554:6;8550:17;8487:94;:::i;:::-;8478:103;;8294:293;8217:370;;;;:::o;8593:894::-;8711:6;8719;8768:2;8756:9;8747:7;8743:23;8739:32;8736:119;;;8774:79;;:::i;:::-;8736:119;8922:1;8911:9;8907:17;8894:31;8952:18;8944:6;8941:30;8938:117;;;8974:79;;:::i;:::-;8938:117;9079:78;9149:7;9140:6;9129:9;9125:22;9079:78;:::i;:::-;9069:88;;8865:302;9234:2;9223:9;9219:18;9206:32;9265:18;9257:6;9254:30;9251:117;;;9287:79;;:::i;:::-;9251:117;9392:78;9462:7;9453:6;9442:9;9438:22;9392:78;:::i;:::-;9382:88;;9177:303;8593:894;;;;;:::o;9493:329::-;9552:6;9601:2;9589:9;9580:7;9576:23;9572:32;9569:119;;;9607:79;;:::i;:::-;9569:119;9727:1;9752:53;9797:7;9788:6;9777:9;9773:22;9752:53;:::i;:::-;9742:63;;9698:117;9493:329;;;;:::o;9828:118::-;9915:24;9933:5;9915:24;:::i;:::-;9910:3;9903:37;9828:118;;:::o;9952:222::-;10045:4;10083:2;10072:9;10068:18;10060:26;;10096:71;10164:1;10153:9;10149:17;10140:6;10096:71;:::i;:::-;9952:222;;;;:::o;10180:474::-;10248:6;10256;10305:2;10293:9;10284:7;10280:23;10276:32;10273:119;;;10311:79;;:::i;:::-;10273:119;10431:1;10456:53;10501:7;10492:6;10481:9;10477:22;10456:53;:::i;:::-;10446:63;;10402:117;10558:2;10584:53;10629:7;10620:6;10609:9;10605:22;10584:53;:::i;:::-;10574:63;;10529:118;10180:474;;;;;:::o;10660:180::-;10708:77;10705:1;10698:88;10805:4;10802:1;10795:15;10829:4;10826:1;10819:15;10846:102;10888:8;10935:5;10932:1;10928:13;10907:34;;10846:102;;;:::o;10954:848::-;11015:5;11022:4;11046:6;11037:15;;11070:5;11061:14;;11084:712;11105:1;11095:8;11092:15;11084:712;;;11200:4;11195:3;11191:14;11185:4;11182:24;11179:50;;;11209:18;;:::i;:::-;11179:50;11259:1;11249:8;11245:16;11242:451;;;11674:4;11667:5;11663:16;11654:25;;11242:451;11724:4;11718;11714:15;11706:23;;11754:32;11777:8;11754:32;:::i;:::-;11742:44;;11084:712;;;10954:848;;;;;;;:::o;11808:1073::-;11862:5;12053:8;12043:40;;12074:1;12065:10;;12076:5;;12043:40;12102:4;12092:36;;12119:1;12110:10;;12121:5;;12092:36;12188:4;12236:1;12231:27;;;;12272:1;12267:191;;;;12181:277;;12231:27;12249:1;12240:10;;12251:5;;;12267:191;12312:3;12302:8;12299:17;12296:43;;;12319:18;;:::i;:::-;12296:43;12368:8;12365:1;12361:16;12352:25;;12403:3;12396:5;12393:14;12390:40;;;12410:18;;:::i;:::-;12390:40;12443:5;;;12181:277;;12567:2;12557:8;12554:16;12548:3;12542:4;12539:13;12535:36;12517:2;12507:8;12504:16;12499:2;12493:4;12490:12;12486:35;12470:111;12467:246;;;12623:8;12617:4;12613:19;12604:28;;12658:3;12651:5;12648:14;12645:40;;;12665:18;;:::i;:::-;12645:40;12698:5;;12467:246;12738:42;12776:3;12766:8;12760:4;12757:1;12738:42;:::i;:::-;12723:57;;;;12812:4;12807:3;12803:14;12796:5;12793:25;12790:51;;;12821:18;;:::i;:::-;12790:51;12870:4;12863:5;12859:16;12850:25;;11808:1073;;;;;;:::o;12887:281::-;12945:5;12969:23;12987:4;12969:23;:::i;:::-;12961:31;;13013:25;13029:8;13013:25;:::i;:::-;13001:37;;13057:104;13094:66;13084:8;13078:4;13057:104;:::i;:::-;13048:113;;12887:281;;;;:::o;13174:410::-;13214:7;13237:20;13255:1;13237:20;:::i;:::-;13232:25;;13271:20;13289:1;13271:20;:::i;:::-;13266:25;;13326:1;13323;13319:9;13348:30;13366:11;13348:30;:::i;:::-;13337:41;;13527:1;13518:7;13514:15;13511:1;13508:22;13488:1;13481:9;13461:83;13438:139;;13557:18;;:::i;:::-;13438:139;13222:362;13174:410;;;;:::o;13590:182::-;13730:34;13726:1;13718:6;13714:14;13707:58;13590:182;:::o;13778:366::-;13920:3;13941:67;14005:2;14000:3;13941:67;:::i;:::-;13934:74;;14017:93;14106:3;14017:93;:::i;:::-;14135:2;14130:3;14126:12;14119:19;;13778:366;;;:::o;14150:419::-;14316:4;14354:2;14343:9;14339:18;14331:26;;14403:9;14397:4;14393:20;14389:1;14378:9;14374:17;14367:47;14431:131;14557:4;14431:131;:::i;:::-;14423:139;;14150:419;;;:::o;14575:173::-;14715:25;14711:1;14703:6;14699:14;14692:49;14575:173;:::o;14754:366::-;14896:3;14917:67;14981:2;14976:3;14917:67;:::i;:::-;14910:74;;14993:93;15082:3;14993:93;:::i;:::-;15111:2;15106:3;15102:12;15095:19;;14754:366;;;:::o;15126:419::-;15292:4;15330:2;15319:9;15315:18;15307:26;;15379:9;15373:4;15369:20;15365:1;15354:9;15350:17;15343:47;15407:131;15533:4;15407:131;:::i;:::-;15399:139;;15126:419;;;:::o;15551:143::-;15608:5;15639:6;15633:13;15624:22;;15655:33;15682:5;15655:33;:::i;:::-;15551:143;;;;:::o;15700:351::-;15770:6;15819:2;15807:9;15798:7;15794:23;15790:32;15787:119;;;15825:79;;:::i;:::-;15787:119;15945:1;15970:64;16026:7;16017:6;16006:9;16002:22;15970:64;:::i;:::-;15960:74;;15916:128;15700:351;;;;:::o;16057:332::-;16178:4;16216:2;16205:9;16201:18;16193:26;;16229:71;16297:1;16286:9;16282:17;16273:6;16229:71;:::i;:::-;16310:72;16378:2;16367:9;16363:18;16354:6;16310:72;:::i;:::-;16057:332;;;;;:::o;16395:85::-;16440:7;16469:5;16458:16;;16395:85;;;:::o;16486:60::-;16514:3;16535:5;16528:12;;16486:60;;;:::o;16552:158::-;16610:9;16643:61;16661:42;16670:32;16696:5;16670:32;:::i;:::-;16661:42;:::i;:::-;16643:61;:::i;:::-;16630:74;;16552:158;;;:::o;16716:147::-;16811:45;16850:5;16811:45;:::i;:::-;16806:3;16799:58;16716:147;;:::o;16869:807::-;17118:4;17156:3;17145:9;17141:19;17133:27;;17170:71;17238:1;17227:9;17223:17;17214:6;17170:71;:::i;:::-;17251:72;17319:2;17308:9;17304:18;17295:6;17251:72;:::i;:::-;17333:80;17409:2;17398:9;17394:18;17385:6;17333:80;:::i;:::-;17423;17499:2;17488:9;17484:18;17475:6;17423:80;:::i;:::-;17513:73;17581:3;17570:9;17566:19;17557:6;17513:73;:::i;:::-;17596;17664:3;17653:9;17649:19;17640:6;17596:73;:::i;:::-;16869:807;;;;;;;;;:::o;17682:143::-;17739:5;17770:6;17764:13;17755:22;;17786:33;17813:5;17786:33;:::i;:::-;17682:143;;;;:::o;17831:663::-;17919:6;17927;17935;17984:2;17972:9;17963:7;17959:23;17955:32;17952:119;;;17990:79;;:::i;:::-;17952:119;18110:1;18135:64;18191:7;18182:6;18171:9;18167:22;18135:64;:::i;:::-;18125:74;;18081:128;18248:2;18274:64;18330:7;18321:6;18310:9;18306:22;18274:64;:::i;:::-;18264:74;;18219:129;18387:2;18413:64;18469:7;18460:6;18449:9;18445:22;18413:64;:::i;:::-;18403:74;;18358:129;17831:663;;;;;:::o;18500:332::-;18621:4;18659:2;18648:9;18644:18;18636:26;;18672:71;18740:1;18729:9;18725:17;18716:6;18672:71;:::i;:::-;18753:72;18821:2;18810:9;18806:18;18797:6;18753:72;:::i;:::-;18500:332;;;;;:::o;18838:116::-;18908:21;18923:5;18908:21;:::i;:::-;18901:5;18898:32;18888:60;;18944:1;18941;18934:12;18888:60;18838:116;:::o;18960:137::-;19014:5;19045:6;19039:13;19030:22;;19061:30;19085:5;19061:30;:::i;:::-;18960:137;;;;:::o;19103:345::-;19170:6;19219:2;19207:9;19198:7;19194:23;19190:32;19187:119;;;19225:79;;:::i;:::-;19187:119;19345:1;19370:61;19423:7;19414:6;19403:9;19399:22;19370:61;:::i;:::-;19360:71;;19316:125;19103:345;;;;:::o;19454:180::-;19594:32;19590:1;19582:6;19578:14;19571:56;19454:180;:::o;19640:366::-;19782:3;19803:67;19867:2;19862:3;19803:67;:::i;:::-;19796:74;;19879:93;19968:3;19879:93;:::i;:::-;19997:2;19992:3;19988:12;19981:19;;19640:366;;;:::o;20012:419::-;20178:4;20216:2;20205:9;20201:18;20193:26;;20265:9;20259:4;20255:20;20251:1;20240:9;20236:17;20229:47;20293:131;20419:4;20293:131;:::i;:::-;20285:139;;20012:419;;;:::o;20437:241::-;20577:34;20573:1;20565:6;20561:14;20554:58;20646:24;20641:2;20633:6;20629:15;20622:49;20437:241;:::o;20684:366::-;20826:3;20847:67;20911:2;20906:3;20847:67;:::i;:::-;20840:74;;20923:93;21012:3;20923:93;:::i;:::-;21041:2;21036:3;21032:12;21025:19;;20684:366;;;:::o;21056:419::-;21222:4;21260:2;21249:9;21245:18;21237:26;;21309:9;21303:4;21299:20;21295:1;21284:9;21280:17;21273:47;21337:131;21463:4;21337:131;:::i;:::-;21329:139;;21056:419;;;:::o;21481:180::-;21529:77;21526:1;21519:88;21626:4;21623:1;21616:15;21650:4;21647:1;21640:15;21667:233;21706:3;21729:24;21747:5;21729:24;:::i;:::-;21720:33;;21775:66;21768:5;21765:77;21762:103;;21845:18;;:::i;:::-;21762:103;21892:1;21885:5;21881:13;21874:20;;21667:233;;;:::o;21906:223::-;22046:34;22042:1;22034:6;22030:14;22023:58;22115:6;22110:2;22102:6;22098:15;22091:31;21906:223;:::o;22135:366::-;22277:3;22298:67;22362:2;22357:3;22298:67;:::i;:::-;22291:74;;22374:93;22463:3;22374:93;:::i;:::-;22492:2;22487:3;22483:12;22476:19;;22135:366;;;:::o;22507:419::-;22673:4;22711:2;22700:9;22696:18;22688:26;;22760:9;22754:4;22750:20;22746:1;22735:9;22731:17;22724:47;22788:131;22914:4;22788:131;:::i;:::-;22780:139;;22507:419;;;:::o;22932:221::-;23072:34;23068:1;23060:6;23056:14;23049:58;23141:4;23136:2;23128:6;23124:15;23117:29;22932:221;:::o;23159:366::-;23301:3;23322:67;23386:2;23381:3;23322:67;:::i;:::-;23315:74;;23398:93;23487:3;23398:93;:::i;:::-;23516:2;23511:3;23507:12;23500:19;;23159:366;;;:::o;23531:419::-;23697:4;23735:2;23724:9;23720:18;23712:26;;23784:9;23778:4;23774:20;23770:1;23759:9;23755:17;23748:47;23812:131;23938:4;23812:131;:::i;:::-;23804:139;;23531:419;;;:::o;23956:224::-;24096:34;24092:1;24084:6;24080:14;24073:58;24165:7;24160:2;24152:6;24148:15;24141:32;23956:224;:::o;24186:366::-;24328:3;24349:67;24413:2;24408:3;24349:67;:::i;:::-;24342:74;;24425:93;24514:3;24425:93;:::i;:::-;24543:2;24538:3;24534:12;24527:19;;24186:366;;;:::o;24558:419::-;24724:4;24762:2;24751:9;24747:18;24739:26;;24811:9;24805:4;24801:20;24797:1;24786:9;24782:17;24775:47;24839:131;24965:4;24839:131;:::i;:::-;24831:139;;24558:419;;;:::o;24983:222::-;25123:34;25119:1;25111:6;25107:14;25100:58;25192:5;25187:2;25179:6;25175:15;25168:30;24983:222;:::o;25211:366::-;25353:3;25374:67;25438:2;25433:3;25374:67;:::i;:::-;25367:74;;25450:93;25539:3;25450:93;:::i;:::-;25568:2;25563:3;25559:12;25552:19;;25211:366;;;:::o;25583:419::-;25749:4;25787:2;25776:9;25772:18;25764:26;;25836:9;25830:4;25826:20;25822:1;25811:9;25807:17;25800:47;25864:131;25990:4;25864:131;:::i;:::-;25856:139;;25583:419;;;:::o;26008:228::-;26148:34;26144:1;26136:6;26132:14;26125:58;26217:11;26212:2;26204:6;26200:15;26193:36;26008:228;:::o;26242:366::-;26384:3;26405:67;26469:2;26464:3;26405:67;:::i;:::-;26398:74;;26481:93;26570:3;26481:93;:::i;:::-;26599:2;26594:3;26590:12;26583:19;;26242:366;;;:::o;26614:419::-;26780:4;26818:2;26807:9;26803:18;26795:26;;26867:9;26861:4;26857:20;26853:1;26842:9;26838:17;26831:47;26895:131;27021:4;26895:131;:::i;:::-;26887:139;;26614:419;;;:::o;27039:297::-;27179:34;27175:1;27167:6;27163:14;27156:58;27248:34;27243:2;27235:6;27231:15;27224:59;27317:11;27312:2;27304:6;27300:15;27293:36;27039:297;:::o;27342:366::-;27484:3;27505:67;27569:2;27564:3;27505:67;:::i;:::-;27498:74;;27581:93;27670:3;27581:93;:::i;:::-;27699:2;27694:3;27690:12;27683:19;;27342:366;;;:::o;27714:419::-;27880:4;27918:2;27907:9;27903:18;27895:26;;27967:9;27961:4;27957:20;27953:1;27942:9;27938:17;27931:47;27995:131;28121:4;27995:131;:::i;:::-;27987:139;;27714:419;;;:::o;28139:175::-;28279:27;28275:1;28267:6;28263:14;28256:51;28139:175;:::o;28320:366::-;28462:3;28483:67;28547:2;28542:3;28483:67;:::i;:::-;28476:74;;28559:93;28648:3;28559:93;:::i;:::-;28677:2;28672:3;28668:12;28661:19;;28320:366;;;:::o;28692:419::-;28858:4;28896:2;28885:9;28881:18;28873:26;;28945:9;28939:4;28935:20;28931:1;28920:9;28916:17;28909:47;28973:131;29099:4;28973:131;:::i;:::-;28965:139;;28692:419;;;:::o;29117:191::-;29157:3;29176:20;29194:1;29176:20;:::i;:::-;29171:25;;29210:20;29228:1;29210:20;:::i;:::-;29205:25;;29253:1;29250;29246:9;29239:16;;29274:3;29271:1;29268:10;29265:36;;;29281:18;;:::i;:::-;29265:36;29117:191;;;;:::o;29314:176::-;29454:28;29450:1;29442:6;29438:14;29431:52;29314:176;:::o;29496:366::-;29638:3;29659:67;29723:2;29718:3;29659:67;:::i;:::-;29652:74;;29735:93;29824:3;29735:93;:::i;:::-;29853:2;29848:3;29844:12;29837:19;;29496:366;;;:::o;29868:419::-;30034:4;30072:2;30061:9;30057:18;30049:26;;30121:9;30115:4;30111:20;30107:1;30096:9;30092:17;30085:47;30149:131;30275:4;30149:131;:::i;:::-;30141:139;;29868:419;;;:::o;30293:194::-;30333:4;30353:20;30371:1;30353:20;:::i;:::-;30348:25;;30387:20;30405:1;30387:20;:::i;:::-;30382:25;;30431:1;30428;30424:9;30416:17;;30455:1;30449:4;30446:11;30443:37;;;30460:18;;:::i;:::-;30443:37;30293:194;;;;:::o;30493:114::-;30560:6;30594:5;30588:12;30578:22;;30493:114;;;:::o;30613:184::-;30712:11;30746:6;30741:3;30734:19;30786:4;30781:3;30777:14;30762:29;;30613:184;;;;:::o;30803:132::-;30870:4;30893:3;30885:11;;30923:4;30918:3;30914:14;30906:22;;30803:132;;;:::o;30941:108::-;31018:24;31036:5;31018:24;:::i;:::-;31013:3;31006:37;30941:108;;:::o;31055:179::-;31124:10;31145:46;31187:3;31179:6;31145:46;:::i;:::-;31223:4;31218:3;31214:14;31200:28;;31055:179;;;;:::o;31240:113::-;31310:4;31342;31337:3;31333:14;31325:22;;31240:113;;;:::o;31389:732::-;31508:3;31537:54;31585:5;31537:54;:::i;:::-;31607:86;31686:6;31681:3;31607:86;:::i;:::-;31600:93;;31717:56;31767:5;31717:56;:::i;:::-;31796:7;31827:1;31812:284;31837:6;31834:1;31831:13;31812:284;;;31913:6;31907:13;31940:63;31999:3;31984:13;31940:63;:::i;:::-;31933:70;;32026:60;32079:6;32026:60;:::i;:::-;32016:70;;31872:224;31859:1;31856;31852:9;31847:14;;31812:284;;;31816:14;32112:3;32105:10;;31513:608;;;31389:732;;;;:::o;32127:831::-;32390:4;32428:3;32417:9;32413:19;32405:27;;32442:71;32510:1;32499:9;32495:17;32486:6;32442:71;:::i;:::-;32523:80;32599:2;32588:9;32584:18;32575:6;32523:80;:::i;:::-;32650:9;32644:4;32640:20;32635:2;32624:9;32620:18;32613:48;32678:108;32781:4;32772:6;32678:108;:::i;:::-;32670:116;;32796:72;32864:2;32853:9;32849:18;32840:6;32796:72;:::i;:::-;32878:73;32946:3;32935:9;32931:19;32922:6;32878:73;:::i;:::-;32127:831;;;;;;;;:::o;32964:180::-;33012:77;33009:1;33002:88;33109:4;33106:1;33099:15;33133:4;33130:1;33123:15;33150:185;33190:1;33207:20;33225:1;33207:20;:::i;:::-;33202:25;;33241:20;33259:1;33241:20;:::i;:::-;33236:25;;33280:1;33270:35;;33285:18;;:::i;:::-;33270:35;33327:1;33324;33320:9;33315:14;;33150:185;;;;:::o;33341:220::-;33481:34;33477:1;33469:6;33465:14;33458:58;33550:3;33545:2;33537:6;33533:15;33526:28;33341:220;:::o;33567:366::-;33709:3;33730:67;33794:2;33789:3;33730:67;:::i;:::-;33723:74;;33806:93;33895:3;33806:93;:::i;:::-;33924:2;33919:3;33915:12;33908:19;;33567:366;;;:::o;33939:419::-;34105:4;34143:2;34132:9;34128:18;34120:26;;34192:9;34186:4;34182:20;34178:1;34167:9;34163:17;34156:47;34220:131;34346:4;34220:131;:::i;:::-;34212:139;;33939:419;;;:::o;34364:177::-;34504:29;34500:1;34492:6;34488:14;34481:53;34364:177;:::o;34547:366::-;34689:3;34710:67;34774:2;34769:3;34710:67;:::i;:::-;34703:74;;34786:93;34875:3;34786:93;:::i;:::-;34904:2;34899:3;34895:12;34888:19;;34547:366;;;:::o;34919:419::-;35085:4;35123:2;35112:9;35108:18;35100:26;;35172:9;35166:4;35162:20;35158:1;35147:9;35143:17;35136:47;35200:131;35326:4;35200:131;:::i;:::-;35192:139;;34919:419;;;:::o

Swarm Source

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