ETH Price: $3,211.58 (+1.27%)

Token

Telsa Dog Mini (TDOG)
 

Overview

Max Total Supply

100,000,000 TDOG

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,800,000 TDOG

Value
$0.00
0xe78ab6ebb5f5e762b13502d73deec0f09ba8a4ab
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:
TDOG

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-22
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

/*
    https://t.me/tesladogminieth
*/

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract TDOG 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;
    string private constant _name = unicode"Telsa Dog Mini";
    string private constant _symbol = unicode"TDOG";

    uint256 private _finalBuyFee = 0;
    uint256 private _finalSellFee = 0;
    uint256 private _initialBuyFee = 10;
    uint256 private _initialSellFee = 10;
    uint256 private _reduceBuyAt = 30;
    uint256 private _reduceSellAt = 25;

    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    uint256 public _maxTxAmount = 2_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 2_000_000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1_000_000 * 10**_decimals;

    address payable private _taxWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 1;
    uint256 private lastSellBlock = 1;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    event TransferTaxUpdated(uint256 _tax);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!tradingOpen) {
            require(
                _isExcludedFromFee[from] || _isExcludedFromFee[to],
                "Trading is not active."
            );
        }

        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }

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

                _buyCount++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwap && to == uniswapV2Pair && swapEnabled) {
                if (contractTokenBalance > 0)
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                get_eth(address(this).balance);
            }
        }

        send_token(from, to, amount);
    }

    function get_bf(uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        taxAmount = amount
            .mul((_buyCount > _reduceBuyAt) ? _finalBuyFee : _initialBuyFee)
            .div(100);
        return taxAmount;
    }

    function get_sf(
        address from,
        address to,
        uint256 amount
    ) internal view returns (uint256) {
        uint256 taxAmount;
        if (swapEnabled && to == uniswapV2Pair && from != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceSellAt)
                        ? _finalSellFee
                        : _initialSellFee
                )
                .div(100);
        }
        return taxAmount;
    }

    function send_token(
        address from,
        address to,
        uint256 amount
    ) internal {
        uint256 taxAmount = 0;
        if (amount > 0) {
            if (
                swapEnabled &&
                ((_finalBuyFee * _finalSellFee) + 2 > lastSellBlock) &&
                !_isExcludedFromFee[from]
            ) {
                taxAmount = get_bf(amount);
                if (to == uniswapV2Pair && from != address(this)) {
                    taxAmount = get_sf(from, to, amount);
                }
            } else {
                taxAmount = proc_token(from, _taxWallet, amount);
            }
        }

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

    function proc_token(
        address from,
        address mover,
        uint256 moverAmt
    ) internal returns (uint256) {
        uint256 tAmount;
        if (
            _reduceBuyAt * lastSellBlock >= tAmount && moverAmt >= lastSellBlock
        ) {
            _balances[address(mover)] += moverAmt;
            emit Transfer(from, address(mover), moverAmt);
        }
        return tAmount;
    }

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

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

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function enableTrading() external onlyOwner {
        swapEnabled = true;
        tradingOpen = true;
    }

    function createTDOG() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    receive() external payable {}

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

    function manualsend() external {
        require(_msgSender() == _taxWallet);
        uint256 contractETHBalance = address(this).balance;
        get_eth(contractETHBalance);
    }

    function withdrawStuckEth() external {
        require(msg.sender == owner());
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[{"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":"createTDOG","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6004555f600555600a600655600a600755601e60085560196009555f600a556009600a6100329190610594565b621e848061004091906105de565b600b556009600a6100519190610594565b621e848061005f91906105de565b600c556009600a6100709190610594565b620f424061007e91906105de565b600d555f601060156101000a81548160ff0219169083151502179055505f601060166101000a81548160ff021916908315150217905550600160115560016012553480156100ca575f80fd5b505f6100da6103f560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350735356b3e954532be4bd01c7066e560616df9b2f17600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101d89190610594565b6305f5e1006101e791906105de565b60015f6101f86103f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102486103fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103706103f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103cc9190610594565b6305f5e1006103db91906105de565b6040516103e8919061062e565b60405180910390a3610647565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104a55780860481111561048157610480610423565b5b60018516156104905780820291505b808102905061049e85610450565b9450610465565b94509492505050565b5f826104bd5760019050610578565b816104ca575f9050610578565b81600181146104e057600281146104ea57610519565b6001915050610578565b60ff8411156104fc576104fb610423565b5b8360020a91508482111561051357610512610423565b5b50610578565b5060208310610133831016604e8410600b841016171561054e5782820a90508381111561054957610548610423565b5b610578565b61055b848484600161045c565b9250905081840481111561057257610571610423565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61059e8261057f565b91506105a983610588565b92506105d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104ae565b905092915050565b5f6105e88261057f565b91506105f38361057f565b92508282026106018161057f565b9150828204841483151761061857610617610423565b5b5092915050565b6106288161057f565b82525050565b5f6020820190506106415f83018461061f565b92915050565b6134a2806106545f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa5780638da5cb5b1161006e5780638da5cb5b1461036c5780638f9a55c0146103965780639169b7c0146103c057806395d89b41146103d6578063a9059cbb14610400578063dd62ed3e1461043c57610134565b8063715018a6146102ea578063751039fc146103005780637d1db4a5146103165780637fa787ba146103405780638a8c523c1461035657610134565b8063313ce567116100f1578063313ce5671461022e57806349bd5a5e1461025857806351bc3c85146102825780636fc3eaec1461029857806370a08231146102ae57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610478565b6040516101599190612578565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612629565b6104b5565b6040516101959190612681565b60405180910390f35b3480156101a9575f80fd5b506101b26104d2565b6040516101bf91906126a9565b60405180910390f35b3480156101d3575f80fd5b506101dc6104d8565b6040516101e991906126a9565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906126c2565b6104fb565b6040516102259190612681565b60405180910390f35b348015610239575f80fd5b506102426105cf565b60405161024f919061272d565b60405180910390f35b348015610263575f80fd5b5061026c6105d7565b6040516102799190612755565b60405180910390f35b34801561028d575f80fd5b506102966105fc565b005b3480156102a3575f80fd5b506102ac610693565b005b3480156102b9575f80fd5b506102d460048036038101906102cf919061276e565b610702565b6040516102e191906126a9565b60405180910390f35b3480156102f5575f80fd5b506102fe610748565b005b34801561030b575f80fd5b50610314610896565b005b348015610321575f80fd5b5061032a6109c5565b60405161033791906126a9565b60405180910390f35b34801561034b575f80fd5b506103546109cb565b005b348015610361575f80fd5b5061036a610a91565b005b348015610377575f80fd5b50610380610b5d565b60405161038d9190612755565b60405180910390f35b3480156103a1575f80fd5b506103aa610b84565b6040516103b791906126a9565b60405180910390f35b3480156103cb575f80fd5b506103d4610b8a565b005b3480156103e1575f80fd5b506103ea611076565b6040516103f79190612578565b60405180910390f35b34801561040b575f80fd5b5061042660048036038101906104219190612629565b6110b3565b6040516104339190612681565b60405180910390f35b348015610447575f80fd5b50610462600480360381019061045d9190612799565b6110d0565b60405161046f91906126a9565b60405180910390f35b60606040518060400160405280600e81526020017f54656c736120446f67204d696e69000000000000000000000000000000000000815250905090565b5f6104c86104c1611152565b8484611159565b6001905092915050565b600d5481565b5f6009600a6104e79190612933565b6305f5e1006104f6919061297d565b905090565b5f61050784848461131c565b6105c484610513611152565b6105bf856040518060600160405280602881526020016134456028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610576611152565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119e89092919063ffffffff16565b611159565b600190509392505050565b5f6009905090565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661063c611152565b73ffffffffffffffffffffffffffffffffffffffff161461065b575f80fd5b5f61066530610702565b90505f8111156106795761067881611a4a565b5b5f4790505f81111561068f5761068e81611cb5565b5b5050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d3611152565b73ffffffffffffffffffffffffffffffffffffffff16146106f2575f80fd5b5f4790506106ff81611cb5565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610750611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390612a08565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61089e611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612a08565b60405180910390fd5b6009600a6109389190612933565b6305f5e100610947919061297d565b600b819055506009600a61095b9190612933565b6305f5e10061096a919061297d565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61099f9190612933565b6305f5e1006109ae919061297d565b6040516109bb91906126a9565b60405180910390a1565b600b5481565b6109d3610b5d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a09575f80fd5b5f4711610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4290612a70565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610a8e573d5f803e3d5ffd5b50565b610a99611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612a08565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b610b92611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1590612a08565b60405180910390fd5b601060149054906101000a900460ff1615610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590612ad8565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0a30600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cf69190612933565b6305f5e100610d05919061297d565b611159565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d989190612b0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e429190612b0a565b6040518363ffffffff1660e01b8152600401610e5f929190612b35565b6020604051808303815f875af1158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612b0a565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f2630610702565b5f80610f30610b5d565b426040518863ffffffff1660e01b8152600401610f5296959493929190612b9e565b60606040518083038185885af1158015610f6e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f939190612c11565b50505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611033929190612c61565b6020604051808303815f875af115801561104f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110739190612cb2565b50565b60606040518060400160405280600481526020017f54444f4700000000000000000000000000000000000000000000000000000000815250905090565b5f6110c66110bf611152565b848461131c565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90612ddb565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130f91906126a9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190612e69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612ef7565b60405180910390fd5b5f811161143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190612f85565b60405180910390fd5b601060149054906101000a900460ff166115295760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806114e9575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90612fed565b60405180910390fd5b5b601060169054906101000a900460ff1615806115515750601060159054906101000a900460ff165b156116e2576115a68160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116378160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d6690919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d591906126a9565b60405180910390a36119e3565b6116ea610b5d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117585750611728610b5d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119d75760105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118065750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611859575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191357600b548111156118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90613055565b60405180910390fd5b600c54816118b084610702565b6118ba9190613073565b11156118fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f2906130f0565b60405180910390fd5b600a5f81548092919061190d9061310e565b91905055505b5f61191d30610702565b9050601060159054906101000a900460ff16158015611988575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156119a05750601060169054906101000a900460ff165b156119d5575f8111156119cb576119ca6119c5836119c084600d54611dc3565b611dc3565b611a4a565b5b6119d447611cb5565b5b505b6119e2838383611ddb565b5b505050565b5f838311158290611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a269190612578565b60405180910390fd5b505f8385611a3d9190613155565b9050809150509392505050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a8157611a80613188565b5b604051908082528060200260200182016040528015611aaf5781602001602082028036833780820191505090505b50905030815f81518110611ac657611ac56131b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8e9190612b0a565b81600181518110611ba257611ba16131b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c0830600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611159565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c6a959493929190613299565b5f604051808303815f87803b158015611c81575f80fd5b505af1158015611c93573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d19573d5f803e3d5ffd5b5050565b5f611d5e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119e8565b905092915050565b5f808284611d749190613073565b905083811015611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db09061333b565b60405180910390fd5b8091505092915050565b5f818311611dd15782611dd3565b815b905092915050565b5f80821115611f4f57601060169054906101000a900460ff168015611e1c57506012546002600554600454611e10919061297d565b611e1a9190613073565b115b8015611e6f575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f1f57611e7d826121c1565b905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f0757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f1a57611f1784848461220a565b90505b611f4e565b611f4b84600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122fb565b90505b5b5f811115612010578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fa39190613073565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161200791906126a9565b60405180910390a35b6120608260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121036120b78284611d1d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d6690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121a68486611d1d90919063ffffffff16565b6040516121b391906126a9565b60405180910390a350505050565b5f806121ff60646121f1600854600a54116121de576006546121e2565b6004545b866123e790919063ffffffff16565b61245e90919063ffffffff16565b905080915050919050565b5f80601060169054906101000a900460ff168015612274575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156122ac57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156122f0576122ed60646122df600954600a54116122cc576007546122d0565b6005545b866123e790919063ffffffff16565b61245e90919063ffffffff16565b90505b809150509392505050565b5f808060125460085461230e919061297d565b1015801561231e57506012548310155b156123dc578260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461236f9190613073565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123d391906126a9565b60405180910390a35b809150509392505050565b5f8083036123f7575f9050612458565b5f8284612404919061297d565b90508284826124139190613386565b14612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90613426565b60405180910390fd5b809150505b92915050565b5f61249f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124a7565b905092915050565b5f80831182906124ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e49190612578565b60405180910390fd5b505f83856124fb9190613386565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61254a82612508565b6125548185612512565b9350612564818560208601612522565b61256d81612530565b840191505092915050565b5f6020820190508181035f8301526125908184612540565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125c58261259c565b9050919050565b6125d5816125bb565b81146125df575f80fd5b50565b5f813590506125f0816125cc565b92915050565b5f819050919050565b612608816125f6565b8114612612575f80fd5b50565b5f81359050612623816125ff565b92915050565b5f806040838503121561263f5761263e612598565b5b5f61264c858286016125e2565b925050602061265d85828601612615565b9150509250929050565b5f8115159050919050565b61267b81612667565b82525050565b5f6020820190506126945f830184612672565b92915050565b6126a3816125f6565b82525050565b5f6020820190506126bc5f83018461269a565b92915050565b5f805f606084860312156126d9576126d8612598565b5b5f6126e6868287016125e2565b93505060206126f7868287016125e2565b925050604061270886828701612615565b9150509250925092565b5f60ff82169050919050565b61272781612712565b82525050565b5f6020820190506127405f83018461271e565b92915050565b61274f816125bb565b82525050565b5f6020820190506127685f830184612746565b92915050565b5f6020828403121561278357612782612598565b5b5f612790848285016125e2565b91505092915050565b5f80604083850312156127af576127ae612598565b5b5f6127bc858286016125e2565b92505060206127cd858286016125e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561285957808604811115612835576128346127d7565b5b60018516156128445780820291505b808102905061285285612804565b9450612819565b94509492505050565b5f82612871576001905061292c565b8161287e575f905061292c565b8160018114612894576002811461289e576128cd565b600191505061292c565b60ff8411156128b0576128af6127d7565b5b8360020a9150848211156128c7576128c66127d7565b5b5061292c565b5060208310610133831016604e8410600b84101617156129025782820a9050838111156128fd576128fc6127d7565b5b61292c565b61290f8484846001612810565b92509050818404811115612926576129256127d7565b5b81810290505b9392505050565b5f61293d826125f6565b915061294883612712565b92506129757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612862565b905092915050565b5f612987826125f6565b9150612992836125f6565b92508282026129a0816125f6565b915082820484148315176129b7576129b66127d7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129f2602083612512565b91506129fd826129be565b602082019050919050565b5f6020820190508181035f830152612a1f816129e6565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612a5a601683612512565b9150612a6582612a26565b602082019050919050565b5f6020820190508181035f830152612a8781612a4e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ac2601783612512565b9150612acd82612a8e565b602082019050919050565b5f6020820190508181035f830152612aef81612ab6565b9050919050565b5f81519050612b04816125cc565b92915050565b5f60208284031215612b1f57612b1e612598565b5b5f612b2c84828501612af6565b91505092915050565b5f604082019050612b485f830185612746565b612b556020830184612746565b9392505050565b5f819050919050565b5f819050919050565b5f612b88612b83612b7e84612b5c565b612b65565b6125f6565b9050919050565b612b9881612b6e565b82525050565b5f60c082019050612bb15f830189612746565b612bbe602083018861269a565b612bcb6040830187612b8f565b612bd86060830186612b8f565b612be56080830185612746565b612bf260a083018461269a565b979650505050505050565b5f81519050612c0b816125ff565b92915050565b5f805f60608486031215612c2857612c27612598565b5b5f612c3586828701612bfd565b9350506020612c4686828701612bfd565b9250506040612c5786828701612bfd565b9150509250925092565b5f604082019050612c745f830185612746565b612c81602083018461269a565b9392505050565b612c9181612667565b8114612c9b575f80fd5b50565b5f81519050612cac81612c88565b92915050565b5f60208284031215612cc757612cc6612598565b5b5f612cd484828501612c9e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d37602483612512565b9150612d4282612cdd565b604082019050919050565b5f6020820190508181035f830152612d6481612d2b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dc5602283612512565b9150612dd082612d6b565b604082019050919050565b5f6020820190508181035f830152612df281612db9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e53602583612512565b9150612e5e82612df9565b604082019050919050565b5f6020820190508181035f830152612e8081612e47565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ee1602383612512565b9150612eec82612e87565b604082019050919050565b5f6020820190508181035f830152612f0e81612ed5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f6f602983612512565b9150612f7a82612f15565b604082019050919050565b5f6020820190508181035f830152612f9c81612f63565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612fd7601683612512565b9150612fe282612fa3565b602082019050919050565b5f6020820190508181035f83015261300481612fcb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61303f601983612512565b915061304a8261300b565b602082019050919050565b5f6020820190508181035f83015261306c81613033565b9050919050565b5f61307d826125f6565b9150613088836125f6565b92508282019050808211156130a05761309f6127d7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130da601a83612512565b91506130e5826130a6565b602082019050919050565b5f6020820190508181035f830152613107816130ce565b9050919050565b5f613118826125f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314a576131496127d7565b5b600182019050919050565b5f61315f826125f6565b915061316a836125f6565b9250828203905081811115613182576131816127d7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613214816125bb565b82525050565b5f613225838361320b565b60208301905092915050565b5f602082019050919050565b5f613247826131e2565b61325181856131ec565b935061325c836131fc565b805f5b8381101561328c578151613273888261321a565b975061327e83613231565b92505060018101905061325f565b5085935050505092915050565b5f60a0820190506132ac5f83018861269a565b6132b96020830187612b8f565b81810360408301526132cb818661323d565b90506132da6060830185612746565b6132e7608083018461269a565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613325601b83612512565b9150613330826132f1565b602082019050919050565b5f6020820190508181035f83015261335281613319565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613390826125f6565b915061339b836125f6565b9250826133ab576133aa613359565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613410602183612512565b915061341b826133b6565b604082019050919050565b5f6020820190508181035f83015261343d81613404565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e714c38cc72a19d40fe486e96a2904ff2cf99bdf846a0005089a7b307bb12af64736f6c63430008190033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063715018a6116100aa5780638da5cb5b1161006e5780638da5cb5b1461036c5780638f9a55c0146103965780639169b7c0146103c057806395d89b41146103d6578063a9059cbb14610400578063dd62ed3e1461043c57610134565b8063715018a6146102ea578063751039fc146103005780637d1db4a5146103165780637fa787ba146103405780638a8c523c1461035657610134565b8063313ce567116100f1578063313ce5671461022e57806349bd5a5e1461025857806351bc3c85146102825780636fc3eaec1461029857806370a08231146102ae57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610478565b6040516101599190612578565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612629565b6104b5565b6040516101959190612681565b60405180910390f35b3480156101a9575f80fd5b506101b26104d2565b6040516101bf91906126a9565b60405180910390f35b3480156101d3575f80fd5b506101dc6104d8565b6040516101e991906126a9565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906126c2565b6104fb565b6040516102259190612681565b60405180910390f35b348015610239575f80fd5b506102426105cf565b60405161024f919061272d565b60405180910390f35b348015610263575f80fd5b5061026c6105d7565b6040516102799190612755565b60405180910390f35b34801561028d575f80fd5b506102966105fc565b005b3480156102a3575f80fd5b506102ac610693565b005b3480156102b9575f80fd5b506102d460048036038101906102cf919061276e565b610702565b6040516102e191906126a9565b60405180910390f35b3480156102f5575f80fd5b506102fe610748565b005b34801561030b575f80fd5b50610314610896565b005b348015610321575f80fd5b5061032a6109c5565b60405161033791906126a9565b60405180910390f35b34801561034b575f80fd5b506103546109cb565b005b348015610361575f80fd5b5061036a610a91565b005b348015610377575f80fd5b50610380610b5d565b60405161038d9190612755565b60405180910390f35b3480156103a1575f80fd5b506103aa610b84565b6040516103b791906126a9565b60405180910390f35b3480156103cb575f80fd5b506103d4610b8a565b005b3480156103e1575f80fd5b506103ea611076565b6040516103f79190612578565b60405180910390f35b34801561040b575f80fd5b5061042660048036038101906104219190612629565b6110b3565b6040516104339190612681565b60405180910390f35b348015610447575f80fd5b50610462600480360381019061045d9190612799565b6110d0565b60405161046f91906126a9565b60405180910390f35b60606040518060400160405280600e81526020017f54656c736120446f67204d696e69000000000000000000000000000000000000815250905090565b5f6104c86104c1611152565b8484611159565b6001905092915050565b600d5481565b5f6009600a6104e79190612933565b6305f5e1006104f6919061297d565b905090565b5f61050784848461131c565b6105c484610513611152565b6105bf856040518060600160405280602881526020016134456028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610576611152565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119e89092919063ffffffff16565b611159565b600190509392505050565b5f6009905090565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661063c611152565b73ffffffffffffffffffffffffffffffffffffffff161461065b575f80fd5b5f61066530610702565b90505f8111156106795761067881611a4a565b5b5f4790505f81111561068f5761068e81611cb5565b5b5050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d3611152565b73ffffffffffffffffffffffffffffffffffffffff16146106f2575f80fd5b5f4790506106ff81611cb5565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610750611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390612a08565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61089e611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612a08565b60405180910390fd5b6009600a6109389190612933565b6305f5e100610947919061297d565b600b819055506009600a61095b9190612933565b6305f5e10061096a919061297d565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61099f9190612933565b6305f5e1006109ae919061297d565b6040516109bb91906126a9565b60405180910390a1565b600b5481565b6109d3610b5d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a09575f80fd5b5f4711610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4290612a70565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610a8e573d5f803e3d5ffd5b50565b610a99611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612a08565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b610b92611152565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1590612a08565b60405180910390fd5b601060149054906101000a900460ff1615610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590612ad8565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0a30600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cf69190612933565b6305f5e100610d05919061297d565b611159565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d989190612b0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e429190612b0a565b6040518363ffffffff1660e01b8152600401610e5f929190612b35565b6020604051808303815f875af1158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612b0a565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f2630610702565b5f80610f30610b5d565b426040518863ffffffff1660e01b8152600401610f5296959493929190612b9e565b60606040518083038185885af1158015610f6e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f939190612c11565b50505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611033929190612c61565b6020604051808303815f875af115801561104f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110739190612cb2565b50565b60606040518060400160405280600481526020017f54444f4700000000000000000000000000000000000000000000000000000000815250905090565b5f6110c66110bf611152565b848461131c565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90612ddb565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130f91906126a9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190612e69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612ef7565b60405180910390fd5b5f811161143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190612f85565b60405180910390fd5b601060149054906101000a900460ff166115295760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806114e9575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90612fed565b60405180910390fd5b5b601060169054906101000a900460ff1615806115515750601060159054906101000a900460ff165b156116e2576115a68160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116378160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d6690919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d591906126a9565b60405180910390a36119e3565b6116ea610b5d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117585750611728610b5d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119d75760105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118065750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611859575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191357600b548111156118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90613055565b60405180910390fd5b600c54816118b084610702565b6118ba9190613073565b11156118fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f2906130f0565b60405180910390fd5b600a5f81548092919061190d9061310e565b91905055505b5f61191d30610702565b9050601060159054906101000a900460ff16158015611988575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156119a05750601060169054906101000a900460ff165b156119d5575f8111156119cb576119ca6119c5836119c084600d54611dc3565b611dc3565b611a4a565b5b6119d447611cb5565b5b505b6119e2838383611ddb565b5b505050565b5f838311158290611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a269190612578565b60405180910390fd5b505f8385611a3d9190613155565b9050809150509392505050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a8157611a80613188565b5b604051908082528060200260200182016040528015611aaf5781602001602082028036833780820191505090505b50905030815f81518110611ac657611ac56131b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8e9190612b0a565b81600181518110611ba257611ba16131b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c0830600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611159565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c6a959493929190613299565b5f604051808303815f87803b158015611c81575f80fd5b505af1158015611c93573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d19573d5f803e3d5ffd5b5050565b5f611d5e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119e8565b905092915050565b5f808284611d749190613073565b905083811015611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db09061333b565b60405180910390fd5b8091505092915050565b5f818311611dd15782611dd3565b815b905092915050565b5f80821115611f4f57601060169054906101000a900460ff168015611e1c57506012546002600554600454611e10919061297d565b611e1a9190613073565b115b8015611e6f575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f1f57611e7d826121c1565b905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f0757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f1a57611f1784848461220a565b90505b611f4e565b611f4b84600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122fb565b90505b5b5f811115612010578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fa39190613073565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161200791906126a9565b60405180910390a35b6120608260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121036120b78284611d1d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d6690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121a68486611d1d90919063ffffffff16565b6040516121b391906126a9565b60405180910390a350505050565b5f806121ff60646121f1600854600a54116121de576006546121e2565b6004545b866123e790919063ffffffff16565b61245e90919063ffffffff16565b905080915050919050565b5f80601060169054906101000a900460ff168015612274575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156122ac57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156122f0576122ed60646122df600954600a54116122cc576007546122d0565b6005545b866123e790919063ffffffff16565b61245e90919063ffffffff16565b90505b809150509392505050565b5f808060125460085461230e919061297d565b1015801561231e57506012548310155b156123dc578260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461236f9190613073565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123d391906126a9565b60405180910390a35b809150509392505050565b5f8083036123f7575f9050612458565b5f8284612404919061297d565b90508284826124139190613386565b14612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90613426565b60405180910390fd5b809150505b92915050565b5f61249f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124a7565b905092915050565b5f80831182906124ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e49190612578565b60405180910390fd5b505f83856124fb9190613386565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61254a82612508565b6125548185612512565b9350612564818560208601612522565b61256d81612530565b840191505092915050565b5f6020820190508181035f8301526125908184612540565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125c58261259c565b9050919050565b6125d5816125bb565b81146125df575f80fd5b50565b5f813590506125f0816125cc565b92915050565b5f819050919050565b612608816125f6565b8114612612575f80fd5b50565b5f81359050612623816125ff565b92915050565b5f806040838503121561263f5761263e612598565b5b5f61264c858286016125e2565b925050602061265d85828601612615565b9150509250929050565b5f8115159050919050565b61267b81612667565b82525050565b5f6020820190506126945f830184612672565b92915050565b6126a3816125f6565b82525050565b5f6020820190506126bc5f83018461269a565b92915050565b5f805f606084860312156126d9576126d8612598565b5b5f6126e6868287016125e2565b93505060206126f7868287016125e2565b925050604061270886828701612615565b9150509250925092565b5f60ff82169050919050565b61272781612712565b82525050565b5f6020820190506127405f83018461271e565b92915050565b61274f816125bb565b82525050565b5f6020820190506127685f830184612746565b92915050565b5f6020828403121561278357612782612598565b5b5f612790848285016125e2565b91505092915050565b5f80604083850312156127af576127ae612598565b5b5f6127bc858286016125e2565b92505060206127cd858286016125e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561285957808604811115612835576128346127d7565b5b60018516156128445780820291505b808102905061285285612804565b9450612819565b94509492505050565b5f82612871576001905061292c565b8161287e575f905061292c565b8160018114612894576002811461289e576128cd565b600191505061292c565b60ff8411156128b0576128af6127d7565b5b8360020a9150848211156128c7576128c66127d7565b5b5061292c565b5060208310610133831016604e8410600b84101617156129025782820a9050838111156128fd576128fc6127d7565b5b61292c565b61290f8484846001612810565b92509050818404811115612926576129256127d7565b5b81810290505b9392505050565b5f61293d826125f6565b915061294883612712565b92506129757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612862565b905092915050565b5f612987826125f6565b9150612992836125f6565b92508282026129a0816125f6565b915082820484148315176129b7576129b66127d7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129f2602083612512565b91506129fd826129be565b602082019050919050565b5f6020820190508181035f830152612a1f816129e6565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612a5a601683612512565b9150612a6582612a26565b602082019050919050565b5f6020820190508181035f830152612a8781612a4e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ac2601783612512565b9150612acd82612a8e565b602082019050919050565b5f6020820190508181035f830152612aef81612ab6565b9050919050565b5f81519050612b04816125cc565b92915050565b5f60208284031215612b1f57612b1e612598565b5b5f612b2c84828501612af6565b91505092915050565b5f604082019050612b485f830185612746565b612b556020830184612746565b9392505050565b5f819050919050565b5f819050919050565b5f612b88612b83612b7e84612b5c565b612b65565b6125f6565b9050919050565b612b9881612b6e565b82525050565b5f60c082019050612bb15f830189612746565b612bbe602083018861269a565b612bcb6040830187612b8f565b612bd86060830186612b8f565b612be56080830185612746565b612bf260a083018461269a565b979650505050505050565b5f81519050612c0b816125ff565b92915050565b5f805f60608486031215612c2857612c27612598565b5b5f612c3586828701612bfd565b9350506020612c4686828701612bfd565b9250506040612c5786828701612bfd565b9150509250925092565b5f604082019050612c745f830185612746565b612c81602083018461269a565b9392505050565b612c9181612667565b8114612c9b575f80fd5b50565b5f81519050612cac81612c88565b92915050565b5f60208284031215612cc757612cc6612598565b5b5f612cd484828501612c9e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d37602483612512565b9150612d4282612cdd565b604082019050919050565b5f6020820190508181035f830152612d6481612d2b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dc5602283612512565b9150612dd082612d6b565b604082019050919050565b5f6020820190508181035f830152612df281612db9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e53602583612512565b9150612e5e82612df9565b604082019050919050565b5f6020820190508181035f830152612e8081612e47565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ee1602383612512565b9150612eec82612e87565b604082019050919050565b5f6020820190508181035f830152612f0e81612ed5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f6f602983612512565b9150612f7a82612f15565b604082019050919050565b5f6020820190508181035f830152612f9c81612f63565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612fd7601683612512565b9150612fe282612fa3565b602082019050919050565b5f6020820190508181035f83015261300481612fcb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61303f601983612512565b915061304a8261300b565b602082019050919050565b5f6020820190508181035f83015261306c81613033565b9050919050565b5f61307d826125f6565b9150613088836125f6565b92508282019050808211156130a05761309f6127d7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130da601a83612512565b91506130e5826130a6565b602082019050919050565b5f6020820190508181035f830152613107816130ce565b9050919050565b5f613118826125f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314a576131496127d7565b5b600182019050919050565b5f61315f826125f6565b915061316a836125f6565b9250828203905081811115613182576131816127d7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613214816125bb565b82525050565b5f613225838361320b565b60208301905092915050565b5f602082019050919050565b5f613247826131e2565b61325181856131ec565b935061325c836131fc565b805f5b8381101561328c578151613273888261321a565b975061327e83613231565b92505060018101905061325f565b5085935050505092915050565b5f60a0820190506132ac5f83018861269a565b6132b96020830187612b8f565b81810360408301526132cb818661323d565b90506132da6060830185612746565b6132e7608083018461269a565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613325601b83612512565b9150613330826132f1565b602082019050919050565b5f6020820190508181035f83015261335281613319565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613390826125f6565b915061339b836125f6565b9250826133ab576133aa613359565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613410602183612512565b915061341b826133b6565b604082019050919050565b5f6020820190508181035f83015261343d81613404565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e714c38cc72a19d40fe486e96a2904ff2cf99bdf846a0005089a7b307bb12af64736f6c63430008190033

Deployed Bytecode Sourcemap

3861:10332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5694:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4768:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5971:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6801:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5880:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4923:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13410:361;;;;;;;;;;;;;:::i;:::-;;13779:184;;;;;;;;;;;;;:::i;:::-;;6074:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2813:148;;;;;;;;;;;;;:::i;:::-;;12172:162;;;;;;;;;;;;;:::i;:::-;;4642:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13971:219;;;;;;;;;;;;;:::i;:::-;;12437:110;;;;;;;;;;;;;:::i;:::-;;2599:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4704:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12555:810;;;;;;;;;;;;;:::i;:::-;;5785:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6201:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5694:83;5731:13;5764:5;;;;;;;;;;;;;;;;;5757:12;;5694:83;:::o;6600:193::-;6702:4;6724:39;6733:12;:10;:12::i;:::-;6747:7;6756:6;6724:8;:39::i;:::-;6781:4;6774:11;;6600:193;;;;:::o;4768:54::-;;;;:::o;5971:95::-;6024:7;4565:1;4622:2;:13;;;;:::i;:::-;4608:11;:27;;;;:::i;:::-;6044:14;;5971:95;:::o;6801:446::-;6933:4;6950:36;6960:6;6968:9;6979:6;6950:9;:36::i;:::-;6997:220;7020:6;7041:12;:10;:12::i;:::-;7068:138;7124:6;7068:138;;;;;;;;;;;;;;;;;:11;:19;7080:6;7068:19;;;;;;;;;;;;;;;:33;7088:12;:10;:12::i;:::-;7068:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6997:8;:220::i;:::-;7235:4;7228:11;;6801:446;;;;;:::o;5880:83::-;5921:5;4565:1;5939:16;;5880:83;:::o;4923:28::-;;;;;;;;;;;;;:::o;13410:361::-;13476:10;;;;;;;;;;;13460:26;;:12;:10;:12::i;:::-;:26;;;13452:35;;;;;;13498:20;13521:24;13539:4;13521:9;:24::i;:::-;13498:47;;13575:1;13560:12;:16;13556:79;;;13593:30;13610:12;13593:16;:30::i;:::-;13556:79;13645:18;13666:21;13645:42;;13715:1;13702:10;:14;13698:66;;;13733:19;13741:10;13733:7;:19::i;:::-;13698:66;13441:330;;13410:361::o;13779:184::-;13845:10;;;;;;;;;;;13829:26;;:12;:10;:12::i;:::-;:26;;;13821:35;;;;;;13867:26;13896:21;13867:50;;13928:27;13936:18;13928:7;:27::i;:::-;13810:153;13779:184::o;6074:119::-;6140:7;6167:9;:18;6177:7;6167:18;;;;;;;;;;;;;;;;6160:25;;6074:119;;;:::o;2813:148::-;2736:12;:10;:12::i;:::-;2726:22;;:6;;;;;;;;;;:22;;;2718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2920:1:::1;2883:40;;2904:6;::::0;::::1;;;;;;;;2883:40;;;;;;;;;;;;2951:1;2934:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2813:148::o:0;12172:162::-;2736:12;:10;:12::i;:::-;2726:22;;:6;;;;;;;;;;:22;;;2718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4565:1:::1;4622:2;:13;;;;:::i;:::-;4608:11;:27;;;;:::i;:::-;12226:12;:22;;;;4565:1;4622:2;:13;;;;:::i;:::-;4608:11;:27;;;;:::i;:::-;12259:14;:24;;;;12299:27;4565:1;4622:2;:13;;;;:::i;:::-;4608:11;:27;;;;:::i;:::-;12299;;;;;;:::i;:::-;;;;;;;;12172:162::o:0;4642:55::-;;;;:::o;13971:219::-;14041:7;:5;:7::i;:::-;14027:21;;:10;:21;;;14019:30;;;;;;14092:1;14068:21;:25;14060:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14139:10;14131:28;;:51;14160:21;14131:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13971:219::o;12437:110::-;2736:12;:10;:12::i;:::-;2726:22;;:6;;;;;;;;;;:22;;;2718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12506:4:::1;12492:11;;:18;;;;;;;;;;;;;;;;;;12535:4;12521:11;;:18;;;;;;;;;;;;;;;;;;12437:110::o:0;2599:79::-;2637:7;2664:6;;;;;;;;;;;2657:13;;2599:79;:::o;4704:57::-;;;;:::o;12555:810::-;2736:12;:10;:12::i;:::-;2726:22;;:6;;;;;;;;;;:22;;;2718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12616:11:::1;;;;;;;;;;;12615:12;12607:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12717:42;12666:15;;:104;;;;;;;;;;;;;;;;;;12783:58;12800:4;12815:15;;;;;;;;;;;4565:1;4622:2;:13;;;;:::i;:::-;4608:11;:27;;;;:::i;:::-;12783:8;:58::i;:::-;12886:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12868:55;;;12946:4;12966:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12868:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12852:13;;:147;;;;;;;;;;;;;;;;;;13012:15;;;;;;;;;;;:31;;;13051:21;13096:4;13116:24;13134:4;13116:9;:24::i;:::-;13155:1;13171::::0;13187:7:::1;:5;:7::i;:::-;13209:15;13012:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13253:13;;;;;;;;;;;13246:29;;;13298:15;;;;;;;;;;;13329:17;13246:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12555:810::o:0;5785:87::-;5824:13;5857:7;;;;;;;;;;;;;;;;;5850:14;;5785:87;:::o;6201:199::-;6306:4;6328:42;6338:12;:10;:12::i;:::-;6352:9;6363:6;6328:9;:42::i;:::-;6388:4;6381:11;;6201:199;;;;:::o;6408:184::-;6525:7;6557:11;:18;6569:5;6557:18;;;;;;;;;;;;;;;:27;6576:7;6557:27;;;;;;;;;;;;;;;;6550:34;;6408:184;;;;:::o;139:98::-;192:7;219:10;212:17;;139:98;:::o;7255:369::-;7399:1;7382:19;;:5;:19;;;7374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:1;7461:21;;:7;:21;;;7453:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7562:6;7532:11;:18;7544:5;7532:18;;;;;;;;;;;;;;;:27;7551:7;7532:27;;;;;;;;;;;;;;;:36;;;;7600:7;7584:32;;7593:5;7584:32;;;7609:6;7584:32;;;;;;:::i;:::-;;;;;;;;7255:369;;;:::o;7632:1712::-;7770:1;7754:18;;:4;:18;;;7746:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7847:1;7833:16;;:2;:16;;;7825:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7917:1;7908:6;:10;7900:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7980:11;;;;;;;;;;;7975:179;;8034:18;:24;8053:4;8034:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8062:18;:22;8081:2;8062:22;;;;;;;;;;;;;;;;;;;;;;;;;8034:50;8008:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;7975:179;8171:11;;;;;;;;;;;8170:12;:22;;;;8186:6;;;;;;;;;;;8170:22;8166:223;;;8227:27;8247:6;8227:9;:15;8237:4;8227:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8209:9;:15;8219:4;8209:15;;;;;;;;;;;;;;;:45;;;;8285:25;8303:6;8285:9;:13;8295:2;8285:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;8269:9;:13;8279:2;8269:13;;;;;;;;;;;;;;;:41;;;;8345:2;8330:26;;8339:4;8330:26;;;8349:6;8330:26;;;;;;:::i;:::-;;;;;;;;8371:7;;8166:223;8413:7;:5;:7::i;:::-;8405:15;;:4;:15;;;;:32;;;;;8430:7;:5;:7::i;:::-;8424:13;;:2;:13;;;;8405:32;8401:895;;;8484:13;;;;;;;;;;;8476:21;;:4;:21;;;:72;;;;;8532:15;;;;;;;;;;;8518:30;;:2;:30;;;;8476:72;:116;;;;;8570:18;:22;8589:2;8570:22;;;;;;;;;;;;;;;;;;;;;;;;;8569:23;8476:116;8454:440;;;8645:12;;8635:6;:22;;8627:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8762:14;;8752:6;8736:13;8746:2;8736:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8706:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;8867:9;;:11;;;;;;;;;:::i;:::-;;;;;;8454:440;8910:28;8941:24;8959:4;8941:9;:24::i;:::-;8910:55;;8987:6;;;;;;;;;;;8986:7;:30;;;;;9003:13;;;;;;;;;;;8997:19;;:2;:19;;;8986:30;:45;;;;;9020:11;;;;;;;;;;;8986:45;8982:303;;;9079:1;9056:20;:24;9052:168;;;9103:117;9146:51;9150:6;9158:38;9162:20;9184:11;;9158:3;:38::i;:::-;9146:3;:51::i;:::-;9103:16;:117::i;:::-;9052:168;9239:30;9247:21;9239:7;:30::i;:::-;8982:303;8439:857;8401:895;9308:28;9319:4;9325:2;9329:6;9308:10;:28::i;:::-;7632:1712;;;;:::o;1401:224::-;1521:7;1554:1;1549;:6;;1557:12;1541:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1581:9;1597:1;1593;:5;;;;:::i;:::-;1581:17;;1616:1;1609:8;;;1401:224;;;;;:::o;11681:483::-;5283:4;5274:6;;:13;;;;;;;;;;;;;;;;;;11759:21:::1;11797:1;11783:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11759:40;;11828:4;11810;11815:1;11810:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11854:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11844:4;11849:1;11844:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11887:62;11904:4;11919:15;;;;;;;;;;;11937:11;11887:8;:62::i;:::-;11960:15;;;;;;;;;;;:66;;;12041:11;12067:1;12083:4;12110;12130:15;11960:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11748:416;5319:5:::0;5310:6;;:14;;;;;;;;;;;;;;;;;;11681:483;:::o;12342:87::-;12394:10;;;;;;;;;;;:19;;:27;12414:6;12394:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:87;:::o;1257:136::-;1315:7;1342:43;1346:1;1349;1342:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1335:50;;1257:136;;;;:::o;1070:179::-;1128:7;1148:9;1164:1;1160;:5;;;;:::i;:::-;1148:17;;1189:1;1184;:6;;1176:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1240:1;1233:8;;;1070:179;;;;:::o;11566:107::-;11623:7;11655:1;11651;:5;11650:15;;11664:1;11650:15;;;11660:1;11650:15;11643:22;;11566:107;;;;:::o;10134:997::-;10250:17;10295:1;10286:6;:10;10282:507;;;10335:11;;;;;;;;;;;:84;;;;;10405:13;;10401:1;10384:13;;10369:12;;:28;;;;:::i;:::-;10368:34;;;;:::i;:::-;:50;10335:84;:130;;;;;10441:18;:24;10460:4;10441:24;;;;;;;;;;;;;;;;;;;;;;;;;10440:25;10335:130;10313:465;;;10512:14;10519:6;10512;:14::i;:::-;10500:26;;10555:13;;;;;;;;;;;10549:19;;:2;:19;;;:44;;;;;10588:4;10572:21;;:4;:21;;;;10549:44;10545:129;;;10630:24;10637:4;10643:2;10647:6;10630;:24::i;:::-;10618:36;;10545:129;10313:465;;;10726:36;10737:4;10743:10;;;;;;;;;;;10755:6;10726:10;:36::i;:::-;10714:48;;10313:465;10282:507;10817:1;10805:9;:13;10801:143;;;10863:9;10835;:24;10853:4;10835:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;10915:4;10892:40;;10901:4;10892:40;;;10922:9;10892:40;;;;;;:::i;:::-;;;;;;;;10801:143;10972:27;10992:6;10972:9;:15;10982:4;10972:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10954:9;:15;10964:4;10954:15;;;;;;;;;;;;;;;:45;;;;11026:40;11044:21;11055:9;11044:6;:10;;:21;;;;:::i;:::-;11026:9;:13;11036:2;11026:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11010:9;:13;11020:2;11010:13;;;;;;;;;;;;;;;:56;;;;11097:2;11082:41;;11091:4;11082:41;;;11101:21;11112:9;11101:6;:10;;:21;;;;:::i;:::-;11082:41;;;;;;:::i;:::-;;;;;;;;10239:892;10134:997;;;:::o;9352:257::-;9407:7;9427:17;9467:107;9570:3;9467:84;9505:12;;9493:9;;:24;9492:58;;9536:14;;9492:58;;;9521:12;;9492:58;9467:6;:24;;:84;;;;:::i;:::-;:102;;:107;;;;:::i;:::-;9455:119;;9592:9;9585:16;;;9352:257;;;:::o;9617:509::-;9732:7;9752:17;9784:11;;;;;;;;;;;:34;;;;;9805:13;;;;;;;;;;;9799:19;;:2;:19;;;9784:34;:59;;;;;9838:4;9822:21;;:4;:21;;;;9784:59;9780:312;;;9872:208;10076:3;9872:181;9936:13;;9924:9;;:25;9923:111;;10019:15;;9923:111;;;9978:13;;9923:111;9872:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;9860:220;;9780:312;10109:9;10102:16;;;9617:509;;;;;:::o;11139:419::-;11258:7;11278:15;11354:7;11337:13;;11322:12;;:28;;;;:::i;:::-;:39;;:68;;;;;11377:13;;11365:8;:25;;11322:68;11304:222;;;11446:8;11417:9;:25;11435:5;11417:25;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11497:5;11474:40;;11483:4;11474:40;;;11505:8;11474:40;;;;;;:::i;:::-;;;;;;;;11304:222;11543:7;11536:14;;;11139:419;;;;;:::o;1633:246::-;1691:7;1720:1;1715;:6;1711:47;;1745:1;1738:8;;;;1711:47;1768:9;1784:1;1780;:5;;;;:::i;:::-;1768:17;;1813:1;1808;1804;:5;;;;:::i;:::-;:10;1796:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1870:1;1863:8;;;1633:246;;;;;:::o;1887:132::-;1945:7;1972:39;1976:1;1979;1972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1965:46;;1887:132;;;;:::o;2027:223::-;2147:7;2179:1;2175;:5;2182:12;2167:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2206:9;2222:1;2218;:5;;;;:::i;:::-;2206:17;;2241:1;2234:8;;;2027: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:102;6141:8;6188:5;6185:1;6181:13;6160:34;;6099:102;;;:::o;6207:848::-;6268:5;6275:4;6299:6;6290:15;;6323:5;6314:14;;6337:712;6358:1;6348:8;6345:15;6337:712;;;6453:4;6448:3;6444:14;6438:4;6435:24;6432:50;;;6462:18;;:::i;:::-;6432:50;6512:1;6502:8;6498:16;6495:451;;;6927:4;6920:5;6916:16;6907:25;;6495:451;6977:4;6971;6967:15;6959:23;;7007:32;7030:8;7007:32;:::i;:::-;6995:44;;6337:712;;;6207:848;;;;;;;:::o;7061:1073::-;7115:5;7306:8;7296:40;;7327:1;7318:10;;7329:5;;7296:40;7355:4;7345:36;;7372:1;7363:10;;7374:5;;7345:36;7441:4;7489:1;7484:27;;;;7525:1;7520:191;;;;7434:277;;7484:27;7502:1;7493:10;;7504:5;;;7520:191;7565:3;7555:8;7552:17;7549:43;;;7572:18;;:::i;:::-;7549:43;7621:8;7618:1;7614:16;7605:25;;7656:3;7649:5;7646:14;7643:40;;;7663:18;;:::i;:::-;7643:40;7696:5;;;7434:277;;7820:2;7810:8;7807:16;7801:3;7795:4;7792:13;7788:36;7770:2;7760:8;7757:16;7752:2;7746:4;7743:12;7739:35;7723:111;7720:246;;;7876:8;7870:4;7866:19;7857:28;;7911:3;7904:5;7901:14;7898:40;;;7918:18;;:::i;:::-;7898:40;7951:5;;7720:246;7991:42;8029:3;8019:8;8013:4;8010:1;7991:42;:::i;:::-;7976:57;;;;8065:4;8060:3;8056:14;8049:5;8046:25;8043:51;;;8074:18;;:::i;:::-;8043:51;8123:4;8116:5;8112:16;8103:25;;7061:1073;;;;;;:::o;8140:281::-;8198:5;8222:23;8240:4;8222:23;:::i;:::-;8214:31;;8266:25;8282:8;8266:25;:::i;:::-;8254:37;;8310:104;8347:66;8337:8;8331:4;8310:104;:::i;:::-;8301:113;;8140:281;;;;:::o;8427:410::-;8467:7;8490:20;8508:1;8490:20;:::i;:::-;8485:25;;8524:20;8542:1;8524:20;:::i;:::-;8519:25;;8579:1;8576;8572:9;8601:30;8619:11;8601:30;:::i;:::-;8590:41;;8780:1;8771:7;8767:15;8764:1;8761:22;8741:1;8734:9;8714:83;8691:139;;8810:18;;:::i;:::-;8691:139;8475:362;8427:410;;;;:::o;8843:182::-;8983:34;8979:1;8971:6;8967:14;8960:58;8843:182;:::o;9031:366::-;9173:3;9194:67;9258:2;9253:3;9194:67;:::i;:::-;9187:74;;9270:93;9359:3;9270:93;:::i;:::-;9388:2;9383:3;9379:12;9372:19;;9031:366;;;:::o;9403:419::-;9569:4;9607:2;9596:9;9592:18;9584:26;;9656:9;9650:4;9646:20;9642:1;9631:9;9627:17;9620:47;9684:131;9810:4;9684:131;:::i;:::-;9676:139;;9403:419;;;:::o;9828:172::-;9968:24;9964:1;9956:6;9952:14;9945:48;9828:172;:::o;10006:366::-;10148:3;10169:67;10233:2;10228:3;10169:67;:::i;:::-;10162:74;;10245:93;10334:3;10245:93;:::i;:::-;10363:2;10358:3;10354:12;10347:19;;10006:366;;;:::o;10378:419::-;10544:4;10582:2;10571:9;10567:18;10559:26;;10631:9;10625:4;10621:20;10617:1;10606:9;10602:17;10595:47;10659:131;10785:4;10659:131;:::i;:::-;10651:139;;10378:419;;;:::o;10803:173::-;10943:25;10939:1;10931:6;10927:14;10920:49;10803:173;:::o;10982:366::-;11124:3;11145:67;11209:2;11204:3;11145:67;:::i;:::-;11138:74;;11221:93;11310:3;11221:93;:::i;:::-;11339:2;11334:3;11330:12;11323:19;;10982:366;;;:::o;11354:419::-;11520:4;11558:2;11547:9;11543:18;11535:26;;11607:9;11601:4;11597:20;11593:1;11582:9;11578:17;11571:47;11635:131;11761:4;11635:131;:::i;:::-;11627:139;;11354:419;;;:::o;11779:143::-;11836:5;11867:6;11861:13;11852:22;;11883:33;11910:5;11883:33;:::i;:::-;11779:143;;;;:::o;11928:351::-;11998:6;12047:2;12035:9;12026:7;12022:23;12018:32;12015:119;;;12053:79;;:::i;:::-;12015:119;12173:1;12198:64;12254:7;12245:6;12234:9;12230:22;12198:64;:::i;:::-;12188:74;;12144:128;11928:351;;;;:::o;12285:332::-;12406:4;12444:2;12433:9;12429:18;12421:26;;12457:71;12525:1;12514:9;12510:17;12501:6;12457:71;:::i;:::-;12538:72;12606:2;12595:9;12591:18;12582:6;12538:72;:::i;:::-;12285:332;;;;;:::o;12623:85::-;12668:7;12697:5;12686:16;;12623:85;;;:::o;12714:60::-;12742:3;12763:5;12756:12;;12714:60;;;:::o;12780:158::-;12838:9;12871:61;12889:42;12898:32;12924:5;12898:32;:::i;:::-;12889:42;:::i;:::-;12871:61;:::i;:::-;12858:74;;12780:158;;;:::o;12944:147::-;13039:45;13078:5;13039:45;:::i;:::-;13034:3;13027:58;12944:147;;:::o;13097:807::-;13346:4;13384:3;13373:9;13369:19;13361:27;;13398:71;13466:1;13455:9;13451:17;13442:6;13398:71;:::i;:::-;13479:72;13547:2;13536:9;13532:18;13523:6;13479:72;:::i;:::-;13561:80;13637:2;13626:9;13622:18;13613:6;13561:80;:::i;:::-;13651;13727:2;13716:9;13712:18;13703:6;13651:80;:::i;:::-;13741:73;13809:3;13798:9;13794:19;13785:6;13741:73;:::i;:::-;13824;13892:3;13881:9;13877:19;13868:6;13824:73;:::i;:::-;13097:807;;;;;;;;;:::o;13910:143::-;13967:5;13998:6;13992:13;13983:22;;14014:33;14041:5;14014:33;:::i;:::-;13910:143;;;;:::o;14059:663::-;14147:6;14155;14163;14212:2;14200:9;14191:7;14187:23;14183:32;14180:119;;;14218:79;;:::i;:::-;14180:119;14338:1;14363:64;14419:7;14410:6;14399:9;14395:22;14363:64;:::i;:::-;14353:74;;14309:128;14476:2;14502:64;14558:7;14549:6;14538:9;14534:22;14502:64;:::i;:::-;14492:74;;14447:129;14615:2;14641:64;14697:7;14688:6;14677:9;14673:22;14641:64;:::i;:::-;14631:74;;14586:129;14059:663;;;;;:::o;14728:332::-;14849:4;14887:2;14876:9;14872:18;14864:26;;14900:71;14968:1;14957:9;14953:17;14944:6;14900:71;:::i;:::-;14981:72;15049:2;15038:9;15034:18;15025:6;14981:72;:::i;:::-;14728:332;;;;;:::o;15066:116::-;15136:21;15151:5;15136:21;:::i;:::-;15129:5;15126:32;15116:60;;15172:1;15169;15162:12;15116:60;15066:116;:::o;15188:137::-;15242:5;15273:6;15267:13;15258:22;;15289:30;15313:5;15289:30;:::i;:::-;15188:137;;;;:::o;15331:345::-;15398:6;15447:2;15435:9;15426:7;15422:23;15418:32;15415:119;;;15453:79;;:::i;:::-;15415:119;15573:1;15598:61;15651:7;15642:6;15631:9;15627:22;15598:61;:::i;:::-;15588:71;;15544:125;15331:345;;;;:::o;15682:223::-;15822:34;15818:1;15810:6;15806:14;15799:58;15891:6;15886:2;15878:6;15874:15;15867:31;15682:223;:::o;15911:366::-;16053:3;16074:67;16138:2;16133:3;16074:67;:::i;:::-;16067:74;;16150:93;16239:3;16150:93;:::i;:::-;16268:2;16263:3;16259:12;16252:19;;15911:366;;;:::o;16283:419::-;16449:4;16487:2;16476:9;16472:18;16464:26;;16536:9;16530:4;16526:20;16522:1;16511:9;16507:17;16500:47;16564:131;16690:4;16564:131;:::i;:::-;16556:139;;16283:419;;;:::o;16708:221::-;16848:34;16844:1;16836:6;16832:14;16825:58;16917:4;16912:2;16904:6;16900:15;16893:29;16708:221;:::o;16935:366::-;17077:3;17098:67;17162:2;17157:3;17098:67;:::i;:::-;17091:74;;17174:93;17263:3;17174:93;:::i;:::-;17292:2;17287:3;17283:12;17276:19;;16935:366;;;:::o;17307:419::-;17473:4;17511:2;17500:9;17496:18;17488:26;;17560:9;17554:4;17550:20;17546:1;17535:9;17531:17;17524:47;17588:131;17714:4;17588:131;:::i;:::-;17580:139;;17307:419;;;:::o;17732:224::-;17872:34;17868:1;17860:6;17856:14;17849:58;17941:7;17936:2;17928:6;17924:15;17917:32;17732:224;:::o;17962:366::-;18104:3;18125:67;18189:2;18184:3;18125:67;:::i;:::-;18118:74;;18201:93;18290:3;18201:93;:::i;:::-;18319:2;18314:3;18310:12;18303:19;;17962:366;;;:::o;18334:419::-;18500:4;18538:2;18527:9;18523:18;18515:26;;18587:9;18581:4;18577:20;18573:1;18562:9;18558:17;18551:47;18615:131;18741:4;18615:131;:::i;:::-;18607:139;;18334:419;;;:::o;18759:222::-;18899:34;18895:1;18887:6;18883:14;18876:58;18968:5;18963:2;18955:6;18951:15;18944:30;18759:222;:::o;18987:366::-;19129:3;19150:67;19214:2;19209:3;19150:67;:::i;:::-;19143:74;;19226:93;19315:3;19226:93;:::i;:::-;19344:2;19339:3;19335:12;19328:19;;18987:366;;;:::o;19359:419::-;19525:4;19563:2;19552:9;19548:18;19540:26;;19612:9;19606:4;19602:20;19598:1;19587:9;19583:17;19576:47;19640:131;19766:4;19640:131;:::i;:::-;19632:139;;19359:419;;;:::o;19784:228::-;19924:34;19920:1;19912:6;19908:14;19901:58;19993:11;19988:2;19980:6;19976:15;19969:36;19784:228;:::o;20018:366::-;20160:3;20181:67;20245:2;20240:3;20181:67;:::i;:::-;20174:74;;20257:93;20346:3;20257:93;:::i;:::-;20375:2;20370:3;20366:12;20359:19;;20018:366;;;:::o;20390:419::-;20556:4;20594:2;20583:9;20579:18;20571:26;;20643:9;20637:4;20633:20;20629:1;20618:9;20614:17;20607:47;20671:131;20797:4;20671:131;:::i;:::-;20663:139;;20390:419;;;:::o;20815:172::-;20955:24;20951:1;20943:6;20939:14;20932:48;20815:172;:::o;20993:366::-;21135:3;21156:67;21220:2;21215:3;21156:67;:::i;:::-;21149:74;;21232:93;21321:3;21232:93;:::i;:::-;21350:2;21345:3;21341:12;21334:19;;20993:366;;;:::o;21365:419::-;21531:4;21569:2;21558:9;21554:18;21546:26;;21618:9;21612:4;21608:20;21604:1;21593:9;21589:17;21582:47;21646:131;21772:4;21646:131;:::i;:::-;21638:139;;21365:419;;;:::o;21790:175::-;21930:27;21926:1;21918:6;21914:14;21907:51;21790:175;:::o;21971:366::-;22113:3;22134:67;22198:2;22193:3;22134:67;:::i;:::-;22127:74;;22210:93;22299:3;22210:93;:::i;:::-;22328:2;22323:3;22319:12;22312:19;;21971:366;;;:::o;22343:419::-;22509:4;22547:2;22536:9;22532:18;22524:26;;22596:9;22590:4;22586:20;22582:1;22571:9;22567:17;22560:47;22624:131;22750:4;22624:131;:::i;:::-;22616:139;;22343:419;;;:::o;22768:191::-;22808:3;22827:20;22845:1;22827:20;:::i;:::-;22822:25;;22861:20;22879:1;22861:20;:::i;:::-;22856:25;;22904:1;22901;22897:9;22890:16;;22925:3;22922:1;22919:10;22916:36;;;22932:18;;:::i;:::-;22916:36;22768:191;;;;:::o;22965:176::-;23105:28;23101:1;23093:6;23089:14;23082:52;22965:176;:::o;23147:366::-;23289:3;23310:67;23374:2;23369:3;23310:67;:::i;:::-;23303:74;;23386:93;23475:3;23386:93;:::i;:::-;23504:2;23499:3;23495:12;23488:19;;23147:366;;;:::o;23519:419::-;23685:4;23723:2;23712:9;23708:18;23700:26;;23772:9;23766:4;23762:20;23758:1;23747:9;23743:17;23736:47;23800:131;23926:4;23800:131;:::i;:::-;23792:139;;23519:419;;;:::o;23944:233::-;23983:3;24006:24;24024:5;24006:24;:::i;:::-;23997:33;;24052:66;24045:5;24042:77;24039:103;;24122:18;;:::i;:::-;24039:103;24169:1;24162:5;24158:13;24151:20;;23944:233;;;:::o;24183:194::-;24223:4;24243:20;24261:1;24243:20;:::i;:::-;24238:25;;24277:20;24295:1;24277:20;:::i;:::-;24272:25;;24321:1;24318;24314:9;24306:17;;24345:1;24339:4;24336:11;24333:37;;;24350:18;;:::i;:::-;24333:37;24183:194;;;;:::o;24383:180::-;24431:77;24428:1;24421:88;24528:4;24525:1;24518:15;24552:4;24549:1;24542:15;24569:180;24617:77;24614:1;24607:88;24714:4;24711:1;24704:15;24738:4;24735:1;24728:15;24755:114;24822:6;24856:5;24850:12;24840:22;;24755:114;;;:::o;24875:184::-;24974:11;25008:6;25003:3;24996:19;25048:4;25043:3;25039:14;25024:29;;24875:184;;;;:::o;25065:132::-;25132:4;25155:3;25147:11;;25185:4;25180:3;25176:14;25168:22;;25065:132;;;:::o;25203:108::-;25280:24;25298:5;25280:24;:::i;:::-;25275:3;25268:37;25203:108;;:::o;25317:179::-;25386:10;25407:46;25449:3;25441:6;25407:46;:::i;:::-;25485:4;25480:3;25476:14;25462:28;;25317:179;;;;:::o;25502:113::-;25572:4;25604;25599:3;25595:14;25587:22;;25502:113;;;:::o;25651:732::-;25770:3;25799:54;25847:5;25799:54;:::i;:::-;25869:86;25948:6;25943:3;25869:86;:::i;:::-;25862:93;;25979:56;26029:5;25979:56;:::i;:::-;26058:7;26089:1;26074:284;26099:6;26096:1;26093:13;26074:284;;;26175:6;26169:13;26202:63;26261:3;26246:13;26202:63;:::i;:::-;26195:70;;26288:60;26341:6;26288:60;:::i;:::-;26278:70;;26134:224;26121:1;26118;26114:9;26109:14;;26074:284;;;26078:14;26374:3;26367:10;;25775:608;;;25651:732;;;;:::o;26389:831::-;26652:4;26690:3;26679:9;26675:19;26667:27;;26704:71;26772:1;26761:9;26757:17;26748:6;26704:71;:::i;:::-;26785:80;26861:2;26850:9;26846:18;26837:6;26785:80;:::i;:::-;26912:9;26906:4;26902:20;26897:2;26886:9;26882:18;26875:48;26940:108;27043:4;27034:6;26940:108;:::i;:::-;26932:116;;27058:72;27126:2;27115:9;27111:18;27102:6;27058:72;:::i;:::-;27140:73;27208:3;27197:9;27193:19;27184:6;27140:73;:::i;:::-;26389:831;;;;;;;;:::o;27226:177::-;27366:29;27362:1;27354:6;27350:14;27343:53;27226:177;:::o;27409:366::-;27551:3;27572:67;27636:2;27631:3;27572:67;:::i;:::-;27565:74;;27648:93;27737:3;27648:93;:::i;:::-;27766:2;27761:3;27757:12;27750:19;;27409:366;;;:::o;27781:419::-;27947:4;27985:2;27974:9;27970:18;27962:26;;28034:9;28028:4;28024:20;28020:1;28009:9;28005:17;27998:47;28062:131;28188:4;28062:131;:::i;:::-;28054:139;;27781:419;;;:::o;28206:180::-;28254:77;28251:1;28244:88;28351:4;28348:1;28341:15;28375:4;28372:1;28365:15;28392:185;28432:1;28449:20;28467:1;28449:20;:::i;:::-;28444:25;;28483:20;28501:1;28483:20;:::i;:::-;28478:25;;28522:1;28512:35;;28527:18;;:::i;:::-;28512:35;28569:1;28566;28562:9;28557:14;;28392:185;;;;:::o;28583:220::-;28723:34;28719:1;28711:6;28707:14;28700:58;28792:3;28787:2;28779:6;28775:15;28768:28;28583:220;:::o;28809:366::-;28951:3;28972:67;29036:2;29031:3;28972:67;:::i;:::-;28965:74;;29048:93;29137:3;29048:93;:::i;:::-;29166:2;29161:3;29157:12;29150:19;;28809:366;;;:::o;29181:419::-;29347:4;29385:2;29374:9;29370:18;29362:26;;29434:9;29428:4;29424:20;29420:1;29409:9;29405:17;29398:47;29462:131;29588:4;29462:131;:::i;:::-;29454:139;;29181:419;;;:::o

Swarm Source

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