ETH Price: $3,172.57 (+2.11%)

Token

MeshWave (MWAVE)
 

Overview

Max Total Supply

100,000,000 MWAVE

Holders

1,194 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$46,169.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,926.85587664 MWAVE

Value
$2.74 ( ~0.000863653609191828 Eth) [0.0059%]
0x075f1537ff255b529f61ff21be520ce823aa4af0
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

MeshWave is a decentralized cloud computing platform that provides a variety of features to support your workloads.

Market

Volume (24H):$13.33
Market Capitalization:$0.00
Circulating Supply:0.00 MWAVE
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MeshWave

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*
Website: https://meshwave.ai
Docs: https://docs.meshwave.ai
X: http://x.com/meshwaveai
Telegram : https://t.me/meshwaveai
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.18;

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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

    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 div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

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

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

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

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

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

    mapping(address => uint256) private _rOwned;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;

    uint8 private constant _decimals = 9;
    string private constant _name = "MeshWave";
    string private constant _symbol = "MWAVE";

    uint256 private _rTotal = (MAX - (MAX % _totalSupply));
    uint256 private constant MAX = ~uint256(0);

    uint256 private _feeOnBuy = 5;
    uint256 private _feeOnSell = 5;

    uint256 private _backedUpFee = _fee;
    uint256 private _fee = _feeOnSell;

    address payable private _treasuryAddress =
        payable(0xbfe46ceda16Af91591638aC014C5e511876b626a);

    bool private _maxTxn = false;
    bool private _maxWallet = false;

    uint256 private constant _totalSupply = 100_000_000 * 10**9;
    uint256 public _maxTxnSize = 1_000_000 * 10**9;
    uint256 public _maxHoldSize = 2_000_000 * 10**9;
    uint256 public _minSwappableAmount = 1000 * 10**9;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private autoSwapEnabled = true;
    bool private swapping = false;
    bool private marketOpened;

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

    constructor() {
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_treasuryAddress] = true;

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

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

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

    function excludeMultipleAccountsFromFees(
        address[] calldata accounts,
        bool excluded
    ) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

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

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

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

    function _getTValues(uint256 tAmount, uint256 fee)
        private
        pure
        returns (uint256, uint256)
    {
        uint256 tTeam = tAmount.mul(fee).div(100);
        uint256 tTransferAmount = tAmount.sub(tTeam);
        return (tTransferAmount, tTeam);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        return (_rTotal, _totalSupply);
    }

    function toggleautoSwapEnabled(bool _autoSwapEnabled) public onlyOwner {
        autoSwapEnabled = _autoSwapEnabled;
    }

    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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount has to be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function switchTrading(bool _marketOpened) public onlyOwner {
        marketOpened = _marketOpened;
    }

    function dropFee() private {
        if (_fee == 0) return;

        _backedUpFee = _fee;

        _fee = 0;
    }

    function restoreFee() private {
        _fee = _backedUpFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Can't approve from zero address");
        require(spender != address(0), "Can't approve to zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");

        if (from != owner() && to != owner()) {
            //Trade start check
            if (!marketOpened) {
                require(
                    from == owner(),
                    "Only owner can trade before trading activation"
                );
            }

            require(amount <= _maxTxnSize, "Exceeded max transaction limit");

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxHoldSize,
                    "Exceeds max hold balance"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool swapAllowed = contractTokenBalance >= _minSwappableAmount;

            if (contractTokenBalance >= _maxTxnSize) {
                contractTokenBalance = _maxTxnSize;
            }

            if (
                swapAllowed &&
                !swapping &&
                from != uniswapV2Pair &&
                autoSwapEnabled &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                covertToNative(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    transferEthToDev(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _fee = _feeOnBuy;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _fee = _feeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

    function transferEthToDev(uint256 amount) private {
        _treasuryAddress.transfer(amount);
    }

    function forceSwap() external {
        require(_msgSender() == _treasuryAddress);
        uint256 contractETHBalance = address(this).balance;
        transferEthToDev(contractETHBalance);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) dropFee();
        _transferApplyingFees(sender, recipient, amount);
        if (!takeFee) restoreFee();
    }

    function manualswap() external {
        require(_msgSender() == _treasuryAddress);
        uint256 contractBalance = balanceOf(address(this));
        covertToNative(contractBalance);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, 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,
                "the transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function setMinSwapTokensThreshold(uint256 minSwappableAmount)
        public
        onlyOwner
    {
        _minSwappableAmount = minSwappableAmount;
    }

    function _transferApplyingFees(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getFeeValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _transferFeeDev(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFeeDev(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _getFeeValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tTeam) = _getTValues(tAmount, _fee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount) = _getRValues(
            tAmount,
            tTeam,
            currentRate
        );
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }

    function updateFee(uint256 feeOnBuy, uint256 feeOnSell) public onlyOwner {
        require(
            feeOnBuy >= 0 && feeOnBuy <= 95,
            "Buy tax must be between 0% and 95%"
        );
        require(
            feeOnSell >= 0 && feeOnSell <= 95,
            "Sell tax must be between 0% and 95%"
        );

        _feeOnBuy = feeOnBuy;
        _feeOnSell = feeOnSell;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxnSize = maxTxAmount;
    }

    receive() external payable {}

    function setMaxHoldSize(uint256 maxHoldSize) public onlyOwner {
        _maxHoldSize = maxHoldSize;
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tTeam,
        uint256 currentRate
    ) private pure returns (uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTeam);
        return (rAmount, rTransferAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxHoldSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minSwappableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwap","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxHoldSize","type":"uint256"}],"name":"setMaxHoldSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minSwappableAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_marketOpened","type":"bool"}],"name":"switchTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_autoSwapEnabled","type":"bool"}],"name":"toggleautoSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeOnBuy","type":"uint256"},{"internalType":"uint256","name":"feeOnSell","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c91906200065f565b6000196200002b9190620006c6565b6005556005600655600560075560095460085560075460095573bfe46ceda16af91591638ac014c5e511876b626a600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60146101000a81548160ff0219169083151502179055506000600a60156101000a81548160ff02191690831515021790555066038d7ea4c68000600b5566071afd498d0000600c5564e8d4a51000600d556001600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055503480156200013157600080fd5b50600062000144620005f560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460026000620001f9620005f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030391906200076b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200036b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039191906200076b565b6040518363ffffffff1660e01b8152600401620003b0929190620007ae565b6020604051808303816000875af1158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f691906200076b565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620004a4620005fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200057f620005f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620005e69190620007ec565b60405180910390a35062000809565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200066c8262000626565b9150620006798362000626565b9250826200068c576200068b62000630565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006d38262000626565b9150620006e08362000626565b9250828203905081811115620006fb57620006fa62000697565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007338262000706565b9050919050565b620007458162000726565b81146200075157600080fd5b50565b60008151905062000765816200073a565b92915050565b60006020828403121562000784576200078362000701565b5b6000620007948482850162000754565b91505092915050565b620007a88162000726565b82525050565b6000604082019050620007c560008301856200079d565b620007d460208301846200079d565b9392505050565b620007e68162000626565b82525050565b6000602082019050620008036000830184620007db565b92915050565b6135d580620008196000396000f3fe6080604052600436106101855760003560e01c8063874949c9116100d1578063b2021e0a1161008a578063dd62ed3e11610064578063dd62ed3e14610555578063df778d2614610592578063e5c43633146105a9578063f2fde38b146105d45761018c565b8063b2021e0a146104ec578063c3c8cd8014610515578063c492f0461461052c5761018c565b8063874949c9146103dc5780638da5cb5b1461040557806395d89b411461043057806398a5c3151461045b5780639e0ba25d14610484578063a9059cbb146104af5761018c565b8063313ce5671161013e5780636279c694116101185780636279c6941461033457806370a082311461035f578063715018a61461039c57806374010ece146103b35761018c565b8063313ce567146102b557806349bd5a5e146102e0578063577009e41461030b5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632740c1971461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b39190612648565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612708565b61063a565b6040516101f09190612763565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b91906127dd565b60405180910390f35b34801561023057600080fd5b5061023961067e565b6040516102469190612807565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612822565b61068e565b6040516102839190612763565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612875565b610767565b005b3480156102c157600080fd5b506102ca6108b0565b6040516102d791906128d1565b60405180910390f35b3480156102ec57600080fd5b506102f56108b9565b60405161030291906128fb565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d9190612916565b6108df565b005b34801561034057600080fd5b5061034961097e565b6040516103569190612807565b60405180910390f35b34801561036b57600080fd5b5061038660048036038101906103819190612943565b610984565b6040516103939190612807565b60405180910390f35b3480156103a857600080fd5b506103b16109d5565b005b3480156103bf57600080fd5b506103da60048036038101906103d59190612916565b610b28565b005b3480156103e857600080fd5b5061040360048036038101906103fe919061299c565b610bc7565b005b34801561041157600080fd5b5061041a610c79565b60405161042791906128fb565b60405180910390f35b34801561043c57600080fd5b50610445610ca2565b6040516104529190612648565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190612916565b610cdf565b005b34801561049057600080fd5b50610499610d7e565b6040516104a69190612807565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d19190612708565b610d84565b6040516104e39190612763565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061299c565b610da2565b005b34801561052157600080fd5b5061052a610e54565b005b34801561053857600080fd5b50610553600480360381019061054e9190612a2e565b610ece565b005b34801561056157600080fd5b5061057c60048036038101906105779190612a8e565b611008565b6040516105899190612807565b60405180910390f35b34801561059e57600080fd5b506105a761108f565b005b3480156105b557600080fd5b506105be611101565b6040516105cb9190612807565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612943565b611107565b005b60606040518060400160405280600881526020017f4d65736857617665000000000000000000000000000000000000000000000000815250905090565b600061064e6106476112c8565b84846112d0565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061069b848484611499565b61075c846106a76112c8565b6107578560405180606001604052806025815260200161357b60259139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070d6112c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c299092919063ffffffff16565b6112d0565b600190509392505050565b61076f6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f390612b1a565b60405180910390fd5b6000821015801561080e5750605f8211155b61084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084490612bac565b60405180910390fd5b6000811015801561085f5750605f8111155b61089e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089590612c3e565b60405180910390fd5b81600681905550806007819055505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108e76112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096b90612b1a565b60405180910390fd5b80600c8190555050565b600c5481565b60006109ce600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8d565b9050919050565b6109dd6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190612b1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b306112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490612b1a565b60405180910390fd5b80600b8190555050565b610bcf6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5390612b1a565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4d57415645000000000000000000000000000000000000000000000000000000815250905090565b610ce76112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612b1a565b60405180910390fd5b80600d8190555050565b600b5481565b6000610d98610d916112c8565b8484611499565b6001905092915050565b610daa6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90612b1a565b60405180910390fd5b80600f60166101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e956112c8565b73ffffffffffffffffffffffffffffffffffffffff1614610eb557600080fd5b6000610ec030610984565b9050610ecb81611cfb565b50565b610ed66112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90612b1a565b60405180910390fd5b60005b83839050811015611002578160046000868685818110610f8957610f88612c5e565b5b9050602002016020810190610f9e9190612943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ffa90612cbc565b915050610f66565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d06112c8565b73ffffffffffffffffffffffffffffffffffffffff16146110f057600080fd5b60004790506110fe81611f74565b50565b600d5481565b61110f6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612b1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612d76565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612de2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612e4e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148c9190612807565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90612eba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612f26565b60405180910390fd5b600081116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190612f92565b60405180910390fd5b6115c2610c79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116305750611600610c79565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561193a57600f60169054906101000a900460ff166116bf57611651610c79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590613024565b60405180910390fd5b5b600b54811115611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613090565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117b157600c548161176684610984565b61177091906130b0565b106117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a790613130565b60405180910390fd5b5b60006117bc30610984565b90506000600d548210159050600b5482106117d757600b5491505b8080156117f15750600f60159054906101000a900460ff16155b801561184b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118635750600f60149054906101000a900460ff165b80156118b95750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561190f5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119375761191d82611cfb565b600047905060008111156119355761193447611f74565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119e15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a945750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a935750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611aa25760009050611c17565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5c576006546009819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c075750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c16576007546009819055505b5b611c2384848484611fe0565b50505050565b6000838311158290611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c689190612648565b60405180910390fd5b5060008385611c809190613150565b9050809150509392505050565b6000600554821115611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb906131f6565b60405180910390fd5b6000611cde61200d565b9050611cf3818461203890919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3357611d32613216565b5b604051908082528060200260200182016040528015611d615781602001602082028036833780820191505090505b5090503081600081518110611d7957611d78612c5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e44919061325a565b81600181518110611e5857611e57612c5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebf30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f23959493929190613380565b600060405180830381600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fdc573d6000803e3d6000fd5b5050565b80611fee57611fed612082565b5b611ff98484846120a1565b8061200757612006612259565b5b50505050565b600080600061201a612264565b91509150612031818361203890919063ffffffff16565b9250505090565b600061207a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061227b565b905092915050565b6000600954031561209f5760095460088190555060006009819055505b565b6000806000806120b0856122de565b935093509350935061210a84600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232d90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219f83600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121eb816123d5565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122489190612807565b60405180910390a350505050505050565b600854600981905550565b60008060055467016345785d8a0000915091509091565b600080831182906122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b99190612648565b60405180910390fd5b50600083856122d19190613409565b9050809150509392505050565b6000806000806000806122f387600954612492565b91509150600061230161200d565b90506000806123118a85856124e5565b9150915081818686985098509850985050505050509193509193565b600061236f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c29565b905092915050565b600080828461238691906130b0565b9050838110156123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613486565b60405180910390fd5b8091505092915050565b60006123df61200d565b905060006123f6828461253e90919063ffffffff16565b905061244a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060006124bd60646124af868861253e90919063ffffffff16565b61203890919063ffffffff16565b905060006124d4828761232d90919063ffffffff16565b905080829350935050509250929050565b60008060006124fd848761253e90919063ffffffff16565b90506000612514858761253e90919063ffffffff16565b9050600061252b828461232d90919063ffffffff16565b9050828194509450505050935093915050565b600080830361255057600090506125b2565b6000828461255e91906134a6565b905082848261256d9190613409565b146125ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a49061355a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125f25780820151818401526020810190506125d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061261a826125b8565b61262481856125c3565b93506126348185602086016125d4565b61263d816125fe565b840191505092915050565b60006020820190508181036000830152612662818461260f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061269f82612674565b9050919050565b6126af81612694565b81146126ba57600080fd5b50565b6000813590506126cc816126a6565b92915050565b6000819050919050565b6126e5816126d2565b81146126f057600080fd5b50565b600081359050612702816126dc565b92915050565b6000806040838503121561271f5761271e61266a565b5b600061272d858286016126bd565b925050602061273e858286016126f3565b9150509250929050565b60008115159050919050565b61275d81612748565b82525050565b60006020820190506127786000830184612754565b92915050565b6000819050919050565b60006127a361279e61279984612674565b61277e565b612674565b9050919050565b60006127b582612788565b9050919050565b60006127c7826127aa565b9050919050565b6127d7816127bc565b82525050565b60006020820190506127f260008301846127ce565b92915050565b612801816126d2565b82525050565b600060208201905061281c60008301846127f8565b92915050565b60008060006060848603121561283b5761283a61266a565b5b6000612849868287016126bd565b935050602061285a868287016126bd565b925050604061286b868287016126f3565b9150509250925092565b6000806040838503121561288c5761288b61266a565b5b600061289a858286016126f3565b92505060206128ab858286016126f3565b9150509250929050565b600060ff82169050919050565b6128cb816128b5565b82525050565b60006020820190506128e660008301846128c2565b92915050565b6128f581612694565b82525050565b600060208201905061291060008301846128ec565b92915050565b60006020828403121561292c5761292b61266a565b5b600061293a848285016126f3565b91505092915050565b6000602082840312156129595761295861266a565b5b6000612967848285016126bd565b91505092915050565b61297981612748565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b6000602082840312156129b2576129b161266a565b5b60006129c084828501612987565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129ee576129ed6129c9565b5b8235905067ffffffffffffffff811115612a0b57612a0a6129ce565b5b602083019150836020820283011115612a2757612a266129d3565b5b9250929050565b600080600060408486031215612a4757612a4661266a565b5b600084013567ffffffffffffffff811115612a6557612a6461266f565b5b612a71868287016129d8565b93509350506020612a8486828701612987565b9150509250925092565b60008060408385031215612aa557612aa461266a565b5b6000612ab3858286016126bd565b9250506020612ac4858286016126bd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b046020836125c3565b9150612b0f82612ace565b602082019050919050565b60006020820190508181036000830152612b3381612af7565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b966022836125c3565b9150612ba182612b3a565b604082019050919050565b60006020820190508181036000830152612bc581612b89565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c286023836125c3565b9150612c3382612bcc565b604082019050919050565b60006020820190508181036000830152612c5781612c1b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cc7826126d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cf957612cf8612c8d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d606026836125c3565b9150612d6b82612d04565b604082019050919050565b60006020820190508181036000830152612d8f81612d53565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612dcc601f836125c3565b9150612dd782612d96565b602082019050919050565b60006020820190508181036000830152612dfb81612dbf565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612e38601d836125c3565b9150612e4382612e02565b602082019050919050565b60006020820190508181036000830152612e6781612e2b565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612ea4601f836125c3565b9150612eaf82612e6e565b602082019050919050565b60006020820190508181036000830152612ed381612e97565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612f10601d836125c3565b9150612f1b82612eda565b602082019050919050565b60006020820190508181036000830152612f3f81612f03565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612f7c601b836125c3565b9150612f8782612f46565b602082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b600061300e602e836125c3565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b600061307a601e836125c3565b915061308582613044565b602082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b60006130bb826126d2565b91506130c6836126d2565b92508282019050808211156130de576130dd612c8d565b5b92915050565b7f45786365656473206d617820686f6c642062616c616e63650000000000000000600082015250565b600061311a6018836125c3565b9150613125826130e4565b602082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b600061315b826126d2565b9150613166836126d2565b925082820390508181111561317e5761317d612c8d565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b60006131e0602c836125c3565b91506131eb82613184565b604082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613254816126a6565b92915050565b6000602082840312156132705761326f61266a565b5b600061327e84828501613245565b91505092915050565b6000819050919050565b60006132ac6132a76132a284613287565b61277e565b6126d2565b9050919050565b6132bc81613291565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f781612694565b82525050565b600061330983836132ee565b60208301905092915050565b6000602082019050919050565b600061332d826132c2565b61333781856132cd565b9350613342836132de565b8060005b8381101561337357815161335a88826132fd565b975061336583613315565b925050600181019050613346565b5085935050505092915050565b600060a08201905061339560008301886127f8565b6133a260208301876132b3565b81810360408301526133b48186613322565b90506133c360608301856128ec565b6133d060808301846127f8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613414826126d2565b915061341f836126d2565b92508261342f5761342e6133da565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613470601b836125c3565b915061347b8261343a565b602082019050919050565b6000602082019050818103600083015261349f81613463565b9050919050565b60006134b1826126d2565b91506134bc836126d2565b92508282026134ca816126d2565b915082820484148315176134e1576134e0612c8d565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135446021836125c3565b915061354f826134e8565b604082019050919050565b6000602082019050818103600083015261357381613537565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033321211bb7ce3f5b41418d05deb947a4dd0c01149ed8b360eb520332c316a5864736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063874949c9116100d1578063b2021e0a1161008a578063dd62ed3e11610064578063dd62ed3e14610555578063df778d2614610592578063e5c43633146105a9578063f2fde38b146105d45761018c565b8063b2021e0a146104ec578063c3c8cd8014610515578063c492f0461461052c5761018c565b8063874949c9146103dc5780638da5cb5b1461040557806395d89b411461043057806398a5c3151461045b5780639e0ba25d14610484578063a9059cbb146104af5761018c565b8063313ce5671161013e5780636279c694116101185780636279c6941461033457806370a082311461035f578063715018a61461039c57806374010ece146103b35761018c565b8063313ce567146102b557806349bd5a5e146102e0578063577009e41461030b5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632740c1971461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b39190612648565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612708565b61063a565b6040516101f09190612763565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b91906127dd565b60405180910390f35b34801561023057600080fd5b5061023961067e565b6040516102469190612807565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612822565b61068e565b6040516102839190612763565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612875565b610767565b005b3480156102c157600080fd5b506102ca6108b0565b6040516102d791906128d1565b60405180910390f35b3480156102ec57600080fd5b506102f56108b9565b60405161030291906128fb565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d9190612916565b6108df565b005b34801561034057600080fd5b5061034961097e565b6040516103569190612807565b60405180910390f35b34801561036b57600080fd5b5061038660048036038101906103819190612943565b610984565b6040516103939190612807565b60405180910390f35b3480156103a857600080fd5b506103b16109d5565b005b3480156103bf57600080fd5b506103da60048036038101906103d59190612916565b610b28565b005b3480156103e857600080fd5b5061040360048036038101906103fe919061299c565b610bc7565b005b34801561041157600080fd5b5061041a610c79565b60405161042791906128fb565b60405180910390f35b34801561043c57600080fd5b50610445610ca2565b6040516104529190612648565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190612916565b610cdf565b005b34801561049057600080fd5b50610499610d7e565b6040516104a69190612807565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d19190612708565b610d84565b6040516104e39190612763565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061299c565b610da2565b005b34801561052157600080fd5b5061052a610e54565b005b34801561053857600080fd5b50610553600480360381019061054e9190612a2e565b610ece565b005b34801561056157600080fd5b5061057c60048036038101906105779190612a8e565b611008565b6040516105899190612807565b60405180910390f35b34801561059e57600080fd5b506105a761108f565b005b3480156105b557600080fd5b506105be611101565b6040516105cb9190612807565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612943565b611107565b005b60606040518060400160405280600881526020017f4d65736857617665000000000000000000000000000000000000000000000000815250905090565b600061064e6106476112c8565b84846112d0565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061069b848484611499565b61075c846106a76112c8565b6107578560405180606001604052806025815260200161357b60259139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070d6112c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c299092919063ffffffff16565b6112d0565b600190509392505050565b61076f6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f390612b1a565b60405180910390fd5b6000821015801561080e5750605f8211155b61084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084490612bac565b60405180910390fd5b6000811015801561085f5750605f8111155b61089e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089590612c3e565b60405180910390fd5b81600681905550806007819055505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108e76112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096b90612b1a565b60405180910390fd5b80600c8190555050565b600c5481565b60006109ce600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8d565b9050919050565b6109dd6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190612b1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b306112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490612b1a565b60405180910390fd5b80600b8190555050565b610bcf6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5390612b1a565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4d57415645000000000000000000000000000000000000000000000000000000815250905090565b610ce76112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612b1a565b60405180910390fd5b80600d8190555050565b600b5481565b6000610d98610d916112c8565b8484611499565b6001905092915050565b610daa6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90612b1a565b60405180910390fd5b80600f60166101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e956112c8565b73ffffffffffffffffffffffffffffffffffffffff1614610eb557600080fd5b6000610ec030610984565b9050610ecb81611cfb565b50565b610ed66112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90612b1a565b60405180910390fd5b60005b83839050811015611002578160046000868685818110610f8957610f88612c5e565b5b9050602002016020810190610f9e9190612943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ffa90612cbc565b915050610f66565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d06112c8565b73ffffffffffffffffffffffffffffffffffffffff16146110f057600080fd5b60004790506110fe81611f74565b50565b600d5481565b61110f6112c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612b1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612d76565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612de2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612e4e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148c9190612807565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90612eba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612f26565b60405180910390fd5b600081116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190612f92565b60405180910390fd5b6115c2610c79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116305750611600610c79565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561193a57600f60169054906101000a900460ff166116bf57611651610c79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590613024565b60405180910390fd5b5b600b54811115611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613090565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117b157600c548161176684610984565b61177091906130b0565b106117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a790613130565b60405180910390fd5b5b60006117bc30610984565b90506000600d548210159050600b5482106117d757600b5491505b8080156117f15750600f60159054906101000a900460ff16155b801561184b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118635750600f60149054906101000a900460ff165b80156118b95750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561190f5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119375761191d82611cfb565b600047905060008111156119355761193447611f74565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119e15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a945750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a935750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611aa25760009050611c17565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5c576006546009819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c075750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c16576007546009819055505b5b611c2384848484611fe0565b50505050565b6000838311158290611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c689190612648565b60405180910390fd5b5060008385611c809190613150565b9050809150509392505050565b6000600554821115611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb906131f6565b60405180910390fd5b6000611cde61200d565b9050611cf3818461203890919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3357611d32613216565b5b604051908082528060200260200182016040528015611d615781602001602082028036833780820191505090505b5090503081600081518110611d7957611d78612c5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e44919061325a565b81600181518110611e5857611e57612c5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebf30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f23959493929190613380565b600060405180830381600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fdc573d6000803e3d6000fd5b5050565b80611fee57611fed612082565b5b611ff98484846120a1565b8061200757612006612259565b5b50505050565b600080600061201a612264565b91509150612031818361203890919063ffffffff16565b9250505090565b600061207a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061227b565b905092915050565b6000600954031561209f5760095460088190555060006009819055505b565b6000806000806120b0856122de565b935093509350935061210a84600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232d90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219f83600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121eb816123d5565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122489190612807565b60405180910390a350505050505050565b600854600981905550565b60008060055467016345785d8a0000915091509091565b600080831182906122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b99190612648565b60405180910390fd5b50600083856122d19190613409565b9050809150509392505050565b6000806000806000806122f387600954612492565b91509150600061230161200d565b90506000806123118a85856124e5565b9150915081818686985098509850985050505050509193509193565b600061236f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c29565b905092915050565b600080828461238691906130b0565b9050838110156123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613486565b60405180910390fd5b8091505092915050565b60006123df61200d565b905060006123f6828461253e90919063ffffffff16565b905061244a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060006124bd60646124af868861253e90919063ffffffff16565b61203890919063ffffffff16565b905060006124d4828761232d90919063ffffffff16565b905080829350935050509250929050565b60008060006124fd848761253e90919063ffffffff16565b90506000612514858761253e90919063ffffffff16565b9050600061252b828461232d90919063ffffffff16565b9050828194509450505050935093915050565b600080830361255057600090506125b2565b6000828461255e91906134a6565b905082848261256d9190613409565b146125ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a49061355a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125f25780820151818401526020810190506125d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061261a826125b8565b61262481856125c3565b93506126348185602086016125d4565b61263d816125fe565b840191505092915050565b60006020820190508181036000830152612662818461260f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061269f82612674565b9050919050565b6126af81612694565b81146126ba57600080fd5b50565b6000813590506126cc816126a6565b92915050565b6000819050919050565b6126e5816126d2565b81146126f057600080fd5b50565b600081359050612702816126dc565b92915050565b6000806040838503121561271f5761271e61266a565b5b600061272d858286016126bd565b925050602061273e858286016126f3565b9150509250929050565b60008115159050919050565b61275d81612748565b82525050565b60006020820190506127786000830184612754565b92915050565b6000819050919050565b60006127a361279e61279984612674565b61277e565b612674565b9050919050565b60006127b582612788565b9050919050565b60006127c7826127aa565b9050919050565b6127d7816127bc565b82525050565b60006020820190506127f260008301846127ce565b92915050565b612801816126d2565b82525050565b600060208201905061281c60008301846127f8565b92915050565b60008060006060848603121561283b5761283a61266a565b5b6000612849868287016126bd565b935050602061285a868287016126bd565b925050604061286b868287016126f3565b9150509250925092565b6000806040838503121561288c5761288b61266a565b5b600061289a858286016126f3565b92505060206128ab858286016126f3565b9150509250929050565b600060ff82169050919050565b6128cb816128b5565b82525050565b60006020820190506128e660008301846128c2565b92915050565b6128f581612694565b82525050565b600060208201905061291060008301846128ec565b92915050565b60006020828403121561292c5761292b61266a565b5b600061293a848285016126f3565b91505092915050565b6000602082840312156129595761295861266a565b5b6000612967848285016126bd565b91505092915050565b61297981612748565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b6000602082840312156129b2576129b161266a565b5b60006129c084828501612987565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129ee576129ed6129c9565b5b8235905067ffffffffffffffff811115612a0b57612a0a6129ce565b5b602083019150836020820283011115612a2757612a266129d3565b5b9250929050565b600080600060408486031215612a4757612a4661266a565b5b600084013567ffffffffffffffff811115612a6557612a6461266f565b5b612a71868287016129d8565b93509350506020612a8486828701612987565b9150509250925092565b60008060408385031215612aa557612aa461266a565b5b6000612ab3858286016126bd565b9250506020612ac4858286016126bd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b046020836125c3565b9150612b0f82612ace565b602082019050919050565b60006020820190508181036000830152612b3381612af7565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b966022836125c3565b9150612ba182612b3a565b604082019050919050565b60006020820190508181036000830152612bc581612b89565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c286023836125c3565b9150612c3382612bcc565b604082019050919050565b60006020820190508181036000830152612c5781612c1b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cc7826126d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cf957612cf8612c8d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d606026836125c3565b9150612d6b82612d04565b604082019050919050565b60006020820190508181036000830152612d8f81612d53565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612dcc601f836125c3565b9150612dd782612d96565b602082019050919050565b60006020820190508181036000830152612dfb81612dbf565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612e38601d836125c3565b9150612e4382612e02565b602082019050919050565b60006020820190508181036000830152612e6781612e2b565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612ea4601f836125c3565b9150612eaf82612e6e565b602082019050919050565b60006020820190508181036000830152612ed381612e97565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612f10601d836125c3565b9150612f1b82612eda565b602082019050919050565b60006020820190508181036000830152612f3f81612f03565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612f7c601b836125c3565b9150612f8782612f46565b602082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b600061300e602e836125c3565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b600061307a601e836125c3565b915061308582613044565b602082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b60006130bb826126d2565b91506130c6836126d2565b92508282019050808211156130de576130dd612c8d565b5b92915050565b7f45786365656473206d617820686f6c642062616c616e63650000000000000000600082015250565b600061311a6018836125c3565b9150613125826130e4565b602082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b600061315b826126d2565b9150613166836126d2565b925082820390508181111561317e5761317d612c8d565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b60006131e0602c836125c3565b91506131eb82613184565b604082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613254816126a6565b92915050565b6000602082840312156132705761326f61266a565b5b600061327e84828501613245565b91505092915050565b6000819050919050565b60006132ac6132a76132a284613287565b61277e565b6126d2565b9050919050565b6132bc81613291565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f781612694565b82525050565b600061330983836132ee565b60208301905092915050565b6000602082019050919050565b600061332d826132c2565b61333781856132cd565b9350613342836132de565b8060005b8381101561337357815161335a88826132fd565b975061336583613315565b925050600181019050613346565b5085935050505092915050565b600060a08201905061339560008301886127f8565b6133a260208301876132b3565b81810360408301526133b48186613322565b90506133c360608301856128ec565b6133d060808301846127f8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613414826126d2565b915061341f836126d2565b92508261342f5761342e6133da565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613470601b836125c3565b915061347b8261343a565b602082019050919050565b6000602082019050818103600083015261349f81613463565b9050919050565b60006134b1826126d2565b91506134bc836126d2565b92508282026134ca816126d2565b915082820484148315176134e1576134e0612c8d565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135446021836125c3565b915061354f826134e8565b604082019050919050565b6000602082019050818103600083015261357381613537565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033321211bb7ce3f5b41418d05deb947a4dd0c01149ed8b360eb520332c316a5864736f6c63430008120033

Deployed Bytecode Sourcemap

4287:11727:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6917:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7841:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5392:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6304:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13011:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14946:402;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6826:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5440:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15539:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5280:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6412:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3843:148;;;;;;;;;;;;;:::i;:::-;;15387:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7517:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3756:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7008:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13462:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5227:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8375:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12602:194;;;;;;;;;;;;;:::i;:::-;;6558:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7649:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11938:198;;;;;;;;;;;;;:::i;:::-;;5334:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3999:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6917:83;6954:13;6987:5;;;;;;;;;;;;;;;;;6980:12;;6917:83;:::o;7841:193::-;7943:4;7965:39;7974:12;:10;:12::i;:::-;7988:7;7997:6;7965:8;:39::i;:::-;8022:4;8015:11;;7841:193;;;;:::o;5392:41::-;;;;;;;;;;;;;:::o;6304:100::-;6357:7;5201:19;6377;;6304:100;:::o;13011:443::-;13143:4;13160:36;13170:6;13178:9;13189:6;13160:9;:36::i;:::-;13207:217;13230:6;13251:12;:10;:12::i;:::-;13278:135;13334:6;13278:135;;;;;;;;;;;;;;;;;:11;:19;13290:6;13278:19;;;;;;;;;;;;;;;:33;13298:12;:10;:12::i;:::-;13278:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;13207:8;:217::i;:::-;13442:4;13435:11;;13011:443;;;;;:::o;14946:402::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15064:1:::1;15052:8;:13;;:31;;;;;15081:2;15069:8;:14;;15052:31;15030:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15191:1;15178:9;:14;;:33;;;;;15209:2;15196:9;:15;;15178:33;15156:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;15299:8;15287:9;:20;;;;15331:9;15318:10;:22;;;;14946:402:::0;;:::o;6826:83::-;6867:5;4596:1;6885:16;;6826:83;:::o;5440:28::-;;;;;;;;;;;;;:::o;15539:107::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15627:11:::1;15612:12;:26;;;;15539:107:::0;:::o;5280:47::-;;;;:::o;6412:138::-;6478:7;6505:37;6525:7;:16;6533:7;6525:16;;;;;;;;;;;;;;;;6505:19;:37::i;:::-;6498:44;;6412:138;;;:::o;3843:148::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3950:1:::1;3913:40;;3934:6;::::0;::::1;;;;;;;;3913:40;;;;;;;;;;;;3981:1;3964:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3843:148::o:0;15387:107::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15475:11:::1;15461;:25;;;;15387:107:::0;:::o;7517:124::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7617:16:::1;7599:15;;:34;;;;;;;;;;;;;;;;;;7517:124:::0;:::o;3756:79::-;3794:7;3821:6;;;;;;;;;;;3814:13;;3756:79;:::o;7008:87::-;7047:13;7080:7;;;;;;;;;;;;;;;;;7073:14;;7008:87;:::o;13462:162::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13598:18:::1;13576:19;:40;;;;13462:162:::0;:::o;5227:46::-;;;;:::o;12804:199::-;12909:4;12931:42;12941:12;:10;:12::i;:::-;12955:9;12966:6;12931:9;:42::i;:::-;12991:4;12984:11;;12804:199;;;;:::o;8375:107::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8461:13:::1;8446:12;;:28;;;;;;;;;;;;;;;;;;8375:107:::0;:::o;12602:194::-;12668:16;;;;;;;;;;;12652:32;;:12;:10;:12::i;:::-;:32;;;12644:41;;;;;;12696:23;12722:24;12740:4;12722:9;:24::i;:::-;12696:50;;12757:31;12772:15;12757:14;:31::i;:::-;12633:163;12602:194::o;6558:260::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6701:9:::1;6696:115;6720:8;;:15;;6716:1;:19;6696:115;;;6791:8;6757:18;:31;6776:8;;6785:1;6776:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6757:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;6737:3;;;;;:::i;:::-;;;;6696:115;;;;6558:260:::0;;;:::o;7649:184::-;7766:7;7798:11;:18;7810:5;7798:18;;;;;;;;;;;;;;;:27;7817:7;7798:27;;;;;;;;;;;;;;;;7791:34;;7649:184;;;;:::o;11938:198::-;12003:16;;;;;;;;;;;11987:32;;:12;:10;:12::i;:::-;:32;;;11979:41;;;;;;12031:26;12060:21;12031:50;;12092:36;12109:18;12092:16;:36::i;:::-;11968:168;11938:198::o;5334:49::-;;;;:::o;3999:281::-;3679:12;:10;:12::i;:::-;3669:22;;:6;;;;;;;;;;:22;;;3661:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4122:1:::1;4102:22;;:8;:22;;::::0;4080:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4235:8;4206:38;;4227:6;::::0;::::1;;;;;;;;4206:38;;;;;;;;;;;;4264:8;4255:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3999:281:::0;:::o;988:98::-;1041:7;1068:10;1061:17;;988:98;:::o;8694:361::-;8838:1;8821:19;;:5;:19;;;8813:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8914:1;8895:21;;:7;:21;;;8887:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8993:6;8963:11;:18;8975:5;8963:18;;;;;;;;;;;;;;;:27;8982:7;8963:27;;;;;;;;;;;;;;;:36;;;;9031:7;9015:32;;9024:5;9015:32;;;9040:6;9015:32;;;;;;:::i;:::-;;;;;;;;8694:361;;;:::o;9063:2268::-;9201:1;9185:18;;:4;:18;;;9177:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9272:1;9258:16;;:2;:16;;;9250:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9336:1;9327:6;:10;9319:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9394:7;:5;:7::i;:::-;9386:15;;:4;:15;;;;:32;;;;;9411:7;:5;:7::i;:::-;9405:13;;:2;:13;;;;9386:32;9382:1384;;;9473:12;;;;;;;;;;;9468:189;;9544:7;:5;:7::i;:::-;9536:15;;:4;:15;;;9506:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9468:189;9691:11;;9681:6;:21;;9673:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9764:13;;;;;;;;;;;9758:19;;:2;:19;;;9754:195;;9853:12;;9844:6;9828:13;9838:2;9828:9;:13::i;:::-;:22;;;;:::i;:::-;:37;9798:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9754:195;9965:28;9996:24;10014:4;9996:9;:24::i;:::-;9965:55;;10035:16;10078:19;;10054:20;:43;;10035:62;;10142:11;;10118:20;:35;10114:110;;10197:11;;10174:34;;10114:110;10262:11;:41;;;;;10295:8;;;;;;;;;;;10294:9;10262:41;:83;;;;;10332:13;;;;;;;;;;;10324:21;;:4;:21;;;;10262:83;:119;;;;;10366:15;;;;;;;;;;;10262:119;:165;;;;;10403:18;:24;10422:4;10403:24;;;;;;;;;;;;;;;;;;;;;;;;;10402:25;10262:165;:209;;;;;10449:18;:22;10468:2;10449:22;;;;;;;;;;;;;;;;;;;;;;;;;10448:23;10262:209;10240:515;;;10506:36;10521:20;10506:14;:36::i;:::-;10561:26;10590:21;10561:50;;10655:1;10634:18;:22;10630:110;;;10681:39;10698:21;10681:16;:39::i;:::-;10630:110;10487:268;10240:515;9420:1346;;9382:1384;10778:12;10793:4;10778:19;;10829:18;:24;10848:4;10829:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10857:18;:22;10876:2;10857:22;;;;;;;;;;;;;;;;;;;;;;;;;10829:50;10828:115;;;;10906:13;;;;;;;;;;;10898:21;;:4;:21;;;;:44;;;;;10929:13;;;;;;;;;;;10923:19;;:2;:19;;;;10898:44;10828:115;10810:460;;;10980:5;10970:15;;10810:460;;;11030:13;;;;;;;;;;;11022:21;;:4;:21;;;:55;;;;;11061:15;;;;;;;;;;;11047:30;;:2;:30;;;;11022:55;11018:112;;;11105:9;;11098:4;:16;;;;11018:112;11156:13;;;;;;;;;;;11150:19;;:2;:19;;;:55;;;;;11189:15;;;;;;;;;;;11173:32;;:4;:32;;;;11150:55;11146:113;;;11233:10;;11226:4;:17;;;;11146:113;10810:460;11282:41;11297:4;11303:2;11307:6;11315:7;11282:14;:41::i;:::-;9166:2165;9063:2268;;;:::o;2481:224::-;2601:7;2634:1;2629;:6;;2637:12;2621:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2661:9;2677:1;2673;:5;;;;:::i;:::-;2661:17;;2696:1;2689:8;;;2481:224;;;;;:::o;8042:325::-;8137:7;8195;;8184;:18;;8162:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8285:19;8307:10;:8;:10::i;:::-;8285:32;;8335:24;8347:11;8335:7;:11;;:24;;;;:::i;:::-;8328:31;;;8042:325;;;:::o;11339:481::-;5634:4;5623:8;;:15;;;;;;;;;;;;;;;;;;11415:21:::1;11453:1;11439:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11415:40;;11484:4;11466;11471:1;11466:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11510:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11500:4;11505:1;11500:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11543:62;11560:4;11575:15;;;;;;;;;;;11593:11;11543:8;:62::i;:::-;11616:15;;;;;;;;;;;:66;;;11697:11;11723:1;11739:4;11766;11786:15;11616:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11404:416;5672:5:::0;5661:8;;:16;;;;;;;;;;;;;;;;;;11339:481;:::o;11828:102::-;11889:16;;;;;;;;;;;:25;;:33;11915:6;11889:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11828:102;:::o;12316:278::-;12472:7;12467:23;;12481:9;:7;:9::i;:::-;12467:23;12501:48;12523:6;12531:9;12542:6;12501:21;:48::i;:::-;12565:7;12560:26;;12574:12;:10;:12::i;:::-;12560:26;12316:278;;;;:::o;12144:164::-;12186:7;12207:15;12224;12243:19;:17;:19::i;:::-;12206:56;;;;12280:20;12292:7;12280;:11;;:20;;;;:::i;:::-;12273:27;;;;12144:164;:::o;2713:132::-;2771:7;2798:39;2802:1;2805;2798:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2791:46;;2713:132;;;;:::o;8490:120::-;8540:1;8532:4;;:9;8528:22;8543:7;8528:22;8577:4;;8562:12;:19;;;;8601:1;8594:4;:8;;;;8490:120;:::o;13632:535::-;13783:15;13813:23;13851;13889:13;13916:22;13930:7;13916:13;:22::i;:::-;13768:170;;;;;;;;13967:28;13987:7;13967;:15;13975:6;13967:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13949:7;:15;13957:6;13949:15;;;;;;;;;;;;;;;:46;;;;14027:39;14050:15;14027:7;:18;14035:9;14027:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14006:7;:18;14014:9;14006:18;;;;;;;;;;;;;;;:60;;;;14077:22;14093:5;14077:15;:22::i;:::-;14132:9;14115:44;;14124:6;14115:44;;;14143:15;14115:44;;;;;;:::i;:::-;;;;;;;;13757:410;;;;13632:535;;;:::o;8618:68::-;8666:12;;8659:4;:19;;;;8618:68::o;7391:118::-;7442:7;7451;7479;;5201:19;7471:30;;;;7391:118;;:::o;2250:223::-;2370:7;2402:1;2398;:5;2405:12;2390:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2429:9;2445:1;2441;:5;;;;:::i;:::-;2429:17;;2464:1;2457:8;;;2250:223;;;;;:::o;14400:538::-;14503:7;14525;14547;14569;14605:23;14630:13;14647:26;14659:7;14668:4;;14647:11;:26::i;:::-;14604:69;;;;14684:19;14706:10;:8;:10::i;:::-;14684:32;;14728:15;14745:23;14772:90;14798:7;14820:5;14840:11;14772;:90::i;:::-;14727:135;;;;14881:7;14890:15;14907;14924:5;14873:57;;;;;;;;;;;;;14400:538;;;;;:::o;2106:136::-;2164:7;2191:43;2195:1;2198;2191:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2184:50;;2106:136;;;;:::o;1919:179::-;1977:7;1997:9;2013:1;2009;:5;;;;:::i;:::-;1997:17;;2038:1;2033;:6;;2025:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2089:1;2082:8;;;1919:179;;;;:::o;14175:217::-;14234:19;14256:10;:8;:10::i;:::-;14234:32;;14277:13;14293:22;14303:11;14293:5;:9;;:22;;;;:::i;:::-;14277:38;;14351:33;14378:5;14351:7;:22;14367:4;14351:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14326:7;:22;14342:4;14326:22;;;;;;;;;;;;;;;:58;;;;14223:169;;14175:217;:::o;7103:280::-;7203:7;7212;7237:13;7253:25;7274:3;7253:16;7265:3;7253:7;:11;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;7237:41;;7289:23;7315:18;7327:5;7315:7;:11;;:18;;;;:::i;:::-;7289:44;;7352:15;7369:5;7344:31;;;;;;7103:280;;;;;:::o;15654:357::-;15784:7;15793;15813:15;15831:24;15843:11;15831:7;:11;;:24;;;;:::i;:::-;15813:42;;15866:13;15882:22;15892:11;15882:5;:9;;:22;;;;:::i;:::-;15866:38;;15915:23;15941:18;15953:5;15941:7;:11;;:18;;;;:::i;:::-;15915:44;;15978:7;15987:15;15970:33;;;;;;;15654:357;;;;;;:::o;2853:246::-;2911:7;2940:1;2935;:6;2931:47;;2965:1;2958:8;;;;2931:47;2988:9;3004:1;3000;:5;;;;:::i;:::-;2988:17;;3033:1;3028;3024;:5;;;;:::i;:::-;:10;3016:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3090:1;3083:8;;;2853:246;;;;;:::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;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:151::-;3867:9;3900:37;3931:5;3900:37;:::i;:::-;3887:50;;3792:151;;;:::o;3949:181::-;4061:62;4117:5;4061:62;:::i;:::-;4056:3;4049:75;3949:181;;:::o;4136:272::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:96;4398:1;4387:9;4383:17;4374:6;4305:96;:::i;:::-;4136:272;;;;:::o;4414:118::-;4501:24;4519:5;4501:24;:::i;:::-;4496:3;4489:37;4414:118;;:::o;4538:222::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4682:71;4750:1;4739:9;4735:17;4726:6;4682:71;:::i;:::-;4538:222;;;;:::o;4766:619::-;4843:6;4851;4859;4908:2;4896:9;4887:7;4883:23;4879:32;4876:119;;;4914:79;;:::i;:::-;4876:119;5034:1;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5005:117;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;5289:2;5315:53;5360:7;5351:6;5340:9;5336:22;5315:53;:::i;:::-;5305:63;;5260:118;4766:619;;;;;:::o;5391:474::-;5459:6;5467;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5769:2;5795:53;5840:7;5831:6;5820:9;5816:22;5795:53;:::i;:::-;5785:63;;5740:118;5391:474;;;;;:::o;5871:86::-;5906:7;5946:4;5939:5;5935:16;5924:27;;5871:86;;;:::o;5963:112::-;6046:22;6062:5;6046:22;:::i;:::-;6041:3;6034:35;5963:112;;:::o;6081:214::-;6170:4;6208:2;6197:9;6193:18;6185:26;;6221:67;6285:1;6274:9;6270:17;6261:6;6221:67;:::i;:::-;6081:214;;;;:::o;6301:118::-;6388:24;6406:5;6388:24;:::i;:::-;6383:3;6376:37;6301:118;;:::o;6425:222::-;6518:4;6556:2;6545:9;6541:18;6533:26;;6569:71;6637:1;6626:9;6622:17;6613:6;6569:71;:::i;:::-;6425:222;;;;:::o;6653:329::-;6712:6;6761:2;6749:9;6740:7;6736:23;6732:32;6729:119;;;6767:79;;:::i;:::-;6729:119;6887:1;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6858:117;6653:329;;;;:::o;6988:::-;7047:6;7096:2;7084:9;7075:7;7071:23;7067:32;7064:119;;;7102:79;;:::i;:::-;7064:119;7222:1;7247:53;7292:7;7283:6;7272:9;7268:22;7247:53;:::i;:::-;7237:63;;7193:117;6988:329;;;;:::o;7323:116::-;7393:21;7408:5;7393:21;:::i;:::-;7386:5;7383:32;7373:60;;7429:1;7426;7419:12;7373:60;7323:116;:::o;7445:133::-;7488:5;7526:6;7513:20;7504:29;;7542:30;7566:5;7542:30;:::i;:::-;7445:133;;;;:::o;7584:323::-;7640:6;7689:2;7677:9;7668:7;7664:23;7660:32;7657:119;;;7695:79;;:::i;:::-;7657:119;7815:1;7840:50;7882:7;7873:6;7862:9;7858:22;7840:50;:::i;:::-;7830:60;;7786:114;7584:323;;;;:::o;7913:117::-;8022:1;8019;8012:12;8036:117;8145:1;8142;8135:12;8159:117;8268:1;8265;8258:12;8299:568;8372:8;8382:6;8432:3;8425:4;8417:6;8413:17;8409:27;8399:122;;8440:79;;:::i;:::-;8399:122;8553:6;8540:20;8530:30;;8583:18;8575:6;8572:30;8569:117;;;8605:79;;:::i;:::-;8569:117;8719:4;8711:6;8707:17;8695:29;;8773:3;8765:4;8757:6;8753:17;8743:8;8739:32;8736:41;8733:128;;;8780:79;;:::i;:::-;8733:128;8299:568;;;;;:::o;8873:698::-;8965:6;8973;8981;9030:2;9018:9;9009:7;9005:23;9001:32;8998:119;;;9036:79;;:::i;:::-;8998:119;9184:1;9173:9;9169:17;9156:31;9214:18;9206:6;9203:30;9200:117;;;9236:79;;:::i;:::-;9200:117;9349:80;9421:7;9412:6;9401:9;9397:22;9349:80;:::i;:::-;9331:98;;;;9127:312;9478:2;9504:50;9546:7;9537:6;9526:9;9522:22;9504:50;:::i;:::-;9494:60;;9449:115;8873:698;;;;;:::o;9577:474::-;9645:6;9653;9702:2;9690:9;9681:7;9677:23;9673:32;9670:119;;;9708:79;;:::i;:::-;9670:119;9828:1;9853:53;9898:7;9889:6;9878:9;9874:22;9853:53;:::i;:::-;9843:63;;9799:117;9955:2;9981:53;10026:7;10017:6;10006:9;10002:22;9981:53;:::i;:::-;9971:63;;9926:118;9577:474;;;;;:::o;10057:182::-;10197:34;10193:1;10185:6;10181:14;10174:58;10057:182;:::o;10245:366::-;10387:3;10408:67;10472:2;10467:3;10408:67;:::i;:::-;10401:74;;10484:93;10573:3;10484:93;:::i;:::-;10602:2;10597:3;10593:12;10586:19;;10245:366;;;:::o;10617:419::-;10783:4;10821:2;10810:9;10806:18;10798:26;;10870:9;10864:4;10860:20;10856:1;10845:9;10841:17;10834:47;10898:131;11024:4;10898:131;:::i;:::-;10890:139;;10617:419;;;:::o;11042:221::-;11182:34;11178:1;11170:6;11166:14;11159:58;11251:4;11246:2;11238:6;11234:15;11227:29;11042:221;:::o;11269:366::-;11411:3;11432:67;11496:2;11491:3;11432:67;:::i;:::-;11425:74;;11508:93;11597:3;11508:93;:::i;:::-;11626:2;11621:3;11617:12;11610:19;;11269:366;;;:::o;11641:419::-;11807:4;11845:2;11834:9;11830:18;11822:26;;11894:9;11888:4;11884:20;11880:1;11869:9;11865:17;11858:47;11922:131;12048:4;11922:131;:::i;:::-;11914:139;;11641:419;;;:::o;12066:222::-;12206:34;12202:1;12194:6;12190:14;12183:58;12275:5;12270:2;12262:6;12258:15;12251:30;12066:222;:::o;12294:366::-;12436:3;12457:67;12521:2;12516:3;12457:67;:::i;:::-;12450:74;;12533:93;12622:3;12533:93;:::i;:::-;12651:2;12646:3;12642:12;12635:19;;12294:366;;;:::o;12666:419::-;12832:4;12870:2;12859:9;12855:18;12847:26;;12919:9;12913:4;12909:20;12905:1;12894:9;12890:17;12883:47;12947:131;13073:4;12947:131;:::i;:::-;12939:139;;12666:419;;;:::o;13091:180::-;13139:77;13136:1;13129:88;13236:4;13233:1;13226:15;13260:4;13257:1;13250:15;13277:180;13325:77;13322:1;13315:88;13422:4;13419:1;13412:15;13446:4;13443:1;13436:15;13463:233;13502:3;13525:24;13543:5;13525:24;:::i;:::-;13516:33;;13571:66;13564:5;13561:77;13558:103;;13641:18;;:::i;:::-;13558:103;13688:1;13681:5;13677:13;13670:20;;13463:233;;;:::o;13702:225::-;13842:34;13838:1;13830:6;13826:14;13819:58;13911:8;13906:2;13898:6;13894:15;13887:33;13702:225;:::o;13933:366::-;14075:3;14096:67;14160:2;14155:3;14096:67;:::i;:::-;14089:74;;14172:93;14261:3;14172:93;:::i;:::-;14290:2;14285:3;14281:12;14274:19;;13933:366;;;:::o;14305:419::-;14471:4;14509:2;14498:9;14494:18;14486:26;;14558:9;14552:4;14548:20;14544:1;14533:9;14529:17;14522:47;14586:131;14712:4;14586:131;:::i;:::-;14578:139;;14305:419;;;:::o;14730:181::-;14870:33;14866:1;14858:6;14854:14;14847:57;14730:181;:::o;14917:366::-;15059:3;15080:67;15144:2;15139:3;15080:67;:::i;:::-;15073:74;;15156:93;15245:3;15156:93;:::i;:::-;15274:2;15269:3;15265:12;15258:19;;14917:366;;;:::o;15289:419::-;15455:4;15493:2;15482:9;15478:18;15470:26;;15542:9;15536:4;15532:20;15528:1;15517:9;15513:17;15506:47;15570:131;15696:4;15570:131;:::i;:::-;15562:139;;15289:419;;;:::o;15714:179::-;15854:31;15850:1;15842:6;15838:14;15831:55;15714:179;:::o;15899:366::-;16041:3;16062:67;16126:2;16121:3;16062:67;:::i;:::-;16055:74;;16138:93;16227:3;16138:93;:::i;:::-;16256:2;16251:3;16247:12;16240:19;;15899:366;;;:::o;16271:419::-;16437:4;16475:2;16464:9;16460:18;16452:26;;16524:9;16518:4;16514:20;16510:1;16499:9;16495:17;16488:47;16552:131;16678:4;16552:131;:::i;:::-;16544:139;;16271:419;;;:::o;16696:181::-;16836:33;16832:1;16824:6;16820:14;16813:57;16696:181;:::o;16883:366::-;17025:3;17046:67;17110:2;17105:3;17046:67;:::i;:::-;17039:74;;17122:93;17211:3;17122:93;:::i;:::-;17240:2;17235:3;17231:12;17224:19;;16883:366;;;:::o;17255:419::-;17421:4;17459:2;17448:9;17444:18;17436:26;;17508:9;17502:4;17498:20;17494:1;17483:9;17479:17;17472:47;17536:131;17662:4;17536:131;:::i;:::-;17528:139;;17255:419;;;:::o;17680:179::-;17820:31;17816:1;17808:6;17804:14;17797:55;17680:179;:::o;17865:366::-;18007:3;18028:67;18092:2;18087:3;18028:67;:::i;:::-;18021:74;;18104:93;18193:3;18104:93;:::i;:::-;18222:2;18217:3;18213:12;18206:19;;17865:366;;;:::o;18237:419::-;18403:4;18441:2;18430:9;18426:18;18418:26;;18490:9;18484:4;18480:20;18476:1;18465:9;18461:17;18454:47;18518:131;18644:4;18518:131;:::i;:::-;18510:139;;18237:419;;;:::o;18662:177::-;18802:29;18798:1;18790:6;18786:14;18779:53;18662:177;:::o;18845:366::-;18987:3;19008:67;19072:2;19067:3;19008:67;:::i;:::-;19001:74;;19084:93;19173:3;19084:93;:::i;:::-;19202:2;19197:3;19193:12;19186:19;;18845:366;;;:::o;19217:419::-;19383:4;19421:2;19410:9;19406:18;19398:26;;19470:9;19464:4;19460:20;19456:1;19445:9;19441:17;19434:47;19498:131;19624:4;19498:131;:::i;:::-;19490:139;;19217:419;;;:::o;19642:233::-;19782:34;19778:1;19770:6;19766:14;19759:58;19851:16;19846:2;19838:6;19834:15;19827:41;19642:233;:::o;19881:366::-;20023:3;20044:67;20108:2;20103:3;20044:67;:::i;:::-;20037:74;;20120:93;20209:3;20120:93;:::i;:::-;20238:2;20233:3;20229:12;20222:19;;19881:366;;;:::o;20253:419::-;20419:4;20457:2;20446:9;20442:18;20434:26;;20506:9;20500:4;20496:20;20492:1;20481:9;20477:17;20470:47;20534:131;20660:4;20534:131;:::i;:::-;20526:139;;20253:419;;;:::o;20678:180::-;20818:32;20814:1;20806:6;20802:14;20795:56;20678:180;:::o;20864:366::-;21006:3;21027:67;21091:2;21086:3;21027:67;:::i;:::-;21020:74;;21103:93;21192:3;21103:93;:::i;:::-;21221:2;21216:3;21212:12;21205:19;;20864:366;;;:::o;21236:419::-;21402:4;21440:2;21429:9;21425:18;21417:26;;21489:9;21483:4;21479:20;21475:1;21464:9;21460:17;21453:47;21517:131;21643:4;21517:131;:::i;:::-;21509:139;;21236:419;;;:::o;21661:191::-;21701:3;21720:20;21738:1;21720:20;:::i;:::-;21715:25;;21754:20;21772:1;21754:20;:::i;:::-;21749:25;;21797:1;21794;21790:9;21783:16;;21818:3;21815:1;21812:10;21809:36;;;21825:18;;:::i;:::-;21809:36;21661:191;;;;:::o;21858:174::-;21998:26;21994:1;21986:6;21982:14;21975:50;21858:174;:::o;22038:366::-;22180:3;22201:67;22265:2;22260:3;22201:67;:::i;:::-;22194:74;;22277:93;22366:3;22277:93;:::i;:::-;22395:2;22390:3;22386:12;22379:19;;22038:366;;;:::o;22410:419::-;22576:4;22614:2;22603:9;22599:18;22591:26;;22663:9;22657:4;22653:20;22649:1;22638:9;22634:17;22627:47;22691:131;22817:4;22691:131;:::i;:::-;22683:139;;22410:419;;;:::o;22835:194::-;22875:4;22895:20;22913:1;22895:20;:::i;:::-;22890:25;;22929:20;22947:1;22929:20;:::i;:::-;22924:25;;22973:1;22970;22966:9;22958:17;;22997:1;22991:4;22988:11;22985:37;;;23002:18;;:::i;:::-;22985:37;22835:194;;;;:::o;23035:231::-;23175:34;23171:1;23163:6;23159:14;23152:58;23244:14;23239:2;23231:6;23227:15;23220:39;23035:231;:::o;23272:366::-;23414:3;23435:67;23499:2;23494:3;23435:67;:::i;:::-;23428:74;;23511:93;23600:3;23511:93;:::i;:::-;23629:2;23624:3;23620:12;23613:19;;23272:366;;;:::o;23644:419::-;23810:4;23848:2;23837:9;23833:18;23825:26;;23897:9;23891:4;23887:20;23883:1;23872:9;23868:17;23861:47;23925:131;24051:4;23925:131;:::i;:::-;23917:139;;23644:419;;;:::o;24069:180::-;24117:77;24114:1;24107:88;24214:4;24211:1;24204:15;24238:4;24235:1;24228:15;24255:143;24312:5;24343:6;24337:13;24328:22;;24359:33;24386:5;24359:33;:::i;:::-;24255:143;;;;:::o;24404:351::-;24474:6;24523:2;24511:9;24502:7;24498:23;24494:32;24491:119;;;24529:79;;:::i;:::-;24491:119;24649:1;24674:64;24730:7;24721:6;24710:9;24706:22;24674:64;:::i;:::-;24664:74;;24620:128;24404:351;;;;:::o;24761:85::-;24806:7;24835:5;24824:16;;24761:85;;;:::o;24852:158::-;24910:9;24943:61;24961:42;24970:32;24996:5;24970:32;:::i;:::-;24961:42;:::i;:::-;24943:61;:::i;:::-;24930:74;;24852:158;;;:::o;25016:147::-;25111:45;25150:5;25111:45;:::i;:::-;25106:3;25099:58;25016:147;;:::o;25169:114::-;25236:6;25270:5;25264:12;25254:22;;25169:114;;;:::o;25289:184::-;25388:11;25422:6;25417:3;25410:19;25462:4;25457:3;25453:14;25438:29;;25289:184;;;;:::o;25479:132::-;25546:4;25569:3;25561:11;;25599:4;25594:3;25590:14;25582:22;;25479:132;;;:::o;25617:108::-;25694:24;25712:5;25694:24;:::i;:::-;25689:3;25682:37;25617:108;;:::o;25731:179::-;25800:10;25821:46;25863:3;25855:6;25821:46;:::i;:::-;25899:4;25894:3;25890:14;25876:28;;25731:179;;;;:::o;25916:113::-;25986:4;26018;26013:3;26009:14;26001:22;;25916:113;;;:::o;26065:732::-;26184:3;26213:54;26261:5;26213:54;:::i;:::-;26283:86;26362:6;26357:3;26283:86;:::i;:::-;26276:93;;26393:56;26443:5;26393:56;:::i;:::-;26472:7;26503:1;26488:284;26513:6;26510:1;26507:13;26488:284;;;26589:6;26583:13;26616:63;26675:3;26660:13;26616:63;:::i;:::-;26609:70;;26702:60;26755:6;26702:60;:::i;:::-;26692:70;;26548:224;26535:1;26532;26528:9;26523:14;;26488:284;;;26492:14;26788:3;26781:10;;26189:608;;;26065:732;;;;:::o;26803:831::-;27066:4;27104:3;27093:9;27089:19;27081:27;;27118:71;27186:1;27175:9;27171:17;27162:6;27118:71;:::i;:::-;27199:80;27275:2;27264:9;27260:18;27251:6;27199:80;:::i;:::-;27326:9;27320:4;27316:20;27311:2;27300:9;27296:18;27289:48;27354:108;27457:4;27448:6;27354:108;:::i;:::-;27346:116;;27472:72;27540:2;27529:9;27525:18;27516:6;27472:72;:::i;:::-;27554:73;27622:3;27611:9;27607:19;27598:6;27554:73;:::i;:::-;26803:831;;;;;;;;:::o;27640:180::-;27688:77;27685:1;27678:88;27785:4;27782:1;27775:15;27809:4;27806:1;27799:15;27826:185;27866:1;27883:20;27901:1;27883:20;:::i;:::-;27878:25;;27917:20;27935:1;27917:20;:::i;:::-;27912:25;;27956:1;27946:35;;27961:18;;:::i;:::-;27946:35;28003:1;28000;27996:9;27991:14;;27826:185;;;;:::o;28017:177::-;28157:29;28153:1;28145:6;28141:14;28134:53;28017:177;:::o;28200:366::-;28342:3;28363:67;28427:2;28422:3;28363:67;:::i;:::-;28356:74;;28439:93;28528:3;28439:93;:::i;:::-;28557:2;28552:3;28548:12;28541:19;;28200:366;;;:::o;28572:419::-;28738:4;28776:2;28765:9;28761:18;28753:26;;28825:9;28819:4;28815:20;28811:1;28800:9;28796:17;28789:47;28853:131;28979:4;28853:131;:::i;:::-;28845:139;;28572:419;;;:::o;28997:410::-;29037:7;29060:20;29078:1;29060:20;:::i;:::-;29055:25;;29094:20;29112:1;29094:20;:::i;:::-;29089:25;;29149:1;29146;29142:9;29171:30;29189:11;29171:30;:::i;:::-;29160:41;;29350:1;29341:7;29337:15;29334:1;29331:22;29311:1;29304:9;29284:83;29261:139;;29380:18;;:::i;:::-;29261:139;29045:362;28997:410;;;;:::o;29413:220::-;29553:34;29549:1;29541:6;29537:14;29530:58;29622:3;29617:2;29609:6;29605:15;29598:28;29413:220;:::o;29639:366::-;29781:3;29802:67;29866:2;29861:3;29802:67;:::i;:::-;29795:74;;29878:93;29967:3;29878:93;:::i;:::-;29996:2;29991:3;29987:12;29980:19;;29639:366;;;:::o;30011:419::-;30177:4;30215:2;30204:9;30200:18;30192:26;;30264:9;30258:4;30254:20;30250:1;30239:9;30235:17;30228:47;30292:131;30418:4;30292:131;:::i;:::-;30284:139;;30011:419;;;:::o

Swarm Source

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