ETH Price: $3,361.11 (-1.67%)
Gas: 11 Gwei

Token

Boobs Just Rock (BOOBS)
 

Overview

Max Total Supply

1,000,000,000 BOOBS

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Shiba Inu: Deployer 2
Balance
2 BOOBS

Value
$0.00
0xc7d0445ac2947760b3dd388b8586adf079972bf3
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:
BOOBS

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-11
*/

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

/*

https://x.com/elonmusk/status/1756750454237659616?s=20

Telegram: https://t.me/BoobsTokenPortal

*/

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;

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

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

    string private constant _name = unicode"Boobs Just Rock";
    string private constant _symbol = unicode"BOOBS";

    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1_000_000_000 * (10 ** _decimals);

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    IUniswapV2Router02 private _uniswapV2Router;
    address private _uniswapV2Pair;

    address private _taxWallet;

    mapping(address => bool) private _isExcludedFromFee;

    uint256 private _initialBuyTax = 22;
    uint256 private _finalBuyTax = 0;
    uint256 private _reduceBuyTaxAt = 24;

    uint256 private _initialSellTax = 24;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceSellTaxAt = 26;

    uint256 private _buyCount;
    uint256 private _sellCount;
    uint256 private _lastSellBlock;
    uint256 private _preventSwapBefore = 26;
    uint256 private _maxSellsPerBlock = 3;

    uint256 private _maxTxAmount = _totalSupply.mul(2).div(100);
    uint256 private _maxWalletAmount = _totalSupply.mul(2).div(100);

    uint256 private _swapThresholdAmount = _totalSupply.div(100);
    uint256 private _maxSwapAmount = _totalSupply.div(100);

    bool private _inSwap;
    bool private _swapEnabled;
    bool private _tradingEnabled;

    bool private _limitsEnabled = true;
    uint256 private _launchBlock;
    uint256 private _disableLimitsAfterBlock = 10;

    modifier onlyTaxWallet() {
        require(_msgSender() == _taxWallet, "Caller not authorized");
        _;
    }

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

    constructor() payable {
        require(msg.value > 0, "Not enough ETH to launch");

        _taxWallet = _msgSender();
        address devWallet = 0x5C1AB69Bd46A5548BF2512Ffa1c02A7Bc347dA2C;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[devWallet] = true;

        uint256 taxWalletAmount = _totalSupply.mul(2).div(100);
        uint256 devWalletAmount = _totalSupply.mul(2).div(100);
        uint256 liquidityAmount = _totalSupply.sub(taxWalletAmount.add(devWalletAmount));

        _balances[_taxWallet] = taxWalletAmount;
        _balances[devWallet] = devWalletAmount;
        _balances[address(this)] = liquidityAmount;

        emit Transfer(address(0), _taxWallet, taxWalletAmount);
        emit Transfer(address(0), devWallet, devWalletAmount);
        emit Transfer(address(0), address(this), liquidityAmount);
    }

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

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

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

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

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

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

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

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

        uint256 taxAmount = 0;

        if (_tradingEnabled && _limitsEnabled && block.number > _launchBlock.add(_disableLimitsAfterBlock)) {
            _disableLimits();
        }

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);

            if (from == _uniswapV2Pair && to != address(_uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the max TX amount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds the max wallet amount");

                _buyCount++;
            }

            if (to != _uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds the max wallet amount");
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));

            if (
                !_inSwap && 
                to == _uniswapV2Pair && 
                _swapEnabled && 
                _buyCount > _preventSwapBefore && 
                contractTokenBalance > _swapThresholdAmount
            ) {
                if (block.number > _lastSellBlock) {
                    _sellCount = 0;
                }

                require(_sellCount < _maxSellsPerBlock, "Max sells per block exceeded");

                _sellCount++;
                _lastSellBlock = block.number;

                _swapTokensForEth(_min(amount, _min(contractTokenBalance, _maxSwapAmount)));

                _sendETHToFee();
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);

            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));

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

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

    function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), tokenAmount);

        try _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {}
    }

    function _sendETHToFee() private {
        uint256 contractETHBalance = address(this).balance;

        if (contractETHBalance == 0) {
            return;
        }

        bool success;
        (success,) = address(_taxWallet).call{value: contractETHBalance}("");
    }

    function _disableLimits() private {
        _maxTxAmount = totalSupply();
        _maxWalletAmount = totalSupply();

        _limitsEnabled = false;
    }

    function disableLimits() external onlyTaxWallet {
        _disableLimits();
    }

    function reduceTaxes(uint256 buyTax_, uint256 sellTax_) external onlyTaxWallet {
        require(buyTax_ <= _finalBuyTax, "New buy tax cannot exceed current buy tax");
        require(sellTax_ <= _finalSellTax, "New sell tax cannot exceed current sell tax");

        _finalBuyTax = buyTax_;
        _finalSellTax = sellTax_;
    }

    function manualSwap() external onlyTaxWallet {
        uint256 contractTokenBalance = balanceOf(address(this));

        if (contractTokenBalance > 0) {
            _swapTokensForEth(contractTokenBalance);

            _sendETHToFee();
        }
    }

    function manualSendETH() external onlyTaxWallet {
        _sendETHToFee();
    }

    function manualSendTokens(uint256 tokenAmount) external onlyTaxWallet {
        require(tokenAmount <= balanceOf(address(this)), "Transfer amount exceeds balance");

        IERC20(address(this)).transfer(_msgSender(), tokenAmount);
    }

    function openTrading() external onlyOwner {
        require(!_tradingEnabled, "Trading already open");

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(_uniswapV2Router), totalSupply());

        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

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

        IERC20(_uniswapV2Pair).approve(address(_uniswapV2Router), type(uint256).max);

        _swapEnabled = true;
        _tradingEnabled = true;
        _launchBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSendETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax_","type":"uint256"},{"internalType":"uint256","name":"sellTax_","type":"uint256"}],"name":"reduceTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260166007555f60085560186009556018600a555f600b55601a600c55601a60105560036011556200007560646200006660026009600a62000046919062000b75565b633b9aca0062000057919062000bc5565b6200076460201b90919060201c565b620007e460201b90919060201c565b601255620000c36064620000b460026009600a62000094919062000b75565b633b9aca00620000a5919062000bc5565b6200076460201b90919060201c565b620007e460201b90919060201c565b601355620000fc60646009600a620000dc919062000b75565b633b9aca00620000ed919062000bc5565b620007e460201b90919060201c565b6014556200013560646009600a62000115919062000b75565b633b9aca0062000126919062000bc5565b620007e460201b90919060201c565b6015556001601660036101000a81548160ff021916908315150217905550600a6018555f620001696200083560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f34116200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002419062000c6d565b60405180910390fd5b6200025a6200083560201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f735c1ab69bd46a5548bf2512ffa1c02a7bc347da2c9050600160065f620002c66200083c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f6200048160646200047260026009600a62000452919062000b75565b633b9aca0062000463919062000bc5565b6200076460201b90919060201c565b620007e460201b90919060201c565b90505f620004cf6064620004c060026009600a620004a0919062000b75565b633b9aca00620004b1919062000bc5565b6200076460201b90919060201c565b620007e460201b90919060201c565b90505f6200051b620004eb83856200086360201b90919060201c565b6009600a620004fb919062000b75565b633b9aca006200050c919062000bc5565b620008c560201b90919060201c565b90508260015f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405162000684919062000c9e565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620006eb919062000c9e565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000752919062000c9e565b60405180910390a35050505062000f39565b5f80830362000776575f9050620007de565b5f828462000785919062000bc5565b905082848262000796919062000ce6565b14620007d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d09062000d91565b60405180910390fd5b809150505b92915050565b5f6200082d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200091660201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000873919062000db1565b905083811015620008bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b29062000e39565b60405180910390fd5b8091505092915050565b5f6200090e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200097c60201b60201c565b905092915050565b5f80831182906200095f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000956919062000edd565b60405180910390fd5b505f83856200096f919062000ce6565b9050809150509392505050565b5f838311158290620009c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009bd919062000edd565b60405180910390fd5b505f8385620009d6919062000eff565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a6d5780860481111562000a455762000a44620009e3565b5b600185161562000a555780820291505b808102905062000a658562000a10565b945062000a25565b94509492505050565b5f8262000a87576001905062000b59565b8162000a96575f905062000b59565b816001811462000aaf576002811462000aba5762000af0565b600191505062000b59565b60ff84111562000acf5762000ace620009e3565b5b8360020a91508482111562000ae95762000ae8620009e3565b5b5062000b59565b5060208310610133831016604e8410600b841016171562000b2a5782820a90508381111562000b245762000b23620009e3565b5b62000b59565b62000b39848484600162000a1c565b9250905081840481111562000b535762000b52620009e3565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000b818262000b60565b915062000b8e8362000b69565b925062000bbd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a76565b905092915050565b5f62000bd18262000b60565b915062000bde8362000b60565b925082820262000bee8162000b60565b9150828204841483151762000c085762000c07620009e3565b5b5092915050565b5f82825260208201905092915050565b7f4e6f7420656e6f7567682045544820746f206c61756e636800000000000000005f82015250565b5f62000c5560188362000c0f565b915062000c628262000c1f565b602082019050919050565b5f6020820190508181035f83015262000c868162000c47565b9050919050565b62000c988162000b60565b82525050565b5f60208201905062000cb35f83018462000c8d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000cf28262000b60565b915062000cff8362000b60565b92508262000d125762000d1162000cb9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000d7960218362000c0f565b915062000d868262000d1d565b604082019050919050565b5f6020820190508181035f83015262000daa8162000d6b565b9050919050565b5f62000dbd8262000b60565b915062000dca8362000b60565b925082820190508082111562000de55762000de4620009e3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000e21601b8362000c0f565b915062000e2e8262000deb565b602082019050919050565b5f6020820190508181035f83015262000e528162000e13565b9050919050565b5f81519050919050565b5f5b8381101562000e8257808201518184015260208101905062000e65565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000ea98262000e59565b62000eb5818562000c0f565b935062000ec781856020860162000e63565b62000ed28162000e8d565b840191505092915050565b5f6020820190508181035f83015262000ef7818462000e9d565b905092915050565b5f62000f0b8262000b60565b915062000f188362000b60565b925082820390508181111562000f335762000f32620009e3565b5b92915050565b61343d8062000f475f395ff3fe608060405260043610610101575f3560e01c806370a082311161009457806395d89b411161006357806395d89b41146102fa578063a9059cbb14610324578063c9567bf914610360578063dd62ed3e14610376578063f928364c146103b257610108565b806370a0823114610256578063715018a614610292578063876193d4146102a85780638da5cb5b146102d057610108565b80632c09e444116100d05780632c09e444146101d85780632ff5fe1e146101ee578063313ce5671461021657806351bc3c851461024057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b506101206103c8565b60405161012d91906122e5565b60405180910390f35b348015610141575f80fd5b5061015c60048036038101906101579190612396565b610405565b60405161016991906123ee565b60405180910390f35b34801561017d575f80fd5b50610186610422565b6040516101939190612416565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd919061242f565b610445565b6040516101cf91906123ee565b60405180910390f35b3480156101e3575f80fd5b506101ec610519565b005b3480156101f9575f80fd5b50610214600480360381019061020f919061247f565b6105b9565b005b348015610221575f80fd5b5061022a6106eb565b60405161023791906124d8565b60405180910390f35b34801561024b575f80fd5b506102546106f3565b005b348015610261575f80fd5b5061027c600480360381019061027791906124f1565b6107b2565b6040516102899190612416565b60405180910390f35b34801561029d575f80fd5b506102a66107f8565b005b3480156102b3575f80fd5b506102ce60048036038101906102c9919061251c565b610946565b005b3480156102db575f80fd5b506102e4610aad565b6040516102f19190612556565b60405180910390f35b348015610305575f80fd5b5061030e610ad4565b60405161031b91906122e5565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190612396565b610b11565b60405161035791906123ee565b60405180910390f35b34801561036b575f80fd5b50610374610b2e565b005b348015610381575f80fd5b5061039c6004803603810190610397919061256f565b611042565b6040516103a99190612416565b60405180910390f35b3480156103bd575f80fd5b506103c66110c4565b005b60606040518060400160405280600f81526020017f426f6f6273204a75737420526f636b0000000000000000000000000000000000815250905090565b5f610418610411611164565b848461116b565b6001905092915050565b5f6009600a6104319190612709565b633b9aca006104409190612753565b905090565b5f61045184848461132e565b61050e8461045d611164565b610509856040518060600160405280602881526020016133e06028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104c0611164565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cdc9092919063ffffffff16565b61116b565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610559611164565b73ffffffffffffffffffffffffffffffffffffffff16146105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a6906127de565b60405180910390fd5b6105b7611d3e565b565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f9611164565b73ffffffffffffffffffffffffffffffffffffffff161461064f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610646906127de565b60405180910390fd5b600854821115610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068b9061286c565b60405180910390fd5b600b548111156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d0906128fa565b60405180910390fd5b8160088190555080600b819055505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610733611164565b73ffffffffffffffffffffffffffffffffffffffff1614610789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610780906127de565b60405180910390fd5b5f610793306107b2565b90505f8111156107af576107a681611ddf565b6107ae611d3e565b5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610800611164565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088390612962565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610986611164565b73ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d3906127de565b60405180910390fd5b6109e5306107b2565b811115610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e906129ca565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610a4b611164565b836040518363ffffffff1660e01b8152600401610a699291906129e8565b6020604051808303815f875af1158015610a85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa99190612a39565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f424f4f4253000000000000000000000000000000000000000000000000000000815250905090565b5f610b24610b1d611164565b848461132e565b6001905092915050565b610b36611164565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612962565b60405180910390fd5b601660029054906101000a900460ff1615610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612aae565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c993060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c94610422565b61116b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d279190612ae0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd19190612ae0565b6040518363ffffffff1660e01b8152600401610dee929190612b0b565b6020604051808303815f875af1158015610e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612ae0565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eb5306107b2565b5f80610ebf610aad565b426040518863ffffffff1660e01b8152600401610ee196959493929190612b74565b60606040518083038185885af1158015610efd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f229190612be7565b50505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fc29291906129e8565b6020604051808303815f875af1158015610fde573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110029190612a39565b506001601660016101000a81548160ff0219169083151502179055506001601660026101000a81548160ff02191690831515021790555043601781905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611104611164565b73ffffffffffffffffffffffffffffffffffffffff161461115a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611151906127de565b60405180910390fd5b611162612044565b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090612ca7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123e90612d35565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113219190612416565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390612dc3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140190612e51565b60405180910390fd5b5f811161144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390612edf565b60405180910390fd5b5f601660029054906101000a900460ff1680156114755750601660039054906101000a900460ff165b8015611496575061149360185460175461207c90919063ffffffff16565b43115b156114a4576114a3612044565b5b6114ac610aad565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561151a57506114ea610aad565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a2c5761155b606461154d600954600d541161153a5760075461153e565b6008545b856120d990919063ffffffff16565b61215090919063ffffffff16565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611606575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611659575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611713576012548211156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90612f47565b60405180910390fd5b601354826116b0856107b2565b6116ba9190612f65565b11156116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290612fe2565b60405180910390fd5b600d5f81548092919061170d90613000565b91905055505b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b7575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561181557601354826117c9856107b2565b6117d39190612f65565b1115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90612fe2565b60405180910390fd5b5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561189d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118e1576118de60646118d0600c54600d54116118bd57600a546118c1565b600b545b856120d990919063ffffffff16565b61215090919063ffffffff16565b90505b5f6118eb306107b2565b905060165f9054906101000a900460ff16158015611955575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561196d5750601660019054906101000a900460ff165b801561197c5750601054600d54115b8015611989575060145481115b15611a2a57600f544311156119a0575f600e819055505b601154600e54106119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613091565b60405180910390fd5b600e5f8154809291906119f890613000565b919050555043600f81905550611a21611a1c84611a1784601554612199565b612199565b611ddf565b611a29611d3e565b5b505b5f811115611b2b57611a848160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207c90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b229190612416565b60405180910390a35b611b7b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c1e611bd282846121b190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207c90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cc184866121b190919063ffffffff16565b604051611cce9190612416565b60405180910390a350505050565b5f838311158290611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a91906122e5565b60405180910390fd5b505f8385611d3191906130af565b9050809150509392505050565b5f4790505f8103611d4f5750611ddd565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611d959061310f565b5f6040518083038185875af1925050503d805f8114611dcf576040519150601f19603f3d011682016040523d82523d5f602084013e611dd4565b606091505b50508091505050505b565b600160165f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e1557611e14613123565b5b604051908082528060200260200182016040528015611e435781602001602082028036833780820191505090505b50905030815f81518110611e5a57611e59613150565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611efe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f229190612ae0565b81600181518110611f3657611f35613150565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f9c3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461116b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ffe959493929190613234565b5f604051808303815f87803b158015612015575f80fd5b505af1925050508015612026575060015b50505f60165f6101000a81548160ff02191690831515021790555050565b61204c610422565b60128190555061205a610422565b6013819055505f601660036101000a81548160ff021916908315150217905550565b5f80828461208a9190612f65565b9050838110156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c6906132d6565b60405180910390fd5b8091505092915050565b5f8083036120e9575f905061214a565b5f82846120f69190612753565b90508284826121059190613321565b14612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c906133c1565b60405180910390fd5b809150505b92915050565b5f61219183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121fa565b905092915050565b5f8183116121a757826121a9565b815b905092915050565b5f6121f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cdc565b905092915050565b5f8083118290612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223791906122e5565b60405180910390fd5b505f838561224e9190613321565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612292578082015181840152602081019050612277565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122b78261225b565b6122c18185612265565b93506122d1818560208601612275565b6122da8161229d565b840191505092915050565b5f6020820190508181035f8301526122fd81846122ad565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61233282612309565b9050919050565b61234281612328565b811461234c575f80fd5b50565b5f8135905061235d81612339565b92915050565b5f819050919050565b61237581612363565b811461237f575f80fd5b50565b5f813590506123908161236c565b92915050565b5f80604083850312156123ac576123ab612305565b5b5f6123b98582860161234f565b92505060206123ca85828601612382565b9150509250929050565b5f8115159050919050565b6123e8816123d4565b82525050565b5f6020820190506124015f8301846123df565b92915050565b61241081612363565b82525050565b5f6020820190506124295f830184612407565b92915050565b5f805f6060848603121561244657612445612305565b5b5f6124538682870161234f565b93505060206124648682870161234f565b925050604061247586828701612382565b9150509250925092565b5f806040838503121561249557612494612305565b5b5f6124a285828601612382565b92505060206124b385828601612382565b9150509250929050565b5f60ff82169050919050565b6124d2816124bd565b82525050565b5f6020820190506124eb5f8301846124c9565b92915050565b5f6020828403121561250657612505612305565b5b5f6125138482850161234f565b91505092915050565b5f6020828403121561253157612530612305565b5b5f61253e84828501612382565b91505092915050565b61255081612328565b82525050565b5f6020820190506125695f830184612547565b92915050565b5f806040838503121561258557612584612305565b5b5f6125928582860161234f565b92505060206125a38582860161234f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561262f5780860481111561260b5761260a6125ad565b5b600185161561261a5780820291505b8081029050612628856125da565b94506125ef565b94509492505050565b5f826126475760019050612702565b81612654575f9050612702565b816001811461266a5760028114612674576126a3565b6001915050612702565b60ff841115612686576126856125ad565b5b8360020a91508482111561269d5761269c6125ad565b5b50612702565b5060208310610133831016604e8410600b84101617156126d85782820a9050838111156126d3576126d26125ad565b5b612702565b6126e584848460016125e6565b925090508184048111156126fc576126fb6125ad565b5b81810290505b9392505050565b5f61271382612363565b915061271e836124bd565b925061274b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612638565b905092915050565b5f61275d82612363565b915061276883612363565b925082820261277681612363565b9150828204841483151761278d5761278c6125ad565b5b5092915050565b7f43616c6c6572206e6f7420617574686f72697a656400000000000000000000005f82015250565b5f6127c8601583612265565b91506127d382612794565b602082019050919050565b5f6020820190508181035f8301526127f5816127bc565b9050919050565b7f4e657720627579207461782063616e6e6f74206578636565642063757272656e5f8201527f7420627579207461780000000000000000000000000000000000000000000000602082015250565b5f612856602983612265565b9150612861826127fc565b604082019050919050565b5f6020820190508181035f8301526128838161284a565b9050919050565b7f4e65772073656c6c207461782063616e6e6f74206578636565642063757272655f8201527f6e742073656c6c20746178000000000000000000000000000000000000000000602082015250565b5f6128e4602b83612265565b91506128ef8261288a565b604082019050919050565b5f6020820190508181035f830152612911816128d8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61294c602083612265565b915061295782612918565b602082019050919050565b5f6020820190508181035f83015261297981612940565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f6129b4601f83612265565b91506129bf82612980565b602082019050919050565b5f6020820190508181035f8301526129e1816129a8565b9050919050565b5f6040820190506129fb5f830185612547565b612a086020830184612407565b9392505050565b612a18816123d4565b8114612a22575f80fd5b50565b5f81519050612a3381612a0f565b92915050565b5f60208284031215612a4e57612a4d612305565b5b5f612a5b84828501612a25565b91505092915050565b7f54726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612a98601483612265565b9150612aa382612a64565b602082019050919050565b5f6020820190508181035f830152612ac581612a8c565b9050919050565b5f81519050612ada81612339565b92915050565b5f60208284031215612af557612af4612305565b5b5f612b0284828501612acc565b91505092915050565b5f604082019050612b1e5f830185612547565b612b2b6020830184612547565b9392505050565b5f819050919050565b5f819050919050565b5f612b5e612b59612b5484612b32565b612b3b565b612363565b9050919050565b612b6e81612b44565b82525050565b5f60c082019050612b875f830189612547565b612b946020830188612407565b612ba16040830187612b65565b612bae6060830186612b65565b612bbb6080830185612547565b612bc860a0830184612407565b979650505050505050565b5f81519050612be18161236c565b92915050565b5f805f60608486031215612bfe57612bfd612305565b5b5f612c0b86828701612bd3565b9350506020612c1c86828701612bd3565b9250506040612c2d86828701612bd3565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c91602483612265565b9150612c9c82612c37565b604082019050919050565b5f6020820190508181035f830152612cbe81612c85565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1f602283612265565b9150612d2a82612cc5565b604082019050919050565b5f6020820190508181035f830152612d4c81612d13565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dad602583612265565b9150612db882612d53565b604082019050919050565b5f6020820190508181035f830152612dda81612da1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e3b602383612265565b9150612e4682612de1565b604082019050919050565b5f6020820190508181035f830152612e6881612e2f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ec9602983612265565b9150612ed482612e6f565b604082019050919050565b5f6020820190508181035f830152612ef681612ebd565b9050919050565b7f4578636565647320746865206d617820545820616d6f756e74000000000000005f82015250565b5f612f31601983612265565b9150612f3c82612efd565b602082019050919050565b5f6020820190508181035f830152612f5e81612f25565b9050919050565b5f612f6f82612363565b9150612f7a83612363565b9250828201905080821115612f9257612f916125ad565b5b92915050565b7f4578636565647320746865206d61782077616c6c657420616d6f756e740000005f82015250565b5f612fcc601d83612265565b9150612fd782612f98565b602082019050919050565b5f6020820190508181035f830152612ff981612fc0565b9050919050565b5f61300a82612363565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361303c5761303b6125ad565b5b600182019050919050565b7f4d61782073656c6c732070657220626c6f636b206578636565646564000000005f82015250565b5f61307b601c83612265565b915061308682613047565b602082019050919050565b5f6020820190508181035f8301526130a88161306f565b9050919050565b5f6130b982612363565b91506130c483612363565b92508282039050818111156130dc576130db6125ad565b5b92915050565b5f81905092915050565b50565b5f6130fa5f836130e2565b9150613105826130ec565b5f82019050919050565b5f613119826130ef565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131af81612328565b82525050565b5f6131c083836131a6565b60208301905092915050565b5f602082019050919050565b5f6131e28261317d565b6131ec8185613187565b93506131f783613197565b805f5b8381101561322757815161320e88826131b5565b9750613219836131cc565b9250506001810190506131fa565b5085935050505092915050565b5f60a0820190506132475f830188612407565b6132546020830187612b65565b818103604083015261326681866131d8565b90506132756060830185612547565b6132826080830184612407565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132c0601b83612265565b91506132cb8261328c565b602082019050919050565b5f6020820190508181035f8301526132ed816132b4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61332b82612363565b915061333683612363565b925082613346576133456132f4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133ab602183612265565b91506133b682613351565b604082019050919050565b5f6020820190508181035f8301526133d88161339f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bbd0b0ddeab0191399f78125efeddc8c407e7e83fc90caf82090209368fb157264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610101575f3560e01c806370a082311161009457806395d89b411161006357806395d89b41146102fa578063a9059cbb14610324578063c9567bf914610360578063dd62ed3e14610376578063f928364c146103b257610108565b806370a0823114610256578063715018a614610292578063876193d4146102a85780638da5cb5b146102d057610108565b80632c09e444116100d05780632c09e444146101d85780632ff5fe1e146101ee578063313ce5671461021657806351bc3c851461024057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b506101206103c8565b60405161012d91906122e5565b60405180910390f35b348015610141575f80fd5b5061015c60048036038101906101579190612396565b610405565b60405161016991906123ee565b60405180910390f35b34801561017d575f80fd5b50610186610422565b6040516101939190612416565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd919061242f565b610445565b6040516101cf91906123ee565b60405180910390f35b3480156101e3575f80fd5b506101ec610519565b005b3480156101f9575f80fd5b50610214600480360381019061020f919061247f565b6105b9565b005b348015610221575f80fd5b5061022a6106eb565b60405161023791906124d8565b60405180910390f35b34801561024b575f80fd5b506102546106f3565b005b348015610261575f80fd5b5061027c600480360381019061027791906124f1565b6107b2565b6040516102899190612416565b60405180910390f35b34801561029d575f80fd5b506102a66107f8565b005b3480156102b3575f80fd5b506102ce60048036038101906102c9919061251c565b610946565b005b3480156102db575f80fd5b506102e4610aad565b6040516102f19190612556565b60405180910390f35b348015610305575f80fd5b5061030e610ad4565b60405161031b91906122e5565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190612396565b610b11565b60405161035791906123ee565b60405180910390f35b34801561036b575f80fd5b50610374610b2e565b005b348015610381575f80fd5b5061039c6004803603810190610397919061256f565b611042565b6040516103a99190612416565b60405180910390f35b3480156103bd575f80fd5b506103c66110c4565b005b60606040518060400160405280600f81526020017f426f6f6273204a75737420526f636b0000000000000000000000000000000000815250905090565b5f610418610411611164565b848461116b565b6001905092915050565b5f6009600a6104319190612709565b633b9aca006104409190612753565b905090565b5f61045184848461132e565b61050e8461045d611164565b610509856040518060600160405280602881526020016133e06028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104c0611164565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cdc9092919063ffffffff16565b61116b565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610559611164565b73ffffffffffffffffffffffffffffffffffffffff16146105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a6906127de565b60405180910390fd5b6105b7611d3e565b565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f9611164565b73ffffffffffffffffffffffffffffffffffffffff161461064f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610646906127de565b60405180910390fd5b600854821115610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068b9061286c565b60405180910390fd5b600b548111156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d0906128fa565b60405180910390fd5b8160088190555080600b819055505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610733611164565b73ffffffffffffffffffffffffffffffffffffffff1614610789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610780906127de565b60405180910390fd5b5f610793306107b2565b90505f8111156107af576107a681611ddf565b6107ae611d3e565b5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610800611164565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088390612962565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610986611164565b73ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d3906127de565b60405180910390fd5b6109e5306107b2565b811115610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e906129ca565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610a4b611164565b836040518363ffffffff1660e01b8152600401610a699291906129e8565b6020604051808303815f875af1158015610a85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa99190612a39565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f424f4f4253000000000000000000000000000000000000000000000000000000815250905090565b5f610b24610b1d611164565b848461132e565b6001905092915050565b610b36611164565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612962565b60405180910390fd5b601660029054906101000a900460ff1615610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612aae565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c993060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c94610422565b61116b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d279190612ae0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd19190612ae0565b6040518363ffffffff1660e01b8152600401610dee929190612b0b565b6020604051808303815f875af1158015610e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612ae0565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eb5306107b2565b5f80610ebf610aad565b426040518863ffffffff1660e01b8152600401610ee196959493929190612b74565b60606040518083038185885af1158015610efd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f229190612be7565b50505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fc29291906129e8565b6020604051808303815f875af1158015610fde573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110029190612a39565b506001601660016101000a81548160ff0219169083151502179055506001601660026101000a81548160ff02191690831515021790555043601781905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611104611164565b73ffffffffffffffffffffffffffffffffffffffff161461115a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611151906127de565b60405180910390fd5b611162612044565b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090612ca7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123e90612d35565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113219190612416565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390612dc3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140190612e51565b60405180910390fd5b5f811161144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390612edf565b60405180910390fd5b5f601660029054906101000a900460ff1680156114755750601660039054906101000a900460ff165b8015611496575061149360185460175461207c90919063ffffffff16565b43115b156114a4576114a3612044565b5b6114ac610aad565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561151a57506114ea610aad565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a2c5761155b606461154d600954600d541161153a5760075461153e565b6008545b856120d990919063ffffffff16565b61215090919063ffffffff16565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611606575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611659575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611713576012548211156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90612f47565b60405180910390fd5b601354826116b0856107b2565b6116ba9190612f65565b11156116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290612fe2565b60405180910390fd5b600d5f81548092919061170d90613000565b91905055505b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b7575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561181557601354826117c9856107b2565b6117d39190612f65565b1115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90612fe2565b60405180910390fd5b5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561189d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118e1576118de60646118d0600c54600d54116118bd57600a546118c1565b600b545b856120d990919063ffffffff16565b61215090919063ffffffff16565b90505b5f6118eb306107b2565b905060165f9054906101000a900460ff16158015611955575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561196d5750601660019054906101000a900460ff165b801561197c5750601054600d54115b8015611989575060145481115b15611a2a57600f544311156119a0575f600e819055505b601154600e54106119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613091565b60405180910390fd5b600e5f8154809291906119f890613000565b919050555043600f81905550611a21611a1c84611a1784601554612199565b612199565b611ddf565b611a29611d3e565b5b505b5f811115611b2b57611a848160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207c90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b229190612416565b60405180910390a35b611b7b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c1e611bd282846121b190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207c90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cc184866121b190919063ffffffff16565b604051611cce9190612416565b60405180910390a350505050565b5f838311158290611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a91906122e5565b60405180910390fd5b505f8385611d3191906130af565b9050809150509392505050565b5f4790505f8103611d4f5750611ddd565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611d959061310f565b5f6040518083038185875af1925050503d805f8114611dcf576040519150601f19603f3d011682016040523d82523d5f602084013e611dd4565b606091505b50508091505050505b565b600160165f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e1557611e14613123565b5b604051908082528060200260200182016040528015611e435781602001602082028036833780820191505090505b50905030815f81518110611e5a57611e59613150565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611efe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f229190612ae0565b81600181518110611f3657611f35613150565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f9c3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461116b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ffe959493929190613234565b5f604051808303815f87803b158015612015575f80fd5b505af1925050508015612026575060015b50505f60165f6101000a81548160ff02191690831515021790555050565b61204c610422565b60128190555061205a610422565b6013819055505f601660036101000a81548160ff021916908315150217905550565b5f80828461208a9190612f65565b9050838110156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c6906132d6565b60405180910390fd5b8091505092915050565b5f8083036120e9575f905061214a565b5f82846120f69190612753565b90508284826121059190613321565b14612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c906133c1565b60405180910390fd5b809150505b92915050565b5f61219183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121fa565b905092915050565b5f8183116121a757826121a9565b815b905092915050565b5f6121f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cdc565b905092915050565b5f8083118290612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223791906122e5565b60405180910390fd5b505f838561224e9190613321565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612292578082015181840152602081019050612277565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122b78261225b565b6122c18185612265565b93506122d1818560208601612275565b6122da8161229d565b840191505092915050565b5f6020820190508181035f8301526122fd81846122ad565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61233282612309565b9050919050565b61234281612328565b811461234c575f80fd5b50565b5f8135905061235d81612339565b92915050565b5f819050919050565b61237581612363565b811461237f575f80fd5b50565b5f813590506123908161236c565b92915050565b5f80604083850312156123ac576123ab612305565b5b5f6123b98582860161234f565b92505060206123ca85828601612382565b9150509250929050565b5f8115159050919050565b6123e8816123d4565b82525050565b5f6020820190506124015f8301846123df565b92915050565b61241081612363565b82525050565b5f6020820190506124295f830184612407565b92915050565b5f805f6060848603121561244657612445612305565b5b5f6124538682870161234f565b93505060206124648682870161234f565b925050604061247586828701612382565b9150509250925092565b5f806040838503121561249557612494612305565b5b5f6124a285828601612382565b92505060206124b385828601612382565b9150509250929050565b5f60ff82169050919050565b6124d2816124bd565b82525050565b5f6020820190506124eb5f8301846124c9565b92915050565b5f6020828403121561250657612505612305565b5b5f6125138482850161234f565b91505092915050565b5f6020828403121561253157612530612305565b5b5f61253e84828501612382565b91505092915050565b61255081612328565b82525050565b5f6020820190506125695f830184612547565b92915050565b5f806040838503121561258557612584612305565b5b5f6125928582860161234f565b92505060206125a38582860161234f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561262f5780860481111561260b5761260a6125ad565b5b600185161561261a5780820291505b8081029050612628856125da565b94506125ef565b94509492505050565b5f826126475760019050612702565b81612654575f9050612702565b816001811461266a5760028114612674576126a3565b6001915050612702565b60ff841115612686576126856125ad565b5b8360020a91508482111561269d5761269c6125ad565b5b50612702565b5060208310610133831016604e8410600b84101617156126d85782820a9050838111156126d3576126d26125ad565b5b612702565b6126e584848460016125e6565b925090508184048111156126fc576126fb6125ad565b5b81810290505b9392505050565b5f61271382612363565b915061271e836124bd565b925061274b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612638565b905092915050565b5f61275d82612363565b915061276883612363565b925082820261277681612363565b9150828204841483151761278d5761278c6125ad565b5b5092915050565b7f43616c6c6572206e6f7420617574686f72697a656400000000000000000000005f82015250565b5f6127c8601583612265565b91506127d382612794565b602082019050919050565b5f6020820190508181035f8301526127f5816127bc565b9050919050565b7f4e657720627579207461782063616e6e6f74206578636565642063757272656e5f8201527f7420627579207461780000000000000000000000000000000000000000000000602082015250565b5f612856602983612265565b9150612861826127fc565b604082019050919050565b5f6020820190508181035f8301526128838161284a565b9050919050565b7f4e65772073656c6c207461782063616e6e6f74206578636565642063757272655f8201527f6e742073656c6c20746178000000000000000000000000000000000000000000602082015250565b5f6128e4602b83612265565b91506128ef8261288a565b604082019050919050565b5f6020820190508181035f830152612911816128d8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61294c602083612265565b915061295782612918565b602082019050919050565b5f6020820190508181035f83015261297981612940565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f6129b4601f83612265565b91506129bf82612980565b602082019050919050565b5f6020820190508181035f8301526129e1816129a8565b9050919050565b5f6040820190506129fb5f830185612547565b612a086020830184612407565b9392505050565b612a18816123d4565b8114612a22575f80fd5b50565b5f81519050612a3381612a0f565b92915050565b5f60208284031215612a4e57612a4d612305565b5b5f612a5b84828501612a25565b91505092915050565b7f54726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612a98601483612265565b9150612aa382612a64565b602082019050919050565b5f6020820190508181035f830152612ac581612a8c565b9050919050565b5f81519050612ada81612339565b92915050565b5f60208284031215612af557612af4612305565b5b5f612b0284828501612acc565b91505092915050565b5f604082019050612b1e5f830185612547565b612b2b6020830184612547565b9392505050565b5f819050919050565b5f819050919050565b5f612b5e612b59612b5484612b32565b612b3b565b612363565b9050919050565b612b6e81612b44565b82525050565b5f60c082019050612b875f830189612547565b612b946020830188612407565b612ba16040830187612b65565b612bae6060830186612b65565b612bbb6080830185612547565b612bc860a0830184612407565b979650505050505050565b5f81519050612be18161236c565b92915050565b5f805f60608486031215612bfe57612bfd612305565b5b5f612c0b86828701612bd3565b9350506020612c1c86828701612bd3565b9250506040612c2d86828701612bd3565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c91602483612265565b9150612c9c82612c37565b604082019050919050565b5f6020820190508181035f830152612cbe81612c85565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1f602283612265565b9150612d2a82612cc5565b604082019050919050565b5f6020820190508181035f830152612d4c81612d13565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dad602583612265565b9150612db882612d53565b604082019050919050565b5f6020820190508181035f830152612dda81612da1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e3b602383612265565b9150612e4682612de1565b604082019050919050565b5f6020820190508181035f830152612e6881612e2f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ec9602983612265565b9150612ed482612e6f565b604082019050919050565b5f6020820190508181035f830152612ef681612ebd565b9050919050565b7f4578636565647320746865206d617820545820616d6f756e74000000000000005f82015250565b5f612f31601983612265565b9150612f3c82612efd565b602082019050919050565b5f6020820190508181035f830152612f5e81612f25565b9050919050565b5f612f6f82612363565b9150612f7a83612363565b9250828201905080821115612f9257612f916125ad565b5b92915050565b7f4578636565647320746865206d61782077616c6c657420616d6f756e740000005f82015250565b5f612fcc601d83612265565b9150612fd782612f98565b602082019050919050565b5f6020820190508181035f830152612ff981612fc0565b9050919050565b5f61300a82612363565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361303c5761303b6125ad565b5b600182019050919050565b7f4d61782073656c6c732070657220626c6f636b206578636565646564000000005f82015250565b5f61307b601c83612265565b915061308682613047565b602082019050919050565b5f6020820190508181035f8301526130a88161306f565b9050919050565b5f6130b982612363565b91506130c483612363565b92508282039050818111156130dc576130db6125ad565b5b92915050565b5f81905092915050565b50565b5f6130fa5f836130e2565b9150613105826130ec565b5f82019050919050565b5f613119826130ef565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131af81612328565b82525050565b5f6131c083836131a6565b60208301905092915050565b5f602082019050919050565b5f6131e28261317d565b6131ec8185613187565b93506131f783613197565b805f5b8381101561322757815161320e88826131b5565b9750613219836131cc565b9250506001810190506131fa565b5085935050505092915050565b5f60a0820190506132475f830188612407565b6132546020830187612b65565b818103604083015261326681866131d8565b90506132756060830185612547565b6132826080830184612407565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132c0601b83612265565b91506132cb8261328c565b602082019050919050565b5f6020820190508181035f8301526132ed816132b4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61332b82612363565b915061333683612363565b925082613346576133456132f4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133ab602183612265565b91506133b682613351565b604082019050919050565b5f6020820190508181035f8301526133d88161339f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bbd0b0ddeab0191399f78125efeddc8c407e7e83fc90caf82090209368fb157264736f6c63430008140033

Deployed Bytecode Sourcemap

3619:9991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6409:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7247:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7416:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12393:82;;;;;;;;;;;;;:::i;:::-;;11781:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6595:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12126:259;;;;;;;;;;;;;:::i;:::-;;6794:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2595:148;;;;;;;;;;;;;:::i;:::-;;12483:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2381:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6500:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6921:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12733:837;;;;;;;;;;;;;:::i;:::-;;7096:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11690:83;;;;;;;;;;;;;:::i;:::-;;6409;6446:13;6479:5;;;;;;;;;;;;;;;;;6472:12;;6409:83;:::o;7247:161::-;7322:4;7339:39;7348:12;:10;:12::i;:::-;7362:7;7371:6;7339:8;:39::i;:::-;7396:4;7389:11;;7247:161;;;;:::o;6686:100::-;6739:7;3859:1;3924:2;:15;;;;:::i;:::-;3907:13;:33;;;;:::i;:::-;6759:19;;6686:100;:::o;7416:313::-;7514:4;7531:36;7541:6;7549:9;7560:6;7531:9;:36::i;:::-;7578:121;7587:6;7595:12;:10;:12::i;:::-;7609:89;7647:6;7609:89;;;;;;;;;;;;;;;;;:11;:19;7621:6;7609:19;;;;;;;;;;;;;;;:33;7629:12;:10;:12::i;:::-;7609:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7578:8;:121::i;:::-;7717:4;7710:11;;7416:313;;;;;:::o;12393:82::-;5264:10;;;;;;;;;;;5248:26;;:12;:10;:12::i;:::-;:26;;;5240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12452:15:::1;:13;:15::i;:::-;12393:82::o:0;11781:337::-;5264:10;;;;;;;;;;;5248:26;;:12;:10;:12::i;:::-;:26;;;5240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11890:12:::1;;11879:7;:23;;11871:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;11979:13;;11967:8;:25;;11959:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12068:7;12053:12;:22;;;;12102:8;12086:13;:24;;;;11781:337:::0;;:::o;6595:83::-;6636:5;3859:1;6654:16;;6595:83;:::o;12126:259::-;5264:10;;;;;;;;;;;5248:26;;:12;:10;:12::i;:::-;:26;;;5240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12182:28:::1;12213:24;12231:4;12213:9;:24::i;:::-;12182:55;;12277:1;12254:20;:24;12250:128;;;12295:39;12313:20;12295:17;:39::i;:::-;12351:15;:13;:15::i;:::-;12250:128;12171:214;12126:259::o:0;6794:119::-;6860:7;6887:9;:18;6897:7;6887:18;;;;;;;;;;;;;;;;6880:25;;6794:119;;;:::o;2595:148::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2702:1:::1;2665:40;;2686:6;::::0;::::1;;;;;;;;2665:40;;;;;;;;;;;;2733:1;2716:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2595:148::o:0;12483:242::-;5264:10;;;;;;;;;;;5248:26;;:12;:10;:12::i;:::-;:26;;;5240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12587:24:::1;12605:4;12587:9;:24::i;:::-;12572:11;:39;;12564:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;12675:4;12660:30;;;12691:12;:10;:12::i;:::-;12705:11;12660:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12483:242:::0;:::o;2381:79::-;2419:7;2446:6;;;;;;;;;;;2439:13;;2381:79;:::o;6500:87::-;6539:13;6572:7;;;;;;;;;;;;;;;;;6565:14;;6500:87;:::o;6921:167::-;6999:4;7016:42;7026:12;:10;:12::i;:::-;7040:9;7051:6;7016:9;:42::i;:::-;7076:4;7069:11;;6921:167;;;;:::o;12733:837::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12795:15:::1;;;;;;;;;;;12794:16;12786:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12886:42;12848:16;;:81;;;;;;;;;;;;;;;;;;12942:65;12959:4;12974:16;;;;;;;;;;;12993:13;:11;:13::i;:::-;12942:8;:65::i;:::-;13055:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13037:56;;;13102:4;13109:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13037:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13020:14;;:113;;;;;;;;;;;;;;;;;;13146:16;;;;;;;;;;;:32;;;13186:21;13231:4;13251:24;13269:4;13251:9;:24::i;:::-;13290:1;13306::::0;13322:7:::1;:5;:7::i;:::-;13344:15;13146:224;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13390:14;;;;;;;;;;;13383:30;;;13422:16;;;;;;;;;;;13441:17;13383:76;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13487:4;13472:12;;:19;;;;;;;;;;;;;;;;;;13520:4;13502:15;;:22;;;;;;;;;;;;;;;;;;13550:12;13535;:27;;;;12733:837::o:0;7096:143::-;7177:7;7204:11;:18;7216:5;7204:18;;;;;;;;;;;;;;;:27;7223:7;7204:27;;;;;;;;;;;;;;;;7197:34;;7096:143;;;;:::o;11690:83::-;5264:10;;;;;;;;;;;5248:26;;:12;:10;:12::i;:::-;:26;;;5240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11749:16:::1;:14;:16::i;:::-;11690:83::o:0;213:98::-;266:7;293:10;286:17;;213:98;:::o;7737:335::-;7847:1;7830:19;;:5;:19;;;7822:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7928:1;7909:21;;:7;:21;;;7901:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8010:6;7980:11;:18;7992:5;7980:18;;;;;;;;;;;;;;;:27;7999:7;7980:27;;;;;;;;;;;;;;;:36;;;;8048:7;8032:32;;8041:5;8032:32;;;8057:6;8032:32;;;;;;:::i;:::-;;;;;;;;7737:335;;;:::o;8080:2517::-;8184:1;8168:18;;:4;:18;;;8160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8261:1;8247:16;;:2;:16;;;8239:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8331:1;8322:6;:10;8314:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8391:17;8429:15;;;;;;;;;;;:33;;;;;8448:14;;;;;;;;;;;8429:33;:94;;;;;8481:42;8498:24;;8481:12;;:16;;:42;;;;:::i;:::-;8466:12;:57;8429:94;8425:143;;;8540:16;:14;:16::i;:::-;8425:143;8592:7;:5;:7::i;:::-;8584:15;;:4;:15;;;;:32;;;;;8609:7;:5;:7::i;:::-;8603:13;;:2;:13;;;;8584:32;8580:1640;;;8645:82;8723:3;8645:73;8669:15;;8657:9;;:27;8656:61;;8703:14;;8656:61;;;8688:12;;8656:61;8645:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8633:94;;8756:14;;;;;;;;;;;8748:22;;:4;:22;;;:57;;;;;8788:16;;;;;;;;;;;8774:31;;:2;:31;;;;8748:57;:84;;;;;8810:18;:22;8829:2;8810:22;;;;;;;;;;;;;;;;;;;;;;;;;8809:23;8748:84;8744:320;;;8871:12;;8861:6;:22;;8853:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8966:16;;8956:6;8940:13;8950:2;8940:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8932:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;9037:9;;:11;;;;;;;;;:::i;:::-;;;;;;8744:320;9090:14;;;;;;;;;;;9084:20;;:2;:20;;;;:47;;;;;9109:18;:22;9128:2;9109:22;;;;;;;;;;;;;;;;;;;;;;;;;9108:23;9084:47;9080:172;;;9186:16;;9176:6;9160:13;9170:2;9160:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;9152:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;9080:172;9278:14;;;;;;;;;;;9272:20;;:2;:20;;;:45;;;;;9312:4;9296:21;;:4;:21;;;;9272:45;9268:183;;;9350:85;9431:3;9350:76;9374:16;;9362:9;;:28;9361:64;;9410:15;;9361:64;;;9394:13;;9361:64;9350:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;9338:97;;9268:183;9467:28;9498:24;9516:4;9498:9;:24::i;:::-;9467:55;;9562:7;;;;;;;;;;;9561:8;:50;;;;;9597:14;;;;;;;;;;;9591:20;;:2;:20;;;9561:50;:84;;;;;9633:12;;;;;;;;;;;9561:84;:136;;;;;9679:18;;9667:9;;:30;9561:136;:201;;;;;9742:20;;9719;:43;9561:201;9539:670;;;9816:14;;9801:12;:29;9797:92;;;9868:1;9855:10;:14;;;;9797:92;9930:17;;9917:10;;:30;9909:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10001:10;;:12;;;;;;;;;:::i;:::-;;;;;;10049;10032:14;:29;;;;10082:75;10100:56;10105:6;10113:42;10118:20;10140:14;;10113:4;:42::i;:::-;10100:4;:56::i;:::-;10082:17;:75::i;:::-;10178:15;:13;:15::i;:::-;9539:670;8618:1602;8580:1640;10248:1;10236:9;:13;10232:174;;;10293:39;10322:9;10293;:24;10311:4;10293:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10266:9;:24;10284:4;10266:24;;;;;;;;;;;;;;;:66;;;;10377:4;10354:40;;10363:4;10354:40;;;10384:9;10354:40;;;;;;:::i;:::-;;;;;;;;10232:174;10436:27;10456:6;10436:9;:15;10446:4;10436:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10418:9;:15;10428:4;10418:15;;;;;;;;;;;;;;;:45;;;;10490:40;10508:21;10519:9;10508:6;:10;;:21;;;;:::i;:::-;10490:9;:13;10500:2;10490:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10474:9;:13;10484:2;10474:13;;;;;;;;;;;;;;;:56;;;;10563:2;10548:41;;10557:4;10548:41;;;10567:21;10578:9;10567:6;:10;;:21;;;;:::i;:::-;10548:41;;;;;;:::i;:::-;;;;;;;;8149:2448;8080:2517;;;:::o;1364:190::-;1450:7;1483:1;1478;:6;;1486:12;1470:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1510:9;1526:1;1522;:5;;;;:::i;:::-;1510:17;;1545:1;1538:8;;;1364:190;;;;;:::o;11235:280::-;11279:26;11308:21;11279:50;;11368:1;11346:18;:23;11342:62;;11386:7;;;11342:62;11416:12;11460:10;;;;;;;;;;;11452:24;;11484:18;11452:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11439:68;;;;;11268:247;;11235:280;:::o;10721:506::-;5372:4;5362:7;;:14;;;;;;;;;;;;;;;;;;10800:21:::1;10838:1;10824:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10800:40;;10869:4;10851;10856:1;10851:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10895:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10885:4;10890:1;10885:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;10931:63;10948:4;10963:16;;;;;;;;;;;10982:11;10931:8;:63::i;:::-;11011:16;;;;;;;;;;;:67;;;11093:11;11119:1;11135:4;11162;11182:15;11011:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;11007:213:::0;10789:438:::1;5409:5:::0;5399:7;;:15;;;;;;;;;;;;;;;;;;10721:506;:::o;11523:159::-;11583:13;:11;:13::i;:::-;11568:12;:28;;;;11626:13;:11;:13::i;:::-;11607:16;:32;;;;11669:5;11652:14;;:22;;;;;;;;;;;;;;;;;;11523:159::o;1033:179::-;1091:7;1111:9;1127:1;1123;:5;;;;:::i;:::-;1111:17;;1152:1;1147;:6;;1139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1203:1;1196:8;;;1033:179;;;;:::o;1562:246::-;1620:7;1649:1;1644;:6;1640:47;;1674:1;1667:8;;;;1640:47;1697:9;1713:1;1709;:5;;;;:::i;:::-;1697:17;;1742:1;1737;1733;:5;;;;:::i;:::-;:10;1725:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1799:1;1792:8;;;1562:246;;;;;:::o;1816:132::-;1874:7;1901:39;1905:1;1908;1901:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1894:46;;1816:132;;;;:::o;10605:108::-;10663:7;10695:1;10691;:5;10690:15;;10704:1;10690:15;;;10700:1;10690:15;10683:22;;10605:108;;;;:::o;1220:136::-;1278:7;1305:43;1309:1;1312;1305:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1298:50;;1220:136;;;;:::o;1956:189::-;2042:7;2074:1;2070;:5;2077:12;2062:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2101:9;2117:1;2113;:5;;;;:::i;:::-;2101:17;;2136:1;2129:8;;;1956:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:474::-;4491:6;4499;4548:2;4536:9;4527:7;4523:23;4519:32;4516:119;;;4554:79;;:::i;:::-;4516:119;4674:1;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4645:117;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4423:474;;;;;:::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:171::-;9905:23;9901:1;9893:6;9889:14;9882:47;9765:171;:::o;9942:366::-;10084:3;10105:67;10169:2;10164:3;10105:67;:::i;:::-;10098:74;;10181:93;10270:3;10181:93;:::i;:::-;10299:2;10294:3;10290:12;10283:19;;9942:366;;;:::o;10314:419::-;10480:4;10518:2;10507:9;10503:18;10495:26;;10567:9;10561:4;10557:20;10553:1;10542:9;10538:17;10531:47;10595:131;10721:4;10595:131;:::i;:::-;10587:139;;10314:419;;;:::o;10739:228::-;10879:34;10875:1;10867:6;10863:14;10856:58;10948:11;10943:2;10935:6;10931:15;10924:36;10739:228;:::o;10973:366::-;11115:3;11136:67;11200:2;11195:3;11136:67;:::i;:::-;11129:74;;11212:93;11301:3;11212:93;:::i;:::-;11330:2;11325:3;11321:12;11314:19;;10973:366;;;:::o;11345:419::-;11511:4;11549:2;11538:9;11534:18;11526:26;;11598:9;11592:4;11588:20;11584:1;11573:9;11569:17;11562:47;11626:131;11752:4;11626:131;:::i;:::-;11618:139;;11345:419;;;:::o;11770:230::-;11910:34;11906:1;11898:6;11894:14;11887:58;11979:13;11974:2;11966:6;11962:15;11955:38;11770:230;:::o;12006:366::-;12148:3;12169:67;12233:2;12228:3;12169:67;:::i;:::-;12162:74;;12245:93;12334:3;12245:93;:::i;:::-;12363:2;12358:3;12354:12;12347:19;;12006:366;;;:::o;12378:419::-;12544:4;12582:2;12571:9;12567:18;12559:26;;12631:9;12625:4;12621:20;12617:1;12606:9;12602:17;12595:47;12659:131;12785:4;12659:131;:::i;:::-;12651:139;;12378:419;;;:::o;12803:182::-;12943:34;12939:1;12931:6;12927:14;12920:58;12803:182;:::o;12991:366::-;13133:3;13154:67;13218:2;13213:3;13154:67;:::i;:::-;13147:74;;13230:93;13319:3;13230:93;:::i;:::-;13348:2;13343:3;13339:12;13332:19;;12991:366;;;:::o;13363:419::-;13529:4;13567:2;13556:9;13552:18;13544:26;;13616:9;13610:4;13606:20;13602:1;13591:9;13587:17;13580:47;13644:131;13770:4;13644:131;:::i;:::-;13636:139;;13363:419;;;:::o;13788:181::-;13928:33;13924:1;13916:6;13912:14;13905:57;13788:181;:::o;13975:366::-;14117:3;14138:67;14202:2;14197:3;14138:67;:::i;:::-;14131:74;;14214:93;14303:3;14214:93;:::i;:::-;14332:2;14327:3;14323:12;14316:19;;13975:366;;;:::o;14347:419::-;14513:4;14551:2;14540:9;14536:18;14528:26;;14600:9;14594:4;14590:20;14586:1;14575:9;14571:17;14564:47;14628:131;14754:4;14628:131;:::i;:::-;14620:139;;14347:419;;;:::o;14772:332::-;14893:4;14931:2;14920:9;14916:18;14908:26;;14944:71;15012:1;15001:9;14997:17;14988:6;14944:71;:::i;:::-;15025:72;15093:2;15082:9;15078:18;15069:6;15025:72;:::i;:::-;14772:332;;;;;:::o;15110:116::-;15180:21;15195:5;15180:21;:::i;:::-;15173:5;15170:32;15160:60;;15216:1;15213;15206:12;15160:60;15110:116;:::o;15232:137::-;15286:5;15317:6;15311:13;15302:22;;15333:30;15357:5;15333:30;:::i;:::-;15232:137;;;;:::o;15375:345::-;15442:6;15491:2;15479:9;15470:7;15466:23;15462:32;15459:119;;;15497:79;;:::i;:::-;15459:119;15617:1;15642:61;15695:7;15686:6;15675:9;15671:22;15642:61;:::i;:::-;15632:71;;15588:125;15375:345;;;;:::o;15726:170::-;15866:22;15862:1;15854:6;15850:14;15843:46;15726:170;:::o;15902:366::-;16044:3;16065:67;16129:2;16124:3;16065:67;:::i;:::-;16058:74;;16141:93;16230:3;16141:93;:::i;:::-;16259:2;16254:3;16250:12;16243:19;;15902:366;;;:::o;16274:419::-;16440:4;16478:2;16467:9;16463:18;16455:26;;16527:9;16521:4;16517:20;16513:1;16502:9;16498:17;16491:47;16555:131;16681:4;16555:131;:::i;:::-;16547:139;;16274:419;;;:::o;16699:143::-;16756:5;16787:6;16781:13;16772:22;;16803:33;16830:5;16803:33;:::i;:::-;16699:143;;;;:::o;16848:351::-;16918:6;16967:2;16955:9;16946:7;16942:23;16938:32;16935:119;;;16973:79;;:::i;:::-;16935:119;17093:1;17118:64;17174:7;17165:6;17154:9;17150:22;17118:64;:::i;:::-;17108:74;;17064:128;16848:351;;;;:::o;17205:332::-;17326:4;17364:2;17353:9;17349:18;17341:26;;17377:71;17445:1;17434:9;17430:17;17421:6;17377:71;:::i;:::-;17458:72;17526:2;17515:9;17511:18;17502:6;17458:72;:::i;:::-;17205:332;;;;;:::o;17543:85::-;17588:7;17617:5;17606:16;;17543:85;;;:::o;17634:60::-;17662:3;17683:5;17676:12;;17634:60;;;:::o;17700:158::-;17758:9;17791:61;17809:42;17818:32;17844:5;17818:32;:::i;:::-;17809:42;:::i;:::-;17791:61;:::i;:::-;17778:74;;17700:158;;;:::o;17864:147::-;17959:45;17998:5;17959:45;:::i;:::-;17954:3;17947:58;17864:147;;:::o;18017:807::-;18266:4;18304:3;18293:9;18289:19;18281:27;;18318:71;18386:1;18375:9;18371:17;18362:6;18318:71;:::i;:::-;18399:72;18467:2;18456:9;18452:18;18443:6;18399:72;:::i;:::-;18481:80;18557:2;18546:9;18542:18;18533:6;18481:80;:::i;:::-;18571;18647:2;18636:9;18632:18;18623:6;18571:80;:::i;:::-;18661:73;18729:3;18718:9;18714:19;18705:6;18661:73;:::i;:::-;18744;18812:3;18801:9;18797:19;18788:6;18744:73;:::i;:::-;18017:807;;;;;;;;;:::o;18830:143::-;18887:5;18918:6;18912:13;18903:22;;18934:33;18961:5;18934:33;:::i;:::-;18830:143;;;;:::o;18979:663::-;19067:6;19075;19083;19132:2;19120:9;19111:7;19107:23;19103:32;19100:119;;;19138:79;;:::i;:::-;19100:119;19258:1;19283:64;19339:7;19330:6;19319:9;19315:22;19283:64;:::i;:::-;19273:74;;19229:128;19396:2;19422:64;19478:7;19469:6;19458:9;19454:22;19422:64;:::i;:::-;19412:74;;19367:129;19535:2;19561:64;19617:7;19608:6;19597:9;19593:22;19561:64;:::i;:::-;19551:74;;19506:129;18979:663;;;;;:::o;19648:223::-;19788:34;19784:1;19776:6;19772:14;19765:58;19857:6;19852:2;19844:6;19840:15;19833:31;19648:223;:::o;19877:366::-;20019:3;20040:67;20104:2;20099:3;20040:67;:::i;:::-;20033:74;;20116:93;20205:3;20116:93;:::i;:::-;20234:2;20229:3;20225:12;20218:19;;19877:366;;;:::o;20249:419::-;20415:4;20453:2;20442:9;20438:18;20430:26;;20502:9;20496:4;20492:20;20488:1;20477:9;20473:17;20466:47;20530:131;20656:4;20530:131;:::i;:::-;20522:139;;20249:419;;;:::o;20674:221::-;20814:34;20810:1;20802:6;20798:14;20791:58;20883:4;20878:2;20870:6;20866:15;20859:29;20674:221;:::o;20901:366::-;21043:3;21064:67;21128:2;21123:3;21064:67;:::i;:::-;21057:74;;21140:93;21229:3;21140:93;:::i;:::-;21258:2;21253:3;21249:12;21242:19;;20901:366;;;:::o;21273:419::-;21439:4;21477:2;21466:9;21462:18;21454:26;;21526:9;21520:4;21516:20;21512:1;21501:9;21497:17;21490:47;21554:131;21680:4;21554:131;:::i;:::-;21546:139;;21273:419;;;:::o;21698:224::-;21838:34;21834:1;21826:6;21822:14;21815:58;21907:7;21902:2;21894:6;21890:15;21883:32;21698:224;:::o;21928:366::-;22070:3;22091:67;22155:2;22150:3;22091:67;:::i;:::-;22084:74;;22167:93;22256:3;22167:93;:::i;:::-;22285:2;22280:3;22276:12;22269:19;;21928:366;;;:::o;22300:419::-;22466:4;22504:2;22493:9;22489:18;22481:26;;22553:9;22547:4;22543:20;22539:1;22528:9;22524:17;22517:47;22581:131;22707:4;22581:131;:::i;:::-;22573:139;;22300:419;;;:::o;22725:222::-;22865:34;22861:1;22853:6;22849:14;22842:58;22934:5;22929:2;22921:6;22917:15;22910:30;22725:222;:::o;22953:366::-;23095:3;23116:67;23180:2;23175:3;23116:67;:::i;:::-;23109:74;;23192:93;23281:3;23192:93;:::i;:::-;23310:2;23305:3;23301:12;23294:19;;22953:366;;;:::o;23325:419::-;23491:4;23529:2;23518:9;23514:18;23506:26;;23578:9;23572:4;23568:20;23564:1;23553:9;23549:17;23542:47;23606:131;23732:4;23606:131;:::i;:::-;23598:139;;23325:419;;;:::o;23750:228::-;23890:34;23886:1;23878:6;23874:14;23867:58;23959:11;23954:2;23946:6;23942:15;23935:36;23750:228;:::o;23984:366::-;24126:3;24147:67;24211:2;24206:3;24147:67;:::i;:::-;24140:74;;24223:93;24312:3;24223:93;:::i;:::-;24341:2;24336:3;24332:12;24325:19;;23984:366;;;:::o;24356:419::-;24522:4;24560:2;24549:9;24545:18;24537:26;;24609:9;24603:4;24599:20;24595:1;24584:9;24580:17;24573:47;24637:131;24763:4;24637:131;:::i;:::-;24629:139;;24356:419;;;:::o;24781:175::-;24921:27;24917:1;24909:6;24905:14;24898:51;24781:175;:::o;24962:366::-;25104:3;25125:67;25189:2;25184:3;25125:67;:::i;:::-;25118:74;;25201:93;25290:3;25201:93;:::i;:::-;25319:2;25314:3;25310:12;25303:19;;24962:366;;;:::o;25334:419::-;25500:4;25538:2;25527:9;25523:18;25515:26;;25587:9;25581:4;25577:20;25573:1;25562:9;25558:17;25551:47;25615:131;25741:4;25615:131;:::i;:::-;25607:139;;25334:419;;;:::o;25759:191::-;25799:3;25818:20;25836:1;25818:20;:::i;:::-;25813:25;;25852:20;25870:1;25852:20;:::i;:::-;25847:25;;25895:1;25892;25888:9;25881:16;;25916:3;25913:1;25910:10;25907:36;;;25923:18;;:::i;:::-;25907:36;25759:191;;;;:::o;25956:179::-;26096:31;26092:1;26084:6;26080:14;26073:55;25956:179;:::o;26141:366::-;26283:3;26304:67;26368:2;26363:3;26304:67;:::i;:::-;26297:74;;26380:93;26469:3;26380:93;:::i;:::-;26498:2;26493:3;26489:12;26482:19;;26141:366;;;:::o;26513:419::-;26679:4;26717:2;26706:9;26702:18;26694:26;;26766:9;26760:4;26756:20;26752:1;26741:9;26737:17;26730:47;26794:131;26920:4;26794:131;:::i;:::-;26786:139;;26513:419;;;:::o;26938:233::-;26977:3;27000:24;27018:5;27000:24;:::i;:::-;26991:33;;27046:66;27039:5;27036:77;27033:103;;27116:18;;:::i;:::-;27033:103;27163:1;27156:5;27152:13;27145:20;;26938:233;;;:::o;27177:178::-;27317:30;27313:1;27305:6;27301:14;27294:54;27177:178;:::o;27361:366::-;27503:3;27524:67;27588:2;27583:3;27524:67;:::i;:::-;27517:74;;27600:93;27689:3;27600:93;:::i;:::-;27718:2;27713:3;27709:12;27702:19;;27361:366;;;:::o;27733:419::-;27899:4;27937:2;27926:9;27922:18;27914:26;;27986:9;27980:4;27976:20;27972:1;27961:9;27957:17;27950:47;28014:131;28140:4;28014:131;:::i;:::-;28006:139;;27733:419;;;:::o;28158:194::-;28198:4;28218:20;28236:1;28218:20;:::i;:::-;28213:25;;28252:20;28270:1;28252:20;:::i;:::-;28247:25;;28296:1;28293;28289:9;28281:17;;28320:1;28314:4;28311:11;28308:37;;;28325:18;;:::i;:::-;28308:37;28158:194;;;;:::o;28358:147::-;28459:11;28496:3;28481:18;;28358:147;;;;:::o;28511:114::-;;:::o;28631:398::-;28790:3;28811:83;28892:1;28887:3;28811:83;:::i;:::-;28804:90;;28903:93;28992:3;28903:93;:::i;:::-;29021:1;29016:3;29012:11;29005:18;;28631:398;;;:::o;29035:379::-;29219:3;29241:147;29384:3;29241:147;:::i;:::-;29234:154;;29405:3;29398:10;;29035:379;;;:::o;29420:180::-;29468:77;29465:1;29458:88;29565:4;29562:1;29555:15;29589:4;29586:1;29579:15;29606:180;29654:77;29651:1;29644:88;29751:4;29748:1;29741:15;29775:4;29772:1;29765:15;29792:114;29859:6;29893:5;29887:12;29877:22;;29792:114;;;:::o;29912:184::-;30011:11;30045:6;30040:3;30033:19;30085:4;30080:3;30076:14;30061:29;;29912:184;;;;:::o;30102:132::-;30169:4;30192:3;30184:11;;30222:4;30217:3;30213:14;30205:22;;30102:132;;;:::o;30240:108::-;30317:24;30335:5;30317:24;:::i;:::-;30312:3;30305:37;30240:108;;:::o;30354:179::-;30423:10;30444:46;30486:3;30478:6;30444:46;:::i;:::-;30522:4;30517:3;30513:14;30499:28;;30354:179;;;;:::o;30539:113::-;30609:4;30641;30636:3;30632:14;30624:22;;30539:113;;;:::o;30688:732::-;30807:3;30836:54;30884:5;30836:54;:::i;:::-;30906:86;30985:6;30980:3;30906:86;:::i;:::-;30899:93;;31016:56;31066:5;31016:56;:::i;:::-;31095:7;31126:1;31111:284;31136:6;31133:1;31130:13;31111:284;;;31212:6;31206:13;31239:63;31298:3;31283:13;31239:63;:::i;:::-;31232:70;;31325:60;31378:6;31325:60;:::i;:::-;31315:70;;31171:224;31158:1;31155;31151:9;31146:14;;31111:284;;;31115:14;31411:3;31404:10;;30812:608;;;30688:732;;;;:::o;31426:831::-;31689:4;31727:3;31716:9;31712:19;31704:27;;31741:71;31809:1;31798:9;31794:17;31785:6;31741:71;:::i;:::-;31822:80;31898:2;31887:9;31883:18;31874:6;31822:80;:::i;:::-;31949:9;31943:4;31939:20;31934:2;31923:9;31919:18;31912:48;31977:108;32080:4;32071:6;31977:108;:::i;:::-;31969:116;;32095:72;32163:2;32152:9;32148:18;32139:6;32095:72;:::i;:::-;32177:73;32245:3;32234:9;32230:19;32221:6;32177:73;:::i;:::-;31426:831;;;;;;;;:::o;32263:177::-;32403:29;32399:1;32391:6;32387:14;32380:53;32263:177;:::o;32446:366::-;32588:3;32609:67;32673:2;32668:3;32609:67;:::i;:::-;32602:74;;32685:93;32774:3;32685:93;:::i;:::-;32803:2;32798:3;32794:12;32787:19;;32446:366;;;:::o;32818:419::-;32984:4;33022:2;33011:9;33007:18;32999:26;;33071:9;33065:4;33061:20;33057:1;33046:9;33042:17;33035:47;33099:131;33225:4;33099:131;:::i;:::-;33091:139;;32818:419;;;:::o;33243:180::-;33291:77;33288:1;33281:88;33388:4;33385:1;33378:15;33412:4;33409:1;33402:15;33429:185;33469:1;33486:20;33504:1;33486:20;:::i;:::-;33481:25;;33520:20;33538:1;33520:20;:::i;:::-;33515:25;;33559:1;33549:35;;33564:18;;:::i;:::-;33549:35;33606:1;33603;33599:9;33594:14;;33429:185;;;;:::o;33620:220::-;33760:34;33756:1;33748:6;33744:14;33737:58;33829:3;33824:2;33816:6;33812:15;33805:28;33620:220;:::o;33846:366::-;33988:3;34009:67;34073:2;34068:3;34009:67;:::i;:::-;34002:74;;34085:93;34174:3;34085:93;:::i;:::-;34203:2;34198:3;34194:12;34187:19;;33846:366;;;:::o;34218:419::-;34384:4;34422:2;34411:9;34407:18;34399:26;;34471:9;34465:4;34461:20;34457:1;34446:9;34442:17;34435:47;34499:131;34625:4;34499:131;:::i;:::-;34491:139;;34218:419;;;:::o

Swarm Source

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