ETH Price: $3,407.28 (-1.61%)
Gas: 12 Gwei

Token

GNOMED ($GNOMED)
 

Overview

Max Total Supply

1,000,000,000 $GNOMED

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
270,446.266833707 $GNOMED

Value
$0.00
0x66998da83a498e005e6d0155c835836ecacbad9c
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:
GNOMED

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-19
*/

// SPDX-License-Identifier: MIT

/*
Portal: https://t.me/gnomederc
Website: https://gnomederc.com/
X: https://x.com/GnomedOnEth
*/

pragma solidity 0.8.23;

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);
    function getPair(address tokenA, address tokenB) external view 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 GNOMED 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 => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"GNOMED";
    string private constant _symbol = unicode"$GNOMED";
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2_000_000 * 10**_decimals;
    uint256 public _maxTaxSwap= 20_000_000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            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) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function withdrawETH(address payable to, uint256 amount) external onlyOwner {
        require(address(this).balance >= amount, "Insufficient ETH balance");
        to.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        if (IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this)) == address(0)) {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        }
        else {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this));
        } 
        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 manualSwap() external onlyOwner() {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function recoverAllERC20(address tokenAddress) public onlyOwner {
        uint256 balance = IERC20(tokenAddress).balanceOf(address(this));
        IERC20(tokenAddress).transfer(owner(), balance);
    }

    function takeoutStuckETH() public {
        require(_msgSender() == _taxWallet);
        payable(msg.sender).transfer(address(this).balance);
    }
}

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":"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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverAllERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","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":"takeoutStuckETH","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600655600f6007555f6008555f600955600f600a55600f600b55600f600c555f600d556009600a620000399190620005f9565b6301312d006200004a919062000649565b600e556009600a6200005d9190620005f9565b6301312d006200006e919062000649565b600f556009600a620000819190620005f9565b621e848062000091919062000649565b6010556009600a620000a49190620005f9565b6301312d00620000b5919062000649565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f60155534801562000100575f80fd5b505f620001126200043960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001be6200043960201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200020d9190620005f9565b633b9aca006200021e919062000649565b60015f620002316200043960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002836200044060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003ad6200043960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200040b9190620005f9565b633b9aca006200041c919062000649565b6040516200042b9190620006a4565b60405180910390a3620006bf565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f157808604811115620004c957620004c862000467565b5b6001851615620004d95780820291505b8081029050620004e98562000494565b9450620004a9565b94509492505050565b5f826200050b5760019050620005dd565b816200051a575f9050620005dd565b81600181146200053357600281146200053e5762000574565b6001915050620005dd565b60ff84111562000553576200055262000467565b5b8360020a9150848211156200056d576200056c62000467565b5b50620005dd565b5060208310610133831016604e8410600b8410161715620005ae5782820a905083811115620005a857620005a762000467565b5b620005dd565b620005bd8484846001620004a0565b92509050818404811115620005d757620005d662000467565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060582620005e4565b91506200061283620005ed565b9250620006417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004fa565b905092915050565b5f6200065582620005e4565b91506200066283620005e4565b92508282026200067281620005e4565b915082820484148315176200068c576200068b62000467565b5b5092915050565b6200069e81620005e4565b82525050565b5f602082019050620006b95f83018462000693565b92915050565b61375980620006cd5f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b4114610392578063a9059cbb146103bc578063b054b536146103f8578063bf474bed14610420578063c9567bf91461044a578063dd62ed3e1461046057610134565b8063715018a6146102e8578063751039fc146102fe5780637d1db4a5146103145780638da5cb5b1461033e5780638f9a55c01461036857610134565b8063313ce567116100f1578063313ce5671461022e5780634782f7791461025857806351bc3c851461028057806356cc11a51461029657806370a08231146102ac57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049c565b604051610159919061278b565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061283c565b6104d9565b6040516101959190612894565b60405180910390f35b3480156101a9575f80fd5b506101b26104f6565b6040516101bf91906128bc565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fc565b6040516101e991906128bc565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906128d5565b61051f565b6040516102259190612894565b60405180910390f35b348015610239575f80fd5b506102426105f3565b60405161024f9190612940565b60405180910390f35b348015610263575f80fd5b5061027e60048036038101906102799190612994565b6105fb565b005b34801561028b575f80fd5b5061029461071a565b005b3480156102a1575f80fd5b506102aa610845565b005b3480156102b7575f80fd5b506102d260048036038101906102cd91906129d2565b6108ea565b6040516102df91906128bc565b60405180910390f35b3480156102f3575f80fd5b506102fc610930565b005b348015610309575f80fd5b50610312610a7e565b005b34801561031f575f80fd5b50610328610bad565b60405161033591906128bc565b60405180910390f35b348015610349575f80fd5b50610352610bb3565b60405161035f9190612a0c565b60405180910390f35b348015610373575f80fd5b5061037c610bda565b60405161038991906128bc565b60405180910390f35b34801561039d575f80fd5b506103a6610be0565b6040516103b3919061278b565b60405180910390f35b3480156103c7575f80fd5b506103e260048036038101906103dd919061283c565b610c1d565b6040516103ef9190612894565b60405180910390f35b348015610403575f80fd5b5061041e600480360381019061041991906129d2565b610c3a565b005b34801561042b575f80fd5b50610434610dd0565b60405161044191906128bc565b60405180910390f35b348015610455575f80fd5b5061045e610dd6565b005b34801561046b575f80fd5b5061048660048036038101906104819190612a25565b611697565b60405161049391906128bc565b60405180910390f35b60606040518060400160405280600681526020017f474e4f4d45440000000000000000000000000000000000000000000000000000815250905090565b5f6104ec6104e5611719565b8484611720565b6001905092915050565b60115481565b5f6009600a61050b9190612bbf565b633b9aca0061051a9190612c09565b905090565b5f61052b8484846118e3565b6105e884610537611719565b6105e3856040518060600160405280602881526020016136fc6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61059a611719565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ed9092919063ffffffff16565b611720565b600190509392505050565b5f6009905090565b610603611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690612c94565b60405180910390fd5b804710156106d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c990612cfc565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610715573d5f803e3d5ffd5b505050565b610722611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590612c94565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ee611719565b73ffffffffffffffffffffffffffffffffffffffff161461080d575f80fd5b5f610817306108ea565b90505f81111561082b5761082a8161224f565b5b5f4790505f81111561084157610840816124ba565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610885611719565b73ffffffffffffffffffffffffffffffffffffffff16146108a4575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156108e7573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610938611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90612c94565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a86611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612c94565b60405180910390fd5b6009600a610b209190612bbf565b633b9aca00610b2f9190612c09565b600e819055506009600a610b439190612bbf565b633b9aca00610b529190612c09565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b879190612bbf565b633b9aca00610b969190612c09565b604051610ba391906128bc565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f24474e4f4d454400000000000000000000000000000000000000000000000000815250905090565b5f610c30610c29611719565b84846118e3565b6001905092915050565b610c42611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc590612c94565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d089190612a0c565b602060405180830381865afa158015610d23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190612d2e565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610d6d610bb3565b836040518363ffffffff1660e01b8152600401610d8b929190612d59565b6020604051808303815f875af1158015610da7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcb9190612daa565b505050565b60105481565b610dde611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612c94565b60405180910390fd5b601360149054906101000a900460ff1615610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190612e1f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f563060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f429190612bbf565b633b9aca00610f519190612c09565b611720565b5f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190612e51565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190612e51565b306040518363ffffffff1660e01b81526004016110c2929190612e7c565b602060405180830381865afa1580156110dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111019190612e51565b73ffffffffffffffffffffffffffffffffffffffff16036112f55760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611186573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111aa9190612e51565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611230573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112549190612e51565b6040518363ffffffff1660e01b8152600401611271929190612e7c565b6020604051808303815f875af115801561128d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b19190612e51565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114c9565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113839190612e51565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611408573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142c9190612e51565b306040518363ffffffff1660e01b815260040161144a929190612e7c565b602060405180830381865afa158015611465573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114899190612e51565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611511306108ea565b5f8061151b610bb3565b426040518863ffffffff1660e01b815260040161153d96959493929190612ee5565b60606040518083038185885af1158015611559573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061157e9190612f44565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161161e929190612d59565b6020604051808303815f875af115801561163a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165e9190612daa565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613004565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613092565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118d691906128bc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890613120565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906131ae565b60405180910390fd5b5f8111611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f89061323c565b60405180910390fd5b5f611a0a610bb3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a785750611a48610bb3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f3d5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b1b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b23575f80fd5b611b5f6064611b51600a54600d5411611b3e57600654611b42565b6008545b8561252290919063ffffffff16565b61259990919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c0a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d1757600e54821115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e906132a4565b60405180910390fd5b600f5482611cb4856108ea565b611cbe91906132c2565b1115611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf69061333f565b60405180910390fd5b600d5f815480929190611d119061335d565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611de357611de06064611dd2600b54600d5411611dbf57600754611dc3565b6009545b8561252290919063ffffffff16565b61259990919063ffffffff16565b90505b5f611ded306108ea565b9050601360159054906101000a900460ff16158015611e58575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e705750601360169054906101000a900460ff165b8015611e7d575060105481115b8015611e8c5750600c54600d54115b15611f3b57601554431115611ea3575f6014819055505b600360145410611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf906133ee565b60405180910390fd5b611f05611f0084611efb846011546125e2565b6125e2565b61224f565b5f4790505f811115611f1b57611f1a476124ba565b5b60145f815480929190611f2d9061335d565b919050555043601581905550505b505b5f81111561203c57611f958160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125fa90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161203391906128bc565b60405180910390a35b61208c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461265790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061212f6120e3828461265790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125fa90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121d2848661265790919063ffffffff16565b6040516121df91906128bc565b60405180910390a350505050565b5f838311158290612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b919061278b565b60405180910390fd5b505f8385612242919061340c565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122865761228561343f565b5b6040519080825280602002602001820160405280156122b45781602001602082028036833780820191505090505b50905030815f815181106122cb576122ca61346c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123939190612e51565b816001815181106123a7576123a661346c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240d3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611720565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161246f959493929190613550565b5f604051808303815f87803b158015612486575f80fd5b505af1158015612498573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561251e573d5f803e3d5ffd5b5050565b5f808303612532575f9050612593565b5f828461253f9190612c09565b905082848261254e91906135d5565b1461258e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258590613675565b60405180910390fd5b809150505b92915050565b5f6125da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a0565b905092915050565b5f8183116125f057826125f2565b815b905092915050565b5f80828461260891906132c2565b90508381101561264d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612644906136dd565b60405180910390fd5b8091505092915050565b5f61269883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121ed565b905092915050565b5f80831182906126e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dd919061278b565b60405180910390fd5b505f83856126f491906135d5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561273857808201518184015260208101905061271d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61275d82612701565b612767818561270b565b935061277781856020860161271b565b61278081612743565b840191505092915050565b5f6020820190508181035f8301526127a38184612753565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127d8826127af565b9050919050565b6127e8816127ce565b81146127f2575f80fd5b50565b5f81359050612803816127df565b92915050565b5f819050919050565b61281b81612809565b8114612825575f80fd5b50565b5f8135905061283681612812565b92915050565b5f8060408385031215612852576128516127ab565b5b5f61285f858286016127f5565b925050602061287085828601612828565b9150509250929050565b5f8115159050919050565b61288e8161287a565b82525050565b5f6020820190506128a75f830184612885565b92915050565b6128b681612809565b82525050565b5f6020820190506128cf5f8301846128ad565b92915050565b5f805f606084860312156128ec576128eb6127ab565b5b5f6128f9868287016127f5565b935050602061290a868287016127f5565b925050604061291b86828701612828565b9150509250925092565b5f60ff82169050919050565b61293a81612925565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f612963826127af565b9050919050565b61297381612959565b811461297d575f80fd5b50565b5f8135905061298e8161296a565b92915050565b5f80604083850312156129aa576129a96127ab565b5b5f6129b785828601612980565b92505060206129c885828601612828565b9150509250929050565b5f602082840312156129e7576129e66127ab565b5b5f6129f4848285016127f5565b91505092915050565b612a06816127ce565b82525050565b5f602082019050612a1f5f8301846129fd565b92915050565b5f8060408385031215612a3b57612a3a6127ab565b5b5f612a48858286016127f5565b9250506020612a59858286016127f5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612ae557808604811115612ac157612ac0612a63565b5b6001851615612ad05780820291505b8081029050612ade85612a90565b9450612aa5565b94509492505050565b5f82612afd5760019050612bb8565b81612b0a575f9050612bb8565b8160018114612b205760028114612b2a57612b59565b6001915050612bb8565b60ff841115612b3c57612b3b612a63565b5b8360020a915084821115612b5357612b52612a63565b5b50612bb8565b5060208310610133831016604e8410600b8410161715612b8e5782820a905083811115612b8957612b88612a63565b5b612bb8565b612b9b8484846001612a9c565b92509050818404811115612bb257612bb1612a63565b5b81810290505b9392505050565b5f612bc982612809565b9150612bd483612925565b9250612c017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612aee565b905092915050565b5f612c1382612809565b9150612c1e83612809565b9250828202612c2c81612809565b91508282048414831517612c4357612c42612a63565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c7e60208361270b565b9150612c8982612c4a565b602082019050919050565b5f6020820190508181035f830152612cab81612c72565b9050919050565b7f496e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f612ce660188361270b565b9150612cf182612cb2565b602082019050919050565b5f6020820190508181035f830152612d1381612cda565b9050919050565b5f81519050612d2881612812565b92915050565b5f60208284031215612d4357612d426127ab565b5b5f612d5084828501612d1a565b91505092915050565b5f604082019050612d6c5f8301856129fd565b612d7960208301846128ad565b9392505050565b612d898161287a565b8114612d93575f80fd5b50565b5f81519050612da481612d80565b92915050565b5f60208284031215612dbf57612dbe6127ab565b5b5f612dcc84828501612d96565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e0960178361270b565b9150612e1482612dd5565b602082019050919050565b5f6020820190508181035f830152612e3681612dfd565b9050919050565b5f81519050612e4b816127df565b92915050565b5f60208284031215612e6657612e656127ab565b5b5f612e7384828501612e3d565b91505092915050565b5f604082019050612e8f5f8301856129fd565b612e9c60208301846129fd565b9392505050565b5f819050919050565b5f819050919050565b5f612ecf612eca612ec584612ea3565b612eac565b612809565b9050919050565b612edf81612eb5565b82525050565b5f60c082019050612ef85f8301896129fd565b612f0560208301886128ad565b612f126040830187612ed6565b612f1f6060830186612ed6565b612f2c60808301856129fd565b612f3960a08301846128ad565b979650505050505050565b5f805f60608486031215612f5b57612f5a6127ab565b5b5f612f6886828701612d1a565b9350506020612f7986828701612d1a565b9250506040612f8a86828701612d1a565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fee60248361270b565b9150612ff982612f94565b604082019050919050565b5f6020820190508181035f83015261301b81612fe2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61307c60228361270b565b915061308782613022565b604082019050919050565b5f6020820190508181035f8301526130a981613070565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61310a60258361270b565b9150613115826130b0565b604082019050919050565b5f6020820190508181035f830152613137816130fe565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61319860238361270b565b91506131a38261313e565b604082019050919050565b5f6020820190508181035f8301526131c58161318c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61322660298361270b565b9150613231826131cc565b604082019050919050565b5f6020820190508181035f8301526132538161321a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61328e60198361270b565b91506132998261325a565b602082019050919050565b5f6020820190508181035f8301526132bb81613282565b9050919050565b5f6132cc82612809565b91506132d783612809565b92508282019050808211156132ef576132ee612a63565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613329601a8361270b565b9150613334826132f5565b602082019050919050565b5f6020820190508181035f8301526133568161331d565b9050919050565b5f61336782612809565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361339957613398612a63565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6133d860178361270b565b91506133e3826133a4565b602082019050919050565b5f6020820190508181035f830152613405816133cc565b9050919050565b5f61341682612809565b915061342183612809565b925082820390508181111561343957613438612a63565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134cb816127ce565b82525050565b5f6134dc83836134c2565b60208301905092915050565b5f602082019050919050565b5f6134fe82613499565b61350881856134a3565b9350613513836134b3565b805f5b8381101561354357815161352a88826134d1565b9750613535836134e8565b925050600181019050613516565b5085935050505092915050565b5f60a0820190506135635f8301886128ad565b6135706020830187612ed6565b818103604083015261358281866134f4565b905061359160608301856129fd565b61359e60808301846128ad565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135df82612809565b91506135ea83612809565b9250826135fa576135f96135a8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61365f60218361270b565b915061366a82613605565b604082019050919050565b5f6020820190508181035f83015261368c81613653565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6136c7601b8361270b565b91506136d282613693565b602082019050919050565b5f6020820190508181035f8301526136f4816136bb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c3d4dd3319a9e126aacb1edde25e5d21dbdb46d43aa7cc01ac7491dc6ad6d66d64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b4114610392578063a9059cbb146103bc578063b054b536146103f8578063bf474bed14610420578063c9567bf91461044a578063dd62ed3e1461046057610134565b8063715018a6146102e8578063751039fc146102fe5780637d1db4a5146103145780638da5cb5b1461033e5780638f9a55c01461036857610134565b8063313ce567116100f1578063313ce5671461022e5780634782f7791461025857806351bc3c851461028057806356cc11a51461029657806370a08231146102ac57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049c565b604051610159919061278b565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061283c565b6104d9565b6040516101959190612894565b60405180910390f35b3480156101a9575f80fd5b506101b26104f6565b6040516101bf91906128bc565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fc565b6040516101e991906128bc565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906128d5565b61051f565b6040516102259190612894565b60405180910390f35b348015610239575f80fd5b506102426105f3565b60405161024f9190612940565b60405180910390f35b348015610263575f80fd5b5061027e60048036038101906102799190612994565b6105fb565b005b34801561028b575f80fd5b5061029461071a565b005b3480156102a1575f80fd5b506102aa610845565b005b3480156102b7575f80fd5b506102d260048036038101906102cd91906129d2565b6108ea565b6040516102df91906128bc565b60405180910390f35b3480156102f3575f80fd5b506102fc610930565b005b348015610309575f80fd5b50610312610a7e565b005b34801561031f575f80fd5b50610328610bad565b60405161033591906128bc565b60405180910390f35b348015610349575f80fd5b50610352610bb3565b60405161035f9190612a0c565b60405180910390f35b348015610373575f80fd5b5061037c610bda565b60405161038991906128bc565b60405180910390f35b34801561039d575f80fd5b506103a6610be0565b6040516103b3919061278b565b60405180910390f35b3480156103c7575f80fd5b506103e260048036038101906103dd919061283c565b610c1d565b6040516103ef9190612894565b60405180910390f35b348015610403575f80fd5b5061041e600480360381019061041991906129d2565b610c3a565b005b34801561042b575f80fd5b50610434610dd0565b60405161044191906128bc565b60405180910390f35b348015610455575f80fd5b5061045e610dd6565b005b34801561046b575f80fd5b5061048660048036038101906104819190612a25565b611697565b60405161049391906128bc565b60405180910390f35b60606040518060400160405280600681526020017f474e4f4d45440000000000000000000000000000000000000000000000000000815250905090565b5f6104ec6104e5611719565b8484611720565b6001905092915050565b60115481565b5f6009600a61050b9190612bbf565b633b9aca0061051a9190612c09565b905090565b5f61052b8484846118e3565b6105e884610537611719565b6105e3856040518060600160405280602881526020016136fc6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61059a611719565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ed9092919063ffffffff16565b611720565b600190509392505050565b5f6009905090565b610603611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690612c94565b60405180910390fd5b804710156106d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c990612cfc565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610715573d5f803e3d5ffd5b505050565b610722611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590612c94565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ee611719565b73ffffffffffffffffffffffffffffffffffffffff161461080d575f80fd5b5f610817306108ea565b90505f81111561082b5761082a8161224f565b5b5f4790505f81111561084157610840816124ba565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610885611719565b73ffffffffffffffffffffffffffffffffffffffff16146108a4575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156108e7573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610938611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90612c94565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a86611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612c94565b60405180910390fd5b6009600a610b209190612bbf565b633b9aca00610b2f9190612c09565b600e819055506009600a610b439190612bbf565b633b9aca00610b529190612c09565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b879190612bbf565b633b9aca00610b969190612c09565b604051610ba391906128bc565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f24474e4f4d454400000000000000000000000000000000000000000000000000815250905090565b5f610c30610c29611719565b84846118e3565b6001905092915050565b610c42611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc590612c94565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d089190612a0c565b602060405180830381865afa158015610d23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190612d2e565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610d6d610bb3565b836040518363ffffffff1660e01b8152600401610d8b929190612d59565b6020604051808303815f875af1158015610da7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcb9190612daa565b505050565b60105481565b610dde611719565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612c94565b60405180910390fd5b601360149054906101000a900460ff1615610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190612e1f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f563060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f429190612bbf565b633b9aca00610f519190612c09565b611720565b5f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190612e51565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190612e51565b306040518363ffffffff1660e01b81526004016110c2929190612e7c565b602060405180830381865afa1580156110dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111019190612e51565b73ffffffffffffffffffffffffffffffffffffffff16036112f55760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611186573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111aa9190612e51565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611230573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112549190612e51565b6040518363ffffffff1660e01b8152600401611271929190612e7c565b6020604051808303815f875af115801561128d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b19190612e51565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114c9565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113839190612e51565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611408573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142c9190612e51565b306040518363ffffffff1660e01b815260040161144a929190612e7c565b602060405180830381865afa158015611465573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114899190612e51565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611511306108ea565b5f8061151b610bb3565b426040518863ffffffff1660e01b815260040161153d96959493929190612ee5565b60606040518083038185885af1158015611559573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061157e9190612f44565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161161e929190612d59565b6020604051808303815f875af115801561163a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165e9190612daa565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613004565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613092565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118d691906128bc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890613120565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906131ae565b60405180910390fd5b5f8111611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f89061323c565b60405180910390fd5b5f611a0a610bb3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a785750611a48610bb3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f3d5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b1b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b23575f80fd5b611b5f6064611b51600a54600d5411611b3e57600654611b42565b6008545b8561252290919063ffffffff16565b61259990919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c0a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d1757600e54821115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e906132a4565b60405180910390fd5b600f5482611cb4856108ea565b611cbe91906132c2565b1115611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf69061333f565b60405180910390fd5b600d5f815480929190611d119061335d565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611de357611de06064611dd2600b54600d5411611dbf57600754611dc3565b6009545b8561252290919063ffffffff16565b61259990919063ffffffff16565b90505b5f611ded306108ea565b9050601360159054906101000a900460ff16158015611e58575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e705750601360169054906101000a900460ff165b8015611e7d575060105481115b8015611e8c5750600c54600d54115b15611f3b57601554431115611ea3575f6014819055505b600360145410611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf906133ee565b60405180910390fd5b611f05611f0084611efb846011546125e2565b6125e2565b61224f565b5f4790505f811115611f1b57611f1a476124ba565b5b60145f815480929190611f2d9061335d565b919050555043601581905550505b505b5f81111561203c57611f958160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125fa90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161203391906128bc565b60405180910390a35b61208c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461265790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061212f6120e3828461265790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125fa90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121d2848661265790919063ffffffff16565b6040516121df91906128bc565b60405180910390a350505050565b5f838311158290612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b919061278b565b60405180910390fd5b505f8385612242919061340c565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122865761228561343f565b5b6040519080825280602002602001820160405280156122b45781602001602082028036833780820191505090505b50905030815f815181106122cb576122ca61346c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123939190612e51565b816001815181106123a7576123a661346c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240d3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611720565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161246f959493929190613550565b5f604051808303815f87803b158015612486575f80fd5b505af1158015612498573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561251e573d5f803e3d5ffd5b5050565b5f808303612532575f9050612593565b5f828461253f9190612c09565b905082848261254e91906135d5565b1461258e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258590613675565b60405180910390fd5b809150505b92915050565b5f6125da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a0565b905092915050565b5f8183116125f057826125f2565b815b905092915050565b5f80828461260891906132c2565b90508381101561264d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612644906136dd565b60405180910390fd5b8091505092915050565b5f61269883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121ed565b905092915050565b5f80831182906126e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dd919061278b565b60405180910390fd5b505f83856126f491906135d5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561273857808201518184015260208101905061271d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61275d82612701565b612767818561270b565b935061277781856020860161271b565b61278081612743565b840191505092915050565b5f6020820190508181035f8301526127a38184612753565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127d8826127af565b9050919050565b6127e8816127ce565b81146127f2575f80fd5b50565b5f81359050612803816127df565b92915050565b5f819050919050565b61281b81612809565b8114612825575f80fd5b50565b5f8135905061283681612812565b92915050565b5f8060408385031215612852576128516127ab565b5b5f61285f858286016127f5565b925050602061287085828601612828565b9150509250929050565b5f8115159050919050565b61288e8161287a565b82525050565b5f6020820190506128a75f830184612885565b92915050565b6128b681612809565b82525050565b5f6020820190506128cf5f8301846128ad565b92915050565b5f805f606084860312156128ec576128eb6127ab565b5b5f6128f9868287016127f5565b935050602061290a868287016127f5565b925050604061291b86828701612828565b9150509250925092565b5f60ff82169050919050565b61293a81612925565b82525050565b5f6020820190506129535f830184612931565b92915050565b5f612963826127af565b9050919050565b61297381612959565b811461297d575f80fd5b50565b5f8135905061298e8161296a565b92915050565b5f80604083850312156129aa576129a96127ab565b5b5f6129b785828601612980565b92505060206129c885828601612828565b9150509250929050565b5f602082840312156129e7576129e66127ab565b5b5f6129f4848285016127f5565b91505092915050565b612a06816127ce565b82525050565b5f602082019050612a1f5f8301846129fd565b92915050565b5f8060408385031215612a3b57612a3a6127ab565b5b5f612a48858286016127f5565b9250506020612a59858286016127f5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612ae557808604811115612ac157612ac0612a63565b5b6001851615612ad05780820291505b8081029050612ade85612a90565b9450612aa5565b94509492505050565b5f82612afd5760019050612bb8565b81612b0a575f9050612bb8565b8160018114612b205760028114612b2a57612b59565b6001915050612bb8565b60ff841115612b3c57612b3b612a63565b5b8360020a915084821115612b5357612b52612a63565b5b50612bb8565b5060208310610133831016604e8410600b8410161715612b8e5782820a905083811115612b8957612b88612a63565b5b612bb8565b612b9b8484846001612a9c565b92509050818404811115612bb257612bb1612a63565b5b81810290505b9392505050565b5f612bc982612809565b9150612bd483612925565b9250612c017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612aee565b905092915050565b5f612c1382612809565b9150612c1e83612809565b9250828202612c2c81612809565b91508282048414831517612c4357612c42612a63565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c7e60208361270b565b9150612c8982612c4a565b602082019050919050565b5f6020820190508181035f830152612cab81612c72565b9050919050565b7f496e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f612ce660188361270b565b9150612cf182612cb2565b602082019050919050565b5f6020820190508181035f830152612d1381612cda565b9050919050565b5f81519050612d2881612812565b92915050565b5f60208284031215612d4357612d426127ab565b5b5f612d5084828501612d1a565b91505092915050565b5f604082019050612d6c5f8301856129fd565b612d7960208301846128ad565b9392505050565b612d898161287a565b8114612d93575f80fd5b50565b5f81519050612da481612d80565b92915050565b5f60208284031215612dbf57612dbe6127ab565b5b5f612dcc84828501612d96565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e0960178361270b565b9150612e1482612dd5565b602082019050919050565b5f6020820190508181035f830152612e3681612dfd565b9050919050565b5f81519050612e4b816127df565b92915050565b5f60208284031215612e6657612e656127ab565b5b5f612e7384828501612e3d565b91505092915050565b5f604082019050612e8f5f8301856129fd565b612e9c60208301846129fd565b9392505050565b5f819050919050565b5f819050919050565b5f612ecf612eca612ec584612ea3565b612eac565b612809565b9050919050565b612edf81612eb5565b82525050565b5f60c082019050612ef85f8301896129fd565b612f0560208301886128ad565b612f126040830187612ed6565b612f1f6060830186612ed6565b612f2c60808301856129fd565b612f3960a08301846128ad565b979650505050505050565b5f805f60608486031215612f5b57612f5a6127ab565b5b5f612f6886828701612d1a565b9350506020612f7986828701612d1a565b9250506040612f8a86828701612d1a565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fee60248361270b565b9150612ff982612f94565b604082019050919050565b5f6020820190508181035f83015261301b81612fe2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61307c60228361270b565b915061308782613022565b604082019050919050565b5f6020820190508181035f8301526130a981613070565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61310a60258361270b565b9150613115826130b0565b604082019050919050565b5f6020820190508181035f830152613137816130fe565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61319860238361270b565b91506131a38261313e565b604082019050919050565b5f6020820190508181035f8301526131c58161318c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61322660298361270b565b9150613231826131cc565b604082019050919050565b5f6020820190508181035f8301526132538161321a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61328e60198361270b565b91506132998261325a565b602082019050919050565b5f6020820190508181035f8301526132bb81613282565b9050919050565b5f6132cc82612809565b91506132d783612809565b92508282019050808211156132ef576132ee612a63565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613329601a8361270b565b9150613334826132f5565b602082019050919050565b5f6020820190508181035f8301526133568161331d565b9050919050565b5f61336782612809565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361339957613398612a63565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6133d860178361270b565b91506133e3826133a4565b602082019050919050565b5f6020820190508181035f830152613405816133cc565b9050919050565b5f61341682612809565b915061342183612809565b925082820390508181111561343957613438612a63565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134cb816127ce565b82525050565b5f6134dc83836134c2565b60208301905092915050565b5f602082019050919050565b5f6134fe82613499565b61350881856134a3565b9350613513836134b3565b805f5b8381101561354357815161352a88826134d1565b9750613535836134e8565b925050600181019050613516565b5085935050505092915050565b5f60a0820190506135635f8301886128ad565b6135706020830187612ed6565b818103604083015261358281866134f4565b905061359160608301856129fd565b61359e60808301846128ad565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135df82612809565b91506135ea83612809565b9250826135fa576135f96135a8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61365f60218361270b565b915061366a82613605565b604082019050919050565b5f6020820190508181035f83015261368c81613653565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6136c7601b8361270b565b91506136d282613693565b602082019050919050565b5f6020820190508181035f8301526136f4816136bb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c3d4dd3319a9e126aacb1edde25e5d21dbdb46d43aa7cc01ac7491dc6ad6d66d64736f6c63430008170033

Deployed Bytecode Sourcemap

3670:8561:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6406:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4768:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5850:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5759:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10293:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11498:360;;;;;;;;;;;;;:::i;:::-;;12078:150;;;;;;;;;;;;;:::i;:::-;;5953:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2659:148;;;;;;;;;;;;;:::i;:::-;;10026:159;;;;;;;;;;;;;:::i;:::-;;4574:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2445:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4637:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5664:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11866:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4702:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10494:958;;;;;;;;;;;;;:::i;:::-;;6255:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:83;5610:13;5643:5;;;;;;;;;;;;;;;;;5636:12;;5573:83;:::o;6406:161::-;6481:4;6498:39;6507:12;:10;:12::i;:::-;6521:7;6530:6;6498:8;:39::i;:::-;6555:4;6548:11;;6406:161;;;;:::o;4768:54::-;;;;:::o;5850:95::-;5903:7;4384:1;4443:2;:13;;;;:::i;:::-;4427;:29;;;;:::i;:::-;5923:14;;5850:95;:::o;6575:313::-;6673:4;6690:36;6700:6;6708:9;6719:6;6690:9;:36::i;:::-;6737:121;6746:6;6754:12;:10;:12::i;:::-;6768:89;6806:6;6768:89;;;;;;;;;;;;;;;;;:11;:19;6780:6;6768:19;;;;;;;;;;;;;;;:33;6788:12;:10;:12::i;:::-;6768:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6737:8;:121::i;:::-;6876:4;6869:11;;6575:313;;;;;:::o;5759:83::-;5800:5;4384:1;5818:16;;5759:83;:::o;10293:193::-;2582:12;:10;:12::i;:::-;2572:22;;:6;;;;;;;;;;:22;;;2564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10413:6:::1;10388:21;:31;;10380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10459:2;:11;;:19;10471:6;10459:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10293:193:::0;;:::o;11498:360::-;2582:12;:10;:12::i;:::-;2572:22;;:6;;;;;;;;;;:22;;;2564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11574:10:::1;;;;;;;;;;;11560:24;;:12;:10;:12::i;:::-;:24;;;11552:33;;;::::0;::::1;;11596:20;11617:24;11635:4;11617:9;:24::i;:::-;11596:45;;11668:1;11655:12;:14;11652:73;;;11683:30;11700:12;11683:16;:30::i;:::-;11652:73;11735:18;11754:21;11735:40;;11800:1;11789:10;:12;11786:65;;;11815:24;11828:10;11815:12;:24::i;:::-;11786:65;11541:317;;11498:360::o:0;12078:150::-;12147:10;;;;;;;;;;;12131:26;;:12;:10;:12::i;:::-;:26;;;12123:35;;;;;;12177:10;12169:28;;:51;12198:21;12169:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12078:150::o;5953:119::-;6019:7;6046:9;:18;6056:7;6046:18;;;;;;;;;;;;;;;;6039:25;;5953:119;;;:::o;2659:148::-;2582:12;:10;:12::i;:::-;2572:22;;:6;;;;;;;;;;:22;;;2564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2766:1:::1;2729:40;;2750:6;::::0;::::1;;;;;;;;2729:40;;;;;;;;;;;;2797:1;2780:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2659:148::o:0;10026:159::-;2582:12;:10;:12::i;:::-;2572:22;;:6;;;;;;;;;;:22;;;2564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4384:1:::1;4443:2;:13;;;;:::i;:::-;4427;:29;;;;:::i;:::-;10079:12;:22;;;;4384:1;4443:2;:13;;;;:::i;:::-;4427;:29;;;;:::i;:::-;10112:14;:22;;;;10150:27;4384:1;4443:2;:13;;;;:::i;:::-;4427;:29;;;;:::i;:::-;10150:27;;;;;;:::i;:::-;;;;;;;;10026:159::o:0;4574:56::-;;;;:::o;2445:79::-;2483:7;2510:6;;;;;;;;;;;2503:13;;2445:79;:::o;4637:58::-;;;;:::o;5664:87::-;5703:13;5736:7;;;;;;;;;;;;;;;;;5729:14;;5664:87;:::o;6080:167::-;6158:4;6175:42;6185:12;:10;:12::i;:::-;6199:9;6210:6;6175:9;:42::i;:::-;6235:4;6228:11;;6080:167;;;;:::o;11866:204::-;2582:12;:10;:12::i;:::-;2572:22;;:6;;;;;;;;;;:22;;;2564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11941:15:::1;11966:12;11959:30;;;11998:4;11959:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11941:63;;12022:12;12015:29;;;12045:7;:5;:7::i;:::-;12054;12015:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11930:140;11866:204:::0;:::o;4702:59::-;;;;:::o;10494:958::-;2582:12;:10;:12::i;:::-;2572:22;;:6;;;;;;;;;;:22;;;2564:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10558:11:::1;;;;;;;;;;;10557:12;10549:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10644:42;10607:15;;:80;;;;;;;;;;;;;;;;;;10698:58;10715:4;10730:15;;;;;;;;;;;4384:1;4443:2;:13;;;;:::i;:::-;4427;:29;;;;:::i;:::-;10698:8;:58::i;:::-;10874:1;10771:105;;10789:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10771:52;;;10824:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10856:4;10771:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:105;;::::0;10767:397:::1;;10927:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10909:55;;;10973:4;10980:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10909:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10893:13;;:110;;;;;;;;;;;;;;;;;;10767:397;;;11079:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11061:52;;;11114:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11146:4;11061:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11045:13;;:107;;;;;;;;;;;;;;;;;;10767:397;11175:15;;;;;;;;;;;:31;;;11214:21;11245:4;11251:24;11269:4;11251:9;:24::i;:::-;11276:1;11278::::0;11280:7:::1;:5;:7::i;:::-;11288:15;11175:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11322:13;;;;;;;;;;;11315:29;;;11353:15;;;;;;;;;;;11371:14;11315:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11411:4;11397:11;;:18;;;;;;;;;;;;;;;;;;11440:4;11426:11;;:18;;;;;;;;;;;;;;;;;;10494:958::o:0;6255:143::-;6336:7;6363:11;:18;6375:5;6363:18;;;;;;;;;;;;;;;:27;6382:7;6363:27;;;;;;;;;;;;;;;;6356:34;;6255:143;;;;:::o;200:98::-;253:7;280:10;273:17;;200:98;:::o;6896:335::-;7006:1;6989:19;;:5;:19;;;6981:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7087:1;7068:21;;:7;:21;;;7060:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7169:6;7139:11;:18;7151:5;7139:18;;;;;;;;;;;;;;;:27;7158:7;7139:27;;;;;;;;;;;;;;;:36;;;;7207:7;7191:32;;7200:5;7191:32;;;7216:6;7191:32;;;;;;:::i;:::-;;;;;;;;6896:335;;;:::o;7239:2180::-;7343:1;7327:18;;:4;:18;;;7319:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7420:1;7406:16;;:2;:16;;;7398:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7490:1;7481:6;:10;7473:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:17;7590:7;:5;:7::i;:::-;7582:15;;:4;:15;;;;:32;;;;;7607:7;:5;:7::i;:::-;7601:13;;:2;:13;;;;7582:32;7578:1485;;;7640:4;:10;7645:4;7640:10;;;;;;;;;;;;;;;;;;;;;;;;;7639:11;:24;;;;;7655:4;:8;7660:2;7655:8;;;;;;;;;;;;;;;;;;;;;;;;;7654:9;7639:24;7631:33;;;;;;7691:76;7763:3;7691:67;7713:15;;7703:9;;:25;7702:55;;7743:14;;7702:55;;;7730:12;;7702:55;7691:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7679:88;;7796:13;;;;;;;;;;;7788:21;;:4;:21;;;:55;;;;;7827:15;;;;;;;;;;;7813:30;;:2;:30;;;;7788:55;:83;;;;;7849:18;:22;7868:2;7849:22;;;;;;;;;;;;;;;;;;;;;;;;;7847:24;7788:83;7784:313;;;7911:12;;7901:6;:22;;7893:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8006:14;;7996:6;7980:13;7990:2;7980:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7972:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8070:9;;:11;;;;;;;;;:::i;:::-;;;;;;7784:313;8122:13;;;;;;;;;;;8116:19;;:2;:19;;;:43;;;;;8154:4;8139:20;;:4;:20;;;;8116:43;8113:174;;;8192:79;8267:3;8192:70;8214:16;;8204:9;;:26;8203:58;;8246:15;;8203:58;;;8232:13;;8203:58;8192:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8180:91;;8113:174;8303:28;8334:24;8352:4;8334:9;:24::i;:::-;8303:55;;8378:6;;;;;;;;;;;8377:7;:30;;;;;8394:13;;;;;;;;;;;8388:19;;:2;:19;;;8377:30;:45;;;;;8411:11;;;;;;;;;;;8377:45;:89;;;;;8449:17;;8426:20;:40;8377:89;:123;;;;;8482:18;;8470:9;;:30;8377:123;8373:679;;;8540:13;;8525:12;:28;8521:90;;;8590:1;8578:9;:13;;;;8521:90;8649:1;8637:9;;:13;8629:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8697:69;8714:51;8718:6;8726:38;8730:20;8752:11;;8726:3;:38::i;:::-;8714:3;:51::i;:::-;8697:16;:69::i;:::-;8785:26;8814:21;8785:50;;8879:1;8858:18;:22;8854:106;;;8905:35;8918:21;8905:12;:35::i;:::-;8854:106;8978:9;;:11;;;;;;;;;:::i;:::-;;;;;;9024:12;9008:13;:28;;;;8502:550;8373:679;7616:1447;7578:1485;9088:1;9078:9;:11;9075:161;;;9128:39;9157:9;9128;:24;9146:4;9128:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9103:9;:24;9121:4;9103:24;;;;;;;;;;;;;;;:64;;;;9208:4;9185:39;;9194:4;9185:39;;;9214:9;9185:39;;;;;;:::i;:::-;;;;;;;;9075:161;9262:27;9282:6;9262:9;:15;9272:4;9262:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9246:9;:15;9256:4;9246:15;;;;;;;;;;;;;;;:43;;;;9314:40;9332:21;9343:9;9332:6;:10;;:21;;;;:::i;:::-;9314:9;:13;9324:2;9314:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9300:9;:13;9310:2;9300:13;;;;;;;;;;;;;;;:54;;;;9385:2;9370:41;;9379:4;9370:41;;;9389:21;9400:9;9389:6;:10;;:21;;;;:::i;:::-;9370:41;;;;;;:::i;:::-;;;;;;;;7308:2111;7239:2180;;;:::o;1337:190::-;1423:7;1456:1;1451;:6;;1459:12;1443:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1483:9;1499:1;1495;:5;;;;:::i;:::-;1483:17;;1518:1;1511:8;;;1337:190;;;;;:::o;9535:483::-;5191:4;5182:6;;:13;;;;;;;;;;;;;;;;;;9613:21:::1;9651:1;9637:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9613:40;;9682:4;9664;9669:1;9664:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9708:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9698:4;9703:1;9698:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9741:62;9758:4;9773:15;;;;;;;;;;;9791:11;9741:8;:62::i;:::-;9814:15;;;;;;;;;;;:66;;;9895:11;9921:1;9937:4;9964;9984:15;9814:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9602:416;5227:5:::0;5218:6;;:14;;;;;;;;;;;;;;;;;;9535:483;:::o;10193:92::-;10250:10;;;;;;;;;;;:19;;:27;10270:6;10250:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10193:92;:::o;1535:246::-;1593:7;1622:1;1617;:6;1613:47;;1647:1;1640:8;;;;1613:47;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1715:1;1710;1706;:5;;;;:::i;:::-;:10;1698:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1772:1;1765:8;;;1535:246;;;;;:::o;1789:132::-;1847:7;1874:39;1878:1;1881;1874:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1867:46;;1789:132;;;;:::o;9429:98::-;9486:7;9513:1;9511;:3;9510:9;;9518:1;9510:9;;;9516:1;9510:9;9503:16;;9429:98;;;;:::o;1006:179::-;1064:7;1084:9;1100:1;1096;:5;;;;:::i;:::-;1084:17;;1125:1;1120;:6;;1112:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1176:1;1169:8;;;1006:179;;;;:::o;1193:136::-;1251:7;1278:43;1282:1;1285;1278:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1271:50;;1193:136;;;;:::o;1929:189::-;2015:7;2047:1;2043;:5;2050:12;2035:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2074:9;2090:1;2086;:5;;;;:::i;:::-;2074:17;;2109:1;2102:8;;;1929: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;1430:117::-;1539:1;1536;1529: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:104::-;4898:7;4927:24;4945:5;4927:24;:::i;:::-;4916:35;;4853:104;;;:::o;4963:138::-;5044:32;5070:5;5044:32;:::i;:::-;5037:5;5034:43;5024:71;;5091:1;5088;5081:12;5024:71;4963:138;:::o;5107:155::-;5161:5;5199:6;5186:20;5177:29;;5215:41;5250:5;5215:41;:::i;:::-;5107:155;;;;:::o;5268:490::-;5344:6;5352;5401:2;5389:9;5380:7;5376:23;5372:32;5369:119;;;5407:79;;:::i;:::-;5369:119;5527:1;5552:61;5605:7;5596:6;5585:9;5581:22;5552:61;:::i;:::-;5542:71;;5498:125;5662:2;5688:53;5733:7;5724:6;5713:9;5709:22;5688:53;:::i;:::-;5678:63;;5633:118;5268:490;;;;;:::o;5764:329::-;5823:6;5872:2;5860:9;5851:7;5847:23;5843:32;5840:119;;;5878:79;;:::i;:::-;5840:119;5998:1;6023:53;6068:7;6059:6;6048:9;6044:22;6023:53;:::i;:::-;6013:63;;5969:117;5764:329;;;;:::o;6099:118::-;6186:24;6204:5;6186:24;:::i;:::-;6181:3;6174:37;6099:118;;:::o;6223:222::-;6316:4;6354:2;6343:9;6339:18;6331:26;;6367:71;6435:1;6424:9;6420:17;6411:6;6367:71;:::i;:::-;6223:222;;;;:::o;6451:474::-;6519:6;6527;6576:2;6564:9;6555:7;6551:23;6547:32;6544:119;;;6582:79;;:::i;:::-;6544:119;6702:1;6727:53;6772:7;6763:6;6752:9;6748:22;6727:53;:::i;:::-;6717:63;;6673:117;6829:2;6855:53;6900:7;6891:6;6880:9;6876:22;6855:53;:::i;:::-;6845:63;;6800:118;6451:474;;;;;:::o;6931:180::-;6979:77;6976:1;6969:88;7076:4;7073:1;7066:15;7100:4;7097:1;7090:15;7117:102;7159:8;7206:5;7203:1;7199:13;7178:34;;7117:102;;;:::o;7225:848::-;7286:5;7293:4;7317:6;7308:15;;7341:5;7332:14;;7355:712;7376:1;7366:8;7363:15;7355:712;;;7471:4;7466:3;7462:14;7456:4;7453:24;7450:50;;;7480:18;;:::i;:::-;7450:50;7530:1;7520:8;7516:16;7513:451;;;7945:4;7938:5;7934:16;7925:25;;7513:451;7995:4;7989;7985:15;7977:23;;8025:32;8048:8;8025:32;:::i;:::-;8013:44;;7355:712;;;7225:848;;;;;;;:::o;8079:1073::-;8133:5;8324:8;8314:40;;8345:1;8336:10;;8347:5;;8314:40;8373:4;8363:36;;8390:1;8381:10;;8392:5;;8363:36;8459:4;8507:1;8502:27;;;;8543:1;8538:191;;;;8452:277;;8502:27;8520:1;8511:10;;8522:5;;;8538:191;8583:3;8573:8;8570:17;8567:43;;;8590:18;;:::i;:::-;8567:43;8639:8;8636:1;8632:16;8623:25;;8674:3;8667:5;8664:14;8661:40;;;8681:18;;:::i;:::-;8661:40;8714:5;;;8452:277;;8838:2;8828:8;8825:16;8819:3;8813:4;8810:13;8806:36;8788:2;8778:8;8775:16;8770:2;8764:4;8761:12;8757:35;8741:111;8738:246;;;8894:8;8888:4;8884:19;8875:28;;8929:3;8922:5;8919:14;8916:40;;;8936:18;;:::i;:::-;8916:40;8969:5;;8738:246;9009:42;9047:3;9037:8;9031:4;9028:1;9009:42;:::i;:::-;8994:57;;;;9083:4;9078:3;9074:14;9067:5;9064:25;9061:51;;;9092:18;;:::i;:::-;9061:51;9141:4;9134:5;9130:16;9121:25;;8079:1073;;;;;;:::o;9158:281::-;9216:5;9240:23;9258:4;9240:23;:::i;:::-;9232:31;;9284:25;9300:8;9284:25;:::i;:::-;9272:37;;9328:104;9365:66;9355:8;9349:4;9328:104;:::i;:::-;9319:113;;9158:281;;;;:::o;9445:410::-;9485:7;9508:20;9526:1;9508:20;:::i;:::-;9503:25;;9542:20;9560:1;9542:20;:::i;:::-;9537:25;;9597:1;9594;9590:9;9619:30;9637:11;9619:30;:::i;:::-;9608:41;;9798:1;9789:7;9785:15;9782:1;9779:22;9759:1;9752:9;9732:83;9709:139;;9828:18;;:::i;:::-;9709:139;9493:362;9445:410;;;;:::o;9861:182::-;10001:34;9997:1;9989:6;9985:14;9978:58;9861:182;:::o;10049:366::-;10191:3;10212:67;10276:2;10271:3;10212:67;:::i;:::-;10205:74;;10288:93;10377:3;10288:93;:::i;:::-;10406:2;10401:3;10397:12;10390:19;;10049:366;;;:::o;10421:419::-;10587:4;10625:2;10614:9;10610:18;10602:26;;10674:9;10668:4;10664:20;10660:1;10649:9;10645:17;10638:47;10702:131;10828:4;10702:131;:::i;:::-;10694:139;;10421:419;;;:::o;10846:174::-;10986:26;10982:1;10974:6;10970:14;10963:50;10846:174;:::o;11026:366::-;11168:3;11189:67;11253:2;11248:3;11189:67;:::i;:::-;11182:74;;11265:93;11354:3;11265:93;:::i;:::-;11383:2;11378:3;11374:12;11367:19;;11026:366;;;:::o;11398:419::-;11564:4;11602:2;11591:9;11587:18;11579:26;;11651:9;11645:4;11641:20;11637:1;11626:9;11622:17;11615:47;11679:131;11805:4;11679:131;:::i;:::-;11671:139;;11398:419;;;:::o;11823:143::-;11880:5;11911:6;11905:13;11896:22;;11927:33;11954:5;11927:33;:::i;:::-;11823:143;;;;:::o;11972:351::-;12042:6;12091:2;12079:9;12070:7;12066:23;12062:32;12059:119;;;12097:79;;:::i;:::-;12059:119;12217:1;12242:64;12298:7;12289:6;12278:9;12274:22;12242:64;:::i;:::-;12232:74;;12188:128;11972:351;;;;:::o;12329:332::-;12450:4;12488:2;12477:9;12473:18;12465:26;;12501:71;12569:1;12558:9;12554:17;12545:6;12501:71;:::i;:::-;12582:72;12650:2;12639:9;12635:18;12626:6;12582:72;:::i;:::-;12329:332;;;;;:::o;12667:116::-;12737:21;12752:5;12737:21;:::i;:::-;12730:5;12727:32;12717:60;;12773:1;12770;12763:12;12717:60;12667:116;:::o;12789:137::-;12843:5;12874:6;12868:13;12859:22;;12890:30;12914:5;12890:30;:::i;:::-;12789:137;;;;:::o;12932:345::-;12999:6;13048:2;13036:9;13027:7;13023:23;13019:32;13016:119;;;13054:79;;:::i;:::-;13016:119;13174:1;13199:61;13252:7;13243:6;13232:9;13228:22;13199:61;:::i;:::-;13189:71;;13145:125;12932:345;;;;:::o;13283:173::-;13423:25;13419:1;13411:6;13407:14;13400:49;13283:173;:::o;13462:366::-;13604:3;13625:67;13689:2;13684:3;13625:67;:::i;:::-;13618:74;;13701:93;13790:3;13701:93;:::i;:::-;13819:2;13814:3;13810:12;13803:19;;13462:366;;;:::o;13834:419::-;14000:4;14038:2;14027:9;14023:18;14015:26;;14087:9;14081:4;14077:20;14073:1;14062:9;14058:17;14051:47;14115:131;14241:4;14115:131;:::i;:::-;14107:139;;13834:419;;;:::o;14259:143::-;14316:5;14347:6;14341:13;14332:22;;14363:33;14390:5;14363:33;:::i;:::-;14259:143;;;;:::o;14408:351::-;14478:6;14527:2;14515:9;14506:7;14502:23;14498:32;14495:119;;;14533:79;;:::i;:::-;14495:119;14653:1;14678:64;14734:7;14725:6;14714:9;14710:22;14678:64;:::i;:::-;14668:74;;14624:128;14408:351;;;;:::o;14765:332::-;14886:4;14924:2;14913:9;14909:18;14901:26;;14937:71;15005:1;14994:9;14990:17;14981:6;14937:71;:::i;:::-;15018:72;15086:2;15075:9;15071:18;15062:6;15018:72;:::i;:::-;14765:332;;;;;:::o;15103:85::-;15148:7;15177:5;15166:16;;15103:85;;;:::o;15194:60::-;15222:3;15243:5;15236:12;;15194:60;;;:::o;15260:158::-;15318:9;15351:61;15369:42;15378:32;15404:5;15378:32;:::i;:::-;15369:42;:::i;:::-;15351:61;:::i;:::-;15338:74;;15260:158;;;:::o;15424:147::-;15519:45;15558:5;15519:45;:::i;:::-;15514:3;15507:58;15424:147;;:::o;15577:807::-;15826:4;15864:3;15853:9;15849:19;15841:27;;15878:71;15946:1;15935:9;15931:17;15922:6;15878:71;:::i;:::-;15959:72;16027:2;16016:9;16012:18;16003:6;15959:72;:::i;:::-;16041:80;16117:2;16106:9;16102:18;16093:6;16041:80;:::i;:::-;16131;16207:2;16196:9;16192:18;16183:6;16131:80;:::i;:::-;16221:73;16289:3;16278:9;16274:19;16265:6;16221:73;:::i;:::-;16304;16372:3;16361:9;16357:19;16348:6;16304:73;:::i;:::-;15577:807;;;;;;;;;:::o;16390:663::-;16478:6;16486;16494;16543:2;16531:9;16522:7;16518:23;16514:32;16511:119;;;16549:79;;:::i;:::-;16511:119;16669:1;16694:64;16750:7;16741:6;16730:9;16726:22;16694:64;:::i;:::-;16684:74;;16640:128;16807:2;16833:64;16889:7;16880:6;16869:9;16865:22;16833:64;:::i;:::-;16823:74;;16778:129;16946:2;16972:64;17028:7;17019:6;17008:9;17004:22;16972:64;:::i;:::-;16962:74;;16917:129;16390:663;;;;;:::o;17059:223::-;17199:34;17195:1;17187:6;17183:14;17176:58;17268:6;17263:2;17255:6;17251:15;17244:31;17059:223;:::o;17288:366::-;17430:3;17451:67;17515:2;17510:3;17451:67;:::i;:::-;17444:74;;17527:93;17616:3;17527:93;:::i;:::-;17645:2;17640:3;17636:12;17629:19;;17288:366;;;:::o;17660:419::-;17826:4;17864:2;17853:9;17849:18;17841:26;;17913:9;17907:4;17903:20;17899:1;17888:9;17884:17;17877:47;17941:131;18067:4;17941:131;:::i;:::-;17933:139;;17660:419;;;:::o;18085:221::-;18225:34;18221:1;18213:6;18209:14;18202:58;18294:4;18289:2;18281:6;18277:15;18270:29;18085:221;:::o;18312:366::-;18454:3;18475:67;18539:2;18534:3;18475:67;:::i;:::-;18468:74;;18551:93;18640:3;18551:93;:::i;:::-;18669:2;18664:3;18660:12;18653:19;;18312:366;;;:::o;18684:419::-;18850:4;18888:2;18877:9;18873:18;18865:26;;18937:9;18931:4;18927:20;18923:1;18912:9;18908:17;18901:47;18965:131;19091:4;18965:131;:::i;:::-;18957:139;;18684:419;;;:::o;19109:224::-;19249:34;19245:1;19237:6;19233:14;19226:58;19318:7;19313:2;19305:6;19301:15;19294:32;19109:224;:::o;19339:366::-;19481:3;19502:67;19566:2;19561:3;19502:67;:::i;:::-;19495:74;;19578:93;19667:3;19578:93;:::i;:::-;19696:2;19691:3;19687:12;19680:19;;19339:366;;;:::o;19711:419::-;19877:4;19915:2;19904:9;19900:18;19892:26;;19964:9;19958:4;19954:20;19950:1;19939:9;19935:17;19928:47;19992:131;20118:4;19992:131;:::i;:::-;19984:139;;19711:419;;;:::o;20136:222::-;20276:34;20272:1;20264:6;20260:14;20253:58;20345:5;20340:2;20332:6;20328:15;20321:30;20136:222;:::o;20364:366::-;20506:3;20527:67;20591:2;20586:3;20527:67;:::i;:::-;20520:74;;20603:93;20692:3;20603:93;:::i;:::-;20721:2;20716:3;20712:12;20705:19;;20364:366;;;:::o;20736:419::-;20902:4;20940:2;20929:9;20925:18;20917:26;;20989:9;20983:4;20979:20;20975:1;20964:9;20960:17;20953:47;21017:131;21143:4;21017:131;:::i;:::-;21009:139;;20736:419;;;:::o;21161:228::-;21301:34;21297:1;21289:6;21285:14;21278:58;21370:11;21365:2;21357:6;21353:15;21346:36;21161:228;:::o;21395:366::-;21537:3;21558:67;21622:2;21617:3;21558:67;:::i;:::-;21551:74;;21634:93;21723:3;21634:93;:::i;:::-;21752:2;21747:3;21743:12;21736:19;;21395:366;;;:::o;21767:419::-;21933:4;21971:2;21960:9;21956:18;21948:26;;22020:9;22014:4;22010:20;22006:1;21995:9;21991:17;21984:47;22048:131;22174:4;22048:131;:::i;:::-;22040:139;;21767:419;;;:::o;22192:175::-;22332:27;22328:1;22320:6;22316:14;22309:51;22192:175;:::o;22373:366::-;22515:3;22536:67;22600:2;22595:3;22536:67;:::i;:::-;22529:74;;22612:93;22701:3;22612:93;:::i;:::-;22730:2;22725:3;22721:12;22714:19;;22373:366;;;:::o;22745:419::-;22911:4;22949:2;22938:9;22934:18;22926:26;;22998:9;22992:4;22988:20;22984:1;22973:9;22969:17;22962:47;23026:131;23152:4;23026:131;:::i;:::-;23018:139;;22745:419;;;:::o;23170:191::-;23210:3;23229:20;23247:1;23229:20;:::i;:::-;23224:25;;23263:20;23281:1;23263:20;:::i;:::-;23258:25;;23306:1;23303;23299:9;23292:16;;23327:3;23324:1;23321:10;23318:36;;;23334:18;;:::i;:::-;23318:36;23170:191;;;;:::o;23367:176::-;23507:28;23503:1;23495:6;23491:14;23484:52;23367:176;:::o;23549:366::-;23691:3;23712:67;23776:2;23771:3;23712:67;:::i;:::-;23705:74;;23788:93;23877:3;23788:93;:::i;:::-;23906:2;23901:3;23897:12;23890:19;;23549:366;;;:::o;23921:419::-;24087:4;24125:2;24114:9;24110:18;24102:26;;24174:9;24168:4;24164:20;24160:1;24149:9;24145:17;24138:47;24202:131;24328:4;24202:131;:::i;:::-;24194:139;;23921:419;;;:::o;24346:233::-;24385:3;24408:24;24426:5;24408:24;:::i;:::-;24399:33;;24454:66;24447:5;24444:77;24441:103;;24524:18;;:::i;:::-;24441:103;24571:1;24564:5;24560:13;24553:20;;24346:233;;;:::o;24585:173::-;24725:25;24721:1;24713:6;24709:14;24702:49;24585:173;:::o;24764:366::-;24906:3;24927:67;24991:2;24986:3;24927:67;:::i;:::-;24920:74;;25003:93;25092:3;25003:93;:::i;:::-;25121:2;25116:3;25112:12;25105:19;;24764:366;;;:::o;25136:419::-;25302:4;25340:2;25329:9;25325:18;25317:26;;25389:9;25383:4;25379:20;25375:1;25364:9;25360:17;25353:47;25417:131;25543:4;25417:131;:::i;:::-;25409:139;;25136:419;;;:::o;25561:194::-;25601:4;25621:20;25639:1;25621:20;:::i;:::-;25616:25;;25655:20;25673:1;25655:20;:::i;:::-;25650:25;;25699:1;25696;25692:9;25684:17;;25723:1;25717:4;25714:11;25711:37;;;25728:18;;:::i;:::-;25711:37;25561:194;;;;:::o;25761:180::-;25809:77;25806:1;25799:88;25906:4;25903:1;25896:15;25930:4;25927:1;25920:15;25947:180;25995:77;25992:1;25985:88;26092:4;26089:1;26082:15;26116:4;26113:1;26106:15;26133:114;26200:6;26234:5;26228:12;26218:22;;26133:114;;;:::o;26253:184::-;26352:11;26386:6;26381:3;26374:19;26426:4;26421:3;26417:14;26402:29;;26253:184;;;;:::o;26443:132::-;26510:4;26533:3;26525:11;;26563:4;26558:3;26554:14;26546:22;;26443:132;;;:::o;26581:108::-;26658:24;26676:5;26658:24;:::i;:::-;26653:3;26646:37;26581:108;;:::o;26695:179::-;26764:10;26785:46;26827:3;26819:6;26785:46;:::i;:::-;26863:4;26858:3;26854:14;26840:28;;26695:179;;;;:::o;26880:113::-;26950:4;26982;26977:3;26973:14;26965:22;;26880:113;;;:::o;27029:732::-;27148:3;27177:54;27225:5;27177:54;:::i;:::-;27247:86;27326:6;27321:3;27247:86;:::i;:::-;27240:93;;27357:56;27407:5;27357:56;:::i;:::-;27436:7;27467:1;27452:284;27477:6;27474:1;27471:13;27452:284;;;27553:6;27547:13;27580:63;27639:3;27624:13;27580:63;:::i;:::-;27573:70;;27666:60;27719:6;27666:60;:::i;:::-;27656:70;;27512:224;27499:1;27496;27492:9;27487:14;;27452:284;;;27456:14;27752:3;27745:10;;27153:608;;;27029:732;;;;:::o;27767:831::-;28030:4;28068:3;28057:9;28053:19;28045:27;;28082:71;28150:1;28139:9;28135:17;28126:6;28082:71;:::i;:::-;28163:80;28239:2;28228:9;28224:18;28215:6;28163:80;:::i;:::-;28290:9;28284:4;28280:20;28275:2;28264:9;28260:18;28253:48;28318:108;28421:4;28412:6;28318:108;:::i;:::-;28310:116;;28436:72;28504:2;28493:9;28489:18;28480:6;28436:72;:::i;:::-;28518:73;28586:3;28575:9;28571:19;28562:6;28518:73;:::i;:::-;27767:831;;;;;;;;:::o;28604:180::-;28652:77;28649:1;28642:88;28749:4;28746:1;28739:15;28773:4;28770:1;28763:15;28790:185;28830:1;28847:20;28865:1;28847:20;:::i;:::-;28842:25;;28881:20;28899:1;28881:20;:::i;:::-;28876:25;;28920:1;28910:35;;28925:18;;:::i;:::-;28910:35;28967:1;28964;28960:9;28955:14;;28790:185;;;;:::o;28981:220::-;29121:34;29117:1;29109:6;29105:14;29098:58;29190:3;29185:2;29177:6;29173:15;29166:28;28981:220;:::o;29207:366::-;29349:3;29370:67;29434:2;29429:3;29370:67;:::i;:::-;29363:74;;29446:93;29535:3;29446:93;:::i;:::-;29564:2;29559:3;29555:12;29548:19;;29207:366;;;:::o;29579:419::-;29745:4;29783:2;29772:9;29768:18;29760:26;;29832:9;29826:4;29822:20;29818:1;29807:9;29803:17;29796:47;29860:131;29986:4;29860:131;:::i;:::-;29852:139;;29579:419;;;:::o;30004:177::-;30144:29;30140:1;30132:6;30128:14;30121:53;30004:177;:::o;30187:366::-;30329:3;30350:67;30414:2;30409:3;30350:67;:::i;:::-;30343:74;;30426:93;30515:3;30426:93;:::i;:::-;30544:2;30539:3;30535:12;30528:19;;30187:366;;;:::o;30559:419::-;30725:4;30763:2;30752:9;30748:18;30740:26;;30812:9;30806:4;30802:20;30798:1;30787:9;30783:17;30776:47;30840:131;30966:4;30840:131;:::i;:::-;30832:139;;30559:419;;;:::o

Swarm Source

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