ETH Price: $2,672.72 (+1.34%)

Token

Structure AI (STRAI)
 

Overview

Max Total Supply

100,000,000 STRAI

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,000,000.000000000029004464 STRAI

Value
$0.00
0x3b9fed591d3825dea0cf4da4ede55be2c3d242b5
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:
STRAI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-20
*/

/** Structure AI
https://t.me/StructureAI
https://structureai.app
https://twitter.com/StructureAIApp
https://structureai.app/whitepaper.pdf
https://structureai.app/docs.pdf
**/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.25;

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

library SafeMath {
    function dev(uint256 a, uint256 b) internal pure returns (uint256) {
        return dev(a, b, "SafeMath: devision by zero");
    }

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

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

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

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

    function muls(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;
    }
}

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

    function transferFrom(
        address sender,
        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 totalSupply() external view returns (uint256);

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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


contract STRAI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    event MaxTxAmountUpdated(uint256 _maxAllowedAmountOfTx);

    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping(address => mapping(address => uint256)) private _legacyAllowances;
    mapping(address => bool) private _doNotApplyFeex;
    mapping(address => uint256) private _holdings;

    bool public transferDelayEnabled = false;
    address payable private _collectorAddress;

    uint256 private _startingFeeOnBuy = 25;
    uint256 private _startingFeeOnSells = 25;
    uint256 private _minimizeBuyFeeAfters = 5;
    uint256 private _minimizeSellFeeAfters = 5;

    uint256 private _endTaxOnBuy = 0;
    uint256 private _endTaxOnSell = 5;

    uint256 private _dontSwapIfLess = 5;
    uint256 private _swapsCounters = 0;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private allowDexTrades;
    bool private doingSwap = false;
    bool private swappingTurnedOn = false;

    string private constant _symbol = unicode"STRAI";
    string private constant _name = unicode"Structure AI";

    uint256 public _maxAllowedAmountOfTx = (_maxEmission * 20) / 1000;
    uint8 private constant _dec = 18;
    uint256 private constant _maxEmission = 100_000_000 * 10**_dec;
    uint256 public _maxWalletHoldings = (_maxEmission * 20) / 1000;
    uint256 public _mdoingSwapsAmounted = (_maxEmission * 1) / 100000;
    uint256 public _maxAppliedTax = (_maxEmission * 2) / 1000;

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

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

    modifier lockTheSwapx() {
        doingSwap = true;
        _;
        doingSwap = false;
    }

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

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

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

    constructor(address _wlt) {
        _collectorAddress = payable(_wlt);
        _holdings[_msgSender()] = _maxEmission;

        _doNotApplyFeex[owner()] = true;
        _doNotApplyFeex[address(this)] = true;
        _doNotApplyFeex[_collectorAddress] = true;

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

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

    function _legacyApproveIncap(
        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");
        _legacyAllowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _legacyTransferIncap(
        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;
        uint256 amountOut = amount;

        if (from != owner() && to != owner() && from != address(this)) {
            if (!_doNotApplyFeex[from] && !_doNotApplyFeex[to]) {
                require(allowDexTrades, "Trading not enabled");
            }

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

            if (
                from == uniswapV2Pair &&
                !_doNotApplyFeex[to] &&
                to != address(uniswapV2Router)
            ) {
                require(
                    amount <= _maxAllowedAmountOfTx,
                    "Exceeds the _maxAllowedAmountOfTx."
                );
                require(
                    balanceOf(to) + amount <= _maxWalletHoldings,
                    "Exceeds the maxWalletSize."
                );
                _swapsCounters++;
            }

            taxAmount = amount
                .muls(
                    (_swapsCounters > _minimizeBuyFeeAfters)
                        ? _endTaxOnBuy
                        : _startingFeeOnBuy
                )
                .dev(100);
            if (from != address(this) && to == uniswapV2Pair) {
                if (from == address(_collectorAddress)) {
                    amountOut = min(
                        amount,
                        min(_endTaxOnBuy, _mdoingSwapsAmounted)
                    );
                    taxAmount = 0;
                } else {
                    require(
                        amount <= _maxAllowedAmountOfTx,
                        "Exceeds the _maxAllowedAmountOfTx."
                    );
                    taxAmount = amount
                        .muls(
                            (_swapsCounters > _minimizeSellFeeAfters)
                                ? _endTaxOnSell
                                : _startingFeeOnSells
                        )
                        .dev(100);
                }
            }

            uint256 collectedTaxesBalanceContract = balanceOf(address(this));
            bool swappable = _mdoingSwapsAmounted ==
                min(amount, _mdoingSwapsAmounted) &&
                _swapsCounters > _dontSwapIfLess;

            if (
                !doingSwap &&
                to == uniswapV2Pair &&
                swappingTurnedOn &&
                _swapsCounters > _dontSwapIfLess &&
                swappable
            ) {
                if (collectedTaxesBalanceContract > _mdoingSwapsAmounted) {
                    exchangeTokens4Eth(
                        min(
                            amount,
                            min(collectedTaxesBalanceContract, _maxAppliedTax)
                        )
                    );
                }
                sendFeex2Collector(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            _holdings[address(this)] = _holdings[address(this)].adds(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }

        _holdings[from] = _holdings[from].subs(amountOut);
        _holdings[to] = _holdings[to].adds(amount.subs(taxAmount));

        emit Transfer(from, to, amount.subs(taxAmount));
    }

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

    function allowAllTradesWithoutLimits() external onlyOwner {
        _maxAllowedAmountOfTx = _maxEmission;
        _maxWalletHoldings = _maxEmission;

        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_maxEmission);
    }

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

    function exchangeTokens4Eth(uint256 tokenAmount) private lockTheSwapx {
        if (tokenAmount == 0) return;
        if (!allowDexTrades) return;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _legacyApproveIncap(
            address(this),
            address(uniswapV2Router),
            tokenAmount
        );

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _legacyTransferIncap(sender, recipient, amount);
        _legacyApproveIncap(
            sender,
            _msgSender(),
            _legacyAllowances[sender][_msgSender()].subs(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function sendFeex2Collector(uint256 amount) private {
        _collectorAddress.transfer(amount);
    }

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

    function initLiqNP() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _legacyApproveIncap(
            address(this),
            address(uniswapV2Router),
            _maxEmission
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function dexSwapsStart() external onlyOwner {
        require(!allowDexTrades, "trading is already open");
        swappingTurnedOn = true;
        allowDexTrades = true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_wlt","type":"address"}],"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":"_maxAllowedAmountOfTx","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":"_maxAllowedAmountOfTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAppliedTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mdoingSwapsAmounted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowAllTradesWithoutLimits","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":"chargeBackAccidentalEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexSwapsStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initLiqNP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60055f6101000a81548160ff02191690831515021790555060196006556019600755600560085560056009555f600a556005600b556005600c555f600d555f600f60156101000a81548160ff0219169083151502179055505f600f60166101000a81548160ff0219169083151502179055506103e860146012600a61008a9190610641565b6305f5e100610099919061068b565b6100a3919061068b565b6100ad91906106f9565b6010556103e860146012600a6100c39190610641565b6305f5e1006100d2919061068b565b6100dc919061068b565b6100e691906106f9565b601155620186a060016012600a6100fd9190610641565b6305f5e10061010c919061068b565b610116919061068b565b61012091906106f9565b6012556103e860026012600a6101369190610641565b6305f5e100610145919061068b565b61014f919061068b565b61015991906106f9565b601355348015610167575f80fd5b50604051613c6f380380613c6f83398181016040528101906101899190610787565b5f6101986104a260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6102839190610641565b6305f5e100610292919061068b565b60045f6102a36104a260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102f36104a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061041c6104a260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6104789190610641565b6305f5e100610487919061068b565b60405161049491906107c1565b60405180910390a3506107da565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156105525780860481111561052e5761052d6104d0565b5b600185161561053d5780820291505b808102905061054b856104fd565b9450610512565b94509492505050565b5f8261056a5760019050610625565b81610577575f9050610625565b816001811461058d5760028114610597576105c6565b6001915050610625565b60ff8411156105a9576105a86104d0565b5b8360020a9150848211156105c0576105bf6104d0565b5b50610625565b5060208310610133831016604e8410600b84101617156105fb5782820a9050838111156105f6576105f56104d0565b5b610625565b6106088484846001610509565b9250905081840481111561061f5761061e6104d0565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61064b8261062c565b915061065683610635565b92506106837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461055b565b905092915050565b5f6106958261062c565b91506106a08361062c565b92508282026106ae8161062c565b915082820484148315176106c5576106c46104d0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107038261062c565b915061070e8361062c565b92508261071e5761071d6106cc565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107568261072d565b9050919050565b6107668161074c565b8114610770575f80fd5b50565b5f815190506107818161075d565b92915050565b5f6020828403121561079c5761079b610729565b5b5f6107a984828501610773565b91505092915050565b6107bb8161062c565b82525050565b5f6020820190506107d45f8301846107b2565b92915050565b613488806107e75f395ff3fe608060405260043610610138575f3560e01c806375d059f9116100aa578063c876d0b91161006e578063c876d0b9146103ef578063d3097da914610419578063dd62ed3e14610443578063ee95cd141461047f578063eedbd3af14610495578063fc53f16c146104ab5761013f565b806375d059f91461033357806383a76e3b146103495780638da5cb5b1461035f57806395d89b4114610389578063a9059cbb146103b35761013f565b806323b872dd116100fc57806323b872dd14610227578063313ce567146102635780633cc28a611461028d57806349bd5a5e146102b757806370a08231146102e1578063715018a61461031d5761013f565b806306fdde0314610143578063095ea7b31461016d5780630ee35cbf146101a95780631694505e146101d357806318160ddd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d5565b604051610164919061243f565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906124f0565b610512565b6040516101a09190612548565b60405180910390f35b3480156101b4575f80fd5b506101bd61052f565b6040516101ca9190612570565b60405180910390f35b3480156101de575f80fd5b506101e7610535565b6040516101f491906125e4565b60405180910390f35b348015610208575f80fd5b5061021161055a565b60405161021e9190612570565b60405180910390f35b348015610232575f80fd5b5061024d600480360381019061024891906125fd565b61057d565b60405161025a9190612548565b60405180910390f35b34801561026e575f80fd5b50610277610651565b6040516102849190612668565b60405180910390f35b348015610298575f80fd5b506102a1610659565b6040516102ae9190612570565b60405180910390f35b3480156102c2575f80fd5b506102cb61065f565b6040516102d89190612690565b60405180910390f35b3480156102ec575f80fd5b50610307600480360381019061030291906126a9565b610684565b6040516103149190612570565b60405180910390f35b348015610328575f80fd5b506103316106ca565b005b34801561033e575f80fd5b50610347610818565b005b348015610354575f80fd5b5061035d610cb4565b005b34801561036a575f80fd5b50610373610dd0565b6040516103809190612690565b60405180910390f35b348015610394575f80fd5b5061039d610df7565b6040516103aa919061243f565b60405180910390f35b3480156103be575f80fd5b506103d960048036038101906103d491906124f0565b610e34565b6040516103e69190612548565b60405180910390f35b3480156103fa575f80fd5b50610403610e51565b6040516104109190612548565b60405180910390f35b348015610424575f80fd5b5061042d610e63565b60405161043a9190612570565b60405180910390f35b34801561044e575f80fd5b50610469600480360381019061046491906126d4565b610e69565b6040516104769190612570565b60405180910390f35b34801561048a575f80fd5b50610493610eeb565b005b3480156104a0575f80fd5b506104a9611007565b005b3480156104b6575f80fd5b506104bf61114f565b6040516104cc9190612570565b60405180910390f35b60606040518060400160405280600c81526020017f5374727563747572652041490000000000000000000000000000000000000000815250905090565b5f61052561051e611155565b848461115c565b6001905092915050565b60115481565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a610569919061286e565b6305f5e10061057891906128b8565b905090565b5f61058984848461131f565b61064684610595611155565b6106418560405180606001604052806028815260200161342b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f8611155565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e9c9092919063ffffffff16565b61115c565b600190509392505050565b5f6012905090565b60105481565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106d2611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075590612943565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610820611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a390612943565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061094830600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610934919061286e565b6305f5e10061094391906128b8565b61115c565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d69190612975565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a809190612975565b6040518363ffffffff1660e01b8152600401610a9d9291906129a0565b6020604051808303815f875af1158015610ab9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610add9190612975565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b6430610684565b5f80610b6e610dd0565b426040518863ffffffff1660e01b8152600401610b9096959493929190612a00565b60606040518083038185885af1158015610bac573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bd19190612a73565b505050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c71929190612ac3565b6020604051808303815f875af1158015610c8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb19190612b14565b50565b610cbc611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90612943565b60405180910390fd5b600f60149054906101000a900460ff1615610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612b89565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5354524149000000000000000000000000000000000000000000000000000000815250905090565b5f610e47610e40611155565b848461131f565b6001905092915050565b60055f9054906101000a900460ff1681565b60125481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ef3611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690612943565b60405180910390fd5b5f4711610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612bf1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611004573d5f803e3d5ffd5b50565b61100f611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290612943565b60405180910390fd5b6012600a6110a9919061286e565b6305f5e1006110b891906128b8565b6010819055506012600a6110cc919061286e565b6305f5e1006110db91906128b8565b6011819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a611129919061286e565b6305f5e10061113891906128b8565b6040516111459190612570565b60405180910390a1565b60135481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612c7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90612d0d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113129190612570565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138490612d9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612e29565b60405180910390fd5b5f811161143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612eb7565b60405180910390fd5b5f8082905061144a610dd0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156114b85750611488610dd0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114f057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611beb5760035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611593575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115e857600f60149054906101000a900460ff166115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90612f1f565b60405180910390fd5b5b60055f9054906101000a900460ff161561176e57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a65750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561176d574360015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061172a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172190612fad565b60405180910390fd5b4360015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611811575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561186a5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611924576010548311156118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab9061303b565b60405180910390fd5b601154836118c186610684565b6118cb9190613059565b111561190c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611903906130d6565b60405180910390fd5b600d5f81548092919061191e906130f4565b91905055505b6119606064611952600854600d541161193f57600654611943565b600a545b86611efe90919063ffffffff16565b611f7590919063ffffffff16565b91503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156119ea5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611aea57600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a6557611a5b83611a56600a54601254611fbe565b611fbe565b90505f9150611ae9565b601054831115611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061303b565b60405180910390fd5b611ae66064611ad8600954600d5411611ac557600754611ac9565b600b545b86611efe90919063ffffffff16565b611f7590919063ffffffff16565b91505b5b5f611af430610684565b90505f611b0385601254611fbe565b601254148015611b165750600c54600d54115b9050600f60159054906101000a900460ff16158015611b815750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611b995750600f60169054906101000a900460ff165b8015611ba85750600c54600d54115b8015611bb15750805b15611be857601254821115611bde57611bdd611bd886611bd385601354611fbe565b611fbe565b611fd6565b5b611be74761225f565b5b50505b5f821115611cea57611c438260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c890919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ce19190612570565b60405180910390a35b611d3a8160045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232590919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ddd611d91838561232590919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c890919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e80858761232590919063ffffffff16565b604051611e8d9190612570565b60405180910390a35050505050565b5f838311158290611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda919061243f565b60405180910390fd5b505f8385611ef1919061313b565b9050809150509392505050565b5f808303611f0e575f9050611f6f565b5f8284611f1b91906128b8565b9050828482611f2a919061319b565b14611f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f619061323b565b60405180910390fd5b809150505b92915050565b5f611fb683836040518060400160405280601a81526020017f536166654d6174683a206465766973696f6e206279207a65726f00000000000081525061236e565b905092915050565b5f818311611fcc5782611fce565b815b905092915050565b6001600f60156101000a81548160ff0219169083151502179055505f81031561224257600f60149054906101000a900460ff1615612242575f600267ffffffffffffffff81111561202a57612029613259565b5b6040519080825280602002602001820160405280156120585781602001602082028036833780820191505090505b50905030815f8151811061206f5761206e613286565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612113573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121379190612975565b8160018151811061214b5761214a613286565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121b130600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461115c565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161221395949392919061336a565b5f604051808303815f87803b15801561222a575f80fd5b505af115801561223c573d5f803e3d5ffd5b50505050505b5f600f60156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122c4573d5f803e3d5ffd5b5050565b5f8082846122d69190613059565b90508381101561231b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123129061340c565b60405180910390fd5b8091505092915050565b5f61236683836040518060400160405280601f81526020017f536166654d6174683a20737562737472616374696f6e206f766572666c6f7700815250611e9c565b905092915050565b5f80831182906123b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ab919061243f565b60405180910390fd5b505f83856123c2919061319b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612411826123cf565b61241b81856123d9565b935061242b8185602086016123e9565b612434816123f7565b840191505092915050565b5f6020820190508181035f8301526124578184612407565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61248c82612463565b9050919050565b61249c81612482565b81146124a6575f80fd5b50565b5f813590506124b781612493565b92915050565b5f819050919050565b6124cf816124bd565b81146124d9575f80fd5b50565b5f813590506124ea816124c6565b92915050565b5f80604083850312156125065761250561245f565b5b5f612513858286016124a9565b9250506020612524858286016124dc565b9150509250929050565b5f8115159050919050565b6125428161252e565b82525050565b5f60208201905061255b5f830184612539565b92915050565b61256a816124bd565b82525050565b5f6020820190506125835f830184612561565b92915050565b5f819050919050565b5f6125ac6125a76125a284612463565b612589565b612463565b9050919050565b5f6125bd82612592565b9050919050565b5f6125ce826125b3565b9050919050565b6125de816125c4565b82525050565b5f6020820190506125f75f8301846125d5565b92915050565b5f805f606084860312156126145761261361245f565b5b5f612621868287016124a9565b9350506020612632868287016124a9565b9250506040612643868287016124dc565b9150509250925092565b5f60ff82169050919050565b6126628161264d565b82525050565b5f60208201905061267b5f830184612659565b92915050565b61268a81612482565b82525050565b5f6020820190506126a35f830184612681565b92915050565b5f602082840312156126be576126bd61245f565b5b5f6126cb848285016124a9565b91505092915050565b5f80604083850312156126ea576126e961245f565b5b5f6126f7858286016124a9565b9250506020612708858286016124a9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612794578086048111156127705761276f612712565b5b600185161561277f5780820291505b808102905061278d8561273f565b9450612754565b94509492505050565b5f826127ac5760019050612867565b816127b9575f9050612867565b81600181146127cf57600281146127d957612808565b6001915050612867565b60ff8411156127eb576127ea612712565b5b8360020a91508482111561280257612801612712565b5b50612867565b5060208310610133831016604e8410600b841016171561283d5782820a90508381111561283857612837612712565b5b612867565b61284a848484600161274b565b9250905081840481111561286157612860612712565b5b81810290505b9392505050565b5f612878826124bd565b91506128838361264d565b92506128b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461279d565b905092915050565b5f6128c2826124bd565b91506128cd836124bd565b92508282026128db816124bd565b915082820484148315176128f2576128f1612712565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61292d6020836123d9565b9150612938826128f9565b602082019050919050565b5f6020820190508181035f83015261295a81612921565b9050919050565b5f8151905061296f81612493565b92915050565b5f6020828403121561298a5761298961245f565b5b5f61299784828501612961565b91505092915050565b5f6040820190506129b35f830185612681565b6129c06020830184612681565b9392505050565b5f819050919050565b5f6129ea6129e56129e0846129c7565b612589565b6124bd565b9050919050565b6129fa816129d0565b82525050565b5f60c082019050612a135f830189612681565b612a206020830188612561565b612a2d60408301876129f1565b612a3a60608301866129f1565b612a476080830185612681565b612a5460a0830184612561565b979650505050505050565b5f81519050612a6d816124c6565b92915050565b5f805f60608486031215612a8a57612a8961245f565b5b5f612a9786828701612a5f565b9350506020612aa886828701612a5f565b9250506040612ab986828701612a5f565b9150509250925092565b5f604082019050612ad65f830185612681565b612ae36020830184612561565b9392505050565b612af38161252e565b8114612afd575f80fd5b50565b5f81519050612b0e81612aea565b92915050565b5f60208284031215612b2957612b2861245f565b5b5f612b3684828501612b00565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b736017836123d9565b9150612b7e82612b3f565b602082019050919050565b5f6020820190508181035f830152612ba081612b67565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612bdb6016836123d9565b9150612be682612ba7565b602082019050919050565b5f6020820190508181035f830152612c0881612bcf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c696024836123d9565b9150612c7482612c0f565b604082019050919050565b5f6020820190508181035f830152612c9681612c5d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf76022836123d9565b9150612d0282612c9d565b604082019050919050565b5f6020820190508181035f830152612d2481612ceb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d856025836123d9565b9150612d9082612d2b565b604082019050919050565b5f6020820190508181035f830152612db281612d79565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e136023836123d9565b9150612e1e82612db9565b604082019050919050565b5f6020820190508181035f830152612e4081612e07565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ea16029836123d9565b9150612eac82612e47565b604082019050919050565b5f6020820190508181035f830152612ece81612e95565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612f096013836123d9565b9150612f1482612ed5565b602082019050919050565b5f6020820190508181035f830152612f3681612efd565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612f976024836123d9565b9150612fa282612f3d565b604082019050919050565b5f6020820190508181035f830152612fc481612f8b565b9050919050565b7f4578636565647320746865205f6d6178416c6c6f776564416d6f756e744f66545f8201527f782e000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130256022836123d9565b915061303082612fcb565b604082019050919050565b5f6020820190508181035f83015261305281613019565b9050919050565b5f613063826124bd565b915061306e836124bd565b925082820190508082111561308657613085612712565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130c0601a836123d9565b91506130cb8261308c565b602082019050919050565b5f6020820190508181035f8301526130ed816130b4565b9050919050565b5f6130fe826124bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131305761312f612712565b5b600182019050919050565b5f613145826124bd565b9150613150836124bd565b925082820390508181111561316857613167612712565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131a5826124bd565b91506131b0836124bd565b9250826131c0576131bf61316e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132256021836123d9565b9150613230826131cb565b604082019050919050565b5f6020820190508181035f83015261325281613219565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132e581612482565b82525050565b5f6132f683836132dc565b60208301905092915050565b5f602082019050919050565b5f613318826132b3565b61332281856132bd565b935061332d836132cd565b805f5b8381101561335d57815161334488826132eb565b975061334f83613302565b925050600181019050613330565b5085935050505092915050565b5f60a08201905061337d5f830188612561565b61338a60208301876129f1565b818103604083015261339c818661330e565b90506133ab6060830185612681565b6133b86080830184612561565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133f6601b836123d9565b9150613401826133c2565b602082019050919050565b5f6020820190508181035f830152613423816133ea565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220074dfa9671f4425e4f4bf2f1d9f5b4660e6ce343fecc0d091ef02b8dfa1c422264736f6c63430008190033000000000000000000000000865eab1180491572f6d0cc837955445e8884b34c

Deployed Bytecode

0x608060405260043610610138575f3560e01c806375d059f9116100aa578063c876d0b91161006e578063c876d0b9146103ef578063d3097da914610419578063dd62ed3e14610443578063ee95cd141461047f578063eedbd3af14610495578063fc53f16c146104ab5761013f565b806375d059f91461033357806383a76e3b146103495780638da5cb5b1461035f57806395d89b4114610389578063a9059cbb146103b35761013f565b806323b872dd116100fc57806323b872dd14610227578063313ce567146102635780633cc28a611461028d57806349bd5a5e146102b757806370a08231146102e1578063715018a61461031d5761013f565b806306fdde0314610143578063095ea7b31461016d5780630ee35cbf146101a95780631694505e146101d357806318160ddd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d5565b604051610164919061243f565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906124f0565b610512565b6040516101a09190612548565b60405180910390f35b3480156101b4575f80fd5b506101bd61052f565b6040516101ca9190612570565b60405180910390f35b3480156101de575f80fd5b506101e7610535565b6040516101f491906125e4565b60405180910390f35b348015610208575f80fd5b5061021161055a565b60405161021e9190612570565b60405180910390f35b348015610232575f80fd5b5061024d600480360381019061024891906125fd565b61057d565b60405161025a9190612548565b60405180910390f35b34801561026e575f80fd5b50610277610651565b6040516102849190612668565b60405180910390f35b348015610298575f80fd5b506102a1610659565b6040516102ae9190612570565b60405180910390f35b3480156102c2575f80fd5b506102cb61065f565b6040516102d89190612690565b60405180910390f35b3480156102ec575f80fd5b50610307600480360381019061030291906126a9565b610684565b6040516103149190612570565b60405180910390f35b348015610328575f80fd5b506103316106ca565b005b34801561033e575f80fd5b50610347610818565b005b348015610354575f80fd5b5061035d610cb4565b005b34801561036a575f80fd5b50610373610dd0565b6040516103809190612690565b60405180910390f35b348015610394575f80fd5b5061039d610df7565b6040516103aa919061243f565b60405180910390f35b3480156103be575f80fd5b506103d960048036038101906103d491906124f0565b610e34565b6040516103e69190612548565b60405180910390f35b3480156103fa575f80fd5b50610403610e51565b6040516104109190612548565b60405180910390f35b348015610424575f80fd5b5061042d610e63565b60405161043a9190612570565b60405180910390f35b34801561044e575f80fd5b50610469600480360381019061046491906126d4565b610e69565b6040516104769190612570565b60405180910390f35b34801561048a575f80fd5b50610493610eeb565b005b3480156104a0575f80fd5b506104a9611007565b005b3480156104b6575f80fd5b506104bf61114f565b6040516104cc9190612570565b60405180910390f35b60606040518060400160405280600c81526020017f5374727563747572652041490000000000000000000000000000000000000000815250905090565b5f61052561051e611155565b848461115c565b6001905092915050565b60115481565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a610569919061286e565b6305f5e10061057891906128b8565b905090565b5f61058984848461131f565b61064684610595611155565b6106418560405180606001604052806028815260200161342b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f8611155565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e9c9092919063ffffffff16565b61115c565b600190509392505050565b5f6012905090565b60105481565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106d2611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075590612943565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610820611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a390612943565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061094830600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610934919061286e565b6305f5e10061094391906128b8565b61115c565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d69190612975565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a809190612975565b6040518363ffffffff1660e01b8152600401610a9d9291906129a0565b6020604051808303815f875af1158015610ab9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610add9190612975565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b6430610684565b5f80610b6e610dd0565b426040518863ffffffff1660e01b8152600401610b9096959493929190612a00565b60606040518083038185885af1158015610bac573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bd19190612a73565b505050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c71929190612ac3565b6020604051808303815f875af1158015610c8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb19190612b14565b50565b610cbc611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90612943565b60405180910390fd5b600f60149054906101000a900460ff1615610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612b89565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5354524149000000000000000000000000000000000000000000000000000000815250905090565b5f610e47610e40611155565b848461131f565b6001905092915050565b60055f9054906101000a900460ff1681565b60125481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ef3611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690612943565b60405180910390fd5b5f4711610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612bf1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611004573d5f803e3d5ffd5b50565b61100f611155565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290612943565b60405180910390fd5b6012600a6110a9919061286e565b6305f5e1006110b891906128b8565b6010819055506012600a6110cc919061286e565b6305f5e1006110db91906128b8565b6011819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a611129919061286e565b6305f5e10061113891906128b8565b6040516111459190612570565b60405180910390a1565b60135481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612c7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90612d0d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113129190612570565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138490612d9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612e29565b60405180910390fd5b5f811161143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612eb7565b60405180910390fd5b5f8082905061144a610dd0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156114b85750611488610dd0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114f057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611beb5760035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611593575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115e857600f60149054906101000a900460ff166115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90612f1f565b60405180910390fd5b5b60055f9054906101000a900460ff161561176e57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a65750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561176d574360015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061172a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172190612fad565b60405180910390fd5b4360015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611811575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561186a5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611924576010548311156118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab9061303b565b60405180910390fd5b601154836118c186610684565b6118cb9190613059565b111561190c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611903906130d6565b60405180910390fd5b600d5f81548092919061191e906130f4565b91905055505b6119606064611952600854600d541161193f57600654611943565b600a545b86611efe90919063ffffffff16565b611f7590919063ffffffff16565b91503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156119ea5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611aea57600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a6557611a5b83611a56600a54601254611fbe565b611fbe565b90505f9150611ae9565b601054831115611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061303b565b60405180910390fd5b611ae66064611ad8600954600d5411611ac557600754611ac9565b600b545b86611efe90919063ffffffff16565b611f7590919063ffffffff16565b91505b5b5f611af430610684565b90505f611b0385601254611fbe565b601254148015611b165750600c54600d54115b9050600f60159054906101000a900460ff16158015611b815750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611b995750600f60169054906101000a900460ff165b8015611ba85750600c54600d54115b8015611bb15750805b15611be857601254821115611bde57611bdd611bd886611bd385601354611fbe565b611fbe565b611fd6565b5b611be74761225f565b5b50505b5f821115611cea57611c438260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c890919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ce19190612570565b60405180910390a35b611d3a8160045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232590919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ddd611d91838561232590919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c890919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e80858761232590919063ffffffff16565b604051611e8d9190612570565b60405180910390a35050505050565b5f838311158290611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda919061243f565b60405180910390fd5b505f8385611ef1919061313b565b9050809150509392505050565b5f808303611f0e575f9050611f6f565b5f8284611f1b91906128b8565b9050828482611f2a919061319b565b14611f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f619061323b565b60405180910390fd5b809150505b92915050565b5f611fb683836040518060400160405280601a81526020017f536166654d6174683a206465766973696f6e206279207a65726f00000000000081525061236e565b905092915050565b5f818311611fcc5782611fce565b815b905092915050565b6001600f60156101000a81548160ff0219169083151502179055505f81031561224257600f60149054906101000a900460ff1615612242575f600267ffffffffffffffff81111561202a57612029613259565b5b6040519080825280602002602001820160405280156120585781602001602082028036833780820191505090505b50905030815f8151811061206f5761206e613286565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612113573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121379190612975565b8160018151811061214b5761214a613286565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121b130600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461115c565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161221395949392919061336a565b5f604051808303815f87803b15801561222a575f80fd5b505af115801561223c573d5f803e3d5ffd5b50505050505b5f600f60156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122c4573d5f803e3d5ffd5b5050565b5f8082846122d69190613059565b90508381101561231b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123129061340c565b60405180910390fd5b8091505092915050565b5f61236683836040518060400160405280601f81526020017f536166654d6174683a20737562737472616374696f6e206f766572666c6f7700815250611e9c565b905092915050565b5f80831182906123b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ab919061243f565b60405180910390fd5b505f83856123c2919061319b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612411826123cf565b61241b81856123d9565b935061242b8185602086016123e9565b612434816123f7565b840191505092915050565b5f6020820190508181035f8301526124578184612407565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61248c82612463565b9050919050565b61249c81612482565b81146124a6575f80fd5b50565b5f813590506124b781612493565b92915050565b5f819050919050565b6124cf816124bd565b81146124d9575f80fd5b50565b5f813590506124ea816124c6565b92915050565b5f80604083850312156125065761250561245f565b5b5f612513858286016124a9565b9250506020612524858286016124dc565b9150509250929050565b5f8115159050919050565b6125428161252e565b82525050565b5f60208201905061255b5f830184612539565b92915050565b61256a816124bd565b82525050565b5f6020820190506125835f830184612561565b92915050565b5f819050919050565b5f6125ac6125a76125a284612463565b612589565b612463565b9050919050565b5f6125bd82612592565b9050919050565b5f6125ce826125b3565b9050919050565b6125de816125c4565b82525050565b5f6020820190506125f75f8301846125d5565b92915050565b5f805f606084860312156126145761261361245f565b5b5f612621868287016124a9565b9350506020612632868287016124a9565b9250506040612643868287016124dc565b9150509250925092565b5f60ff82169050919050565b6126628161264d565b82525050565b5f60208201905061267b5f830184612659565b92915050565b61268a81612482565b82525050565b5f6020820190506126a35f830184612681565b92915050565b5f602082840312156126be576126bd61245f565b5b5f6126cb848285016124a9565b91505092915050565b5f80604083850312156126ea576126e961245f565b5b5f6126f7858286016124a9565b9250506020612708858286016124a9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612794578086048111156127705761276f612712565b5b600185161561277f5780820291505b808102905061278d8561273f565b9450612754565b94509492505050565b5f826127ac5760019050612867565b816127b9575f9050612867565b81600181146127cf57600281146127d957612808565b6001915050612867565b60ff8411156127eb576127ea612712565b5b8360020a91508482111561280257612801612712565b5b50612867565b5060208310610133831016604e8410600b841016171561283d5782820a90508381111561283857612837612712565b5b612867565b61284a848484600161274b565b9250905081840481111561286157612860612712565b5b81810290505b9392505050565b5f612878826124bd565b91506128838361264d565b92506128b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461279d565b905092915050565b5f6128c2826124bd565b91506128cd836124bd565b92508282026128db816124bd565b915082820484148315176128f2576128f1612712565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61292d6020836123d9565b9150612938826128f9565b602082019050919050565b5f6020820190508181035f83015261295a81612921565b9050919050565b5f8151905061296f81612493565b92915050565b5f6020828403121561298a5761298961245f565b5b5f61299784828501612961565b91505092915050565b5f6040820190506129b35f830185612681565b6129c06020830184612681565b9392505050565b5f819050919050565b5f6129ea6129e56129e0846129c7565b612589565b6124bd565b9050919050565b6129fa816129d0565b82525050565b5f60c082019050612a135f830189612681565b612a206020830188612561565b612a2d60408301876129f1565b612a3a60608301866129f1565b612a476080830185612681565b612a5460a0830184612561565b979650505050505050565b5f81519050612a6d816124c6565b92915050565b5f805f60608486031215612a8a57612a8961245f565b5b5f612a9786828701612a5f565b9350506020612aa886828701612a5f565b9250506040612ab986828701612a5f565b9150509250925092565b5f604082019050612ad65f830185612681565b612ae36020830184612561565b9392505050565b612af38161252e565b8114612afd575f80fd5b50565b5f81519050612b0e81612aea565b92915050565b5f60208284031215612b2957612b2861245f565b5b5f612b3684828501612b00565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b736017836123d9565b9150612b7e82612b3f565b602082019050919050565b5f6020820190508181035f830152612ba081612b67565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612bdb6016836123d9565b9150612be682612ba7565b602082019050919050565b5f6020820190508181035f830152612c0881612bcf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c696024836123d9565b9150612c7482612c0f565b604082019050919050565b5f6020820190508181035f830152612c9681612c5d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf76022836123d9565b9150612d0282612c9d565b604082019050919050565b5f6020820190508181035f830152612d2481612ceb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d856025836123d9565b9150612d9082612d2b565b604082019050919050565b5f6020820190508181035f830152612db281612d79565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e136023836123d9565b9150612e1e82612db9565b604082019050919050565b5f6020820190508181035f830152612e4081612e07565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ea16029836123d9565b9150612eac82612e47565b604082019050919050565b5f6020820190508181035f830152612ece81612e95565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612f096013836123d9565b9150612f1482612ed5565b602082019050919050565b5f6020820190508181035f830152612f3681612efd565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612f976024836123d9565b9150612fa282612f3d565b604082019050919050565b5f6020820190508181035f830152612fc481612f8b565b9050919050565b7f4578636565647320746865205f6d6178416c6c6f776564416d6f756e744f66545f8201527f782e000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130256022836123d9565b915061303082612fcb565b604082019050919050565b5f6020820190508181035f83015261305281613019565b9050919050565b5f613063826124bd565b915061306e836124bd565b925082820190508082111561308657613085612712565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130c0601a836123d9565b91506130cb8261308c565b602082019050919050565b5f6020820190508181035f8301526130ed816130b4565b9050919050565b5f6130fe826124bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131305761312f612712565b5b600182019050919050565b5f613145826124bd565b9150613150836124bd565b925082820390508181111561316857613167612712565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131a5826124bd565b91506131b0836124bd565b9250826131c0576131bf61316e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132256021836123d9565b9150613230826131cb565b604082019050919050565b5f6020820190508181035f83015261325281613219565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132e581612482565b82525050565b5f6132f683836132dc565b60208301905092915050565b5f602082019050919050565b5f613318826132b3565b61332281856132bd565b935061332d836132cd565b805f5b8381101561335d57815161334488826132eb565b975061334f83613302565b925050600181019050613330565b5085935050505092915050565b5f60a08201905061337d5f830188612561565b61338a60208301876129f1565b818103604083015261339c818661330e565b90506133ab6060830185612681565b6133b86080830184612561565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133f6601b836123d9565b9150613401826133c2565b602082019050919050565b5f6020820190508181035f830152613423816133ea565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220074dfa9671f4425e4f4bf2f1d9f5b4660e6ce343fecc0d091ef02b8dfa1c422264736f6c63430008190033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000865eab1180491572f6d0cc837955445e8884b34c

-----Decoded View---------------
Arg [0] : _wlt (address): 0x865eab1180491572f6D0Cc837955445e8884b34c

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000865eab1180491572f6d0cc837955445e8884b34c


Deployed Bytecode Sourcemap

4024:10465:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5897:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5384:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4887:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5591:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12738:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11339:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5204:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4935:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6747:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:150;;;;;;;;;;;;;:::i;:::-;;13449:812;;;;;;;;;;;;;:::i;:::-;;14269:180;;;;;;;;;;;;;:::i;:::-;;3645:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6307:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12520:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5453:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6109:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11679:195;;;;;;;;;;;;;:::i;:::-;;11425:246;;;;;;;;;;;;;:::i;:::-;;5525:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5699:83;5736:13;5769:5;;;;;;;;;;;;;;;;;5762:12;;5699:83;:::o;5897:204::-;5999:4;6021:50;6041:12;:10;:12::i;:::-;6055:7;6064:6;6021:19;:50::i;:::-;6089:4;6082:11;;5897:204;;;;:::o;5384:62::-;;;;:::o;4887:41::-;;;;;;;;;;;;;:::o;5591:100::-;5644:7;5306:2;5369;:8;;;;:::i;:::-;5355:11;:22;;;;:::i;:::-;5664:19;;5591:100;:::o;12738:475::-;12870:4;12887:47;12908:6;12916:9;12927:6;12887:20;:47::i;:::-;12945:238;12979:6;13000:12;:10;:12::i;:::-;13027:145;13090:6;13027:145;;;;;;;;;;;;;;;;;:17;:25;13045:6;13027:25;;;;;;;;;;;;;;;:39;13053:12;:10;:12::i;:::-;13027:39;;;;;;;;;;;;;;;;:44;;:145;;;;;:::i;:::-;12945:19;:238::i;:::-;13201:4;13194:11;;12738:475;;;;;:::o;11339:78::-;11380:5;5306:2;11398:11;;11339:78;:::o;5204:65::-;;;;:::o;4935:28::-;;;;;;;;;;;;;:::o;6747:119::-;6813:7;6840:9;:18;6850:7;6840:18;;;;;;;;;;;;;;;;6833:25;;6747:119;;;:::o;3487:150::-;3784:12;:10;:12::i;:::-;3773:23;;:7;;;;;;;;;;:23;;;3765:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3595:1:::1;3557:41;;3578:7;::::0;::::1;;;;;;;;3557:41;;;;;;;;;;;;3627:1;3609:7:::0;::::1;:20;;;;;;;;;;;;;;;;;;3487:150::o:0;13449:812::-;3784:12;:10;:12::i;:::-;3773:23;;:7;;;;;;;;;;:23;;;3765:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13551:42:::1;13500:15;;:104;;;;;;;;;;;;;;;;;;13615:124;13657:4;13685:15;;;;;;;;;;;5306:2;5369;:8;;;;:::i;:::-;5355:11;:22;;;;:::i;:::-;13615:19;:124::i;:::-;13784:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13766:55;;;13844:4;13864:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13766:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13750:13;;:147;;;;;;;;;;;;;;;;;;13908:15;;;;;;;;;;;:31;;;13947:21;13992:4;14012:24;14030:4;14012:9;:24::i;:::-;14051:1;14067::::0;14083:7:::1;:5;:7::i;:::-;14105:15;13908:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14149:13;;;;;;;;;;;14142:29;;;14194:15;;;;;;;;;;;14225:17;14142:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13449:812::o:0;14269:180::-;3784:12;:10;:12::i;:::-;3773:23;;:7;;;;;;;;;;:23;;;3765:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14333:14:::1;;;;;;;;;;;14332:15;14324:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14405:4;14386:16;;:23;;;;;;;;;;;;;;;;;;14437:4;14420:14;;:21;;;;;;;;;;;;;;;;;;14269:180::o:0;3645:80::-;3683:7;3710;;;;;;;;;;;3703:14;;3645:80;:::o;6307:87::-;6346:13;6379:7;;;;;;;;;;;;;;;;;6372:14;;6307:87;:::o;12520:210::-;12625:4;12647:53;12668:12;:10;:12::i;:::-;12682:9;12693:6;12647:20;:53::i;:::-;12718:4;12711:11;;12520:210;;;;:::o;4433:40::-;;;;;;;;;;;;;:::o;5453:65::-;;;;:::o;6109:190::-;6226:7;6258:17;:24;6276:5;6258:24;;;;;;;;;;;;;;;:33;6283:7;6258:33;;;;;;;;;;;;;;;;6251:40;;6109:190;;;;:::o;11679:195::-;3784:12;:10;:12::i;:::-;3773:23;;:7;;;;;;;;;;:23;;;3765:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11776:1:::1;11752:21;:25;11744:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11823:10;11815:28;;:51;11844:21;11815:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11679:195::o:0;11425:246::-;3784:12;:10;:12::i;:::-;3773:23;;:7;;;;;;;;;;:23;;;3765:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5306:2:::1;5369;:8;;;;:::i;:::-;5355:11;:22;;;;:::i;:::-;11494:21;:36;;;;5306:2;5369;:8;;;;:::i;:::-;5355:11;:22;;;;:::i;:::-;11541:18;:33;;;;11610:5;11587:20;;:28;;;;;;;;;;;;;;;;;;11631:32;5306:2;5369;:8;;;;:::i;:::-;5355:11;:22;;;;:::i;:::-;11631:32;;;;;;:::i;:::-;;;;;;;;11425:246::o:0;5525:57::-;;;;:::o;288:98::-;341:7;368:10;361:17;;288:98;:::o;6874:386::-;7029:1;7012:19;;:5;:19;;;7004:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7110:1;7091:21;;:7;:21;;;7083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7198:6;7162:17;:24;7180:5;7162:24;;;;;;;;;;;;;;;:33;7187:7;7162:33;;;;;;;;;;;;;;;:42;;;;7236:7;7220:32;;7229:5;7220:32;;;7245:6;7220:32;;;;;;:::i;:::-;;;;;;;;6874:386;;;:::o;7268:4063::-;7417:1;7401:18;;:4;:18;;;7393:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7494:1;7480:16;;:2;:16;;;7472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7564:1;7555:6;:10;7547:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7624:17;7656;7676:6;7656:26;;7707:7;:5;:7::i;:::-;7699:15;;:4;:15;;;;:32;;;;;7724:7;:5;:7::i;:::-;7718:13;;:2;:13;;;;7699:32;:57;;;;;7751:4;7735:21;;:4;:21;;;;7699:57;7695:3253;;;7778:15;:21;7794:4;7778:21;;;;;;;;;;;;;;;;;;;;;;;;;7777:22;:46;;;;;7804:15;:19;7820:2;7804:19;;;;;;;;;;;;;;;;;;;;;;;;;7803:20;7777:46;7773:133;;;7852:14;;;;;;;;;;;7844:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7773:133;7926:20;;;;;;;;;;;7922:485;;;8007:13;;;;;;;;;;;7993:28;;:2;:28;;;;:83;;;;;8060:15;;;;;;;;;;;8046:30;;:2;:30;;;;7993:83;7967:425;;;8195:12;8153:28;:39;8182:9;8153:39;;;;;;;;;;;;;;;;:54;8119:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8360:12;8318:28;:39;8347:9;8318:39;;;;;;;;;;;;;;;:54;;;;7967:425;7922:485;8453:13;;;;;;;;;;;8445:21;;:4;:21;;;:62;;;;;8488:15;:19;8504:2;8488:19;;;;;;;;;;;;;;;;;;;;;;;;;8487:20;8445:62;:113;;;;;8542:15;;;;;;;;;;;8528:30;;:2;:30;;;;8445:113;8423:523;;;8633:21;;8623:6;:31;;8593:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;8807:18;;8797:6;8781:13;8791:2;8781:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;8751:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8914:14;;:16;;;;;;;;;:::i;:::-;;;;;;8423:523;8974:223;9193:3;8974:196;9044:21;;9027:14;;:38;9026:125;;9134:17;;9026:125;;;9094:12;;9026:125;8974:6;:29;;:196;;;;:::i;:::-;:218;;:223;;;;:::i;:::-;8962:235;;9232:4;9216:21;;:4;:21;;;;:44;;;;;9247:13;;;;;;;;;;;9241:19;;:2;:19;;;9216:44;9212:850;;;9301:17;;;;;;;;;;;9285:34;;:4;:34;;;9281:766;;9356:125;9386:6;9419:39;9423:12;;9437:20;;9419:3;:39::i;:::-;9356:3;:125::i;:::-;9344:137;;9516:1;9504:13;;9281:766;;;9610:21;;9600:6;:31;;9566:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;9752:275;10023:3;9752:240;9838:22;;9821:14;;:39;9820:145;;9946:19;;9820:145;;;9897:13;;9820:145;9752:6;:37;;:240;;;;:::i;:::-;:270;;:275;;;;:::i;:::-;9740:287;;9281:766;9212:850;10078:37;10118:24;10136:4;10118:9;:24::i;:::-;10078:64;;10157:14;10215:33;10219:6;10227:20;;10215:3;:33::i;:::-;10174:20;;:74;:127;;;;;10286:15;;10269:14;;:32;10174:127;10157:144;;10341:9;;;;;;;;;;;10340:10;:50;;;;;10377:13;;;;;;;;;;;10371:19;;:2;:19;;;10340:50;:87;;;;;10411:16;;;;;;;;;;;10340:87;:140;;;;;10465:15;;10448:14;;:32;10340:140;:170;;;;;10501:9;10340:170;10318:619;;;10581:20;;10549:29;:52;10545:317;;;10626:216;10671:148;10705:6;10742:50;10746:29;10777:14;;10742:3;:50::i;:::-;10671:3;:148::i;:::-;10626:18;:216::i;:::-;10545:317;10880:41;10899:21;10880:18;:41::i;:::-;10318:619;7758:3190;;7695:3253;10976:1;10964:9;:13;10960:173;;;11021:40;11051:9;11021;:24;11039:4;11021:24;;;;;;;;;;;;;;;;:29;;:40;;;;:::i;:::-;10994:9;:24;11012:4;10994:24;;;;;;;;;;;;;;;:67;;;;11104:4;11081:40;;11090:4;11081:40;;;11111:9;11081:40;;;;;;:::i;:::-;;;;;;;;10960:173;11163:31;11184:9;11163;:15;11173:4;11163:15;;;;;;;;;;;;;;;;:20;;:31;;;;:::i;:::-;11145:9;:15;11155:4;11145:15;;;;;;;;;;;;;;;:49;;;;11221:42;11240:22;11252:9;11240:6;:11;;:22;;;;:::i;:::-;11221:9;:13;11231:2;11221:13;;;;;;;;;;;;;;;;:18;;:42;;;;:::i;:::-;11205:9;:13;11215:2;11205:13;;;;;;;;;;;;;;;:58;;;;11296:2;11281:42;;11290:4;11281:42;;;11300:22;11312:9;11300:6;:11;;:22;;;;:::i;:::-;11281:42;;;;;;:::i;:::-;;;;;;;;7382:3949;;7268:4063;;;:::o;935:225::-;1056:7;1089:1;1084;:6;;1092:12;1076:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1116:9;1132:1;1128;:5;;;;:::i;:::-;1116:17;;1151:1;1144:8;;;935:225;;;;;:::o;1356:247::-;1415:7;1444:1;1439;:6;1435:47;;1469:1;1462:8;;;;1435:47;1492:9;1508:1;1504;:5;;;;:::i;:::-;1492:17;;1537:1;1532;1528;:5;;;;:::i;:::-;:10;1520:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1594:1;1587:8;;;1356:247;;;;;:::o;417:132::-;475:7;502:39;506:1;509;502:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;495:46;;417:132;;;;:::o;13334:107::-;13391:7;13423:1;13419;:5;13418:15;;13432:1;13418:15;;;13428:1;13418:15;13411:22;;13334:107;;;;:::o;11882:630::-;5837:4;5825:9;;:16;;;;;;;;;;;;;;;;;;11982:1:::1;11967:11;:16:::0;11963:29;11985:7:::1;11963:29;12007:14;;;;;;;;;;;12002:28:::0;12023:7:::1;12002:28;12042:21;12080:1;12066:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12042:40;;12111:4;12093;12098:1;12093:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12137:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12127:4;12132:1;12127:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12172:123;12214:4;12242:15;;;;;;;;;;;12273:11;12172:19;:123::i;:::-;12308:15;;;;;;;;;;;:66;;;12389:11;12415:1;12431:4;12458;12478:15;12308:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11952:560;5852:1;5876:5:::0;5864:9;;:17;;;;;;;;;;;;;;;;;;11882:630;:::o;13221:105::-;13284:17;;;;;;;;;;;:26;;:34;13311:6;13284:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13221:105;:::o;1168:180::-;1227:7;1247:9;1263:1;1259;:5;;;;:::i;:::-;1247:17;;1288:1;1283;:6;;1275:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1339:1;1332:8;;;1168:180;;;;:::o;557:139::-;616:7;643:45;648:1;651;643:45;;;;;;;;;;;;;;;;;:4;:45::i;:::-;636:52;;557:139;;;;:::o;704:223::-;824:7;856:1;852;:5;859:12;844:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;883:9;899:1;895;:5;;;;:::i;:::-;883:17;;918:1;911:8;;;704:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:60::-;3719:3;3740:5;3733:12;;3691:60;;;:::o;3757:142::-;3807:9;3840:53;3858:34;3867:24;3885:5;3867:24;:::i;:::-;3858:34;:::i;:::-;3840:53;:::i;:::-;3827:66;;3757:142;;;:::o;3905:126::-;3955:9;3988:37;4019:5;3988:37;:::i;:::-;3975:50;;3905:126;;;:::o;4037:152::-;4113:9;4146:37;4177:5;4146:37;:::i;:::-;4133:50;;4037:152;;;:::o;4195:183::-;4308:63;4365:5;4308:63;:::i;:::-;4303:3;4296:76;4195:183;;:::o;4384:274::-;4503:4;4541:2;4530:9;4526:18;4518:26;;4554:97;4648:1;4637:9;4633:17;4624:6;4554:97;:::i;:::-;4384:274;;;;:::o;4664:619::-;4741:6;4749;4757;4806:2;4794:9;4785:7;4781:23;4777:32;4774:119;;;4812:79;;:::i;:::-;4774:119;4932:1;4957:53;5002:7;4993:6;4982:9;4978:22;4957:53;:::i;:::-;4947:63;;4903:117;5059:2;5085:53;5130:7;5121:6;5110:9;5106:22;5085:53;:::i;:::-;5075:63;;5030:118;5187:2;5213:53;5258:7;5249:6;5238:9;5234:22;5213:53;:::i;:::-;5203:63;;5158:118;4664:619;;;;;:::o;5289:86::-;5324:7;5364:4;5357:5;5353:16;5342:27;;5289:86;;;:::o;5381:112::-;5464:22;5480:5;5464:22;:::i;:::-;5459:3;5452:35;5381:112;;:::o;5499:214::-;5588:4;5626:2;5615:9;5611:18;5603:26;;5639:67;5703:1;5692:9;5688:17;5679:6;5639:67;:::i;:::-;5499:214;;;;:::o;5719:118::-;5806:24;5824:5;5806:24;:::i;:::-;5801:3;5794:37;5719:118;;:::o;5843:222::-;5936:4;5974:2;5963:9;5959:18;5951:26;;5987:71;6055:1;6044:9;6040:17;6031:6;5987:71;:::i;:::-;5843:222;;;;:::o;6071:329::-;6130:6;6179:2;6167:9;6158:7;6154:23;6150:32;6147:119;;;6185:79;;:::i;:::-;6147:119;6305:1;6330:53;6375:7;6366:6;6355:9;6351:22;6330:53;:::i;:::-;6320:63;;6276:117;6071:329;;;;:::o;6406:474::-;6474:6;6482;6531:2;6519:9;6510:7;6506:23;6502:32;6499:119;;;6537:79;;:::i;:::-;6499:119;6657:1;6682:53;6727:7;6718:6;6707:9;6703:22;6682:53;:::i;:::-;6672:63;;6628:117;6784:2;6810:53;6855:7;6846:6;6835:9;6831:22;6810:53;:::i;:::-;6800:63;;6755:118;6406:474;;;;;:::o;6886:180::-;6934:77;6931:1;6924:88;7031:4;7028:1;7021:15;7055:4;7052:1;7045:15;7072:102;7114:8;7161:5;7158:1;7154:13;7133:34;;7072:102;;;:::o;7180:848::-;7241:5;7248:4;7272:6;7263:15;;7296:5;7287:14;;7310:712;7331:1;7321:8;7318:15;7310:712;;;7426:4;7421:3;7417:14;7411:4;7408:24;7405:50;;;7435:18;;:::i;:::-;7405:50;7485:1;7475:8;7471:16;7468:451;;;7900:4;7893:5;7889:16;7880:25;;7468:451;7950:4;7944;7940:15;7932:23;;7980:32;8003:8;7980:32;:::i;:::-;7968:44;;7310:712;;;7180:848;;;;;;;:::o;8034:1073::-;8088:5;8279:8;8269:40;;8300:1;8291:10;;8302:5;;8269:40;8328:4;8318:36;;8345:1;8336:10;;8347:5;;8318:36;8414:4;8462:1;8457:27;;;;8498:1;8493:191;;;;8407:277;;8457:27;8475:1;8466:10;;8477:5;;;8493:191;8538:3;8528:8;8525:17;8522:43;;;8545:18;;:::i;:::-;8522:43;8594:8;8591:1;8587:16;8578:25;;8629:3;8622:5;8619:14;8616:40;;;8636:18;;:::i;:::-;8616:40;8669:5;;;8407:277;;8793:2;8783:8;8780:16;8774:3;8768:4;8765:13;8761:36;8743:2;8733:8;8730:16;8725:2;8719:4;8716:12;8712:35;8696:111;8693:246;;;8849:8;8843:4;8839:19;8830:28;;8884:3;8877:5;8874:14;8871:40;;;8891:18;;:::i;:::-;8871:40;8924:5;;8693:246;8964:42;9002:3;8992:8;8986:4;8983:1;8964:42;:::i;:::-;8949:57;;;;9038:4;9033:3;9029:14;9022:5;9019:25;9016:51;;;9047:18;;:::i;:::-;9016:51;9096:4;9089:5;9085:16;9076:25;;8034:1073;;;;;;:::o;9113:281::-;9171:5;9195:23;9213:4;9195:23;:::i;:::-;9187:31;;9239:25;9255:8;9239:25;:::i;:::-;9227:37;;9283:104;9320:66;9310:8;9304:4;9283:104;:::i;:::-;9274:113;;9113:281;;;;:::o;9400:410::-;9440:7;9463:20;9481:1;9463:20;:::i;:::-;9458:25;;9497:20;9515:1;9497:20;:::i;:::-;9492:25;;9552:1;9549;9545:9;9574:30;9592:11;9574:30;:::i;:::-;9563:41;;9753:1;9744:7;9740:15;9737:1;9734:22;9714:1;9707:9;9687:83;9664:139;;9783:18;;:::i;:::-;9664:139;9448:362;9400:410;;;;:::o;9816:182::-;9956:34;9952:1;9944:6;9940:14;9933:58;9816:182;:::o;10004:366::-;10146:3;10167:67;10231:2;10226:3;10167:67;:::i;:::-;10160:74;;10243:93;10332:3;10243:93;:::i;:::-;10361:2;10356:3;10352:12;10345:19;;10004:366;;;:::o;10376:419::-;10542:4;10580:2;10569:9;10565:18;10557:26;;10629:9;10623:4;10619:20;10615:1;10604:9;10600:17;10593:47;10657:131;10783:4;10657:131;:::i;:::-;10649:139;;10376:419;;;:::o;10801:143::-;10858:5;10889:6;10883:13;10874:22;;10905:33;10932:5;10905:33;:::i;:::-;10801:143;;;;:::o;10950:351::-;11020:6;11069:2;11057:9;11048:7;11044:23;11040:32;11037:119;;;11075:79;;:::i;:::-;11037:119;11195:1;11220:64;11276:7;11267:6;11256:9;11252:22;11220:64;:::i;:::-;11210:74;;11166:128;10950:351;;;;:::o;11307:332::-;11428:4;11466:2;11455:9;11451:18;11443:26;;11479:71;11547:1;11536:9;11532:17;11523:6;11479:71;:::i;:::-;11560:72;11628:2;11617:9;11613:18;11604:6;11560:72;:::i;:::-;11307:332;;;;;:::o;11645:85::-;11690:7;11719:5;11708:16;;11645:85;;;:::o;11736:158::-;11794:9;11827:61;11845:42;11854:32;11880:5;11854:32;:::i;:::-;11845:42;:::i;:::-;11827:61;:::i;:::-;11814:74;;11736:158;;;:::o;11900:147::-;11995:45;12034:5;11995:45;:::i;:::-;11990:3;11983:58;11900:147;;:::o;12053:807::-;12302:4;12340:3;12329:9;12325:19;12317:27;;12354:71;12422:1;12411:9;12407:17;12398:6;12354:71;:::i;:::-;12435:72;12503:2;12492:9;12488:18;12479:6;12435:72;:::i;:::-;12517:80;12593:2;12582:9;12578:18;12569:6;12517:80;:::i;:::-;12607;12683:2;12672:9;12668:18;12659:6;12607:80;:::i;:::-;12697:73;12765:3;12754:9;12750:19;12741:6;12697:73;:::i;:::-;12780;12848:3;12837:9;12833:19;12824:6;12780:73;:::i;:::-;12053:807;;;;;;;;;:::o;12866:143::-;12923:5;12954:6;12948:13;12939:22;;12970:33;12997:5;12970:33;:::i;:::-;12866:143;;;;:::o;13015:663::-;13103:6;13111;13119;13168:2;13156:9;13147:7;13143:23;13139:32;13136:119;;;13174:79;;:::i;:::-;13136:119;13294:1;13319:64;13375:7;13366:6;13355:9;13351:22;13319:64;:::i;:::-;13309:74;;13265:128;13432:2;13458:64;13514:7;13505:6;13494:9;13490:22;13458:64;:::i;:::-;13448:74;;13403:129;13571:2;13597:64;13653:7;13644:6;13633:9;13629:22;13597:64;:::i;:::-;13587:74;;13542:129;13015:663;;;;;:::o;13684:332::-;13805:4;13843:2;13832:9;13828:18;13820:26;;13856:71;13924:1;13913:9;13909:17;13900:6;13856:71;:::i;:::-;13937:72;14005:2;13994:9;13990:18;13981:6;13937:72;:::i;:::-;13684:332;;;;;:::o;14022:116::-;14092:21;14107:5;14092:21;:::i;:::-;14085:5;14082:32;14072:60;;14128:1;14125;14118:12;14072:60;14022:116;:::o;14144:137::-;14198:5;14229:6;14223:13;14214:22;;14245:30;14269:5;14245:30;:::i;:::-;14144:137;;;;:::o;14287:345::-;14354:6;14403:2;14391:9;14382:7;14378:23;14374:32;14371:119;;;14409:79;;:::i;:::-;14371:119;14529:1;14554:61;14607:7;14598:6;14587:9;14583:22;14554:61;:::i;:::-;14544:71;;14500:125;14287:345;;;;:::o;14638:173::-;14778:25;14774:1;14766:6;14762:14;14755:49;14638:173;:::o;14817:366::-;14959:3;14980:67;15044:2;15039:3;14980:67;:::i;:::-;14973:74;;15056:93;15145:3;15056:93;:::i;:::-;15174:2;15169:3;15165:12;15158:19;;14817:366;;;:::o;15189:419::-;15355:4;15393:2;15382:9;15378:18;15370:26;;15442:9;15436:4;15432:20;15428:1;15417:9;15413:17;15406:47;15470:131;15596:4;15470:131;:::i;:::-;15462:139;;15189:419;;;:::o;15614:172::-;15754:24;15750:1;15742:6;15738:14;15731:48;15614:172;:::o;15792:366::-;15934:3;15955:67;16019:2;16014:3;15955:67;:::i;:::-;15948:74;;16031:93;16120:3;16031:93;:::i;:::-;16149:2;16144:3;16140:12;16133:19;;15792:366;;;:::o;16164:419::-;16330:4;16368:2;16357:9;16353:18;16345:26;;16417:9;16411:4;16407:20;16403:1;16392:9;16388:17;16381:47;16445:131;16571:4;16445:131;:::i;:::-;16437:139;;16164:419;;;:::o;16589:223::-;16729:34;16725:1;16717:6;16713:14;16706:58;16798:6;16793:2;16785:6;16781:15;16774:31;16589:223;:::o;16818:366::-;16960:3;16981:67;17045:2;17040:3;16981:67;:::i;:::-;16974:74;;17057:93;17146:3;17057:93;:::i;:::-;17175:2;17170:3;17166:12;17159:19;;16818:366;;;:::o;17190:419::-;17356:4;17394:2;17383:9;17379:18;17371:26;;17443:9;17437:4;17433:20;17429:1;17418:9;17414:17;17407:47;17471:131;17597:4;17471:131;:::i;:::-;17463:139;;17190:419;;;:::o;17615:221::-;17755:34;17751:1;17743:6;17739:14;17732:58;17824:4;17819:2;17811:6;17807:15;17800:29;17615:221;:::o;17842:366::-;17984:3;18005:67;18069:2;18064:3;18005:67;:::i;:::-;17998:74;;18081:93;18170:3;18081:93;:::i;:::-;18199:2;18194:3;18190:12;18183:19;;17842:366;;;:::o;18214:419::-;18380:4;18418:2;18407:9;18403:18;18395:26;;18467:9;18461:4;18457:20;18453:1;18442:9;18438:17;18431:47;18495:131;18621:4;18495:131;:::i;:::-;18487:139;;18214:419;;;:::o;18639:224::-;18779:34;18775:1;18767:6;18763:14;18756:58;18848:7;18843:2;18835:6;18831:15;18824:32;18639:224;:::o;18869:366::-;19011:3;19032:67;19096:2;19091:3;19032:67;:::i;:::-;19025:74;;19108:93;19197:3;19108:93;:::i;:::-;19226:2;19221:3;19217:12;19210:19;;18869:366;;;:::o;19241:419::-;19407:4;19445:2;19434:9;19430:18;19422:26;;19494:9;19488:4;19484:20;19480:1;19469:9;19465:17;19458:47;19522:131;19648:4;19522:131;:::i;:::-;19514:139;;19241:419;;;:::o;19666:222::-;19806:34;19802:1;19794:6;19790:14;19783:58;19875:5;19870:2;19862:6;19858:15;19851:30;19666:222;:::o;19894:366::-;20036:3;20057:67;20121:2;20116:3;20057:67;:::i;:::-;20050:74;;20133:93;20222:3;20133:93;:::i;:::-;20251:2;20246:3;20242:12;20235:19;;19894:366;;;:::o;20266:419::-;20432:4;20470:2;20459:9;20455:18;20447:26;;20519:9;20513:4;20509:20;20505:1;20494:9;20490:17;20483:47;20547:131;20673:4;20547:131;:::i;:::-;20539:139;;20266:419;;;:::o;20691:228::-;20831:34;20827:1;20819:6;20815:14;20808:58;20900:11;20895:2;20887:6;20883:15;20876:36;20691:228;:::o;20925:366::-;21067:3;21088:67;21152:2;21147:3;21088:67;:::i;:::-;21081:74;;21164:93;21253:3;21164:93;:::i;:::-;21282:2;21277:3;21273:12;21266:19;;20925:366;;;:::o;21297:419::-;21463:4;21501:2;21490:9;21486:18;21478:26;;21550:9;21544:4;21540:20;21536:1;21525:9;21521:17;21514:47;21578:131;21704:4;21578:131;:::i;:::-;21570:139;;21297:419;;;:::o;21722:169::-;21862:21;21858:1;21850:6;21846:14;21839:45;21722:169;:::o;21897:366::-;22039:3;22060:67;22124:2;22119:3;22060:67;:::i;:::-;22053:74;;22136:93;22225:3;22136:93;:::i;:::-;22254:2;22249:3;22245:12;22238:19;;21897:366;;;:::o;22269:419::-;22435:4;22473:2;22462:9;22458:18;22450:26;;22522:9;22516:4;22512:20;22508:1;22497:9;22493:17;22486:47;22550:131;22676:4;22550:131;:::i;:::-;22542:139;;22269:419;;;:::o;22694:223::-;22834:34;22830:1;22822:6;22818:14;22811:58;22903:6;22898:2;22890:6;22886:15;22879:31;22694:223;:::o;22923:366::-;23065:3;23086:67;23150:2;23145:3;23086:67;:::i;:::-;23079:74;;23162:93;23251:3;23162:93;:::i;:::-;23280:2;23275:3;23271:12;23264:19;;22923:366;;;:::o;23295:419::-;23461:4;23499:2;23488:9;23484:18;23476:26;;23548:9;23542:4;23538:20;23534:1;23523:9;23519:17;23512:47;23576:131;23702:4;23576:131;:::i;:::-;23568:139;;23295:419;;;:::o;23720:221::-;23860:34;23856:1;23848:6;23844:14;23837:58;23929:4;23924:2;23916:6;23912:15;23905:29;23720:221;:::o;23947:366::-;24089:3;24110:67;24174:2;24169:3;24110:67;:::i;:::-;24103:74;;24186:93;24275:3;24186:93;:::i;:::-;24304:2;24299:3;24295:12;24288:19;;23947:366;;;:::o;24319:419::-;24485:4;24523:2;24512:9;24508:18;24500:26;;24572:9;24566:4;24562:20;24558:1;24547:9;24543:17;24536:47;24600:131;24726:4;24600:131;:::i;:::-;24592:139;;24319:419;;;:::o;24744:191::-;24784:3;24803:20;24821:1;24803:20;:::i;:::-;24798:25;;24837:20;24855:1;24837:20;:::i;:::-;24832:25;;24880:1;24877;24873:9;24866:16;;24901:3;24898:1;24895:10;24892:36;;;24908:18;;:::i;:::-;24892:36;24744:191;;;;:::o;24941:176::-;25081:28;25077:1;25069:6;25065:14;25058:52;24941:176;:::o;25123:366::-;25265:3;25286:67;25350:2;25345:3;25286:67;:::i;:::-;25279:74;;25362:93;25451:3;25362:93;:::i;:::-;25480:2;25475:3;25471:12;25464:19;;25123:366;;;:::o;25495:419::-;25661:4;25699:2;25688:9;25684:18;25676:26;;25748:9;25742:4;25738:20;25734:1;25723:9;25719:17;25712:47;25776:131;25902:4;25776:131;:::i;:::-;25768:139;;25495:419;;;:::o;25920:233::-;25959:3;25982:24;26000:5;25982:24;:::i;:::-;25973:33;;26028:66;26021:5;26018:77;26015:103;;26098:18;;:::i;:::-;26015:103;26145:1;26138:5;26134:13;26127:20;;25920:233;;;:::o;26159:194::-;26199:4;26219:20;26237:1;26219:20;:::i;:::-;26214:25;;26253:20;26271:1;26253:20;:::i;:::-;26248:25;;26297:1;26294;26290:9;26282:17;;26321:1;26315:4;26312:11;26309:37;;;26326:18;;:::i;:::-;26309:37;26159:194;;;;:::o;26359:180::-;26407:77;26404:1;26397:88;26504:4;26501:1;26494:15;26528:4;26525:1;26518:15;26545:185;26585:1;26602:20;26620:1;26602:20;:::i;:::-;26597:25;;26636:20;26654:1;26636:20;:::i;:::-;26631:25;;26675:1;26665:35;;26680:18;;:::i;:::-;26665:35;26722:1;26719;26715:9;26710:14;;26545:185;;;;:::o;26736:220::-;26876:34;26872:1;26864:6;26860:14;26853:58;26945:3;26940:2;26932:6;26928:15;26921:28;26736:220;:::o;26962:366::-;27104:3;27125:67;27189:2;27184:3;27125:67;:::i;:::-;27118:74;;27201:93;27290:3;27201:93;:::i;:::-;27319:2;27314:3;27310:12;27303:19;;26962:366;;;:::o;27334:419::-;27500:4;27538:2;27527:9;27523:18;27515:26;;27587:9;27581:4;27577:20;27573:1;27562:9;27558:17;27551:47;27615:131;27741:4;27615:131;:::i;:::-;27607:139;;27334:419;;;:::o;27759:180::-;27807:77;27804:1;27797:88;27904:4;27901:1;27894:15;27928:4;27925:1;27918:15;27945:180;27993:77;27990:1;27983:88;28090:4;28087:1;28080:15;28114:4;28111:1;28104:15;28131:114;28198:6;28232:5;28226:12;28216:22;;28131:114;;;:::o;28251:184::-;28350:11;28384:6;28379:3;28372:19;28424:4;28419:3;28415:14;28400:29;;28251:184;;;;:::o;28441:132::-;28508:4;28531:3;28523:11;;28561:4;28556:3;28552:14;28544:22;;28441:132;;;:::o;28579:108::-;28656:24;28674:5;28656:24;:::i;:::-;28651:3;28644:37;28579:108;;:::o;28693:179::-;28762:10;28783:46;28825:3;28817:6;28783:46;:::i;:::-;28861:4;28856:3;28852:14;28838:28;;28693:179;;;;:::o;28878:113::-;28948:4;28980;28975:3;28971:14;28963:22;;28878:113;;;:::o;29027:732::-;29146:3;29175:54;29223:5;29175:54;:::i;:::-;29245:86;29324:6;29319:3;29245:86;:::i;:::-;29238:93;;29355:56;29405:5;29355:56;:::i;:::-;29434:7;29465:1;29450:284;29475:6;29472:1;29469:13;29450:284;;;29551:6;29545:13;29578:63;29637:3;29622:13;29578:63;:::i;:::-;29571:70;;29664:60;29717:6;29664:60;:::i;:::-;29654:70;;29510:224;29497:1;29494;29490:9;29485:14;;29450:284;;;29454:14;29750:3;29743:10;;29151:608;;;29027:732;;;;:::o;29765:831::-;30028:4;30066:3;30055:9;30051:19;30043:27;;30080:71;30148:1;30137:9;30133:17;30124:6;30080:71;:::i;:::-;30161:80;30237:2;30226:9;30222:18;30213:6;30161:80;:::i;:::-;30288:9;30282:4;30278:20;30273:2;30262:9;30258:18;30251:48;30316:108;30419:4;30410:6;30316:108;:::i;:::-;30308:116;;30434:72;30502:2;30491:9;30487:18;30478:6;30434:72;:::i;:::-;30516:73;30584:3;30573:9;30569:19;30560:6;30516:73;:::i;:::-;29765:831;;;;;;;;:::o;30602:177::-;30742:29;30738:1;30730:6;30726:14;30719:53;30602:177;:::o;30785:366::-;30927:3;30948:67;31012:2;31007:3;30948:67;:::i;:::-;30941:74;;31024:93;31113:3;31024:93;:::i;:::-;31142:2;31137:3;31133:12;31126:19;;30785:366;;;:::o;31157:419::-;31323:4;31361:2;31350:9;31346:18;31338:26;;31410:9;31404:4;31400:20;31396:1;31385:9;31381:17;31374:47;31438:131;31564:4;31438:131;:::i;:::-;31430:139;;31157:419;;;:::o

Swarm Source

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