ETH Price: $3,453.99 (-0.08%)

Token

Always Maxing Every Xpense (AMEX)
 

Overview

Max Total Supply

694,200,000 AMEX

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.350548115 AMEX

Value
$0.00
0x8620b591CEAFaE800fA5B58D7bc86E784a0687c4
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:
AMEX

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-01
*/

/**
0 Tax
https://twitter.com/AMEXCoinETH
https://t.me/+tt-rrbWqdcg5ZTgx
https://www.amextoken.net/

Twitter: https://twitter.com/AMEXCoinETH
Telegram: https://t.me/+tt-rrbWqdcg5ZTgx
Website: https://www.amextoken.net/

**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract AMEX is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    // mapping(address => uint256) private holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable public taxWallet;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 5;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 694200000 * 10 ** _decimals;
    string private constant _name = unicode"Always Maxing Every Xpense";
    string private constant _symbol = unicode"AMEX";
    uint256 public _maxTxAmount = 1000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 1000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 10000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 15000 * 10 ** _decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

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

    function reduceFee(uint256 _newFee) external onlyOwner{
        // require(_msgSender() == taxWallet);
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    receive() external payable {}

    function manualSwap() external onlyOwner{
        // require(_msgSender() == taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060146006556014600755600060085560006009556005600a55601e600b556014600c556000600d556009600a62000057919062000629565b620f42406200006791906200067a565b600e556009600a6200007a919062000629565b620f42406200008a91906200067a565b600f556009600a6200009d919062000629565b612710620000ac91906200067a565b6010556009600a620000bf919062000629565b613a98620000ce91906200067a565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011457600080fd5b506000620001276200045e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d56200045e60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000225919062000629565b632960a6c06200023691906200067a565b600160006200024a6200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200029e6200046660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d16200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000430919062000629565b632960a6c06200044191906200067a565b604051620004509190620006d6565b60405180910390a3620006f3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200051d57808604811115620004f557620004f46200048f565b5b6001851615620005055780820291505b80810290506200051585620004be565b9450620004d5565b94509492505050565b6000826200053857600190506200060b565b816200054857600090506200060b565b81600181146200056157600281146200056c57620005a2565b60019150506200060b565b60ff8411156200058157620005806200048f565b5b8360020a9150848211156200059b576200059a6200048f565b5b506200060b565b5060208310610133831016604e8410600b8410161715620005dc5782820a905083811115620005d657620005d56200048f565b5b6200060b565b620005eb8484846001620004cb565b925090508184048111156200060557620006046200048f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006368262000612565b915062000643836200061c565b9250620006727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000526565b905092915050565b6000620006878262000612565b9150620006948362000612565b9250828202620006a48162000612565b91508282048414831517620006be57620006bd6200048f565b5b5092915050565b620006d08162000612565b82525050565b6000602082019050620006ed6000830184620006c5565b92915050565b61355180620007036000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed1461047d578063c876d0b9146104a8578063c9567bf9146104d3578063d34628cc146104ea578063dd62ed3e14610513578063ec1f3f631461055057610156565b8063751039fc1461037d5780637d1db4a5146103945780638da5cb5b146103bf5780638f9a55c0146103ea57806395d89b4114610415578063a9059cbb1461044057610156565b8063313ce56711610108578063313ce5671461028157806331c2d847146102ac5780633bbac579146102d557806351bc3c851461031257806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd146102195780632dc0562d1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610579565b60405161017d91906124a5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061256f565b6105b6565b6040516101ba91906125ca565b60405180910390f35b3480156101cf57600080fd5b506101d86105d4565b6040516101e591906125f4565b60405180910390f35b3480156101fa57600080fd5b506102036105da565b60405161021091906125f4565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061260f565b6105fe565b60405161024d91906125ca565b60405180910390f35b34801561026257600080fd5b5061026b6106d7565b6040516102789190612683565b60405180910390f35b34801561028d57600080fd5b506102966106fd565b6040516102a391906126ba565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce919061281d565b610706565b005b3480156102e157600080fd5b506102fc60048036038101906102f79190612866565b610830565b60405161030991906125ca565b60405180910390f35b34801561031e57600080fd5b50610327610886565b005b34801561033557600080fd5b50610350600480360381019061034b9190612866565b610957565b60405161035d91906125f4565b60405180910390f35b34801561037257600080fd5b5061037b6109a0565b005b34801561038957600080fd5b50610392610af3565b005b3480156103a057600080fd5b506103a9610bf8565b6040516103b691906125f4565b60405180910390f35b3480156103cb57600080fd5b506103d4610bfe565b6040516103e191906128a2565b60405180910390f35b3480156103f657600080fd5b506103ff610c27565b60405161040c91906125f4565b60405180910390f35b34801561042157600080fd5b5061042a610c2d565b60405161043791906124a5565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061256f565b610c6a565b60405161047491906125ca565b60405180910390f35b34801561048957600080fd5b50610492610c88565b60405161049f91906125f4565b60405180910390f35b3480156104b457600080fd5b506104bd610c8e565b6040516104ca91906125ca565b60405180910390f35b3480156104df57600080fd5b506104e8610ca1565b005b3480156104f657600080fd5b50610511600480360381019061050c919061281d565b6111d9565b005b34801561051f57600080fd5b5061053a600480360381019061053591906128bd565b611303565b60405161054791906125f4565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906128fd565b61138a565b005b60606040518060400160405280601a81526020017f416c77617973204d6178696e67204576657279205870656e7365000000000000815250905090565b60006105ca6105c361144d565b8484611455565b6001905092915050565b60115481565b60006009600a6105ea9190612a8c565b632960a6c06105f99190612ad7565b905090565b600061060b84848461161e565b6106cc8461061761144d565b6106c7856040518060600160405280602881526020016134f460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067d61144d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee49092919063ffffffff16565b611455565b600190509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b61070e61144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612b65565b60405180910390fd5b60005b815181101561082c576000600460008484815181106107c0576107bf612b85565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061082490612bb4565b91505061079e565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61088e61144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290612b65565b60405180910390fd5b600061092630610957565b9050600081111561093b5761093a81611f48565b5b6000479050600081111561095357610952816121c1565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a861144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90612b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610afb61144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90612b65565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bd29190612a8c565b632960a6c0610be19190612ad7565b604051610bee91906125f4565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f414d455800000000000000000000000000000000000000000000000000000000815250905090565b6000610c7e610c7761144d565b848461161e565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610ca961144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90612b65565b60405180910390fd5b601360149054906101000a900460ff1615610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90612c48565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e2430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e109190612a8c565b632960a6c0610e1f9190612ad7565b611455565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb59190612c7d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f629190612c7d565b6040518363ffffffff1660e01b8152600401610f7f929190612caa565b6020604051808303816000875af1158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc29190612c7d565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061104b30610957565b600080611056610bfe565b426040518863ffffffff1660e01b815260040161107896959493929190612d18565b60606040518083038185885af1158015611096573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110bb9190612d8e565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161115d929190612de1565b6020604051808303816000875af115801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612e36565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6111e161144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590612b65565b60405180910390fd5b60005b81518110156112ff5760016004600084848151811061129357611292612b85565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112f790612bb4565b915050611271565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61139261144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612b65565b60405180910390fd5b600854811115801561143357506009548111155b61143c57600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612ed5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a90612f67565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161161191906125f4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612ff9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f39061308b565b60405180910390fd5b6000811161173f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117369061311d565b60405180910390fd5b6000611749610bfe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b75750611787610bfe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c2757600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118605750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61186957600080fd5b6118a56064611897600a54600d541161188457600654611888565b6008545b8561222d90919063ffffffff16565b6122a790919063ffffffff16565b9050600560009054906101000a905050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119605750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119b65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7157600e54821115611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790613189565b60405180910390fd5b600f5482611a0d85610957565b611a1791906131a9565b1115611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613229565b60405180910390fd5b600d6000815480929190611a6b90612bb4565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3e57611b3b6064611b2d600b54600d5411611b1a57600754611b1e565b6009545b8561222d90919063ffffffff16565b6122a790919063ffffffff16565b90505b6000611b4930610957565b9050601360159054906101000a900460ff16158015611bb55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bcd5750601360169054906101000a900460ff165b8015611bda575060105481115b8015611be95750600c54600d54115b15611c2557611c0b611c0684611c01846011546122f1565b6122f1565b611f48565b60004790506000811115611c2357611c22476121c1565b5b505b505b6000811115611d2b57611c8281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230a90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2291906125f4565b60405180910390a35b611d7d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e24611dd6828461236890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ec9848661236890919063ffffffff16565b604051611ed691906125f4565b60405180910390a350505050565b6000838311158290611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2391906124a5565b60405180910390fd5b5060008385611f3b9190613249565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8057611f7f6126da565b5b604051908082528060200260200182016040528015611fae5781602001602082028036833780820191505090505b5090503081600081518110611fc657611fc5612b85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190612c7d565b816001815181106120a5576120a4612b85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061210c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611455565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217095949392919061333b565b600060405180830381600087803b15801561218a57600080fd5b505af115801561219e573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612229573d6000803e3d6000fd5b5050565b600080830361223f57600090506122a1565b6000828461224d9190612ad7565b905082848261225c91906133c4565b1461229c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229390613467565b60405180910390fd5b809150505b92915050565b60006122e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123b2565b905092915050565b60008183116123005782612302565b815b905092915050565b600080828461231991906131a9565b90508381101561235e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612355906134d3565b60405180910390fd5b8091505092915050565b60006123aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ee4565b905092915050565b600080831182906123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f091906124a5565b60405180910390fd5b506000838561240891906133c4565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561244f578082015181840152602081019050612434565b60008484015250505050565b6000601f19601f8301169050919050565b600061247782612415565b6124818185612420565b9350612491818560208601612431565b61249a8161245b565b840191505092915050565b600060208201905081810360008301526124bf818461246c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612506826124db565b9050919050565b612516816124fb565b811461252157600080fd5b50565b6000813590506125338161250d565b92915050565b6000819050919050565b61254c81612539565b811461255757600080fd5b50565b60008135905061256981612543565b92915050565b60008060408385031215612586576125856124d1565b5b600061259485828601612524565b92505060206125a58582860161255a565b9150509250929050565b60008115159050919050565b6125c4816125af565b82525050565b60006020820190506125df60008301846125bb565b92915050565b6125ee81612539565b82525050565b600060208201905061260960008301846125e5565b92915050565b600080600060608486031215612628576126276124d1565b5b600061263686828701612524565b935050602061264786828701612524565b92505060406126588682870161255a565b9150509250925092565b600061266d826124db565b9050919050565b61267d81612662565b82525050565b60006020820190506126986000830184612674565b92915050565b600060ff82169050919050565b6126b48161269e565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127128261245b565b810181811067ffffffffffffffff82111715612731576127306126da565b5b80604052505050565b60006127446124c7565b90506127508282612709565b919050565b600067ffffffffffffffff8211156127705761276f6126da565b5b602082029050602081019050919050565b600080fd5b600061279961279484612755565b61273a565b905080838252602082019050602084028301858111156127bc576127bb612781565b5b835b818110156127e557806127d18882612524565b8452602084019350506020810190506127be565b5050509392505050565b600082601f830112612804576128036126d5565b5b8135612814848260208601612786565b91505092915050565b600060208284031215612833576128326124d1565b5b600082013567ffffffffffffffff811115612851576128506124d6565b5b61285d848285016127ef565b91505092915050565b60006020828403121561287c5761287b6124d1565b5b600061288a84828501612524565b91505092915050565b61289c816124fb565b82525050565b60006020820190506128b76000830184612893565b92915050565b600080604083850312156128d4576128d36124d1565b5b60006128e285828601612524565b92505060206128f385828601612524565b9150509250929050565b600060208284031215612913576129126124d1565b5b60006129218482850161255a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129b05780860481111561298c5761298b61292a565b5b600185161561299b5780820291505b80810290506129a985612959565b9450612970565b94509492505050565b6000826129c95760019050612a85565b816129d75760009050612a85565b81600181146129ed57600281146129f757612a26565b6001915050612a85565b60ff841115612a0957612a0861292a565b5b8360020a915084821115612a2057612a1f61292a565b5b50612a85565b5060208310610133831016604e8410600b8410161715612a5b5782820a905083811115612a5657612a5561292a565b5b612a85565b612a688484846001612966565b92509050818404811115612a7f57612a7e61292a565b5b81810290505b9392505050565b6000612a9782612539565b9150612aa28361269e565b9250612acf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b9565b905092915050565b6000612ae282612539565b9150612aed83612539565b9250828202612afb81612539565b91508282048414831517612b1257612b1161292a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b4f602083612420565b9150612b5a82612b19565b602082019050919050565b60006020820190508181036000830152612b7e81612b42565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bbf82612539565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bf157612bf061292a565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c32601783612420565b9150612c3d82612bfc565b602082019050919050565b60006020820190508181036000830152612c6181612c25565b9050919050565b600081519050612c778161250d565b92915050565b600060208284031215612c9357612c926124d1565b5b6000612ca184828501612c68565b91505092915050565b6000604082019050612cbf6000830185612893565b612ccc6020830184612893565b9392505050565b6000819050919050565b6000819050919050565b6000612d02612cfd612cf884612cd3565b612cdd565b612539565b9050919050565b612d1281612ce7565b82525050565b600060c082019050612d2d6000830189612893565b612d3a60208301886125e5565b612d476040830187612d09565b612d546060830186612d09565b612d616080830185612893565b612d6e60a08301846125e5565b979650505050505050565b600081519050612d8881612543565b92915050565b600080600060608486031215612da757612da66124d1565b5b6000612db586828701612d79565b9350506020612dc686828701612d79565b9250506040612dd786828701612d79565b9150509250925092565b6000604082019050612df66000830185612893565b612e0360208301846125e5565b9392505050565b612e13816125af565b8114612e1e57600080fd5b50565b600081519050612e3081612e0a565b92915050565b600060208284031215612e4c57612e4b6124d1565b5b6000612e5a84828501612e21565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ebf602483612420565b9150612eca82612e63565b604082019050919050565b60006020820190508181036000830152612eee81612eb2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f51602283612420565b9150612f5c82612ef5565b604082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fe3602583612420565b9150612fee82612f87565b604082019050919050565b6000602082019050818103600083015261301281612fd6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613075602383612420565b915061308082613019565b604082019050919050565b600060208201905081810360008301526130a481613068565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613107602983612420565b9150613112826130ab565b604082019050919050565b60006020820190508181036000830152613136816130fa565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613173601983612420565b915061317e8261313d565b602082019050919050565b600060208201905081810360008301526131a281613166565b9050919050565b60006131b482612539565b91506131bf83612539565b92508282019050808211156131d7576131d661292a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613213601a83612420565b915061321e826131dd565b602082019050919050565b6000602082019050818103600083015261324281613206565b9050919050565b600061325482612539565b915061325f83612539565b92508282039050818111156132775761327661292a565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132b2816124fb565b82525050565b60006132c483836132a9565b60208301905092915050565b6000602082019050919050565b60006132e88261327d565b6132f28185613288565b93506132fd83613299565b8060005b8381101561332e57815161331588826132b8565b9750613320836132d0565b925050600181019050613301565b5085935050505092915050565b600060a08201905061335060008301886125e5565b61335d6020830187612d09565b818103604083015261336f81866132dd565b905061337e6060830185612893565b61338b60808301846125e5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133cf82612539565b91506133da83612539565b9250826133ea576133e9613395565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613451602183612420565b915061345c826133f5565b604082019050919050565b6000602082019050818103600083015261348081613444565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134bd601b83612420565b91506134c882613487565b602082019050919050565b600060208201905081810360008301526134ec816134b0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200933a2164de1dbba6675782f872163832e6d3d98d7083038287f64096e2e436c64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed1461047d578063c876d0b9146104a8578063c9567bf9146104d3578063d34628cc146104ea578063dd62ed3e14610513578063ec1f3f631461055057610156565b8063751039fc1461037d5780637d1db4a5146103945780638da5cb5b146103bf5780638f9a55c0146103ea57806395d89b4114610415578063a9059cbb1461044057610156565b8063313ce56711610108578063313ce5671461028157806331c2d847146102ac5780633bbac579146102d557806351bc3c851461031257806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd146102195780632dc0562d1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610579565b60405161017d91906124a5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061256f565b6105b6565b6040516101ba91906125ca565b60405180910390f35b3480156101cf57600080fd5b506101d86105d4565b6040516101e591906125f4565b60405180910390f35b3480156101fa57600080fd5b506102036105da565b60405161021091906125f4565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061260f565b6105fe565b60405161024d91906125ca565b60405180910390f35b34801561026257600080fd5b5061026b6106d7565b6040516102789190612683565b60405180910390f35b34801561028d57600080fd5b506102966106fd565b6040516102a391906126ba565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce919061281d565b610706565b005b3480156102e157600080fd5b506102fc60048036038101906102f79190612866565b610830565b60405161030991906125ca565b60405180910390f35b34801561031e57600080fd5b50610327610886565b005b34801561033557600080fd5b50610350600480360381019061034b9190612866565b610957565b60405161035d91906125f4565b60405180910390f35b34801561037257600080fd5b5061037b6109a0565b005b34801561038957600080fd5b50610392610af3565b005b3480156103a057600080fd5b506103a9610bf8565b6040516103b691906125f4565b60405180910390f35b3480156103cb57600080fd5b506103d4610bfe565b6040516103e191906128a2565b60405180910390f35b3480156103f657600080fd5b506103ff610c27565b60405161040c91906125f4565b60405180910390f35b34801561042157600080fd5b5061042a610c2d565b60405161043791906124a5565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061256f565b610c6a565b60405161047491906125ca565b60405180910390f35b34801561048957600080fd5b50610492610c88565b60405161049f91906125f4565b60405180910390f35b3480156104b457600080fd5b506104bd610c8e565b6040516104ca91906125ca565b60405180910390f35b3480156104df57600080fd5b506104e8610ca1565b005b3480156104f657600080fd5b50610511600480360381019061050c919061281d565b6111d9565b005b34801561051f57600080fd5b5061053a600480360381019061053591906128bd565b611303565b60405161054791906125f4565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906128fd565b61138a565b005b60606040518060400160405280601a81526020017f416c77617973204d6178696e67204576657279205870656e7365000000000000815250905090565b60006105ca6105c361144d565b8484611455565b6001905092915050565b60115481565b60006009600a6105ea9190612a8c565b632960a6c06105f99190612ad7565b905090565b600061060b84848461161e565b6106cc8461061761144d565b6106c7856040518060600160405280602881526020016134f460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067d61144d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee49092919063ffffffff16565b611455565b600190509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b61070e61144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612b65565b60405180910390fd5b60005b815181101561082c576000600460008484815181106107c0576107bf612b85565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061082490612bb4565b91505061079e565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61088e61144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290612b65565b60405180910390fd5b600061092630610957565b9050600081111561093b5761093a81611f48565b5b6000479050600081111561095357610952816121c1565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a861144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90612b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610afb61144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90612b65565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bd29190612a8c565b632960a6c0610be19190612ad7565b604051610bee91906125f4565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f414d455800000000000000000000000000000000000000000000000000000000815250905090565b6000610c7e610c7761144d565b848461161e565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610ca961144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90612b65565b60405180910390fd5b601360149054906101000a900460ff1615610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90612c48565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e2430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e109190612a8c565b632960a6c0610e1f9190612ad7565b611455565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb59190612c7d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f629190612c7d565b6040518363ffffffff1660e01b8152600401610f7f929190612caa565b6020604051808303816000875af1158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc29190612c7d565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061104b30610957565b600080611056610bfe565b426040518863ffffffff1660e01b815260040161107896959493929190612d18565b60606040518083038185885af1158015611096573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110bb9190612d8e565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161115d929190612de1565b6020604051808303816000875af115801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612e36565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6111e161144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590612b65565b60405180910390fd5b60005b81518110156112ff5760016004600084848151811061129357611292612b85565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112f790612bb4565b915050611271565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61139261144d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612b65565b60405180910390fd5b600854811115801561143357506009548111155b61143c57600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612ed5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a90612f67565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161161191906125f4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612ff9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f39061308b565b60405180910390fd5b6000811161173f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117369061311d565b60405180910390fd5b6000611749610bfe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b75750611787610bfe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c2757600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118605750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61186957600080fd5b6118a56064611897600a54600d541161188457600654611888565b6008545b8561222d90919063ffffffff16565b6122a790919063ffffffff16565b9050600560009054906101000a905050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119605750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119b65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7157600e54821115611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790613189565b60405180910390fd5b600f5482611a0d85610957565b611a1791906131a9565b1115611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613229565b60405180910390fd5b600d6000815480929190611a6b90612bb4565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3e57611b3b6064611b2d600b54600d5411611b1a57600754611b1e565b6009545b8561222d90919063ffffffff16565b6122a790919063ffffffff16565b90505b6000611b4930610957565b9050601360159054906101000a900460ff16158015611bb55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bcd5750601360169054906101000a900460ff165b8015611bda575060105481115b8015611be95750600c54600d54115b15611c2557611c0b611c0684611c01846011546122f1565b6122f1565b611f48565b60004790506000811115611c2357611c22476121c1565b5b505b505b6000811115611d2b57611c8281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230a90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2291906125f4565b60405180910390a35b611d7d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e24611dd6828461236890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ec9848661236890919063ffffffff16565b604051611ed691906125f4565b60405180910390a350505050565b6000838311158290611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2391906124a5565b60405180910390fd5b5060008385611f3b9190613249565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8057611f7f6126da565b5b604051908082528060200260200182016040528015611fae5781602001602082028036833780820191505090505b5090503081600081518110611fc657611fc5612b85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190612c7d565b816001815181106120a5576120a4612b85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061210c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611455565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217095949392919061333b565b600060405180830381600087803b15801561218a57600080fd5b505af115801561219e573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612229573d6000803e3d6000fd5b5050565b600080830361223f57600090506122a1565b6000828461224d9190612ad7565b905082848261225c91906133c4565b1461229c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229390613467565b60405180910390fd5b809150505b92915050565b60006122e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123b2565b905092915050565b60008183116123005782612302565b815b905092915050565b600080828461231991906131a9565b90508381101561235e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612355906134d3565b60405180910390fd5b8091505092915050565b60006123aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ee4565b905092915050565b600080831182906123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f091906124a5565b60405180910390fd5b506000838561240891906133c4565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561244f578082015181840152602081019050612434565b60008484015250505050565b6000601f19601f8301169050919050565b600061247782612415565b6124818185612420565b9350612491818560208601612431565b61249a8161245b565b840191505092915050565b600060208201905081810360008301526124bf818461246c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612506826124db565b9050919050565b612516816124fb565b811461252157600080fd5b50565b6000813590506125338161250d565b92915050565b6000819050919050565b61254c81612539565b811461255757600080fd5b50565b60008135905061256981612543565b92915050565b60008060408385031215612586576125856124d1565b5b600061259485828601612524565b92505060206125a58582860161255a565b9150509250929050565b60008115159050919050565b6125c4816125af565b82525050565b60006020820190506125df60008301846125bb565b92915050565b6125ee81612539565b82525050565b600060208201905061260960008301846125e5565b92915050565b600080600060608486031215612628576126276124d1565b5b600061263686828701612524565b935050602061264786828701612524565b92505060406126588682870161255a565b9150509250925092565b600061266d826124db565b9050919050565b61267d81612662565b82525050565b60006020820190506126986000830184612674565b92915050565b600060ff82169050919050565b6126b48161269e565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127128261245b565b810181811067ffffffffffffffff82111715612731576127306126da565b5b80604052505050565b60006127446124c7565b90506127508282612709565b919050565b600067ffffffffffffffff8211156127705761276f6126da565b5b602082029050602081019050919050565b600080fd5b600061279961279484612755565b61273a565b905080838252602082019050602084028301858111156127bc576127bb612781565b5b835b818110156127e557806127d18882612524565b8452602084019350506020810190506127be565b5050509392505050565b600082601f830112612804576128036126d5565b5b8135612814848260208601612786565b91505092915050565b600060208284031215612833576128326124d1565b5b600082013567ffffffffffffffff811115612851576128506124d6565b5b61285d848285016127ef565b91505092915050565b60006020828403121561287c5761287b6124d1565b5b600061288a84828501612524565b91505092915050565b61289c816124fb565b82525050565b60006020820190506128b76000830184612893565b92915050565b600080604083850312156128d4576128d36124d1565b5b60006128e285828601612524565b92505060206128f385828601612524565b9150509250929050565b600060208284031215612913576129126124d1565b5b60006129218482850161255a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129b05780860481111561298c5761298b61292a565b5b600185161561299b5780820291505b80810290506129a985612959565b9450612970565b94509492505050565b6000826129c95760019050612a85565b816129d75760009050612a85565b81600181146129ed57600281146129f757612a26565b6001915050612a85565b60ff841115612a0957612a0861292a565b5b8360020a915084821115612a2057612a1f61292a565b5b50612a85565b5060208310610133831016604e8410600b8410161715612a5b5782820a905083811115612a5657612a5561292a565b5b612a85565b612a688484846001612966565b92509050818404811115612a7f57612a7e61292a565b5b81810290505b9392505050565b6000612a9782612539565b9150612aa28361269e565b9250612acf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b9565b905092915050565b6000612ae282612539565b9150612aed83612539565b9250828202612afb81612539565b91508282048414831517612b1257612b1161292a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b4f602083612420565b9150612b5a82612b19565b602082019050919050565b60006020820190508181036000830152612b7e81612b42565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bbf82612539565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bf157612bf061292a565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c32601783612420565b9150612c3d82612bfc565b602082019050919050565b60006020820190508181036000830152612c6181612c25565b9050919050565b600081519050612c778161250d565b92915050565b600060208284031215612c9357612c926124d1565b5b6000612ca184828501612c68565b91505092915050565b6000604082019050612cbf6000830185612893565b612ccc6020830184612893565b9392505050565b6000819050919050565b6000819050919050565b6000612d02612cfd612cf884612cd3565b612cdd565b612539565b9050919050565b612d1281612ce7565b82525050565b600060c082019050612d2d6000830189612893565b612d3a60208301886125e5565b612d476040830187612d09565b612d546060830186612d09565b612d616080830185612893565b612d6e60a08301846125e5565b979650505050505050565b600081519050612d8881612543565b92915050565b600080600060608486031215612da757612da66124d1565b5b6000612db586828701612d79565b9350506020612dc686828701612d79565b9250506040612dd786828701612d79565b9150509250925092565b6000604082019050612df66000830185612893565b612e0360208301846125e5565b9392505050565b612e13816125af565b8114612e1e57600080fd5b50565b600081519050612e3081612e0a565b92915050565b600060208284031215612e4c57612e4b6124d1565b5b6000612e5a84828501612e21565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ebf602483612420565b9150612eca82612e63565b604082019050919050565b60006020820190508181036000830152612eee81612eb2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f51602283612420565b9150612f5c82612ef5565b604082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fe3602583612420565b9150612fee82612f87565b604082019050919050565b6000602082019050818103600083015261301281612fd6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613075602383612420565b915061308082613019565b604082019050919050565b600060208201905081810360008301526130a481613068565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613107602983612420565b9150613112826130ab565b604082019050919050565b60006020820190508181036000830152613136816130fa565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613173601983612420565b915061317e8261313d565b602082019050919050565b600060208201905081810360008301526131a281613166565b9050919050565b60006131b482612539565b91506131bf83612539565b92508282019050808211156131d7576131d661292a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613213601a83612420565b915061321e826131dd565b602082019050919050565b6000602082019050818103600083015261324281613206565b9050919050565b600061325482612539565b915061325f83612539565b92508282039050818111156132775761327661292a565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132b2816124fb565b82525050565b60006132c483836132a9565b60208301905092915050565b6000602082019050919050565b60006132e88261327d565b6132f28185613288565b93506132fd83613299565b8060005b8381101561332e57815161331588826132b8565b9750613320836132d0565b925050600181019050613301565b5085935050505092915050565b600060a08201905061335060008301886125e5565b61335d6020830187612d09565b818103604083015261336f81866132dd565b905061337e6060830185612893565b61338b60808301846125e5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133cf82612539565b91506133da83612539565b9250826133ea576133e9613395565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613451602183612420565b915061345c826133f5565b604082019050919050565b6000602082019050818103600083015261348081613444565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134bd601b83612420565b91506134c882613487565b602082019050919050565b600060208201905081810360008301526134ec816134b0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200933a2164de1dbba6675782f872163832e6d3d98d7083038287f64096e2e436c64736f6c63430008110033

Deployed Bytecode Sourcemap

3984:9779:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5943:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6828:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5219:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6220:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7023:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4413:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6129:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11987:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12163:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13383:377;;;;;;;;;;;;;:::i;:::-;;6323:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3009:148;;;;;;;;;;;;;:::i;:::-;;11501:207;;;;;;;;;;;;;:::i;:::-;;5028:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2795:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5090:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6034:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6450:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5154:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4367:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12257:825;;;;;;;;;;;;;:::i;:::-;;11815:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6651:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13090:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5943:83;5980:13;6013:5;;;;;;;;;;;;;;;;;6006:12;;5943:83;:::o;6828:187::-;6929:4;6946:39;6955:12;:10;:12::i;:::-;6969:7;6978:6;6946:8;:39::i;:::-;7003:4;6996:11;;6828:187;;;;:::o;5219:52::-;;;;:::o;6220:95::-;6273:7;4823:1;4878:2;:15;;;;:::i;:::-;4866:9;:27;;;;:::i;:::-;6293:14;;6220:95;:::o;7023:448::-;7157:4;7174:36;7184:6;7192:9;7203:6;7174:9;:36::i;:::-;7221:220;7244:6;7265:12;:10;:12::i;:::-;7292:138;7348:6;7292:138;;;;;;;;;;;;;;;;;:11;:19;7304:6;7292:19;;;;;;;;;;;;;;;:33;7312:12;:10;:12::i;:::-;7292:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7221:8;:220::i;:::-;7459:4;7452:11;;7023:448;;;;;:::o;4413:32::-;;;;;;;;;;;;;:::o;6129:83::-;6170:5;4823:1;6188:16;;6129:83;:::o;11987:168::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12062:6:::1;12057:91;12078:6;:13;12074:1;:17;12057:91;;;12131:5;12113:4;:15;12118:6;12125:1;12118:9;;;;;;;;:::i;:::-;;;;;;;;12113:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12093:3;;;;;:::i;:::-;;;;12057:91;;;;11987:168:::0;:::o;12163:86::-;12210:4;12234;:7;12239:1;12234:7;;;;;;;;;;;;;;;;;;;;;;;;;12227:14;;12163:86;;;:::o;13383:377::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13482:20:::1;13505:24;13523:4;13505:9;:24::i;:::-;13482:47;;13559:1;13544:12;:16;13540:79;;;13577:30;13594:12;13577:16;:30::i;:::-;13540:79;13629:18;13650:21;13629:42;;13699:1;13686:10;:14;13682:71;;;13717:24;13730:10;13717:12;:24::i;:::-;13682:71;13423:337;;13383:377::o:0;6323:119::-;6389:7;6416:9;:18;6426:7;6416:18;;;;;;;;;;;;;;;;6409:25;;6323:119;;;:::o;3009:148::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3116:1:::1;3079:40;;3100:6;::::0;::::1;;;;;;;;3079:40;;;;;;;;;;;;3147:1;3130:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3009:148::o:0;11501:207::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11652:5:::1;11629:20;;:28;;;;;;;;;;;;;;;;;;11673:27;4823:1;4878:2;:15;;;;:::i;:::-;4866:9;:27;;;;:::i;:::-;11673;;;;;;:::i;:::-;;;;;;;;11501:207::o:0;5028:55::-;;;;:::o;2795:79::-;2833:7;2860:6;;;;;;;;;;;2853:13;;2795:79;:::o;5090:57::-;;;;:::o;6034:87::-;6073:13;6106:7;;;;;;;;;;;;;;;;;6099:14;;6034:87;:::o;6450:193::-;6554:4;6571:42;6581:12;:10;:12::i;:::-;6595:9;6606:6;6571:9;:42::i;:::-;6631:4;6624:11;;6450:193;;;;:::o;5154:58::-;;;;:::o;4367:39::-;;;;;;;;;;;;;:::o;12257:825::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12319:11:::1;;;;;;;;;;;12318:12;12310:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12420:42;12369:15;;:104;;;;;;;;;;;;;;;;;;12484:58;12501:4;12516:15;;;;;;;;;;;4823:1;4878:2;:15;;;;:::i;:::-;4866:9;:27;;;;:::i;:::-;12484:8;:58::i;:::-;12587:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12569:55;;;12647:4;12667:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12569:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12553:13;;:147;;;;;;;;;;;;;;;;;;12711:15;;;;;;;;;;;:31;;;12750:21;12795:4;12815:24;12833:4;12815:9;:24::i;:::-;12854:1;12870::::0;12886:7:::1;:5;:7::i;:::-;12908:15;12711:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12952:13;;;;;;;;;;;12945:29;;;12983:15;;;;;;;;;;;13001:14;12945:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13041:4;13027:11;;:18;;;;;;;;;;;;;;;;;;13070:4;13056:11;;:18;;;;;;;;;;;;;;;;;;12257:825::o:0;11815:164::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11889:6:::1;11884:88;11905:5;:12;11901:1;:16;11884:88;;;11956:4;11939;:14;11944:5;11950:1;11944:8;;;;;;;;:::i;:::-;;;;;;;;11939:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11919:3;;;;;:::i;:::-;;;;11884:88;;;;11815:164:::0;:::o;6651:169::-;6758:7;6785:11;:18;6797:5;6785:18;;;;;;;;;;;;;;;:27;6804:7;6785:27;;;;;;;;;;;;;;;;6778:34;;6651:169;;;;:::o;13090:248::-;2932:12;:10;:12::i;:::-;2922:22;;:6;;;;;;;;;;:22;;;2914:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13222:12:::1;;13211:7;:23;;:51;;;;;13249:13;;13238:7;:24;;13211:51;13203:60;;;::::0;::::1;;13289:7;13274:12;:22;;;;13323:7;13307:13;:23;;;;13090:248:::0;:::o;330:98::-;383:7;410:10;403:17;;330:98;:::o;7479:335::-;7589:1;7572:19;;:5;:19;;;7564:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7670:1;7651:21;;:7;:21;;;7643:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7752:6;7722:11;:18;7734:5;7722:18;;;;;;;;;;;;;;;:27;7741:7;7722:27;;;;;;;;;;;;;;;:36;;;;7790:7;7774:32;;7783:5;7774:32;;;7799:6;7774:32;;;;;;:::i;:::-;;;;;;;;7479:335;;;:::o;7822:3065::-;7926:1;7910:18;;:4;:18;;;7902:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8003:1;7989:16;;:2;:16;;;7981:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8073:1;8064:6;:10;8056:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8131:17;8175:7;:5;:7::i;:::-;8167:15;;:4;:15;;;;:32;;;;;8192:7;:5;:7::i;:::-;8186:13;;:2;:13;;;;8167:32;8163:2353;;;8225:4;:10;8230:4;8225:10;;;;;;;;;;;;;;;;;;;;;;;;;8224:11;:24;;;;;8240:4;:8;8245:2;8240:8;;;;;;;;;;;;;;;;;;;;;;;;;8239:9;8224:24;8216:33;;;;;;8276:208;8480:3;8276:181;8340:15;;8328:9;;:27;8327:111;;8424:14;;8327:111;;;8384:12;;8327:111;8276:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;8264:220;;8505:20;;;;;;;;;;9097:13;;;;;;;;;;;9089:21;;:4;:21;;;:72;;;;;9145:15;;;;;;;;;;;9131:30;;:2;:30;;;;9089:72;:116;;;;;9183:18;:22;9202:2;9183:22;;;;;;;;;;;;;;;;;;;;;;;;;9182:23;9089:116;9067:438;;;9258:12;;9248:6;:22;;9240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9375:14;;9365:6;9349:13;9359:2;9349:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9319:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9478:9;;:11;;;;;;;;;:::i;:::-;;;;;;9067:438;9531:13;;;;;;;;;;;9525:19;;:2;:19;;;:44;;;;;9564:4;9548:21;;:4;:21;;;;9525:44;9521:332;;;9602:235;9833:3;9602:204;9674:16;;9662:9;;:28;9661:122;;9768:15;;9661:122;;;9723:13;;9661:122;9602:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9590:247;;9521:332;9869:28;9900:24;9918:4;9900:9;:24::i;:::-;9869:55;;9962:6;;;;;;;;;;;9961:7;:47;;;;;9995:13;;;;;;;;;;;9989:19;;:2;:19;;;9961:47;:79;;;;;10029:11;;;;;;;;;;;9961:79;:140;;;;;10084:17;;10061:20;:40;9961:140;:191;;;;;10134:18;;10122:9;;:30;9961:191;9939:566;;;10187:109;10226:51;10230:6;10238:38;10242:20;10264:11;;10238:3;:38::i;:::-;10226:3;:51::i;:::-;10187:16;:109::i;:::-;10315:26;10344:21;10315:50;;10409:1;10388:18;:22;10384:106;;;10435:35;10448:21;10435:12;:35::i;:::-;10384:106;10168:337;9939:566;8201:2315;8163:2353;10544:1;10532:9;:13;10528:172;;;10589:39;10618:9;10589;:24;10607:4;10589:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10562:9;:24;10580:4;10562:24;;;;;;;;;;;;;;;:66;;;;10671:4;10648:40;;10657:4;10648:40;;;10678:9;10648:40;;;;;;:::i;:::-;;;;;;;;10528:172;10728:27;10748:6;10728:9;:15;10738:4;10728:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10710:9;:15;10720:4;10710:15;;;;;;;;;;;;;;;:45;;;;10782:40;10800:21;10811:9;10800:6;:10;;:21;;;;:::i;:::-;10782:9;:13;10792:2;10782:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10766:9;:13;10776:2;10766:13;;;;;;;;;;;;;;;:56;;;;10853:2;10838:41;;10847:4;10838:41;;;10857:21;10868:9;10857:6;:10;;:21;;;;:::i;:::-;10838:41;;;;;;:::i;:::-;;;;;;;;7891:2996;7822:3065;;;:::o;1597:224::-;1717:7;1750:1;1745;:6;;1753:12;1737:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1777:9;1793:1;1789;:5;;;;:::i;:::-;1777:17;;1812:1;1805:8;;;1597:224;;;;;:::o;11010:483::-;5564:4;5555:6;;:13;;;;;;;;;;;;;;;;;;11088:21:::1;11126:1;11112:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11088:40;;11157:4;11139;11144:1;11139:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11183:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11173:4;11178:1;11173:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11216:62;11233:4;11248:15;;;;;;;;;;;11266:11;11216:8;:62::i;:::-;11289:15;;;;;;;;;;;:66;;;11370:11;11396:1;11412:4;11439;11459:15;11289:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11077:416;5600:5:::0;5591:6;;:14;;;;;;;;;;;;;;;;;;11010:483;:::o;11716:91::-;11773:9;;;;;;;;;;;:18;;:26;11792:6;11773:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11716:91;:::o;1829:246::-;1887:7;1916:1;1911;:6;1907:47;;1941:1;1934:8;;;;1907:47;1964:9;1980:1;1976;:5;;;;:::i;:::-;1964:17;;2009:1;2004;2000;:5;;;;:::i;:::-;:10;1992:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2066:1;2059:8;;;1829:246;;;;;:::o;2083:132::-;2141:7;2168:39;2172:1;2175;2168:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2161:46;;2083:132;;;;:::o;10895:107::-;10952:7;10984:1;10980;:5;10979:15;;10993:1;10979:15;;;10989:1;10979:15;10972:22;;10895:107;;;;:::o;1266:179::-;1324:7;1344:9;1360:1;1356;:5;;;;:::i;:::-;1344:17;;1385:1;1380;:6;;1372:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1436:1;1429:8;;;1266:179;;;;:::o;1453:136::-;1511:7;1538:43;1542:1;1545;1538:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1531:50;;1453:136;;;;:::o;2223:223::-;2343:7;2375:1;2371;:5;2378:12;2363:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2402:9;2418:1;2414;:5;;;;:::i;:::-;2402:17;;2437:1;2430:8;;;2223:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:104::-;4468:7;4497:24;4515:5;4497:24;:::i;:::-;4486:35;;4423:104;;;:::o;4533:142::-;4636:32;4662:5;4636:32;:::i;:::-;4631:3;4624:45;4533:142;;:::o;4681:254::-;4790:4;4828:2;4817:9;4813:18;4805:26;;4841:87;4925:1;4914:9;4910:17;4901:6;4841:87;:::i;:::-;4681:254;;;;:::o;4941:86::-;4976:7;5016:4;5009:5;5005:16;4994:27;;4941:86;;;:::o;5033:112::-;5116:22;5132:5;5116:22;:::i;:::-;5111:3;5104:35;5033:112;;:::o;5151:214::-;5240:4;5278:2;5267:9;5263:18;5255:26;;5291:67;5355:1;5344:9;5340:17;5331:6;5291:67;:::i;:::-;5151:214;;;;:::o;5371:117::-;5480:1;5477;5470:12;5494:180;5542:77;5539:1;5532:88;5639:4;5636:1;5629:15;5663:4;5660:1;5653:15;5680:281;5763:27;5785:4;5763:27;:::i;:::-;5755:6;5751:40;5893:6;5881:10;5878:22;5857:18;5845:10;5842:34;5839:62;5836:88;;;5904:18;;:::i;:::-;5836:88;5944:10;5940:2;5933:22;5723:238;5680:281;;:::o;5967:129::-;6001:6;6028:20;;:::i;:::-;6018:30;;6057:33;6085:4;6077:6;6057:33;:::i;:::-;5967:129;;;:::o;6102:311::-;6179:4;6269:18;6261:6;6258:30;6255:56;;;6291:18;;:::i;:::-;6255:56;6341:4;6333:6;6329:17;6321:25;;6401:4;6395;6391:15;6383:23;;6102:311;;;:::o;6419:117::-;6528:1;6525;6518:12;6559:710;6655:5;6680:81;6696:64;6753:6;6696:64;:::i;:::-;6680:81;:::i;:::-;6671:90;;6781:5;6810:6;6803:5;6796:21;6844:4;6837:5;6833:16;6826:23;;6897:4;6889:6;6885:17;6877:6;6873:30;6926:3;6918:6;6915:15;6912:122;;;6945:79;;:::i;:::-;6912:122;7060:6;7043:220;7077:6;7072:3;7069:15;7043:220;;;7152:3;7181:37;7214:3;7202:10;7181:37;:::i;:::-;7176:3;7169:50;7248:4;7243:3;7239:14;7232:21;;7119:144;7103:4;7098:3;7094:14;7087:21;;7043:220;;;7047:21;6661:608;;6559:710;;;;;:::o;7292:370::-;7363:5;7412:3;7405:4;7397:6;7393:17;7389:27;7379:122;;7420:79;;:::i;:::-;7379:122;7537:6;7524:20;7562:94;7652:3;7644:6;7637:4;7629:6;7625:17;7562:94;:::i;:::-;7553:103;;7369:293;7292:370;;;;:::o;7668:539::-;7752:6;7801:2;7789:9;7780:7;7776:23;7772:32;7769:119;;;7807:79;;:::i;:::-;7769:119;7955:1;7944:9;7940:17;7927:31;7985:18;7977:6;7974:30;7971:117;;;8007:79;;:::i;:::-;7971:117;8112:78;8182:7;8173:6;8162:9;8158:22;8112:78;:::i;:::-;8102:88;;7898:302;7668:539;;;;:::o;8213:329::-;8272:6;8321:2;8309:9;8300:7;8296:23;8292:32;8289:119;;;8327:79;;:::i;:::-;8289:119;8447:1;8472:53;8517:7;8508:6;8497:9;8493:22;8472:53;:::i;:::-;8462:63;;8418:117;8213:329;;;;:::o;8548:118::-;8635:24;8653:5;8635:24;:::i;:::-;8630:3;8623:37;8548:118;;:::o;8672:222::-;8765:4;8803:2;8792:9;8788:18;8780:26;;8816:71;8884:1;8873:9;8869:17;8860:6;8816:71;:::i;:::-;8672:222;;;;:::o;8900:474::-;8968:6;8976;9025:2;9013:9;9004:7;9000:23;8996:32;8993:119;;;9031:79;;:::i;:::-;8993:119;9151:1;9176:53;9221:7;9212:6;9201:9;9197:22;9176:53;:::i;:::-;9166:63;;9122:117;9278:2;9304:53;9349:7;9340:6;9329:9;9325:22;9304:53;:::i;:::-;9294:63;;9249:118;8900:474;;;;;:::o;9380:329::-;9439:6;9488:2;9476:9;9467:7;9463:23;9459:32;9456:119;;;9494:79;;:::i;:::-;9456:119;9614:1;9639:53;9684:7;9675:6;9664:9;9660:22;9639:53;:::i;:::-;9629:63;;9585:117;9380:329;;;;:::o;9715:180::-;9763:77;9760:1;9753:88;9860:4;9857:1;9850:15;9884:4;9881:1;9874:15;9901:102;9943:8;9990:5;9987:1;9983:13;9962:34;;9901:102;;;:::o;10009:848::-;10070:5;10077:4;10101:6;10092:15;;10125:5;10116:14;;10139:712;10160:1;10150:8;10147:15;10139:712;;;10255:4;10250:3;10246:14;10240:4;10237:24;10234:50;;;10264:18;;:::i;:::-;10234:50;10314:1;10304:8;10300:16;10297:451;;;10729:4;10722:5;10718:16;10709:25;;10297:451;10779:4;10773;10769:15;10761:23;;10809:32;10832:8;10809:32;:::i;:::-;10797:44;;10139:712;;;10009:848;;;;;;;:::o;10863:1073::-;10917:5;11108:8;11098:40;;11129:1;11120:10;;11131:5;;11098:40;11157:4;11147:36;;11174:1;11165:10;;11176:5;;11147:36;11243:4;11291:1;11286:27;;;;11327:1;11322:191;;;;11236:277;;11286:27;11304:1;11295:10;;11306:5;;;11322:191;11367:3;11357:8;11354:17;11351:43;;;11374:18;;:::i;:::-;11351:43;11423:8;11420:1;11416:16;11407:25;;11458:3;11451:5;11448:14;11445:40;;;11465:18;;:::i;:::-;11445:40;11498:5;;;11236:277;;11622:2;11612:8;11609:16;11603:3;11597:4;11594:13;11590:36;11572:2;11562:8;11559:16;11554:2;11548:4;11545:12;11541:35;11525:111;11522:246;;;11678:8;11672:4;11668:19;11659:28;;11713:3;11706:5;11703:14;11700:40;;;11720:18;;:::i;:::-;11700:40;11753:5;;11522:246;11793:42;11831:3;11821:8;11815:4;11812:1;11793:42;:::i;:::-;11778:57;;;;11867:4;11862:3;11858:14;11851:5;11848:25;11845:51;;;11876:18;;:::i;:::-;11845:51;11925:4;11918:5;11914:16;11905:25;;10863:1073;;;;;;:::o;11942:281::-;12000:5;12024:23;12042:4;12024:23;:::i;:::-;12016:31;;12068:25;12084:8;12068:25;:::i;:::-;12056:37;;12112:104;12149:66;12139:8;12133:4;12112:104;:::i;:::-;12103:113;;11942:281;;;;:::o;12229:410::-;12269:7;12292:20;12310:1;12292:20;:::i;:::-;12287:25;;12326:20;12344:1;12326:20;:::i;:::-;12321:25;;12381:1;12378;12374:9;12403:30;12421:11;12403:30;:::i;:::-;12392:41;;12582:1;12573:7;12569:15;12566:1;12563:22;12543:1;12536:9;12516:83;12493:139;;12612:18;;:::i;:::-;12493:139;12277:362;12229:410;;;;:::o;12645:182::-;12785:34;12781:1;12773:6;12769:14;12762:58;12645:182;:::o;12833:366::-;12975:3;12996:67;13060:2;13055:3;12996:67;:::i;:::-;12989:74;;13072:93;13161:3;13072:93;:::i;:::-;13190:2;13185:3;13181:12;13174:19;;12833:366;;;:::o;13205:419::-;13371:4;13409:2;13398:9;13394:18;13386:26;;13458:9;13452:4;13448:20;13444:1;13433:9;13429:17;13422:47;13486:131;13612:4;13486:131;:::i;:::-;13478:139;;13205:419;;;:::o;13630:180::-;13678:77;13675:1;13668:88;13775:4;13772:1;13765:15;13799:4;13796:1;13789:15;13816:233;13855:3;13878:24;13896:5;13878:24;:::i;:::-;13869:33;;13924:66;13917:5;13914:77;13911:103;;13994:18;;:::i;:::-;13911:103;14041:1;14034:5;14030:13;14023:20;;13816:233;;;:::o;14055:173::-;14195:25;14191:1;14183:6;14179:14;14172:49;14055:173;:::o;14234:366::-;14376:3;14397:67;14461:2;14456:3;14397:67;:::i;:::-;14390:74;;14473:93;14562:3;14473:93;:::i;:::-;14591:2;14586:3;14582:12;14575:19;;14234:366;;;:::o;14606:419::-;14772:4;14810:2;14799:9;14795:18;14787:26;;14859:9;14853:4;14849:20;14845:1;14834:9;14830:17;14823:47;14887:131;15013:4;14887:131;:::i;:::-;14879:139;;14606:419;;;:::o;15031:143::-;15088:5;15119:6;15113:13;15104:22;;15135:33;15162:5;15135:33;:::i;:::-;15031:143;;;;:::o;15180:351::-;15250:6;15299:2;15287:9;15278:7;15274:23;15270:32;15267:119;;;15305:79;;:::i;:::-;15267:119;15425:1;15450:64;15506:7;15497:6;15486:9;15482:22;15450:64;:::i;:::-;15440:74;;15396:128;15180:351;;;;:::o;15537:332::-;15658:4;15696:2;15685:9;15681:18;15673:26;;15709:71;15777:1;15766:9;15762:17;15753:6;15709:71;:::i;:::-;15790:72;15858:2;15847:9;15843:18;15834:6;15790:72;:::i;:::-;15537:332;;;;;:::o;15875:85::-;15920:7;15949:5;15938:16;;15875:85;;;:::o;15966:60::-;15994:3;16015:5;16008:12;;15966:60;;;:::o;16032:158::-;16090:9;16123:61;16141:42;16150:32;16176:5;16150:32;:::i;:::-;16141:42;:::i;:::-;16123:61;:::i;:::-;16110:74;;16032:158;;;:::o;16196:147::-;16291:45;16330:5;16291:45;:::i;:::-;16286:3;16279:58;16196:147;;:::o;16349:807::-;16598:4;16636:3;16625:9;16621:19;16613:27;;16650:71;16718:1;16707:9;16703:17;16694:6;16650:71;:::i;:::-;16731:72;16799:2;16788:9;16784:18;16775:6;16731:72;:::i;:::-;16813:80;16889:2;16878:9;16874:18;16865:6;16813:80;:::i;:::-;16903;16979:2;16968:9;16964:18;16955:6;16903:80;:::i;:::-;16993:73;17061:3;17050:9;17046:19;17037:6;16993:73;:::i;:::-;17076;17144:3;17133:9;17129:19;17120:6;17076:73;:::i;:::-;16349:807;;;;;;;;;:::o;17162:143::-;17219:5;17250:6;17244:13;17235:22;;17266:33;17293:5;17266:33;:::i;:::-;17162:143;;;;:::o;17311:663::-;17399:6;17407;17415;17464:2;17452:9;17443:7;17439:23;17435:32;17432:119;;;17470:79;;:::i;:::-;17432:119;17590:1;17615:64;17671:7;17662:6;17651:9;17647:22;17615:64;:::i;:::-;17605:74;;17561:128;17728:2;17754:64;17810:7;17801:6;17790:9;17786:22;17754:64;:::i;:::-;17744:74;;17699:129;17867:2;17893:64;17949:7;17940:6;17929:9;17925:22;17893:64;:::i;:::-;17883:74;;17838:129;17311:663;;;;;:::o;17980:332::-;18101:4;18139:2;18128:9;18124:18;18116:26;;18152:71;18220:1;18209:9;18205:17;18196:6;18152:71;:::i;:::-;18233:72;18301:2;18290:9;18286:18;18277:6;18233:72;:::i;:::-;17980:332;;;;;:::o;18318:116::-;18388:21;18403:5;18388:21;:::i;:::-;18381:5;18378:32;18368:60;;18424:1;18421;18414:12;18368:60;18318:116;:::o;18440:137::-;18494:5;18525:6;18519:13;18510:22;;18541:30;18565:5;18541:30;:::i;:::-;18440:137;;;;:::o;18583:345::-;18650:6;18699:2;18687:9;18678:7;18674:23;18670:32;18667:119;;;18705:79;;:::i;:::-;18667:119;18825:1;18850:61;18903:7;18894:6;18883:9;18879:22;18850:61;:::i;:::-;18840:71;;18796:125;18583:345;;;;:::o;18934:223::-;19074:34;19070:1;19062:6;19058:14;19051:58;19143:6;19138:2;19130:6;19126:15;19119:31;18934:223;:::o;19163:366::-;19305:3;19326:67;19390:2;19385:3;19326:67;:::i;:::-;19319:74;;19402:93;19491:3;19402:93;:::i;:::-;19520:2;19515:3;19511:12;19504:19;;19163:366;;;:::o;19535:419::-;19701:4;19739:2;19728:9;19724:18;19716:26;;19788:9;19782:4;19778:20;19774:1;19763:9;19759:17;19752:47;19816:131;19942:4;19816:131;:::i;:::-;19808:139;;19535:419;;;:::o;19960:221::-;20100:34;20096:1;20088:6;20084:14;20077:58;20169:4;20164:2;20156:6;20152:15;20145:29;19960:221;:::o;20187:366::-;20329:3;20350:67;20414:2;20409:3;20350:67;:::i;:::-;20343:74;;20426:93;20515:3;20426:93;:::i;:::-;20544:2;20539:3;20535:12;20528:19;;20187:366;;;:::o;20559:419::-;20725:4;20763:2;20752:9;20748:18;20740:26;;20812:9;20806:4;20802:20;20798:1;20787:9;20783:17;20776:47;20840:131;20966:4;20840:131;:::i;:::-;20832:139;;20559:419;;;:::o;20984:224::-;21124:34;21120:1;21112:6;21108:14;21101:58;21193:7;21188:2;21180:6;21176:15;21169:32;20984:224;:::o;21214:366::-;21356:3;21377:67;21441:2;21436:3;21377:67;:::i;:::-;21370:74;;21453:93;21542:3;21453:93;:::i;:::-;21571:2;21566:3;21562:12;21555:19;;21214:366;;;:::o;21586:419::-;21752:4;21790:2;21779:9;21775:18;21767:26;;21839:9;21833:4;21829:20;21825:1;21814:9;21810:17;21803:47;21867:131;21993:4;21867:131;:::i;:::-;21859:139;;21586:419;;;:::o;22011:222::-;22151:34;22147:1;22139:6;22135:14;22128:58;22220:5;22215:2;22207:6;22203:15;22196:30;22011:222;:::o;22239:366::-;22381:3;22402:67;22466:2;22461:3;22402:67;:::i;:::-;22395:74;;22478:93;22567:3;22478:93;:::i;:::-;22596:2;22591:3;22587:12;22580:19;;22239:366;;;:::o;22611:419::-;22777:4;22815:2;22804:9;22800:18;22792:26;;22864:9;22858:4;22854:20;22850:1;22839:9;22835:17;22828:47;22892:131;23018:4;22892:131;:::i;:::-;22884:139;;22611:419;;;:::o;23036:228::-;23176:34;23172:1;23164:6;23160:14;23153:58;23245:11;23240:2;23232:6;23228:15;23221:36;23036:228;:::o;23270:366::-;23412:3;23433:67;23497:2;23492:3;23433:67;:::i;:::-;23426:74;;23509:93;23598:3;23509:93;:::i;:::-;23627:2;23622:3;23618:12;23611:19;;23270:366;;;:::o;23642:419::-;23808:4;23846:2;23835:9;23831:18;23823:26;;23895:9;23889:4;23885:20;23881:1;23870:9;23866:17;23859:47;23923:131;24049:4;23923:131;:::i;:::-;23915:139;;23642:419;;;:::o;24067:175::-;24207:27;24203:1;24195:6;24191:14;24184:51;24067:175;:::o;24248:366::-;24390:3;24411:67;24475:2;24470:3;24411:67;:::i;:::-;24404:74;;24487:93;24576:3;24487:93;:::i;:::-;24605:2;24600:3;24596:12;24589:19;;24248:366;;;:::o;24620:419::-;24786:4;24824:2;24813:9;24809:18;24801:26;;24873:9;24867:4;24863:20;24859:1;24848:9;24844:17;24837:47;24901:131;25027:4;24901:131;:::i;:::-;24893:139;;24620:419;;;:::o;25045:191::-;25085:3;25104:20;25122:1;25104:20;:::i;:::-;25099:25;;25138:20;25156:1;25138:20;:::i;:::-;25133:25;;25181:1;25178;25174:9;25167:16;;25202:3;25199:1;25196:10;25193:36;;;25209:18;;:::i;:::-;25193:36;25045:191;;;;:::o;25242:176::-;25382:28;25378:1;25370:6;25366:14;25359:52;25242:176;:::o;25424:366::-;25566:3;25587:67;25651:2;25646:3;25587:67;:::i;:::-;25580:74;;25663:93;25752:3;25663:93;:::i;:::-;25781:2;25776:3;25772:12;25765:19;;25424:366;;;:::o;25796:419::-;25962:4;26000:2;25989:9;25985:18;25977:26;;26049:9;26043:4;26039:20;26035:1;26024:9;26020:17;26013:47;26077:131;26203:4;26077:131;:::i;:::-;26069:139;;25796:419;;;:::o;26221:194::-;26261:4;26281:20;26299:1;26281:20;:::i;:::-;26276:25;;26315:20;26333:1;26315:20;:::i;:::-;26310:25;;26359:1;26356;26352:9;26344:17;;26383:1;26377:4;26374:11;26371:37;;;26388:18;;:::i;:::-;26371:37;26221:194;;;;:::o;26421:114::-;26488:6;26522:5;26516:12;26506:22;;26421:114;;;:::o;26541:184::-;26640:11;26674:6;26669:3;26662:19;26714:4;26709:3;26705:14;26690:29;;26541:184;;;;:::o;26731:132::-;26798:4;26821:3;26813:11;;26851:4;26846:3;26842:14;26834:22;;26731:132;;;:::o;26869:108::-;26946:24;26964:5;26946:24;:::i;:::-;26941:3;26934:37;26869:108;;:::o;26983:179::-;27052:10;27073:46;27115:3;27107:6;27073:46;:::i;:::-;27151:4;27146:3;27142:14;27128:28;;26983:179;;;;:::o;27168:113::-;27238:4;27270;27265:3;27261:14;27253:22;;27168:113;;;:::o;27317:732::-;27436:3;27465:54;27513:5;27465:54;:::i;:::-;27535:86;27614:6;27609:3;27535:86;:::i;:::-;27528:93;;27645:56;27695:5;27645:56;:::i;:::-;27724:7;27755:1;27740:284;27765:6;27762:1;27759:13;27740:284;;;27841:6;27835:13;27868:63;27927:3;27912:13;27868:63;:::i;:::-;27861:70;;27954:60;28007:6;27954:60;:::i;:::-;27944:70;;27800:224;27787:1;27784;27780:9;27775:14;;27740:284;;;27744:14;28040:3;28033:10;;27441:608;;;27317:732;;;;:::o;28055:831::-;28318:4;28356:3;28345:9;28341:19;28333:27;;28370:71;28438:1;28427:9;28423:17;28414:6;28370:71;:::i;:::-;28451:80;28527:2;28516:9;28512:18;28503:6;28451:80;:::i;:::-;28578:9;28572:4;28568:20;28563:2;28552:9;28548:18;28541:48;28606:108;28709:4;28700:6;28606:108;:::i;:::-;28598:116;;28724:72;28792:2;28781:9;28777:18;28768:6;28724:72;:::i;:::-;28806:73;28874:3;28863:9;28859:19;28850:6;28806:73;:::i;:::-;28055:831;;;;;;;;:::o;28892:180::-;28940:77;28937:1;28930:88;29037:4;29034:1;29027:15;29061:4;29058:1;29051:15;29078:185;29118:1;29135:20;29153:1;29135:20;:::i;:::-;29130:25;;29169:20;29187:1;29169:20;:::i;:::-;29164:25;;29208:1;29198:35;;29213:18;;:::i;:::-;29198:35;29255:1;29252;29248:9;29243:14;;29078:185;;;;:::o;29269:220::-;29409:34;29405:1;29397:6;29393:14;29386:58;29478:3;29473:2;29465:6;29461:15;29454:28;29269:220;:::o;29495:366::-;29637:3;29658:67;29722:2;29717:3;29658:67;:::i;:::-;29651:74;;29734:93;29823:3;29734:93;:::i;:::-;29852:2;29847:3;29843:12;29836:19;;29495:366;;;:::o;29867:419::-;30033:4;30071:2;30060:9;30056:18;30048:26;;30120:9;30114:4;30110:20;30106:1;30095:9;30091:17;30084:47;30148:131;30274:4;30148:131;:::i;:::-;30140:139;;29867:419;;;:::o;30292:177::-;30432:29;30428:1;30420:6;30416:14;30409:53;30292:177;:::o;30475:366::-;30617:3;30638:67;30702:2;30697:3;30638:67;:::i;:::-;30631:74;;30714:93;30803:3;30714:93;:::i;:::-;30832:2;30827:3;30823:12;30816:19;;30475:366;;;:::o;30847:419::-;31013:4;31051:2;31040:9;31036:18;31028:26;;31100:9;31094:4;31090:20;31086:1;31075:9;31071:17;31064:47;31128:131;31254:4;31128:131;:::i;:::-;31120:139;;30847:419;;;:::o

Swarm Source

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