ETH Price: $3,164.02 (+0.90%)

Token

Telenode (TGPU)
 

Overview

Max Total Supply

100,000,000 TGPU

Holders

382

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
306,632.209122466847559605 TGPU

Value
$0.00
0xc0b9b5464c58832695adeb40bd9661ff566a9461
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:
Telenode

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-12
*/

// 

// Simplifying AI Infrastructureand Operations
// Website      : https://telenode.io/
// Telegram     : https://t.me/TeleNodePortal
// Twitter      : https://twitter.com/telenode_cloud
// Telenode Bot : https://t.me/telenodes_bot

// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax = 20;
    uint256 private constant _initialSellTax = 25;
    uint256 private constant _reduceBuyTaxAt = 35;
    uint256 private constant _reduceSellTaxAt = 45;
    uint256 private constant _preventSwapBefore = 40;
    uint256 private _finalBuyTax = 10;
    uint256 private _finalSellTax = 20;
    uint256 private _buyCount = 0;
    uint256 private _countTax = 0;

    string private constant _name = unicode" Telenode ";
    string private constant _symbol = unicode" TGPU ";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 public constant _countTrigger = 20000 * 10**_decimals;
    uint256 public constant _taxSwapThreshold = 200000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event FinalTax(uint256 _valueBuy, uint256 _valueSell, bool _shelid);
    event TradingActive(bool _tradingOpen, bool _swapEnabled);
    event maxAmount(uint256 _value);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(
            from != address(0) && to != address(0),
            "ERC20: transfer the zero address"
        );
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;

        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

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

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

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ) {
                uint256 getMin = (contractTokenBalance > _maxTaxSwap)
                    ? _maxTaxSwap
                    : contractTokenBalance;
                swapTokensForEth((amount > getMin) ? getMin : amount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                _countTax = 0;
            }
        }

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

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

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

    function setRouter() external onlyOwner {
        require(!tradingOpen, "init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(
            _tTotal.mul(_initialBuyTax).div(100)
        );
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive(tradingOpen, swapEnabled);
    }

    function openLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit maxAmount(_tTotal);
    }

    function wipeStuckETH() external {
        require(tradingOpen);
        _taxWallet.transfer(address(this).balance);
    }

    function setTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setWalletAmount(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setFees(uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require( _valueBuy <= 30 && _valueSell <= 30 && tradingOpen,
            "Exceeds value"
        );
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        uint256 clogSheild = _finalSellTax > 5 ? _maxTaxSwap = (5 *_tTotal).div(1000)  : (1 *_tTotal).div(100);
        emit FinalTax(_valueBuy, _valueSell, (clogSheild == (5 *_tTotal).div(1000)));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_shelid","type":"bool"}],"name":"FinalTax","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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_countTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wipeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a60075560146008555f6009555f600a556012600a620000269190620005cf565b620f42406200003691906200061f565b600b556012600a620000499190620005cf565b620f42406200005991906200061f565b600c556012600a6200006c9190620005cf565b620f42406200007c91906200061f565b600d555f600e60016101000a81548160ff0219169083151502179055505f600e60026101000a81548160ff021916908315150217905550348015620000bf575f80fd5b5060405162003be138038062003be18339818101604052810190620000e59190620006ce565b5f620000f66200040f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001e29190620005cf565b6305f5e100620001f391906200061f565b60015f620002066200040f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002586200041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003826200040f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003e09190620005cf565b6305f5e100620003f191906200061f565b6040516200040091906200070f565b60405180910390a3506200072a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004c7578086048111156200049f576200049e6200043d565b5b6001851615620004af5780820291505b8081029050620004bf856200046a565b94506200047f565b94509492505050565b5f82620004e15760019050620005b3565b81620004f0575f9050620005b3565b816001811462000509576002811462000514576200054a565b6001915050620005b3565b60ff8411156200052957620005286200043d565b5b8360020a9150848211156200054357620005426200043d565b5b50620005b3565b5060208310610133831016604e8410600b8410161715620005845782820a9050838111156200057e576200057d6200043d565b5b620005b3565b62000593848484600162000476565b92509050818404811115620005ad57620005ac6200043d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005db82620005ba565b9150620005e883620005c3565b9250620006177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004d0565b905092915050565b5f6200062b82620005ba565b91506200063883620005ba565b92508282026200064881620005ba565b915082820484148315176200066257620006616200043d565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000698826200066d565b9050919050565b620006aa816200068c565b8114620006b5575f80fd5b50565b5f81519050620006c8816200069f565b92915050565b5f60208284031215620006e657620006e562000669565b5b5f620006f584828501620006b8565b91505092915050565b6200070981620005ba565b82525050565b5f602082019050620007245f830184620006fe565b92915050565b6134a980620007385f395ff3fe608060405260043610610143575f3560e01c80637d1db4a5116100b5578063a6b32c101161006e578063a6b32c101461040e578063a9059cbb14610424578063bf474bed14610460578063c9567bf91461048a578063dd62ed3e146104a0578063fc236eb7146104dc5761014a565b80637d1db4a5146103285780638b34916f146103525780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce5780639879da9a146103f85761014a565b806318160ddd1161010757806318160ddd1461023057806323b872dd1461025a578063245a263a14610296578063313ce567146102ac57806370a08231146102d6578063715018a6146103125761014a565b806306fdde031461014e578063095ea7b3146101785780630b7640b8146101b45780630b78f9c0146101de5780630faee56f146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610504565b60405161016f91906125ba565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061266b565b610541565b6040516101ab91906126c3565b60405180910390f35b3480156101bf575f80fd5b506101c861055e565b6040516101d591906126eb565b60405180910390f35b3480156101e9575f80fd5b5061020460048036038101906101ff9190612704565b61057c565b005b348015610211575f80fd5b5061021a610795565b60405161022791906126eb565b60405180910390f35b34801561023b575f80fd5b5061024461079b565b60405161025191906126eb565b60405180910390f35b348015610265575f80fd5b50610280600480360381019061027b9190612742565b6107be565b60405161028d91906126c3565b60405180910390f35b3480156102a1575f80fd5b506102aa610892565b005b3480156102b7575f80fd5b506102c06109c1565b6040516102cd91906127ad565b60405180910390f35b3480156102e1575f80fd5b506102fc60048036038101906102f791906127c6565b6109c9565b60405161030991906126eb565b60405180910390f35b34801561031d575f80fd5b50610326610a0f565b005b348015610333575f80fd5b5061033c610b5d565b60405161034991906126eb565b60405180910390f35b34801561035d575f80fd5b50610378600480360381019061037391906127f1565b610b63565b005b348015610385575f80fd5b5061038e610c01565b60405161039b919061282b565b60405180910390f35b3480156103af575f80fd5b506103b8610c28565b6040516103c591906126eb565b60405180910390f35b3480156103d9575f80fd5b506103e2610c2e565b6040516103ef91906125ba565b60405180910390f35b348015610403575f80fd5b5061040c610c6b565b005b348015610419575f80fd5b506104226111af565b005b34801561042f575f80fd5b5061044a6004803603810190610445919061266b565b61122d565b60405161045791906126c3565b60405180910390f35b34801561046b575f80fd5b5061047461124a565b60405161048191906126eb565b60405180910390f35b348015610495575f80fd5b5061049e611269565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190612844565b6113d9565b6040516104d391906126eb565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd91906127f1565b61145b565b005b60606040518060400160405280600a81526020017f2054656c656e6f64652000000000000000000000000000000000000000000000815250905090565b5f61055461054d6114f9565b8484611500565b6001905092915050565b6012600a61056c91906129de565b614e206105799190612a28565b81565b6105846114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790612ab3565b60405180910390fd5b601e82111580156106225750601e8111155b80156106395750600e5f9054906101000a900460ff165b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f90612b1b565b60405180910390fd5b81600781905550806008819055505f6005600854116106d2576106cd60646012600a6106a491906129de565b6305f5e1006106b39190612a28565b60016106bf9190612a28565b61168e90919063ffffffff16565b610715565b61070f6103e86012600a6106e691906129de565b6305f5e1006106f59190612a28565b60056107019190612a28565b61168e90919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb4583836107776103e86012600a61074e91906129de565b6305f5e10061075d9190612a28565b60056107699190612a28565b61168e90919063ffffffff16565b841460405161078893929190612b39565b60405180910390a1505050565b600b5481565b5f6012600a6107aa91906129de565b6305f5e1006107b99190612a28565b905090565b5f6107ca8484846116d7565b610887846107d66114f9565b6108828560405180606001604052806028815260200161344c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108396114f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207d9092919063ffffffff16565b611500565b600190509392505050565b61089a6114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90612ab3565b60405180910390fd5b6012600a61093491906129de565b6305f5e1006109439190612a28565b600c819055506012600a61095791906129de565b6305f5e1006109669190612a28565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61099b91906129de565b6305f5e1006109aa9190612a28565b6040516109b791906126eb565b60405180910390a1565b5f6012905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a176114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90612ab3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b610b6b6114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bee90612ab3565b60405180910390fd5b80600c8190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600681526020017f2054475055200000000000000000000000000000000000000000000000000000815250905090565b610c736114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690612ab3565b60405180910390fd5b600e5f9054906101000a900460ff1615610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590612bb8565b60405180910390fd5b5f610dac610d956064610d8760146012600a610d6a91906129de565b6305f5e100610d799190612a28565b6120df90919063ffffffff16565b61168e90919063ffffffff16565b610d9e306109c9565b61215690919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e4a3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e3691906129de565b6305f5e100610e459190612a28565b611500565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed89190612bea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f829190612bea565b6040518363ffffffff1660e01b8152600401610f9f929190612c15565b6020604051808303815f875af1158015610fbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fdf9190612bea565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806110686114f9565b426040518863ffffffff1660e01b815260040161108a96959493929190612c7e565b60606040518083038185885af11580156110a6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110cb9190612cf1565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161116b929190612d41565b6020604051808303815f875af1158015611187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ab9190612d92565b5050565b600e5f9054906101000a900460ff166111c6575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561122a573d5f803e3d5ffd5b50565b5f6112406112396114f9565b84846116d7565b6001905092915050565b6012600a61125891906129de565b62030d406112669190612a28565b81565b6112716114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f490612ab3565b60405180910390fd5b600e5f9054906101000a900460ff161561134c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134390612e07565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e5f9054906101000a900460ff16600e60029054906101000a900460ff166040516113cf929190612e25565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114636114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612ab3565b60405180910390fd5b80600d8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561156857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e90612e96565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168191906126eb565b60405180910390a3505050565b5f6116cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061219f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561173f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590612efe565b60405180910390fd5b5f81116117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612f8c565b60405180910390fd5b5f6117c9610c01565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118375750611807610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dcd57600e5f9054906101000a900460ff1661192a5760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118ea575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192090612ff4565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119d3575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a26575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ae057600c54821115611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a679061305c565b60405180910390fd5b600d5482611a7d856109c9565b611a87919061307a565b1115611ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abf906130f7565b60405180910390fd5b60095f815480929190611ada90613115565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b6857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bae57611ba76064611b99602d60095411611b86576019611b8a565b6008545b856120df90919063ffffffff16565b61168e90919063ffffffff16565b9050611c79565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c7857611c756064611c67602360095411611c54576014611c58565b6007545b856120df90919063ffffffff16565b61168e90919063ffffffff16565b90505b5b80600a5f828254611c8a919061307a565b925050819055505f611c9b306109c9565b9050600e60019054906101000a900460ff16158015611d06575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1e5750600e60029054906101000a900460ff165b8015611d4457506012600a611d3391906129de565b62030d40611d419190612a28565b81115b8015611d5257506028600954115b8015611d7957506012600a611d6791906129de565b614e20611d749190612a28565b600a54115b15611dcb575f600b548211611d8e5781611d92565b600b545b9050611dab818511611da45784611da6565b815b612200565b5f4790505f811115611dc157611dc04761246b565b5b5f600a8190555050505b505b5f811115611ecc57611e258160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ec391906126eb565b60405180910390a35b611f1c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fbf611f73828461215690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612062848661215690919063ffffffff16565b60405161206f91906126eb565b60405180910390a350505050565b5f8383111582906120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb91906125ba565b60405180910390fd5b505f83856120d2919061315c565b9050809150509392505050565b5f8083036120ef575f9050612150565b5f82846120fc9190612a28565b905082848261210b91906131bc565b1461214b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121429061325c565b60405180910390fd5b809150505b92915050565b5f61219783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061207d565b905092915050565b5f80831182906121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc91906125ba565b60405180910390fd5b505f83856121f391906131bc565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122375761223661327a565b5b6040519080825280602002602001820160405280156122655781602001602082028036833780820191505090505b50905030815f8151811061227c5761227b6132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612320573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123449190612bea565b81600181518110612358576123576132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123be3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611500565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161242095949392919061338b565b5f604051808303815f87803b158015612437575f80fd5b505af1158015612449573d5f803e3d5ffd5b50505050505f600e60016101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124cf573d5f803e3d5ffd5b5050565b5f8082846124e1919061307a565b905083811015612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d9061342d565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561256757808201518184015260208101905061254c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61258c82612530565b612596818561253a565b93506125a681856020860161254a565b6125af81612572565b840191505092915050565b5f6020820190508181035f8301526125d28184612582565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612607826125de565b9050919050565b612617816125fd565b8114612621575f80fd5b50565b5f813590506126328161260e565b92915050565b5f819050919050565b61264a81612638565b8114612654575f80fd5b50565b5f8135905061266581612641565b92915050565b5f8060408385031215612681576126806125da565b5b5f61268e85828601612624565b925050602061269f85828601612657565b9150509250929050565b5f8115159050919050565b6126bd816126a9565b82525050565b5f6020820190506126d65f8301846126b4565b92915050565b6126e581612638565b82525050565b5f6020820190506126fe5f8301846126dc565b92915050565b5f806040838503121561271a576127196125da565b5b5f61272785828601612657565b925050602061273885828601612657565b9150509250929050565b5f805f60608486031215612759576127586125da565b5b5f61276686828701612624565b935050602061277786828701612624565b925050604061278886828701612657565b9150509250925092565b5f60ff82169050919050565b6127a781612792565b82525050565b5f6020820190506127c05f83018461279e565b92915050565b5f602082840312156127db576127da6125da565b5b5f6127e884828501612624565b91505092915050565b5f60208284031215612806576128056125da565b5b5f61281384828501612657565b91505092915050565b612825816125fd565b82525050565b5f60208201905061283e5f83018461281c565b92915050565b5f806040838503121561285a576128596125da565b5b5f61286785828601612624565b925050602061287885828601612624565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612904578086048111156128e0576128df612882565b5b60018516156128ef5780820291505b80810290506128fd856128af565b94506128c4565b94509492505050565b5f8261291c57600190506129d7565b81612929575f90506129d7565b816001811461293f576002811461294957612978565b60019150506129d7565b60ff84111561295b5761295a612882565b5b8360020a91508482111561297257612971612882565b5b506129d7565b5060208310610133831016604e8410600b84101617156129ad5782820a9050838111156129a8576129a7612882565b5b6129d7565b6129ba84848460016128bb565b925090508184048111156129d1576129d0612882565b5b81810290505b9392505050565b5f6129e882612638565b91506129f383612792565b9250612a207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461290d565b905092915050565b5f612a3282612638565b9150612a3d83612638565b9250828202612a4b81612638565b91508282048414831517612a6257612a61612882565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a9d60208361253a565b9150612aa882612a69565b602082019050919050565b5f6020820190508181035f830152612aca81612a91565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612b05600d8361253a565b9150612b1082612ad1565b602082019050919050565b5f6020820190508181035f830152612b3281612af9565b9050919050565b5f606082019050612b4c5f8301866126dc565b612b5960208301856126dc565b612b6660408301846126b4565b949350505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612ba260138361253a565b9150612bad82612b6e565b602082019050919050565b5f6020820190508181035f830152612bcf81612b96565b9050919050565b5f81519050612be48161260e565b92915050565b5f60208284031215612bff57612bfe6125da565b5b5f612c0c84828501612bd6565b91505092915050565b5f604082019050612c285f83018561281c565b612c35602083018461281c565b9392505050565b5f819050919050565b5f819050919050565b5f612c68612c63612c5e84612c3c565b612c45565b612638565b9050919050565b612c7881612c4e565b82525050565b5f60c082019050612c915f83018961281c565b612c9e60208301886126dc565b612cab6040830187612c6f565b612cb86060830186612c6f565b612cc5608083018561281c565b612cd260a08301846126dc565b979650505050505050565b5f81519050612ceb81612641565b92915050565b5f805f60608486031215612d0857612d076125da565b5b5f612d1586828701612cdd565b9350506020612d2686828701612cdd565b9250506040612d3786828701612cdd565b9150509250925092565b5f604082019050612d545f83018561281c565b612d6160208301846126dc565b9392505050565b612d71816126a9565b8114612d7b575f80fd5b50565b5f81519050612d8c81612d68565b92915050565b5f60208284031215612da757612da66125da565b5b5f612db484828501612d7e565b91505092915050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612df160148361253a565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b5f604082019050612e385f8301856126b4565b612e4560208301846126b4565b9392505050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f612e80601f8361253a565b9150612e8b82612e4c565b602082019050919050565b5f6020820190508181035f830152612ead81612e74565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612ee860208361253a565b9150612ef382612eb4565b602082019050919050565b5f6020820190508181035f830152612f1581612edc565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f7660298361253a565b9150612f8182612f1c565b604082019050919050565b5f6020820190508181035f830152612fa381612f6a565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f612fde60148361253a565b9150612fe982612faa565b602082019050919050565b5f6020820190508181035f83015261300b81612fd2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61304660198361253a565b915061305182613012565b602082019050919050565b5f6020820190508181035f8301526130738161303a565b9050919050565b5f61308482612638565b915061308f83612638565b92508282019050808211156130a7576130a6612882565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130e1601a8361253a565b91506130ec826130ad565b602082019050919050565b5f6020820190508181035f83015261310e816130d5565b9050919050565b5f61311f82612638565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361315157613150612882565b5b600182019050919050565b5f61316682612638565b915061317183612638565b925082820390508181111561318957613188612882565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c682612638565b91506131d183612638565b9250826131e1576131e061318f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61324660218361253a565b9150613251826131ec565b604082019050919050565b5f6020820190508181035f8301526132738161323a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613306816125fd565b82525050565b5f61331783836132fd565b60208301905092915050565b5f602082019050919050565b5f613339826132d4565b61334381856132de565b935061334e836132ee565b805f5b8381101561337e578151613365888261330c565b975061337083613323565b925050600181019050613351565b5085935050505092915050565b5f60a08201905061339e5f8301886126dc565b6133ab6020830187612c6f565b81810360408301526133bd818661332f565b90506133cc606083018561281c565b6133d960808301846126dc565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613417601b8361253a565b9150613422826133e3565b602082019050919050565b5f6020820190508181035f8301526134448161340b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201ae161428d35a2443288c7cb45cce31917cdf1da3f3ca8b23d260eb7c9af6fc564736f6c634300081400330000000000000000000000004622300b8670ddad14fb148d8a4ba480bb0f43dd

Deployed Bytecode

0x608060405260043610610143575f3560e01c80637d1db4a5116100b5578063a6b32c101161006e578063a6b32c101461040e578063a9059cbb14610424578063bf474bed14610460578063c9567bf91461048a578063dd62ed3e146104a0578063fc236eb7146104dc5761014a565b80637d1db4a5146103285780638b34916f146103525780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce5780639879da9a146103f85761014a565b806318160ddd1161010757806318160ddd1461023057806323b872dd1461025a578063245a263a14610296578063313ce567146102ac57806370a08231146102d6578063715018a6146103125761014a565b806306fdde031461014e578063095ea7b3146101785780630b7640b8146101b45780630b78f9c0146101de5780630faee56f146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610504565b60405161016f91906125ba565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061266b565b610541565b6040516101ab91906126c3565b60405180910390f35b3480156101bf575f80fd5b506101c861055e565b6040516101d591906126eb565b60405180910390f35b3480156101e9575f80fd5b5061020460048036038101906101ff9190612704565b61057c565b005b348015610211575f80fd5b5061021a610795565b60405161022791906126eb565b60405180910390f35b34801561023b575f80fd5b5061024461079b565b60405161025191906126eb565b60405180910390f35b348015610265575f80fd5b50610280600480360381019061027b9190612742565b6107be565b60405161028d91906126c3565b60405180910390f35b3480156102a1575f80fd5b506102aa610892565b005b3480156102b7575f80fd5b506102c06109c1565b6040516102cd91906127ad565b60405180910390f35b3480156102e1575f80fd5b506102fc60048036038101906102f791906127c6565b6109c9565b60405161030991906126eb565b60405180910390f35b34801561031d575f80fd5b50610326610a0f565b005b348015610333575f80fd5b5061033c610b5d565b60405161034991906126eb565b60405180910390f35b34801561035d575f80fd5b50610378600480360381019061037391906127f1565b610b63565b005b348015610385575f80fd5b5061038e610c01565b60405161039b919061282b565b60405180910390f35b3480156103af575f80fd5b506103b8610c28565b6040516103c591906126eb565b60405180910390f35b3480156103d9575f80fd5b506103e2610c2e565b6040516103ef91906125ba565b60405180910390f35b348015610403575f80fd5b5061040c610c6b565b005b348015610419575f80fd5b506104226111af565b005b34801561042f575f80fd5b5061044a6004803603810190610445919061266b565b61122d565b60405161045791906126c3565b60405180910390f35b34801561046b575f80fd5b5061047461124a565b60405161048191906126eb565b60405180910390f35b348015610495575f80fd5b5061049e611269565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190612844565b6113d9565b6040516104d391906126eb565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd91906127f1565b61145b565b005b60606040518060400160405280600a81526020017f2054656c656e6f64652000000000000000000000000000000000000000000000815250905090565b5f61055461054d6114f9565b8484611500565b6001905092915050565b6012600a61056c91906129de565b614e206105799190612a28565b81565b6105846114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790612ab3565b60405180910390fd5b601e82111580156106225750601e8111155b80156106395750600e5f9054906101000a900460ff165b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f90612b1b565b60405180910390fd5b81600781905550806008819055505f6005600854116106d2576106cd60646012600a6106a491906129de565b6305f5e1006106b39190612a28565b60016106bf9190612a28565b61168e90919063ffffffff16565b610715565b61070f6103e86012600a6106e691906129de565b6305f5e1006106f59190612a28565b60056107019190612a28565b61168e90919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb4583836107776103e86012600a61074e91906129de565b6305f5e10061075d9190612a28565b60056107699190612a28565b61168e90919063ffffffff16565b841460405161078893929190612b39565b60405180910390a1505050565b600b5481565b5f6012600a6107aa91906129de565b6305f5e1006107b99190612a28565b905090565b5f6107ca8484846116d7565b610887846107d66114f9565b6108828560405180606001604052806028815260200161344c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108396114f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207d9092919063ffffffff16565b611500565b600190509392505050565b61089a6114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90612ab3565b60405180910390fd5b6012600a61093491906129de565b6305f5e1006109439190612a28565b600c819055506012600a61095791906129de565b6305f5e1006109669190612a28565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61099b91906129de565b6305f5e1006109aa9190612a28565b6040516109b791906126eb565b60405180910390a1565b5f6012905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a176114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90612ab3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b610b6b6114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bee90612ab3565b60405180910390fd5b80600c8190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600681526020017f2054475055200000000000000000000000000000000000000000000000000000815250905090565b610c736114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690612ab3565b60405180910390fd5b600e5f9054906101000a900460ff1615610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590612bb8565b60405180910390fd5b5f610dac610d956064610d8760146012600a610d6a91906129de565b6305f5e100610d799190612a28565b6120df90919063ffffffff16565b61168e90919063ffffffff16565b610d9e306109c9565b61215690919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e4a3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e3691906129de565b6305f5e100610e459190612a28565b611500565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed89190612bea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f829190612bea565b6040518363ffffffff1660e01b8152600401610f9f929190612c15565b6020604051808303815f875af1158015610fbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fdf9190612bea565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806110686114f9565b426040518863ffffffff1660e01b815260040161108a96959493929190612c7e565b60606040518083038185885af11580156110a6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110cb9190612cf1565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161116b929190612d41565b6020604051808303815f875af1158015611187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ab9190612d92565b5050565b600e5f9054906101000a900460ff166111c6575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561122a573d5f803e3d5ffd5b50565b5f6112406112396114f9565b84846116d7565b6001905092915050565b6012600a61125891906129de565b62030d406112669190612a28565b81565b6112716114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f490612ab3565b60405180910390fd5b600e5f9054906101000a900460ff161561134c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134390612e07565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e5f9054906101000a900460ff16600e60029054906101000a900460ff166040516113cf929190612e25565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114636114f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612ab3565b60405180910390fd5b80600d8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561156857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e90612e96565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168191906126eb565b60405180910390a3505050565b5f6116cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061219f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561173f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590612efe565b60405180910390fd5b5f81116117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612f8c565b60405180910390fd5b5f6117c9610c01565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118375750611807610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dcd57600e5f9054906101000a900460ff1661192a5760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118ea575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192090612ff4565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119d3575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a26575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ae057600c54821115611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a679061305c565b60405180910390fd5b600d5482611a7d856109c9565b611a87919061307a565b1115611ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abf906130f7565b60405180910390fd5b60095f815480929190611ada90613115565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b6857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bae57611ba76064611b99602d60095411611b86576019611b8a565b6008545b856120df90919063ffffffff16565b61168e90919063ffffffff16565b9050611c79565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c7857611c756064611c67602360095411611c54576014611c58565b6007545b856120df90919063ffffffff16565b61168e90919063ffffffff16565b90505b5b80600a5f828254611c8a919061307a565b925050819055505f611c9b306109c9565b9050600e60019054906101000a900460ff16158015611d06575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1e5750600e60029054906101000a900460ff165b8015611d4457506012600a611d3391906129de565b62030d40611d419190612a28565b81115b8015611d5257506028600954115b8015611d7957506012600a611d6791906129de565b614e20611d749190612a28565b600a54115b15611dcb575f600b548211611d8e5781611d92565b600b545b9050611dab818511611da45784611da6565b815b612200565b5f4790505f811115611dc157611dc04761246b565b5b5f600a8190555050505b505b5f811115611ecc57611e258160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ec391906126eb565b60405180910390a35b611f1c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fbf611f73828461215690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612062848661215690919063ffffffff16565b60405161206f91906126eb565b60405180910390a350505050565b5f8383111582906120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb91906125ba565b60405180910390fd5b505f83856120d2919061315c565b9050809150509392505050565b5f8083036120ef575f9050612150565b5f82846120fc9190612a28565b905082848261210b91906131bc565b1461214b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121429061325c565b60405180910390fd5b809150505b92915050565b5f61219783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061207d565b905092915050565b5f80831182906121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc91906125ba565b60405180910390fd5b505f83856121f391906131bc565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122375761223661327a565b5b6040519080825280602002602001820160405280156122655781602001602082028036833780820191505090505b50905030815f8151811061227c5761227b6132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612320573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123449190612bea565b81600181518110612358576123576132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123be3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611500565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161242095949392919061338b565b5f604051808303815f87803b158015612437575f80fd5b505af1158015612449573d5f803e3d5ffd5b50505050505f600e60016101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124cf573d5f803e3d5ffd5b5050565b5f8082846124e1919061307a565b905083811015612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d9061342d565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561256757808201518184015260208101905061254c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61258c82612530565b612596818561253a565b93506125a681856020860161254a565b6125af81612572565b840191505092915050565b5f6020820190508181035f8301526125d28184612582565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612607826125de565b9050919050565b612617816125fd565b8114612621575f80fd5b50565b5f813590506126328161260e565b92915050565b5f819050919050565b61264a81612638565b8114612654575f80fd5b50565b5f8135905061266581612641565b92915050565b5f8060408385031215612681576126806125da565b5b5f61268e85828601612624565b925050602061269f85828601612657565b9150509250929050565b5f8115159050919050565b6126bd816126a9565b82525050565b5f6020820190506126d65f8301846126b4565b92915050565b6126e581612638565b82525050565b5f6020820190506126fe5f8301846126dc565b92915050565b5f806040838503121561271a576127196125da565b5b5f61272785828601612657565b925050602061273885828601612657565b9150509250929050565b5f805f60608486031215612759576127586125da565b5b5f61276686828701612624565b935050602061277786828701612624565b925050604061278886828701612657565b9150509250925092565b5f60ff82169050919050565b6127a781612792565b82525050565b5f6020820190506127c05f83018461279e565b92915050565b5f602082840312156127db576127da6125da565b5b5f6127e884828501612624565b91505092915050565b5f60208284031215612806576128056125da565b5b5f61281384828501612657565b91505092915050565b612825816125fd565b82525050565b5f60208201905061283e5f83018461281c565b92915050565b5f806040838503121561285a576128596125da565b5b5f61286785828601612624565b925050602061287885828601612624565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612904578086048111156128e0576128df612882565b5b60018516156128ef5780820291505b80810290506128fd856128af565b94506128c4565b94509492505050565b5f8261291c57600190506129d7565b81612929575f90506129d7565b816001811461293f576002811461294957612978565b60019150506129d7565b60ff84111561295b5761295a612882565b5b8360020a91508482111561297257612971612882565b5b506129d7565b5060208310610133831016604e8410600b84101617156129ad5782820a9050838111156129a8576129a7612882565b5b6129d7565b6129ba84848460016128bb565b925090508184048111156129d1576129d0612882565b5b81810290505b9392505050565b5f6129e882612638565b91506129f383612792565b9250612a207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461290d565b905092915050565b5f612a3282612638565b9150612a3d83612638565b9250828202612a4b81612638565b91508282048414831517612a6257612a61612882565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a9d60208361253a565b9150612aa882612a69565b602082019050919050565b5f6020820190508181035f830152612aca81612a91565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612b05600d8361253a565b9150612b1082612ad1565b602082019050919050565b5f6020820190508181035f830152612b3281612af9565b9050919050565b5f606082019050612b4c5f8301866126dc565b612b5960208301856126dc565b612b6660408301846126b4565b949350505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612ba260138361253a565b9150612bad82612b6e565b602082019050919050565b5f6020820190508181035f830152612bcf81612b96565b9050919050565b5f81519050612be48161260e565b92915050565b5f60208284031215612bff57612bfe6125da565b5b5f612c0c84828501612bd6565b91505092915050565b5f604082019050612c285f83018561281c565b612c35602083018461281c565b9392505050565b5f819050919050565b5f819050919050565b5f612c68612c63612c5e84612c3c565b612c45565b612638565b9050919050565b612c7881612c4e565b82525050565b5f60c082019050612c915f83018961281c565b612c9e60208301886126dc565b612cab6040830187612c6f565b612cb86060830186612c6f565b612cc5608083018561281c565b612cd260a08301846126dc565b979650505050505050565b5f81519050612ceb81612641565b92915050565b5f805f60608486031215612d0857612d076125da565b5b5f612d1586828701612cdd565b9350506020612d2686828701612cdd565b9250506040612d3786828701612cdd565b9150509250925092565b5f604082019050612d545f83018561281c565b612d6160208301846126dc565b9392505050565b612d71816126a9565b8114612d7b575f80fd5b50565b5f81519050612d8c81612d68565b92915050565b5f60208284031215612da757612da66125da565b5b5f612db484828501612d7e565b91505092915050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612df160148361253a565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b5f604082019050612e385f8301856126b4565b612e4560208301846126b4565b9392505050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f612e80601f8361253a565b9150612e8b82612e4c565b602082019050919050565b5f6020820190508181035f830152612ead81612e74565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612ee860208361253a565b9150612ef382612eb4565b602082019050919050565b5f6020820190508181035f830152612f1581612edc565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f7660298361253a565b9150612f8182612f1c565b604082019050919050565b5f6020820190508181035f830152612fa381612f6a565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f612fde60148361253a565b9150612fe982612faa565b602082019050919050565b5f6020820190508181035f83015261300b81612fd2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61304660198361253a565b915061305182613012565b602082019050919050565b5f6020820190508181035f8301526130738161303a565b9050919050565b5f61308482612638565b915061308f83612638565b92508282019050808211156130a7576130a6612882565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130e1601a8361253a565b91506130ec826130ad565b602082019050919050565b5f6020820190508181035f83015261310e816130d5565b9050919050565b5f61311f82612638565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361315157613150612882565b5b600182019050919050565b5f61316682612638565b915061317183612638565b925082820390508181111561318957613188612882565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c682612638565b91506131d183612638565b9250826131e1576131e061318f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61324660218361253a565b9150613251826131ec565b604082019050919050565b5f6020820190508181035f8301526132738161323a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613306816125fd565b82525050565b5f61331783836132fd565b60208301905092915050565b5f602082019050919050565b5f613339826132d4565b61334381856132de565b935061334e836132ee565b805f5b8381101561337e578151613365888261330c565b975061337083613323565b925050600181019050613351565b5085935050505092915050565b5f60a08201905061339e5f8301886126dc565b6133ab6020830187612c6f565b81810360408301526133bd818661332f565b90506133cc606083018561281c565b6133d960808301846126dc565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613417601b8361253a565b9150613422826133e3565b602082019050919050565b5f6020820190508181035f8301526134448161340b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201ae161428d35a2443288c7cb45cce31917cdf1da3f3ca8b23d260eb7c9af6fc564736f6c63430008140033

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

0000000000000000000000004622300b8670ddad14fb148d8a4ba480bb0f43dd

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x4622300B8670ddAD14FB148d8a4ba480Bb0f43dD

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004622300b8670ddad14fb148d8a4ba480bb0f43dd


Deployed Bytecode Sourcemap

4059:9773:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6148:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7054:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5102:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13326:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5243:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6425:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7255:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12799:151;;;;;;;;;;;;;:::i;:::-;;6334:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6528:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3011:148;;;;;;;;;;;;;:::i;:::-;;5302:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13091:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2797:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5362:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6239:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11648:916;;;;;;;;;;;;;:::i;:::-;;12958:125;;;;;;;;;;;;;:::i;:::-;;6655:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12572:219;;;;;;;;;;;;;:::i;:::-;;6862:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13204:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6148:83;6185:13;6218:5;;;;;;;;;;;;;;;;;6211:12;;6148:83;:::o;7054:193::-;7156:4;7178:39;7187:12;:10;:12::i;:::-;7201:7;7210:6;7178:8;:39::i;:::-;7235:4;7228:11;;7054:193;;;;:::o;5102:61::-;5026:2;5150;:13;;;;:::i;:::-;5142:5;:21;;;;:::i;:::-;5102:61;:::o;13326:466::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13434:2:::1;13421:9;:15;;:35;;;;;13454:2;13440:10;:16;;13421:35;:50;;;;;13460:11;;;;;;;;;;;13421:50;13412:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;13538:9;13523:12;:24;;;;13574:10;13558:13;:26;;;;13595:18;13632:1;13616:13;;:17;:81;;13676:21;13693:3;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;13677:1;:10;;;;:::i;:::-;13676:16;;:21;;;;:::i;:::-;13616:81;;;13650:22;13667:4;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;13651:1;:10;;;;:::i;:::-;13650:16;;:22;;;;:::i;:::-;13636:11;:36;;;13616:81;13595:102;;13713:71;13722:9;13733:10;13760:22;13777:4;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;13761:1;:10;;;;:::i;:::-;13760:16;;:22;;;;:::i;:::-;13746:10;:36;13713:71;;;;;;;;:::i;:::-;;;;;;;;13401:391;13326:466:::0;;:::o;5243:52::-;;;;:::o;6425:95::-;6478:7;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;6498:14;;6425:95;:::o;7255:446::-;7387:4;7404:36;7414:6;7422:9;7433:6;7404:9;:36::i;:::-;7451:220;7474:6;7495:12;:10;:12::i;:::-;7522:138;7578:6;7522:138;;;;;;;;;;;;;;;;;:11;:19;7534:6;7522:19;;;;;;;;;;;;;;;:33;7542:12;:10;:12::i;:::-;7522:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7451:8;:220::i;:::-;7689:4;7682:11;;7255:446;;;;;:::o;12799:151::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5026:2:::1;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;12851:12;:22;;;;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;12884:14;:24;;;;12924:18;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;12924:18;;;;;;:::i;:::-;;;;;;;;12799:151::o:0;6334:83::-;6375:5;5026:2;6393:16;;6334:83;:::o;6528:119::-;6594:7;6621:9;:18;6631:7;6621:18;;;;;;;;;;;;;;;;6614:25;;6528:119;;;:::o;3011:148::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3118:1:::1;3081:40;;3102:6;::::0;::::1;;;;;;;;3081:40;;;;;;;;;;;;3149:1;3132:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3011:148::o:0;5302:53::-;;;;:::o;13091:105::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13177:11:::1;13162:12;:26;;;;13091:105:::0;:::o;2797:79::-;2835:7;2862:6;;;;;;;;;;;2855:13;;2797:79;:::o;5362:55::-;;;;:::o;6239:87::-;6278:13;6311:7;;;;;;;;;;;;;;;;;6304:14;;6239:87;:::o;11648:916::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11708:11:::1;;;;;;;;;;;11707:12;11699:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11754:19;11776:90;11819:36;11851:3;11819:27;4501:2;5026;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;11819:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11776:24;11794:4;11776:9;:24::i;:::-;:28;;:90;;;;:::i;:::-;11754:112;;11928:42;11877:15;;:104;;;;;;;;;;;;;;;;;;11992:58;12009:4;12024:15;;;;;;;;;;;5026:2;5082;:13;;;;:::i;:::-;5070:9;:25;;;;:::i;:::-;11992:8;:58::i;:::-;12095:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12077:55;;;12155:4;12175:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12077:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12061:13;;:147;;;;;;;;;;;;;;;;;;12219:15;;;;;;;;;;;:31;;;12258:21;12303:4;12323:11;12349:1;12365::::0;12381:12:::1;:10;:12::i;:::-;12408:15;12219:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12452:13;;;;;;;;;;;12445:29;;;12497:15;;;;;;;;;;;12528:17;12445:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11688:876;11648:916::o:0;12958:125::-;13010:11;;;;;;;;;;;13002:20;;;;;;13033:10;;;;;;;;;;;:19;;:42;13053:21;13033:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12958:125::o;6655:199::-;6760:4;6782:42;6792:12;:10;:12::i;:::-;6806:9;6817:6;6782:9;:42::i;:::-;6842:4;6835:11;;6655:199;;;;:::o;5170:66::-;5026:2;5223;:13;;;;:::i;:::-;5214:6;:22;;;;:::i;:::-;5170:66;:::o;12572:219::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12634:11:::1;;;;;;;;;;;12633:12;12625:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12695:4;12681:11;;:18;;;;;;;;;;;;;;;;;;12724:4;12710:11;;:18;;;;;;;;;;;;;;;;;;12744:39;12758:11;;;;;;;;;;;12771;;;;;;;;;;;12744:39;;;;;;;:::i;:::-;;;;;;;;12572:219::o:0;6862:184::-;6979:7;7011:11;:18;7023:5;7011:18;;;;;;;;;;;;;;;:27;7030:7;7011:27;;;;;;;;;;;;;;;;7004:34;;6862:184;;;;:::o;13204:114::-;2934:12;:10;:12::i;:::-;2924:22;;:6;;;;;;;;;;:22;;;2916:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13297:13:::1;13280:14;:30;;;;13204:114:::0;:::o;337:98::-;390:7;417:10;410:17;;337:98;:::o;7709:347::-;7867:1;7850:19;;:5;:19;;;;:44;;;;;7892:1;7873:21;;:7;:21;;;;7850:44;7828:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;7994:6;7964:11;:18;7976:5;7964:18;;;;;;;;;;;;;;;:27;7983:7;7964:27;;;;;;;;;;;;;;;:36;;;;8032:7;8016:32;;8025:5;8016:32;;;8041:6;8016:32;;;;;;:::i;:::-;;;;;;;;7709:347;;;:::o;2085:132::-;2143:7;2170:39;2174:1;2177;2170:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2163:46;;2085:132;;;;:::o;8064:2985::-;8216:1;8200:18;;:4;:18;;;;:38;;;;;8236:1;8222:16;;:2;:16;;;;8200:38;8178:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8326:1;8317:6;:10;8309:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8384:17;8430:7;:5;:7::i;:::-;8422:15;;:4;:15;;;;:32;;;;;8447:7;:5;:7::i;:::-;8441:13;;:2;:13;;;;8422:32;8418:2260;;;8476:11;;;;;;;;;;;8471:197;;8538:18;:22;8557:2;8538:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8564:18;:24;8583:4;8564:24;;;;;;;;;;;;;;;;;;;;;;;;;8538:50;8508:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8471:197;8714:13;;;;;;;;;;;8706:21;;:4;:21;;;:72;;;;;8762:15;;;;;;;;;;;8748:30;;:2;:30;;;;8706:72;:116;;;;;8800:18;:22;8819:2;8800:22;;;;;;;;;;;;;;;;;;;;;;;;;8799:23;8706:116;8684:438;;;8875:12;;8865:6;:22;;8857:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8992:14;;8982:6;8966:13;8976:2;8966:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8936:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9095:9;;:11;;;;;;;;;:::i;:::-;;;;;;8684:438;9148:13;;;;;;;;;;;9142:19;;:2;:19;;;:44;;;;;9181:4;9165:21;;:4;:21;;;;9142:44;9138:667;;;9219:235;9450:3;9219:204;4658:2;9279:9;;:28;9278:122;;4553:2;9278:122;;;9340:13;;9278:122;9219:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9207:247;;9138:667;;;9488:13;;;;;;;;;;;9480:21;;:4;:21;;;:44;;;;;9519:4;9505:19;;:2;:19;;;;9480:44;9476:329;;;9557:232;9785:3;9557:201;4605:2;9617:9;;:27;9616:119;;4501:2;9616:119;;;9677:12;;9616:119;9557:6;:32;;:201;;;;:::i;:::-;:227;;:232;;;;:::i;:::-;9545:244;;9476:329;9138:667;9834:9;9821;;:22;;;;;;;:::i;:::-;;;;;;;;9858:28;9889:24;9907:4;9889:9;:24::i;:::-;9858:55;;9951:6;;;;;;;;;;;9950:7;:47;;;;;9984:13;;;;;;;;;;;9978:19;;:2;:19;;;9950:47;:79;;;;;10018:11;;;;;;;;;;;9950:79;:140;;;;;5026:2;5223;:13;;;;:::i;:::-;5214:6;:22;;;;:::i;:::-;10050:20;:40;9950:140;:191;;;;;4713:2;10111:9;;:30;9950:191;:237;;;;;5026:2;5150;:13;;;;:::i;:::-;5142:5;:21;;;;:::i;:::-;10162:9;;:25;9950:237;9928:739;;;10222:14;10263:11;;10240:20;:34;10239:115;;10334:20;10239:115;;;10299:11;;10239:115;10222:132;;10373:53;10400:6;10391;:15;10390:35;;10419:6;10390:35;;;10410:6;10390:35;10373:16;:53::i;:::-;10445:26;10474:21;10445:50;;10539:1;10518:18;:22;10514:106;;;10565:35;10578:21;10565:12;:35::i;:::-;10514:106;10650:1;10638:9;:13;;;;10203:464;;9928:739;8456:2222;8418:2260;10706:1;10694:9;:13;10690:172;;;10751:39;10780:9;10751;:24;10769:4;10751:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10724:9;:24;10742:4;10724:24;;;;;;;;;;;;;;;:66;;;;10833:4;10810:40;;10819:4;10810:40;;;10840:9;10810:40;;;;;;:::i;:::-;;;;;;;;10690:172;10890:27;10910:6;10890:9;:15;10900:4;10890:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10872:9;:15;10882:4;10872:15;;;;;;;;;;;;;;;:45;;;;10944:40;10962:21;10973:9;10962:6;:10;;:21;;;;:::i;:::-;10944:9;:13;10954:2;10944:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10928:9;:13;10938:2;10928:13;;;;;;;;;;;;;;;:56;;;;11015:2;11000:41;;11009:4;11000:41;;;11019:21;11030:9;11019:6;:10;;:21;;;;:::i;:::-;11000:41;;;;;;:::i;:::-;;;;;;;;8167:2882;8064:2985;;;:::o;1599:224::-;1719:7;1752:1;1747;:6;;1755:12;1739:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1779:9;1795:1;1791;:5;;;;:::i;:::-;1779:17;;1814:1;1807:8;;;1599:224;;;;;:::o;1831:246::-;1889:7;1918:1;1913;:6;1909:47;;1943:1;1936:8;;;;1909:47;1966:9;1982:1;1978;:5;;;;:::i;:::-;1966:17;;2011:1;2006;2002;:5;;;;:::i;:::-;:10;1994:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2068:1;2061:8;;;1831:246;;;;;:::o;1455:136::-;1513:7;1540:43;1544:1;1547;1540:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1533:50;;1455:136;;;;:::o;2225:223::-;2345:7;2377:1;2373;:5;2380:12;2365:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2404:9;2420:1;2416;:5;;;;:::i;:::-;2404:17;;2439:1;2432:8;;;2225:223;;;;;:::o;11157:483::-;5753:4;5744:6;;:13;;;;;;;;;;;;;;;;;;11235:21:::1;11273:1;11259:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11235:40;;11304:4;11286;11291:1;11286:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11330:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11320:4;11325:1;11320:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11363:62;11380:4;11395:15;;;;;;;;;;;11413:11;11363:8;:62::i;:::-;11436:15;;;;;;;;;;;:66;;;11517:11;11543:1;11559:4;11586;11606:15;11436:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11224:416;5789:5:::0;5780:6;;:14;;;;;;;;;;;;;;;;;;11157:483;:::o;11057:92::-;11114:10;;;;;;;;;;;:19;;:27;11134:6;11114:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11057:92;:::o;1268:179::-;1326:7;1346:9;1362:1;1358;:5;;;;:::i;:::-;1346:17;;1387:1;1382;:6;;1374:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1438:1;1431:8;;;1268:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:182::-;9905:34;9901:1;9893:6;9889:14;9882:58;9765:182;:::o;9953:366::-;10095:3;10116:67;10180:2;10175:3;10116:67;:::i;:::-;10109:74;;10192:93;10281:3;10192:93;:::i;:::-;10310:2;10305:3;10301:12;10294:19;;9953:366;;;:::o;10325:419::-;10491:4;10529:2;10518:9;10514:18;10506:26;;10578:9;10572:4;10568:20;10564:1;10553:9;10549:17;10542:47;10606:131;10732:4;10606:131;:::i;:::-;10598:139;;10325:419;;;:::o;10750:163::-;10890:15;10886:1;10878:6;10874:14;10867:39;10750:163;:::o;10919:366::-;11061:3;11082:67;11146:2;11141:3;11082:67;:::i;:::-;11075:74;;11158:93;11247:3;11158:93;:::i;:::-;11276:2;11271:3;11267:12;11260:19;;10919:366;;;:::o;11291:419::-;11457:4;11495:2;11484:9;11480:18;11472:26;;11544:9;11538:4;11534:20;11530:1;11519:9;11515:17;11508:47;11572:131;11698:4;11572:131;:::i;:::-;11564:139;;11291:419;;;:::o;11716:430::-;11859:4;11897:2;11886:9;11882:18;11874:26;;11910:71;11978:1;11967:9;11963:17;11954:6;11910:71;:::i;:::-;11991:72;12059:2;12048:9;12044:18;12035:6;11991:72;:::i;:::-;12073:66;12135:2;12124:9;12120:18;12111:6;12073:66;:::i;:::-;11716:430;;;;;;:::o;12152:169::-;12292:21;12288:1;12280:6;12276:14;12269:45;12152:169;:::o;12327:366::-;12469:3;12490:67;12554:2;12549:3;12490:67;:::i;:::-;12483:74;;12566:93;12655:3;12566:93;:::i;:::-;12684:2;12679:3;12675:12;12668:19;;12327:366;;;:::o;12699:419::-;12865:4;12903:2;12892:9;12888:18;12880:26;;12952:9;12946:4;12942:20;12938:1;12927:9;12923:17;12916:47;12980:131;13106:4;12980:131;:::i;:::-;12972:139;;12699:419;;;:::o;13124:143::-;13181:5;13212:6;13206:13;13197:22;;13228:33;13255:5;13228:33;:::i;:::-;13124:143;;;;:::o;13273:351::-;13343:6;13392:2;13380:9;13371:7;13367:23;13363:32;13360:119;;;13398:79;;:::i;:::-;13360:119;13518:1;13543:64;13599:7;13590:6;13579:9;13575:22;13543:64;:::i;:::-;13533:74;;13489:128;13273:351;;;;:::o;13630:332::-;13751:4;13789:2;13778:9;13774:18;13766:26;;13802:71;13870:1;13859:9;13855:17;13846:6;13802:71;:::i;:::-;13883:72;13951:2;13940:9;13936:18;13927:6;13883:72;:::i;:::-;13630:332;;;;;:::o;13968:85::-;14013:7;14042:5;14031:16;;13968:85;;;:::o;14059:60::-;14087:3;14108:5;14101:12;;14059:60;;;:::o;14125:158::-;14183:9;14216:61;14234:42;14243:32;14269:5;14243:32;:::i;:::-;14234:42;:::i;:::-;14216:61;:::i;:::-;14203:74;;14125:158;;;:::o;14289:147::-;14384:45;14423:5;14384:45;:::i;:::-;14379:3;14372:58;14289:147;;:::o;14442:807::-;14691:4;14729:3;14718:9;14714:19;14706:27;;14743:71;14811:1;14800:9;14796:17;14787:6;14743:71;:::i;:::-;14824:72;14892:2;14881:9;14877:18;14868:6;14824:72;:::i;:::-;14906:80;14982:2;14971:9;14967:18;14958:6;14906:80;:::i;:::-;14996;15072:2;15061:9;15057:18;15048:6;14996:80;:::i;:::-;15086:73;15154:3;15143:9;15139:19;15130:6;15086:73;:::i;:::-;15169;15237:3;15226:9;15222:19;15213:6;15169:73;:::i;:::-;14442:807;;;;;;;;;:::o;15255:143::-;15312:5;15343:6;15337:13;15328:22;;15359:33;15386:5;15359:33;:::i;:::-;15255:143;;;;:::o;15404:663::-;15492:6;15500;15508;15557:2;15545:9;15536:7;15532:23;15528:32;15525:119;;;15563:79;;:::i;:::-;15525:119;15683:1;15708:64;15764:7;15755:6;15744:9;15740:22;15708:64;:::i;:::-;15698:74;;15654:128;15821:2;15847:64;15903:7;15894:6;15883:9;15879:22;15847:64;:::i;:::-;15837:74;;15792:129;15960:2;15986:64;16042:7;16033:6;16022:9;16018:22;15986:64;:::i;:::-;15976:74;;15931:129;15404:663;;;;;:::o;16073:332::-;16194:4;16232:2;16221:9;16217:18;16209:26;;16245:71;16313:1;16302:9;16298:17;16289:6;16245:71;:::i;:::-;16326:72;16394:2;16383:9;16379:18;16370:6;16326:72;:::i;:::-;16073:332;;;;;:::o;16411:116::-;16481:21;16496:5;16481:21;:::i;:::-;16474:5;16471:32;16461:60;;16517:1;16514;16507:12;16461:60;16411:116;:::o;16533:137::-;16587:5;16618:6;16612:13;16603:22;;16634:30;16658:5;16634:30;:::i;:::-;16533:137;;;;:::o;16676:345::-;16743:6;16792:2;16780:9;16771:7;16767:23;16763:32;16760:119;;;16798:79;;:::i;:::-;16760:119;16918:1;16943:61;16996:7;16987:6;16976:9;16972:22;16943:61;:::i;:::-;16933:71;;16889:125;16676:345;;;;:::o;17027:170::-;17167:22;17163:1;17155:6;17151:14;17144:46;17027:170;:::o;17203:366::-;17345:3;17366:67;17430:2;17425:3;17366:67;:::i;:::-;17359:74;;17442:93;17531:3;17442:93;:::i;:::-;17560:2;17555:3;17551:12;17544:19;;17203:366;;;:::o;17575:419::-;17741:4;17779:2;17768:9;17764:18;17756:26;;17828:9;17822:4;17818:20;17814:1;17803:9;17799:17;17792:47;17856:131;17982:4;17856:131;:::i;:::-;17848:139;;17575:419;;;:::o;18000:308::-;18109:4;18147:2;18136:9;18132:18;18124:26;;18160:65;18222:1;18211:9;18207:17;18198:6;18160:65;:::i;:::-;18235:66;18297:2;18286:9;18282:18;18273:6;18235:66;:::i;:::-;18000:308;;;;;:::o;18314:181::-;18454:33;18450:1;18442:6;18438:14;18431:57;18314:181;:::o;18501:366::-;18643:3;18664:67;18728:2;18723:3;18664:67;:::i;:::-;18657:74;;18740:93;18829:3;18740:93;:::i;:::-;18858:2;18853:3;18849:12;18842:19;;18501:366;;;:::o;18873:419::-;19039:4;19077:2;19066:9;19062:18;19054:26;;19126:9;19120:4;19116:20;19112:1;19101:9;19097:17;19090:47;19154:131;19280:4;19154:131;:::i;:::-;19146:139;;18873:419;;;:::o;19298:182::-;19438:34;19434:1;19426:6;19422:14;19415:58;19298:182;:::o;19486:366::-;19628:3;19649:67;19713:2;19708:3;19649:67;:::i;:::-;19642:74;;19725:93;19814:3;19725:93;:::i;:::-;19843:2;19838:3;19834:12;19827:19;;19486:366;;;:::o;19858:419::-;20024:4;20062:2;20051:9;20047:18;20039:26;;20111:9;20105:4;20101:20;20097:1;20086:9;20082:17;20075:47;20139:131;20265:4;20139:131;:::i;:::-;20131:139;;19858:419;;;:::o;20283:228::-;20423:34;20419:1;20411:6;20407:14;20400:58;20492:11;20487:2;20479:6;20475:15;20468:36;20283:228;:::o;20517:366::-;20659:3;20680:67;20744:2;20739:3;20680:67;:::i;:::-;20673:74;;20756:93;20845:3;20756:93;:::i;:::-;20874:2;20869:3;20865:12;20858:19;;20517:366;;;:::o;20889:419::-;21055:4;21093:2;21082:9;21078:18;21070:26;;21142:9;21136:4;21132:20;21128:1;21117:9;21113:17;21106:47;21170:131;21296:4;21170:131;:::i;:::-;21162:139;;20889:419;;;:::o;21314:170::-;21454:22;21450:1;21442:6;21438:14;21431:46;21314:170;:::o;21490:366::-;21632:3;21653:67;21717:2;21712:3;21653:67;:::i;:::-;21646:74;;21729:93;21818:3;21729:93;:::i;:::-;21847:2;21842:3;21838:12;21831:19;;21490:366;;;:::o;21862:419::-;22028:4;22066:2;22055:9;22051:18;22043:26;;22115:9;22109:4;22105:20;22101:1;22090:9;22086:17;22079:47;22143:131;22269:4;22143:131;:::i;:::-;22135:139;;21862:419;;;:::o;22287:175::-;22427:27;22423:1;22415:6;22411:14;22404:51;22287:175;:::o;22468:366::-;22610:3;22631:67;22695:2;22690:3;22631:67;:::i;:::-;22624:74;;22707:93;22796:3;22707:93;:::i;:::-;22825:2;22820:3;22816:12;22809:19;;22468:366;;;:::o;22840:419::-;23006:4;23044:2;23033:9;23029:18;23021:26;;23093:9;23087:4;23083:20;23079:1;23068:9;23064:17;23057:47;23121:131;23247:4;23121:131;:::i;:::-;23113:139;;22840:419;;;:::o;23265:191::-;23305:3;23324:20;23342:1;23324:20;:::i;:::-;23319:25;;23358:20;23376:1;23358:20;:::i;:::-;23353:25;;23401:1;23398;23394:9;23387:16;;23422:3;23419:1;23416:10;23413:36;;;23429:18;;:::i;:::-;23413:36;23265:191;;;;:::o;23462:176::-;23602:28;23598:1;23590:6;23586:14;23579:52;23462:176;:::o;23644:366::-;23786:3;23807:67;23871:2;23866:3;23807:67;:::i;:::-;23800:74;;23883:93;23972:3;23883:93;:::i;:::-;24001:2;23996:3;23992:12;23985:19;;23644:366;;;:::o;24016:419::-;24182:4;24220:2;24209:9;24205:18;24197:26;;24269:9;24263:4;24259:20;24255:1;24244:9;24240:17;24233:47;24297:131;24423:4;24297:131;:::i;:::-;24289:139;;24016:419;;;:::o;24441:233::-;24480:3;24503:24;24521:5;24503:24;:::i;:::-;24494:33;;24549:66;24542:5;24539:77;24536:103;;24619:18;;:::i;:::-;24536:103;24666:1;24659:5;24655:13;24648:20;;24441:233;;;:::o;24680:194::-;24720:4;24740:20;24758:1;24740:20;:::i;:::-;24735:25;;24774:20;24792:1;24774:20;:::i;:::-;24769:25;;24818:1;24815;24811:9;24803:17;;24842:1;24836:4;24833:11;24830:37;;;24847:18;;:::i;:::-;24830:37;24680:194;;;;:::o;24880:180::-;24928:77;24925:1;24918:88;25025:4;25022:1;25015:15;25049:4;25046:1;25039:15;25066:185;25106:1;25123:20;25141:1;25123:20;:::i;:::-;25118:25;;25157:20;25175:1;25157:20;:::i;:::-;25152:25;;25196:1;25186:35;;25201:18;;:::i;:::-;25186:35;25243:1;25240;25236:9;25231:14;;25066:185;;;;:::o;25257:220::-;25397:34;25393:1;25385:6;25381:14;25374:58;25466:3;25461:2;25453:6;25449:15;25442:28;25257:220;:::o;25483:366::-;25625:3;25646:67;25710:2;25705:3;25646:67;:::i;:::-;25639:74;;25722:93;25811:3;25722:93;:::i;:::-;25840:2;25835:3;25831:12;25824:19;;25483:366;;;:::o;25855:419::-;26021:4;26059:2;26048:9;26044:18;26036:26;;26108:9;26102:4;26098:20;26094:1;26083:9;26079:17;26072:47;26136:131;26262:4;26136:131;:::i;:::-;26128:139;;25855:419;;;:::o;26280:180::-;26328:77;26325:1;26318:88;26425:4;26422:1;26415:15;26449:4;26446:1;26439:15;26466:180;26514:77;26511:1;26504:88;26611:4;26608:1;26601:15;26635:4;26632:1;26625:15;26652:114;26719:6;26753:5;26747:12;26737:22;;26652:114;;;:::o;26772:184::-;26871:11;26905:6;26900:3;26893:19;26945:4;26940:3;26936:14;26921:29;;26772:184;;;;:::o;26962:132::-;27029:4;27052:3;27044:11;;27082:4;27077:3;27073:14;27065:22;;26962:132;;;:::o;27100:108::-;27177:24;27195:5;27177:24;:::i;:::-;27172:3;27165:37;27100:108;;:::o;27214:179::-;27283:10;27304:46;27346:3;27338:6;27304:46;:::i;:::-;27382:4;27377:3;27373:14;27359:28;;27214:179;;;;:::o;27399:113::-;27469:4;27501;27496:3;27492:14;27484:22;;27399:113;;;:::o;27548:732::-;27667:3;27696:54;27744:5;27696:54;:::i;:::-;27766:86;27845:6;27840:3;27766:86;:::i;:::-;27759:93;;27876:56;27926:5;27876:56;:::i;:::-;27955:7;27986:1;27971:284;27996:6;27993:1;27990:13;27971:284;;;28072:6;28066:13;28099:63;28158:3;28143:13;28099:63;:::i;:::-;28092:70;;28185:60;28238:6;28185:60;:::i;:::-;28175:70;;28031:224;28018:1;28015;28011:9;28006:14;;27971:284;;;27975:14;28271:3;28264:10;;27672:608;;;27548:732;;;;:::o;28286:831::-;28549:4;28587:3;28576:9;28572:19;28564:27;;28601:71;28669:1;28658:9;28654:17;28645:6;28601:71;:::i;:::-;28682:80;28758:2;28747:9;28743:18;28734:6;28682:80;:::i;:::-;28809:9;28803:4;28799:20;28794:2;28783:9;28779:18;28772:48;28837:108;28940:4;28931:6;28837:108;:::i;:::-;28829:116;;28955:72;29023:2;29012:9;29008:18;28999:6;28955:72;:::i;:::-;29037:73;29105:3;29094:9;29090:19;29081:6;29037:73;:::i;:::-;28286:831;;;;;;;;:::o;29123:177::-;29263:29;29259:1;29251:6;29247:14;29240:53;29123:177;:::o;29306:366::-;29448:3;29469:67;29533:2;29528:3;29469:67;:::i;:::-;29462:74;;29545:93;29634:3;29545:93;:::i;:::-;29663:2;29658:3;29654:12;29647:19;;29306:366;;;:::o;29678:419::-;29844:4;29882:2;29871:9;29867:18;29859:26;;29931:9;29925:4;29921:20;29917:1;29906:9;29902:17;29895:47;29959:131;30085:4;29959:131;:::i;:::-;29951:139;;29678:419;;;:::o

Swarm Source

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