ETH Price: $3,229.49 (+1.83%)
Gas: 5 Gwei

Token

Crypto Boy (CBOY)
 

Overview

Max Total Supply

10,000,000 CBOY

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000223158 CBOY

Value
$0.00
0x50c6e3920d44fd1c803e278cb762aaa4118e151e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoBoy

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

/**

        Crypto Boy 

 //    Website   : https://cryptoboy.bio/
 //    Telegram  : https://t.me/CryptoBoyERC
 //    Twitter/X : https://twitter.com/CryptoBoyERC

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.18;

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

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

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

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

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

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

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

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract CryptoBoy is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 10_000_000e18;
    uint256 private constant onePercent = 100_000e18;
    uint256 private constant tenthPercent = 10_000e18;
    uint256 private minSwap = 25_000e18;
    uint256 private maxSwap = onePercent;
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address immutable WETH;
    address payable immutable marketingWallet;

    uint256 public buyTax;
    uint256 public sellTax;
    uint public lpTax;
    
    uint8 private launch;
    uint8 private inSwapAndLiquify;

    uint256 private launchBlock;
    uint256 public maxTxAmount = onePercent * 2; //max Tx for first mins after launch
    uint256 public maxWalletAmount = onePercent * 2; //max Tx for first mins after launch

    string private constant _name = "Crypto Boy";
    string private constant _symbol = "CBOY";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;
    mapping(address => bool) private _isExcludedFromMaxWallet;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 25;
        sellTax = 30;
        lpTax = 0;

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

        
        marketingWallet = payable(msg.sender);
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFeeWallet[marketingWallet] = true;
        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[address(this)] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[address(uniswapV2Router)] = true;
        _isExcludedFromMaxWallet[address(uniswapV2Pair)] = true;
        _isExcludedFromMaxWallet[address(0)] = true;
        _isExcludedFromMaxWallet[address(0xDEAD)] = true;
        _isExcludedFromMaxWallet[msg.sender] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;

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

    // modifier checkMaxWallet(address sender, address recipient, uint256 amount) {
        
    //     _;
    // }

    function name() public pure returns (string memory) {
        return _name;
    }
    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function withdrawMax() external onlyOwner {
        require(getContractBalance() > 0, "No balance to withdraw");
        
        uint256 amountToWithdraw = getContractBalance();
        
        payable(owner()).transfer(amountToWithdraw);
    }

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

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

    function openTrading() external onlyOwner {
        launch = 1;
        launchBlock = block.number;
    }

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFeeWallet[wallet] = true;
        _isExcludedFromMaxWallet[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
        maxWalletAmount = _totalSupply;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax, uint newLpTax) external onlyOwner {
        require(newBuyTax < 90 || newSellTax < 90 || newLpTax < 90 || (newBuyTax + newSellTax + newLpTax) < 90, "Cannot set taxes above 90%");
        buyTax = newBuyTax;
        sellTax = newSellTax;
        lpTax = newLpTax;
    }

    function manage_blacklist(address[] calldata addresses) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            _balance[addresses[i]] = 0;
        }
    }

    function changeMaxWallet(uint256 newMaxWallet) public onlyOwner {
        require(newMaxWallet < 99, "Max wallet cannot be above 99%");
        maxWalletAmount = newMaxWallet * tenthPercent;
    }

    function changeMaxTx(uint256 newMaxTx) public onlyOwner {
        require(newMaxTx < 99, "Max Tx cannot be above 99%");
        maxTxAmount = newMaxTx * tenthPercent;
    }

    function changeMaxSwapThreshold(uint256 newMaxSwapThreshold) external onlyOwner {
        require(newMaxSwapThreshold < 999, "Max Swap cannot be greater than 99%");
        require(newMaxSwapThreshold > minSwap, "Max Swap cannot be less than min swap");
        maxSwap = newMaxSwapThreshold * tenthPercent;
    }

    function changeMinSwapThreshold(uint256 newMinSwapThreshold) external onlyOwner {
        require(newMinSwapThreshold < 999, "Min Swap cannot be greater than 99%");
        require(newMinSwapThreshold < maxSwap, "Min Swap cannot be greater than max swap");
        minSwap = newMinSwapThreshold * tenthPercent;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");

        uint256 _tax;
        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(
                launch != 0 && amount <= maxTxAmount,
                "Launch / Max TxAmount 1% at launch"
            );
            if (
                !_isExcludedFromMaxWallet[to]
            ) {
                require(
                    _balance[to] + amount <= maxWalletAmount,
                    "Exceeds max wallet balance"
                );
            }

            if (inSwapAndLiquify == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                _tax = buyTax + lpTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    if (tokensToSwap > maxSwap) {
                        tokensToSwap = maxSwap;
                    }
                    
                    uint liqidityToken = (tokensToSwap * lpTax) / (((buyTax + sellTax) / 2 ) + lpTax );
                    uint tokensTosell = tokensToSwap - liqidityToken;

                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensTosell,
                            0,
                            path,
                            marketingWallet,
                            block.timestamp
                        );
                    
                    
                    if ( liqidityToken > 0) {
                        
                        uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            liqidityToken / 2,
                            0,
                            path,
                            address(this),
                            block.timestamp
                        );
                        
                        uint newBal = address(this).balance;
                        uniswapV2Router
                        .addLiquidityETH{value : newBal}(address(this),
                            liqidityToken / 2,
                            0,
                            0,
                            owner(),
                            block.timestamp
                        );
                    }
                    inSwapAndLiquify = 0;
                    
                }
                
                _tax = sellTax + lpTax;
            } else {
                _tax = 0;
            }
        }

        //Is there tax for sender|receiver?
        if (_tax != 0) {
            //Tax transfer
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

            _balance[from] -= amount;
            _balance[to] += transferAmount;
            _balance[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            //No tax transfer
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

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":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSwapThreshold","type":"uint256"}],"name":"changeMaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"changeMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwapThreshold","type":"uint256"}],"name":"changeMinSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"},{"internalType":"uint256","name":"newLpTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"withdrawMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

61010060405269054b40b1f852bda0000060025569152d02c7e14af6800000600355600269152d02c7e14af68000006200003a9190620009a0565b600955600269152d02c7e14af6800000620000569190620009a0565b600a553480156200006657600080fd5b506000620000796200095f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000a55565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506019600481905550601e600581905550600060068190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000292919062000a55565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b8152600401620002d092919062000a98565b6020604051808303816000875af1158015620002f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000316919062000a55565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506a084595161401484a000000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620008e76200095f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a00000060405162000951919062000ad6565b60405180910390a362000af3565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009ad8262000967565b9150620009ba8362000967565b9250828202620009ca8162000967565b91508282048414831517620009e457620009e362000971565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1d82620009f0565b9050919050565b62000a2f8162000a10565b811462000a3b57600080fd5b50565b60008151905062000a4f8162000a24565b92915050565b60006020828403121562000a6e5762000a6d620009eb565b5b600062000a7e8482850162000a3e565b91505092915050565b62000a928162000a10565b82525050565b600060408201905062000aaf600083018562000a87565b62000abe602083018462000a87565b9392505050565b62000ad08162000967565b82525050565b600060208201905062000aed600083018462000ac5565b92915050565b60805160a05160c05160e05161366c62000b496000396000611ebe01526000611e0f015260008181610a1501528181611bc80152611c32015260008181611e7e01528181611f3b0152611fe0015261366c6000f3fe6080604052600436106101c65760003560e01c8063751039fc116100f7578063aa4bde2811610095578063dba9d42011610064578063dba9d42014610605578063dd62ed3e1461062e578063e5cd8b6a1461066b578063f2fde38b14610682576101cd565b8063aa4bde281461056f578063aca1f1571461059a578063c9567bf9146105c3578063cc1776d3146105da576101cd565b80638da5cb5b116100d15780638da5cb5b146104b357806395d89b41146104de578063974ea01e14610509578063a9059cbb14610532576101cd565b8063751039fc14610448578063778c61521461045f5780638c0b5e2214610488576101cd565b806341e1259d1161016457806355811acc1161013e57806355811acc146103a05780636f9fb98a146103c957806370a08231146103f4578063715018a614610431576101cd565b806341e1259d1461032157806349bd5a5e1461034a5780634f7041a514610375576101cd565b806318160ddd116101a057806318160ddd146102635780631de3b4501461028e57806323b872dd146102b9578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630b006d601461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ab565b6040516101f491906125b9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612679565b6106e8565b60405161023191906126d4565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126ef565b610706565b005b34801561026f57600080fd5b506102786107fd565b604051610285919061272b565b60405180910390f35b34801561029a57600080fd5b506102a3610810565b6040516102b0919061272b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612746565b610816565b6040516102ed91906126d4565b60405180910390f35b34801561030257600080fd5b5061030b6108ce565b60405161031891906127b5565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ef565b6108d7565b005b34801561035657600080fd5b5061035f610a13565b60405161036c91906127df565b60405180910390f35b34801561038157600080fd5b5061038a610a37565b604051610397919061272b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906126ef565b610a3d565b005b3480156103d557600080fd5b506103de610b79565b6040516103eb919061272b565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906127fa565b610b81565b604051610428919061272b565b60405180910390f35b34801561043d57600080fd5b50610446610bca565b005b34801561045457600080fd5b5061045d610d1d565b005b34801561046b57600080fd5b50610486600480360381019061048191906126ef565b610dd8565b005b34801561049457600080fd5b5061049d610ecf565b6040516104aa919061272b565b60405180910390f35b3480156104bf57600080fd5b506104c8610ed5565b6040516104d591906127df565b60405180910390f35b3480156104ea57600080fd5b506104f3610efe565b60405161050091906125b9565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612827565b610f3b565b005b34801561053e57600080fd5b5061055960048036038101906105549190612679565b611064565b60405161056691906126d4565b60405180910390f35b34801561057b57600080fd5b50610584611082565b604051610591919061272b565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906128df565b611088565b005b3480156105cf57600080fd5b506105d86111ad565b005b3480156105e657600080fd5b506105ef611267565b6040516105fc919061272b565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906127fa565b61126d565b005b34801561063a57600080fd5b506106556004803603810190610650919061292c565b6113b5565b604051610662919061272b565b60405180910390f35b34801561067757600080fd5b5061068061143c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906127fa565b611578565b005b60606040518060400160405280600a81526020017f43727970746f20426f7900000000000000000000000000000000000000000000815250905090565b60006106fc6106f5611619565b8484611621565b6001905092915050565b61070e611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906129b8565b60405180910390fd5b606381106107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612a24565b60405180910390fd5b69021e19e0c9bab2400000816107f49190612a73565b600a8190555050565b60006a084595161401484a000000905090565b60065481565b60006108238484846117ea565b6108c38461082f611619565b84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610879611619565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be9190612ab5565b611621565b600190509392505050565b60006012905090565b6108df611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906129b8565b60405180910390fd5b6103e781106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612b5b565b60405180910390fd5b60035481106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612bed565b60405180910390fd5b69021e19e0c9bab240000081610a0a9190612a73565b60028190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045481565b610a45611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906129b8565b60405180910390fd5b6103e78110610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90612c7f565b60405180910390fd5b6002548111610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612d11565b60405180910390fd5b69021e19e0c9bab240000081610b709190612a73565b60038190555050565b600047905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd2611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d25611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da9906129b8565b60405180910390fd5b6a084595161401484a0000006009819055506a084595161401484a000000600a81905550565b610de0611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906129b8565b60405180910390fd5b60638110610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea790612d7d565b60405180910390fd5b69021e19e0c9bab240000081610ec69190612a73565b60098190555050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f43424f5900000000000000000000000000000000000000000000000000000000815250905090565b610f43611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b8565b60405180910390fd5b605a831080610fdf5750605a82105b80610fea5750605a81105b8061100b5750605a818385610fff9190612d9d565b6110099190612d9d565b105b61104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612e1d565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000611078611071611619565b84846117ea565b6001905092915050565b600a5481565b611090611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611114906129b8565b60405180910390fd5b60005b828290508110156111a8576000600b600085858581811061114457611143612e3d565b5b905060200201602081019061115991906127fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806111a190612e6c565b9050611120565b505050565b6111b5611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906129b8565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b611275611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f9906129b8565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611444611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c8906129b8565b60405180910390fd5b60006114db610b79565b1161151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612f00565b60405180910390fd5b6000611525610b79565b905061152f610ed5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611574573d6000803e3d6000fd5b5050565b611580611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611604906129b8565b60405180910390fd5b611616816123fd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790612f92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690613024565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117dd919061272b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906130b6565b60405180910390fd5b633b9aca00811161189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690613122565b60405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119425750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195057600090506120dd565b6000600760009054906101000a900460ff1660ff161415801561197557506009548211155b6119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131b4565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a9557600a5482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a539190612d9d565b1115611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613220565b60405180910390fd5b5b6001600760019054906101000a900460ff1660ff1603611bc65781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611afe9190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b549190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb8919061272b565b60405180910390a3506123f8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c3057600654600454611c299190612d9d565b90506120dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d6576000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060025481118015611cea57506000600760019054906101000a900460ff1660ff16145b156120be57600354811115611cff5760035490505b60006006546002600554600454611d169190612d9d565b611d20919061326f565b611d2a9190612d9d565b60065483611d389190612a73565b611d42919061326f565b905060008183611d529190612ab5565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff811115611d8d57611d8c6132a0565b5b604051908082528060200260200182016040528015611dbb5781602001602082028036833780820191505090505b5090503081600081518110611dd357611dd2612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611e4257611e41612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b8152600401611efe959493929190613427565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050600083111561209e577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947600285611f82919061326f565b60008430426040518663ffffffff1660e01b8152600401611fa7959493929190613481565b600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050505060004790507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288612029919061326f565b600080612034610ed5565b426040518863ffffffff1660e01b8152600401612056969594939291906134db565b60606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120999190613551565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b6006546005546120ce9190612d9d565b9150506120db565b600090505b5b5b600081146122e4576000606482846120f59190612a73565b6120ff919061326f565b90506000818461210f9190612ab5565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190612ab5565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b69190612d9d565b9250508190555081600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612d9d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612270919061272b565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d5919061272b565b60405180910390a350506123f6565b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123339190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123899190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061272b565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613616565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612563578082015181840152602081019050612548565b60008484015250505050565b6000601f19601f8301169050919050565b600061258b82612529565b6125958185612534565b93506125a5818560208601612545565b6125ae8161256f565b840191505092915050565b600060208201905081810360008301526125d38184612580565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612610826125e5565b9050919050565b61262081612605565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000819050919050565b61265681612643565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b600080604083850312156126905761268f6125db565b5b600061269e8582860161262e565b92505060206126af85828601612664565b9150509250929050565b60008115159050919050565b6126ce816126b9565b82525050565b60006020820190506126e960008301846126c5565b92915050565b600060208284031215612705576127046125db565b5b600061271384828501612664565b91505092915050565b61272581612643565b82525050565b6000602082019050612740600083018461271c565b92915050565b60008060006060848603121561275f5761275e6125db565b5b600061276d8682870161262e565b935050602061277e8682870161262e565b925050604061278f86828701612664565b9150509250925092565b600060ff82169050919050565b6127af81612799565b82525050565b60006020820190506127ca60008301846127a6565b92915050565b6127d981612605565b82525050565b60006020820190506127f460008301846127d0565b92915050565b6000602082840312156128105761280f6125db565b5b600061281e8482850161262e565b91505092915050565b6000806000606084860312156128405761283f6125db565b5b600061284e86828701612664565b935050602061285f86828701612664565b925050604061287086828701612664565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261289f5761289e61287a565b5b8235905067ffffffffffffffff8111156128bc576128bb61287f565b5b6020830191508360208202830111156128d8576128d7612884565b5b9250929050565b600080602083850312156128f6576128f56125db565b5b600083013567ffffffffffffffff811115612914576129136125e0565b5b61292085828601612889565b92509250509250929050565b60008060408385031215612943576129426125db565b5b60006129518582860161262e565b92505060206129628582860161262e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a2602083612534565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f4d61782077616c6c65742063616e6e6f742062652061626f7665203939250000600082015250565b6000612a0e601e83612534565b9150612a19826129d8565b602082019050919050565b60006020820190508181036000830152612a3d81612a01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7e82612643565b9150612a8983612643565b9250828202612a9781612643565b91508282048414831517612aae57612aad612a44565b5b5092915050565b6000612ac082612643565b9150612acb83612643565b9250828203905081811115612ae357612ae2612a44565b5b92915050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612b45602383612534565b9150612b5082612ae9565b604082019050919050565b60006020820190508181036000830152612b7481612b38565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612bd7602883612534565b9150612be282612b7b565b604082019050919050565b60006020820190508181036000830152612c0681612bca565b9050919050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c69602383612534565b9150612c7482612c0d565b604082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602583612534565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4d61782054782063616e6e6f742062652061626f766520393925000000000000600082015250565b6000612d67601a83612534565b9150612d7282612d31565b602082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b6000612da882612643565b9150612db383612643565b9250828201905080821115612dcb57612dca612a44565b5b92915050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612e07601a83612534565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7782612643565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea957612ea8612a44565b5b600182019050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b6000612eea601683612534565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483612534565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061300e602283612534565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a0602583612534565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b600061310c601083612534565b9150613117826130d6565b602082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b600061319e602283612534565b91506131a982613142565b604082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b600061320a601a83612534565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327a82612643565b915061328583612643565b92508261329557613294613240565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006132fe6132f96132f4846132cf565b6132d9565b612643565b9050919050565b61330e816132e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334981612605565b82525050565b600061335b8383613340565b60208301905092915050565b6000602082019050919050565b600061337f82613314565b613389818561331f565b935061339483613330565b8060005b838110156133c55781516133ac888261334f565b97506133b783613367565b925050600181019050613398565b5085935050505092915050565b60006133ed6133e86133e3846125e5565b6132d9565b6125e5565b9050919050565b60006133ff826133d2565b9050919050565b6000613411826133f4565b9050919050565b61342181613406565b82525050565b600060a08201905061343c600083018861271c565b6134496020830187613305565b818103604083015261345b8186613374565b905061346a6060830185613418565b613477608083018461271c565b9695505050505050565b600060a082019050613496600083018861271c565b6134a36020830187613305565b81810360408301526134b58186613374565b90506134c460608301856127d0565b6134d1608083018461271c565b9695505050505050565b600060c0820190506134f060008301896127d0565b6134fd602083018861271c565b61350a6040830187613305565b6135176060830186613305565b61352460808301856127d0565b61353160a083018461271c565b979650505050505050565b60008151905061354b8161264d565b92915050565b60008060006060848603121561356a576135696125db565b5b60006135788682870161353c565b93505060206135898682870161353c565b925050604061359a8682870161353c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613600602683612534565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b905091905056fea264697066735822122056b942d2ac5048f80284f8856c4b460f5328c1984914e8e1c3fa2ffeb9d03d2864736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063751039fc116100f7578063aa4bde2811610095578063dba9d42011610064578063dba9d42014610605578063dd62ed3e1461062e578063e5cd8b6a1461066b578063f2fde38b14610682576101cd565b8063aa4bde281461056f578063aca1f1571461059a578063c9567bf9146105c3578063cc1776d3146105da576101cd565b80638da5cb5b116100d15780638da5cb5b146104b357806395d89b41146104de578063974ea01e14610509578063a9059cbb14610532576101cd565b8063751039fc14610448578063778c61521461045f5780638c0b5e2214610488576101cd565b806341e1259d1161016457806355811acc1161013e57806355811acc146103a05780636f9fb98a146103c957806370a08231146103f4578063715018a614610431576101cd565b806341e1259d1461032157806349bd5a5e1461034a5780634f7041a514610375576101cd565b806318160ddd116101a057806318160ddd146102635780631de3b4501461028e57806323b872dd146102b9578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630b006d601461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ab565b6040516101f491906125b9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612679565b6106e8565b60405161023191906126d4565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126ef565b610706565b005b34801561026f57600080fd5b506102786107fd565b604051610285919061272b565b60405180910390f35b34801561029a57600080fd5b506102a3610810565b6040516102b0919061272b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612746565b610816565b6040516102ed91906126d4565b60405180910390f35b34801561030257600080fd5b5061030b6108ce565b60405161031891906127b5565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ef565b6108d7565b005b34801561035657600080fd5b5061035f610a13565b60405161036c91906127df565b60405180910390f35b34801561038157600080fd5b5061038a610a37565b604051610397919061272b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906126ef565b610a3d565b005b3480156103d557600080fd5b506103de610b79565b6040516103eb919061272b565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906127fa565b610b81565b604051610428919061272b565b60405180910390f35b34801561043d57600080fd5b50610446610bca565b005b34801561045457600080fd5b5061045d610d1d565b005b34801561046b57600080fd5b50610486600480360381019061048191906126ef565b610dd8565b005b34801561049457600080fd5b5061049d610ecf565b6040516104aa919061272b565b60405180910390f35b3480156104bf57600080fd5b506104c8610ed5565b6040516104d591906127df565b60405180910390f35b3480156104ea57600080fd5b506104f3610efe565b60405161050091906125b9565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612827565b610f3b565b005b34801561053e57600080fd5b5061055960048036038101906105549190612679565b611064565b60405161056691906126d4565b60405180910390f35b34801561057b57600080fd5b50610584611082565b604051610591919061272b565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906128df565b611088565b005b3480156105cf57600080fd5b506105d86111ad565b005b3480156105e657600080fd5b506105ef611267565b6040516105fc919061272b565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906127fa565b61126d565b005b34801561063a57600080fd5b506106556004803603810190610650919061292c565b6113b5565b604051610662919061272b565b60405180910390f35b34801561067757600080fd5b5061068061143c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906127fa565b611578565b005b60606040518060400160405280600a81526020017f43727970746f20426f7900000000000000000000000000000000000000000000815250905090565b60006106fc6106f5611619565b8484611621565b6001905092915050565b61070e611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906129b8565b60405180910390fd5b606381106107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612a24565b60405180910390fd5b69021e19e0c9bab2400000816107f49190612a73565b600a8190555050565b60006a084595161401484a000000905090565b60065481565b60006108238484846117ea565b6108c38461082f611619565b84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610879611619565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be9190612ab5565b611621565b600190509392505050565b60006012905090565b6108df611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906129b8565b60405180910390fd5b6103e781106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612b5b565b60405180910390fd5b60035481106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612bed565b60405180910390fd5b69021e19e0c9bab240000081610a0a9190612a73565b60028190555050565b7f0000000000000000000000000f05b5d7cc858374890a89c02d29a48c15500d0a81565b60045481565b610a45611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906129b8565b60405180910390fd5b6103e78110610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90612c7f565b60405180910390fd5b6002548111610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612d11565b60405180910390fd5b69021e19e0c9bab240000081610b709190612a73565b60038190555050565b600047905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd2611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d25611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da9906129b8565b60405180910390fd5b6a084595161401484a0000006009819055506a084595161401484a000000600a81905550565b610de0611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906129b8565b60405180910390fd5b60638110610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea790612d7d565b60405180910390fd5b69021e19e0c9bab240000081610ec69190612a73565b60098190555050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f43424f5900000000000000000000000000000000000000000000000000000000815250905090565b610f43611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b8565b60405180910390fd5b605a831080610fdf5750605a82105b80610fea5750605a81105b8061100b5750605a818385610fff9190612d9d565b6110099190612d9d565b105b61104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612e1d565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000611078611071611619565b84846117ea565b6001905092915050565b600a5481565b611090611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611114906129b8565b60405180910390fd5b60005b828290508110156111a8576000600b600085858581811061114457611143612e3d565b5b905060200201602081019061115991906127fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806111a190612e6c565b9050611120565b505050565b6111b5611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906129b8565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b611275611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f9906129b8565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611444611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c8906129b8565b60405180910390fd5b60006114db610b79565b1161151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612f00565b60405180910390fd5b6000611525610b79565b905061152f610ed5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611574573d6000803e3d6000fd5b5050565b611580611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611604906129b8565b60405180910390fd5b611616816123fd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790612f92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690613024565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117dd919061272b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906130b6565b60405180910390fd5b633b9aca00811161189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690613122565b60405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119425750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195057600090506120dd565b6000600760009054906101000a900460ff1660ff161415801561197557506009548211155b6119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131b4565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a9557600a5482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a539190612d9d565b1115611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613220565b60405180910390fd5b5b6001600760019054906101000a900460ff1660ff1603611bc65781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611afe9190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b549190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb8919061272b565b60405180910390a3506123f8565b7f0000000000000000000000000f05b5d7cc858374890a89c02d29a48c15500d0a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c3057600654600454611c299190612d9d565b90506120dc565b7f0000000000000000000000000f05b5d7cc858374890a89c02d29a48c15500d0a73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d6576000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060025481118015611cea57506000600760019054906101000a900460ff1660ff16145b156120be57600354811115611cff5760035490505b60006006546002600554600454611d169190612d9d565b611d20919061326f565b611d2a9190612d9d565b60065483611d389190612a73565b611d42919061326f565b905060008183611d529190612ab5565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff811115611d8d57611d8c6132a0565b5b604051908082528060200260200182016040528015611dbb5781602001602082028036833780820191505090505b5090503081600081518110611dd357611dd2612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e4257611e41612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f000000000000000000000000759e565ddaa7619a47f0636ebee34ca3765a07d9426040518663ffffffff1660e01b8152600401611efe959493929190613427565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050600083111561209e577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947600285611f82919061326f565b60008430426040518663ffffffff1660e01b8152600401611fa7959493929190613481565b600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050505060004790507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288612029919061326f565b600080612034610ed5565b426040518863ffffffff1660e01b8152600401612056969594939291906134db565b60606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120999190613551565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b6006546005546120ce9190612d9d565b9150506120db565b600090505b5b5b600081146122e4576000606482846120f59190612a73565b6120ff919061326f565b90506000818461210f9190612ab5565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190612ab5565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b69190612d9d565b9250508190555081600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612d9d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612270919061272b565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d5919061272b565b60405180910390a350506123f6565b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123339190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123899190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061272b565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613616565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612563578082015181840152602081019050612548565b60008484015250505050565b6000601f19601f8301169050919050565b600061258b82612529565b6125958185612534565b93506125a5818560208601612545565b6125ae8161256f565b840191505092915050565b600060208201905081810360008301526125d38184612580565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612610826125e5565b9050919050565b61262081612605565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000819050919050565b61265681612643565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b600080604083850312156126905761268f6125db565b5b600061269e8582860161262e565b92505060206126af85828601612664565b9150509250929050565b60008115159050919050565b6126ce816126b9565b82525050565b60006020820190506126e960008301846126c5565b92915050565b600060208284031215612705576127046125db565b5b600061271384828501612664565b91505092915050565b61272581612643565b82525050565b6000602082019050612740600083018461271c565b92915050565b60008060006060848603121561275f5761275e6125db565b5b600061276d8682870161262e565b935050602061277e8682870161262e565b925050604061278f86828701612664565b9150509250925092565b600060ff82169050919050565b6127af81612799565b82525050565b60006020820190506127ca60008301846127a6565b92915050565b6127d981612605565b82525050565b60006020820190506127f460008301846127d0565b92915050565b6000602082840312156128105761280f6125db565b5b600061281e8482850161262e565b91505092915050565b6000806000606084860312156128405761283f6125db565b5b600061284e86828701612664565b935050602061285f86828701612664565b925050604061287086828701612664565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261289f5761289e61287a565b5b8235905067ffffffffffffffff8111156128bc576128bb61287f565b5b6020830191508360208202830111156128d8576128d7612884565b5b9250929050565b600080602083850312156128f6576128f56125db565b5b600083013567ffffffffffffffff811115612914576129136125e0565b5b61292085828601612889565b92509250509250929050565b60008060408385031215612943576129426125db565b5b60006129518582860161262e565b92505060206129628582860161262e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a2602083612534565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f4d61782077616c6c65742063616e6e6f742062652061626f7665203939250000600082015250565b6000612a0e601e83612534565b9150612a19826129d8565b602082019050919050565b60006020820190508181036000830152612a3d81612a01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7e82612643565b9150612a8983612643565b9250828202612a9781612643565b91508282048414831517612aae57612aad612a44565b5b5092915050565b6000612ac082612643565b9150612acb83612643565b9250828203905081811115612ae357612ae2612a44565b5b92915050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612b45602383612534565b9150612b5082612ae9565b604082019050919050565b60006020820190508181036000830152612b7481612b38565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612bd7602883612534565b9150612be282612b7b565b604082019050919050565b60006020820190508181036000830152612c0681612bca565b9050919050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c69602383612534565b9150612c7482612c0d565b604082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602583612534565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4d61782054782063616e6e6f742062652061626f766520393925000000000000600082015250565b6000612d67601a83612534565b9150612d7282612d31565b602082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b6000612da882612643565b9150612db383612643565b9250828201905080821115612dcb57612dca612a44565b5b92915050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612e07601a83612534565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7782612643565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea957612ea8612a44565b5b600182019050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b6000612eea601683612534565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483612534565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061300e602283612534565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a0602583612534565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b600061310c601083612534565b9150613117826130d6565b602082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b600061319e602283612534565b91506131a982613142565b604082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b600061320a601a83612534565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327a82612643565b915061328583612643565b92508261329557613294613240565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006132fe6132f96132f4846132cf565b6132d9565b612643565b9050919050565b61330e816132e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334981612605565b82525050565b600061335b8383613340565b60208301905092915050565b6000602082019050919050565b600061337f82613314565b613389818561331f565b935061339483613330565b8060005b838110156133c55781516133ac888261334f565b97506133b783613367565b925050600181019050613398565b5085935050505092915050565b60006133ed6133e86133e3846125e5565b6132d9565b6125e5565b9050919050565b60006133ff826133d2565b9050919050565b6000613411826133f4565b9050919050565b61342181613406565b82525050565b600060a08201905061343c600083018861271c565b6134496020830187613305565b818103604083015261345b8186613374565b905061346a6060830185613418565b613477608083018461271c565b9695505050505050565b600060a082019050613496600083018861271c565b6134a36020830187613305565b81810360408301526134b58186613374565b90506134c460608301856127d0565b6134d1608083018461271c565b9695505050505050565b600060c0820190506134f060008301896127d0565b6134fd602083018861271c565b61350a6040830187613305565b6135176060830186613305565b61352460808301856127d0565b61353160a083018461271c565b979650505050505050565b60008151905061354b8161264d565b92915050565b60008060006060848603121561356a576135696125db565b5b60006135788682870161353c565b93505060206135898682870161353c565b925050604061359a8682870161353c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613600602683612534565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b905091905056fea264697066735822122056b942d2ac5048f80284f8856c4b460f5328c1984914e8e1c3fa2ffeb9d03d2864736f6c63430008120033

Deployed Bytecode Sourcemap

3123:10995:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5866:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7159:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9060:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6516:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3711:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7360:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6425:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9775:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3530:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3654:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9450:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5955:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6624:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2173:148;;;;;;;;;;;;;:::i;:::-;;8389:129;;;;;;;;;;;;;:::i;:::-;;9267:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3841:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1568:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6330:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8526:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6750:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8865:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8095:108;;;;;;;;;;;;;:::i;:::-;;3682:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8211:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6967:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6070:252;;;;;;;;;;;;;:::i;:::-;;1782:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5866:83;5903:13;5936:5;;;;;;;;;;;;;;;;;5929:12;;5866:83;:::o;7159:193::-;7261:4;7283:39;7292:12;:10;:12::i;:::-;7306:7;7315:6;7283:8;:39::i;:::-;7340:4;7333:11;;7159:193;;;;:::o;9060:199::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9158:2:::1;9143:12;:17;9135:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3332:9;9224:12;:27;;;;:::i;:::-;9206:15;:45;;;;9060:199:::0;:::o;6516:100::-;6569:7;3217:13;6589:19;;6516:100;:::o;3711:17::-;;;;:::o;7360:350::-;7492:4;7509:36;7519:6;7527:9;7538:6;7509:9;:36::i;:::-;7556:124;7579:6;7600:12;:10;:12::i;:::-;7663:6;7627:11;:19;7639:6;7627:19;;;;;;;;;;;;;;;:33;7647:12;:10;:12::i;:::-;7627:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;7556:8;:124::i;:::-;7698:4;7691:11;;7360:350;;;;;:::o;6425:83::-;6466:5;3468:2;6484:16;;6425:83;:::o;9775:320::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9896:3:::1;9874:19;:25;9866:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9980:7;;9958:19;:29;9950:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3332:9;10053:19;:34;;;;:::i;:::-;10043:7;:44;;;;9775:320:::0;:::o;3530:38::-;;;:::o;3654:21::-;;;;:::o;9450:317::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9571:3:::1;9549:19;:25;9541:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9655:7;;9633:19;:29;9625:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3332:9;9725:19;:34;;;;:::i;:::-;9715:7;:44;;;;9450:317:::0;:::o;5955:107::-;6006:7;6033:21;6026:28;;5955:107;:::o;6624:118::-;6690:7;6717:8;:17;6726:7;6717:17;;;;;;;;;;;;;;;;6710:24;;6624:118;;;:::o;2173:148::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2280:1:::1;2243:40;;2264:6;::::0;::::1;;;;;;;;2243:40;;;;;;;;;;;;2311:1;2294:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2173:148::o:0;8389:129::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3217:13:::1;8443:11;:26;;;;3217:13;8480:15;:30;;;;8389:129::o:0;9267:175::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9353:2:::1;9342:8;:13;9334:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;3332:9;9411:8;:23;;;;:::i;:::-;9397:11;:37;;;;9267:175:::0;:::o;3841:43::-;;;;:::o;1568:79::-;1606:7;1633:6;;;;;;;;;;;1626:13;;1568:79;:::o;6330:87::-;6369:13;6402:7;;;;;;;;;;;;;;;;;6395:14;;6330:87;:::o;8526:331::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8649:2:::1;8637:9;:14;:33;;;;8668:2;8655:10;:15;8637:33;:50;;;;8685:2;8674:8;:13;8637:50;:94;;;;8729:2;8717:8;8704:10;8692:9;:22;;;;:::i;:::-;:33;;;;:::i;:::-;8691:40;8637:94;8629:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;8782:9;8773:6;:18;;;;8812:10;8802:7;:20;;;;8841:8;8833:5;:16;;;;8526:331:::0;;;:::o;6750:209::-;6855:4;6887:42;6897:12;:10;:12::i;:::-;6911:9;6922:6;6887:9;:42::i;:::-;6947:4;6940:11;;6750:209;;;;:::o;3928:47::-;;;;:::o;8865:187::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8954:9:::1;8949:96;8969:9;;:16;;8965:1;:20;8949:96;;;9032:1;9007:8;:22;9016:9;;9026:1;9016:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9007:22;;;;;;;;;;;;;;;:26;;;;8987:3;;;;:::i;:::-;;;8949:96;;;;8865:187:::0;;:::o;8095:108::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8157:1:::1;8148:6;;:10;;;;;;;;;;;;;;;;;;8183:12;8169:11;:26;;;;8095:108::o:0;3682:22::-;;;;:::o;8211:170::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8319:4:::1;8284:24;:32;8309:6;8284:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8369:4;8334:24;:32;8359:6;8334:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8211:170:::0;:::o;6967:184::-;7084:7;7116:11;:18;7128:5;7116:18;;;;;;;;;;;;;;;:27;7135:7;7116:27;;;;;;;;;;;;;;;;7109:34;;6967:184;;;;:::o;6070:252::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6154:1:::1;6131:20;:18;:20::i;:::-;:24;6123:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6203:24;6230:20;:18;:20::i;:::-;6203:47;;6279:7;:5;:7::i;:::-;6271:25;;:43;6297:16;6271:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6112:210;6070:252::o:0;1782:109::-;1705:12;:10;:12::i;:::-;1695:22;;:6;;;;;;;;;;:22;;;1687:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1855:28:::1;1874:8;1855:18;:28::i;:::-;1782:109:::0;:::o;282:98::-;335:7;362:10;355:17;;282:98;:::o;7718:369::-;7862:1;7845:19;;:5;:19;;;7837:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7943:1;7924:21;;:7;:21;;;7916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8025:6;7995:11;:18;8007:5;7995:18;;;;;;;;;;;;;;;:27;8014:7;7995:27;;;;;;;;;;;;;;;:36;;;;8063:7;8047:32;;8056:5;8047:32;;;8072:6;8047:32;;;;;;:::i;:::-;;;;;;;;7718:369;;;:::o;10103:3975::-;10241:1;10225:18;;:4;:18;;;10217:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10313:3;10304:6;:12;10296:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10350:12;10377:24;:30;10402:4;10377:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;10411:24;:28;10436:2;10411:28;;;;;;;;;;;;;;;;;;;;;;;;;10377:62;10373:3048;;;10463:1;10456:8;;10373:3048;;;10533:1;10523:6;;;;;;;;;;;:11;;;;:36;;;;;10548:11;;10538:6;:21;;10523:36;10497:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10667:24;:28;10692:2;10667:28;;;;;;;;;;;;;;;;;;;;;;;;;10644:242;;10785:15;;10775:6;10760:8;:12;10769:2;10760:12;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;:40;;10730:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;10644:242;10926:1;10906:16;;;;;;;;;;;:21;;;10902:239;;11001:6;10983:8;:14;10992:4;10983:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;11042:6;11026:8;:12;11035:2;11026:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;11089:2;11074:26;;11083:4;11074:26;;;11093:6;11074:26;;;;;;:::i;:::-;;;;;;;;11119:7;;;10902:239;11169:13;11161:21;;:4;:21;;;11157:2253;;11219:5;;11210:6;;:14;;;;:::i;:::-;11203:21;;11157:2253;;;11256:13;11250:19;;:2;:19;;;11246:2164;;11290:20;11313:8;:23;11330:4;11313:23;;;;;;;;;;;;;;;;11290:46;;11374:7;;11359:12;:22;:47;;;;;11405:1;11385:16;;;;;;;;;;;:21;;;11359:47;11355:1932;;;11450:7;;11435:12;:22;11431:101;;;11501:7;;11486:22;;11431:101;11576:18;11651:5;;11645:1;11634:7;;11625:6;;:16;;;;:::i;:::-;11624:22;;;;:::i;:::-;11623:33;;;;:::i;:::-;11613:5;;11598:12;:20;;;;:::i;:::-;11597:61;;;;:::i;:::-;11576:82;;11681:17;11716:13;11701:12;:28;;;;:::i;:::-;11681:48;;11773:1;11754:16;;:20;;;;;;;;;;;;;;;;;;11797:21;11835:1;11821:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11797:40;;11878:4;11860;11865:1;11860:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11916:4;11906;11911:1;11906:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;11965:15;:92;;;12088:12;12131:1;12163:4;12198:15;12244;11965:321;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12374:1;12358:13;:17;12353:850;;;12430:15;:92;;;12569:1;12553:13;:17;;;;:::i;:::-;12601:1;12633:4;12676;12712:15;12430:324;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12807:11;12821:21;12807:35;;12869:15;:57;;;12935:6;12951:4;13003:1;12987:13;:17;;;;:::i;:::-;13035:1;13067;13099:7;:5;:7::i;:::-;13137:15;12869:310;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12377:826;12353:850;13244:1;13225:16;;:20;;;;;;;;;;;;;;;;;;11408:1879;;;11355:1932;13340:5;;13330:7;;:15;;;;:::i;:::-;13323:22;;11271:2090;11246:2164;;;13393:1;13386:8;;11246:2164;11157:2253;10373:3048;13490:1;13482:4;:9;13478:593;;13536:17;13574:3;13566:4;13557:6;:13;;;;:::i;:::-;13556:21;;;;:::i;:::-;13536:41;;13592:22;13626:9;13617:6;:18;;;;:::i;:::-;13592:43;;13670:6;13652:8;:14;13661:4;13652:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13707:14;13691:8;:12;13700:2;13691:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13763:9;13736:8;:23;13753:4;13736:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;13815:4;13792:40;;13801:4;13792:40;;;13822:9;13792:40;;;;;;:::i;:::-;;;;;;;;13867:2;13852:34;;13861:4;13852:34;;;13871:14;13852:34;;;;;;:::i;:::-;;;;;;;;13493:405;;13478:593;;;13968:6;13950:8;:14;13959:4;13950:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;14005:6;13989:8;:12;13998:2;13989:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;14048:2;14033:26;;14042:4;14033:26;;;14052:6;14033:26;;;;;;:::i;:::-;;;;;;;;13478:593;10206:3872;10103:3975;;;;:::o;1899:266::-;2007:1;1987:22;;:8;:22;;;1965:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2120:8;2091:38;;2112:6;;;;;;;;;;2091:38;;;;;;;;;;;;2149:8;2140:6;;:17;;;;;;;;;;;;;;;;;;1899:266;:::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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:117::-;6609:1;6606;6599:12;6623:117;6732:1;6729;6722:12;6746:117;6855:1;6852;6845:12;6886:568;6959:8;6969:6;7019:3;7012:4;7004:6;7000:17;6996:27;6986:122;;7027:79;;:::i;:::-;6986:122;7140:6;7127:20;7117:30;;7170:18;7162:6;7159:30;7156:117;;;7192:79;;:::i;:::-;7156:117;7306:4;7298:6;7294:17;7282:29;;7360:3;7352:4;7344:6;7340:17;7330:8;7326:32;7323:41;7320:128;;;7367:79;;:::i;:::-;7320:128;6886:568;;;;;:::o;7460:559::-;7546:6;7554;7603:2;7591:9;7582:7;7578:23;7574:32;7571:119;;;7609:79;;:::i;:::-;7571:119;7757:1;7746:9;7742:17;7729:31;7787:18;7779:6;7776:30;7773:117;;;7809:79;;:::i;:::-;7773:117;7922:80;7994:7;7985:6;7974:9;7970:22;7922:80;:::i;:::-;7904:98;;;;7700:312;7460:559;;;;;:::o;8025:474::-;8093:6;8101;8150:2;8138:9;8129:7;8125:23;8121:32;8118:119;;;8156:79;;:::i;:::-;8118:119;8276:1;8301:53;8346:7;8337:6;8326:9;8322:22;8301:53;:::i;:::-;8291:63;;8247:117;8403:2;8429:53;8474:7;8465:6;8454:9;8450:22;8429:53;:::i;:::-;8419:63;;8374:118;8025:474;;;;;:::o;8505:182::-;8645:34;8641:1;8633:6;8629:14;8622:58;8505:182;:::o;8693:366::-;8835:3;8856:67;8920:2;8915:3;8856:67;:::i;:::-;8849:74;;8932:93;9021:3;8932:93;:::i;:::-;9050:2;9045:3;9041:12;9034:19;;8693:366;;;:::o;9065:419::-;9231:4;9269:2;9258:9;9254:18;9246:26;;9318:9;9312:4;9308:20;9304:1;9293:9;9289:17;9282:47;9346:131;9472:4;9346:131;:::i;:::-;9338:139;;9065:419;;;:::o;9490:180::-;9630:32;9626:1;9618:6;9614:14;9607:56;9490:180;:::o;9676:366::-;9818:3;9839:67;9903:2;9898:3;9839:67;:::i;:::-;9832:74;;9915:93;10004:3;9915:93;:::i;:::-;10033:2;10028:3;10024:12;10017:19;;9676:366;;;:::o;10048:419::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10301:9;10295:4;10291:20;10287:1;10276:9;10272:17;10265:47;10329:131;10455:4;10329:131;:::i;:::-;10321:139;;10048:419;;;:::o;10473:180::-;10521:77;10518:1;10511:88;10618:4;10615:1;10608:15;10642:4;10639:1;10632:15;10659:410;10699:7;10722:20;10740:1;10722:20;:::i;:::-;10717:25;;10756:20;10774:1;10756:20;:::i;:::-;10751:25;;10811:1;10808;10804:9;10833:30;10851:11;10833:30;:::i;:::-;10822:41;;11012:1;11003:7;10999:15;10996:1;10993:22;10973:1;10966:9;10946:83;10923:139;;11042:18;;:::i;:::-;10923:139;10707:362;10659:410;;;;:::o;11075:194::-;11115:4;11135:20;11153:1;11135:20;:::i;:::-;11130:25;;11169:20;11187:1;11169:20;:::i;:::-;11164:25;;11213:1;11210;11206:9;11198:17;;11237:1;11231:4;11228:11;11225:37;;;11242:18;;:::i;:::-;11225:37;11075:194;;;;:::o;11275:222::-;11415:34;11411:1;11403:6;11399:14;11392:58;11484:5;11479:2;11471:6;11467:15;11460:30;11275:222;:::o;11503:366::-;11645:3;11666:67;11730:2;11725:3;11666:67;:::i;:::-;11659:74;;11742:93;11831:3;11742:93;:::i;:::-;11860:2;11855:3;11851:12;11844:19;;11503:366;;;:::o;11875:419::-;12041:4;12079:2;12068:9;12064:18;12056:26;;12128:9;12122:4;12118:20;12114:1;12103:9;12099:17;12092:47;12156:131;12282:4;12156:131;:::i;:::-;12148:139;;11875:419;;;:::o;12300:227::-;12440:34;12436:1;12428:6;12424:14;12417:58;12509:10;12504:2;12496:6;12492:15;12485:35;12300:227;:::o;12533:366::-;12675:3;12696:67;12760:2;12755:3;12696:67;:::i;:::-;12689:74;;12772:93;12861:3;12772:93;:::i;:::-;12890:2;12885:3;12881:12;12874:19;;12533:366;;;:::o;12905:419::-;13071:4;13109:2;13098:9;13094:18;13086:26;;13158:9;13152:4;13148:20;13144:1;13133:9;13129:17;13122:47;13186:131;13312:4;13186:131;:::i;:::-;13178:139;;12905:419;;;:::o;13330:222::-;13470:34;13466:1;13458:6;13454:14;13447:58;13539:5;13534:2;13526:6;13522:15;13515:30;13330:222;:::o;13558:366::-;13700:3;13721:67;13785:2;13780:3;13721:67;:::i;:::-;13714:74;;13797:93;13886:3;13797:93;:::i;:::-;13915:2;13910:3;13906:12;13899:19;;13558:366;;;:::o;13930:419::-;14096:4;14134:2;14123:9;14119:18;14111:26;;14183:9;14177:4;14173:20;14169:1;14158:9;14154:17;14147:47;14211:131;14337:4;14211:131;:::i;:::-;14203:139;;13930:419;;;:::o;14355:224::-;14495:34;14491:1;14483:6;14479:14;14472:58;14564:7;14559:2;14551:6;14547:15;14540:32;14355:224;:::o;14585:366::-;14727:3;14748:67;14812:2;14807:3;14748:67;:::i;:::-;14741:74;;14824:93;14913:3;14824:93;:::i;:::-;14942:2;14937:3;14933:12;14926:19;;14585:366;;;:::o;14957:419::-;15123:4;15161:2;15150:9;15146:18;15138:26;;15210:9;15204:4;15200:20;15196:1;15185:9;15181:17;15174:47;15238:131;15364:4;15238:131;:::i;:::-;15230:139;;14957:419;;;:::o;15382:176::-;15522:28;15518:1;15510:6;15506:14;15499:52;15382:176;:::o;15564:366::-;15706:3;15727:67;15791:2;15786:3;15727:67;:::i;:::-;15720:74;;15803:93;15892:3;15803:93;:::i;:::-;15921:2;15916:3;15912:12;15905:19;;15564:366;;;:::o;15936:419::-;16102:4;16140:2;16129:9;16125:18;16117:26;;16189:9;16183:4;16179:20;16175:1;16164:9;16160:17;16153:47;16217:131;16343:4;16217:131;:::i;:::-;16209:139;;15936:419;;;:::o;16361:191::-;16401:3;16420:20;16438:1;16420:20;:::i;:::-;16415:25;;16454:20;16472:1;16454:20;:::i;:::-;16449:25;;16497:1;16494;16490:9;16483:16;;16518:3;16515:1;16512:10;16509:36;;;16525:18;;:::i;:::-;16509:36;16361:191;;;;:::o;16558:176::-;16698:28;16694:1;16686:6;16682:14;16675:52;16558:176;:::o;16740:366::-;16882:3;16903:67;16967:2;16962:3;16903:67;:::i;:::-;16896:74;;16979:93;17068:3;16979:93;:::i;:::-;17097:2;17092:3;17088:12;17081:19;;16740:366;;;:::o;17112:419::-;17278:4;17316:2;17305:9;17301:18;17293:26;;17365:9;17359:4;17355:20;17351:1;17340:9;17336:17;17329:47;17393:131;17519:4;17393:131;:::i;:::-;17385:139;;17112:419;;;:::o;17537:180::-;17585:77;17582:1;17575:88;17682:4;17679:1;17672:15;17706:4;17703:1;17696:15;17723:233;17762:3;17785:24;17803:5;17785:24;:::i;:::-;17776:33;;17831:66;17824:5;17821:77;17818:103;;17901:18;;:::i;:::-;17818:103;17948:1;17941:5;17937:13;17930:20;;17723:233;;;:::o;17962:172::-;18102:24;18098:1;18090:6;18086:14;18079:48;17962:172;:::o;18140:366::-;18282:3;18303:67;18367:2;18362:3;18303:67;:::i;:::-;18296:74;;18379:93;18468:3;18379:93;:::i;:::-;18497:2;18492:3;18488:12;18481:19;;18140:366;;;:::o;18512:419::-;18678:4;18716:2;18705:9;18701:18;18693:26;;18765:9;18759:4;18755:20;18751:1;18740:9;18736:17;18729:47;18793:131;18919:4;18793:131;:::i;:::-;18785:139;;18512:419;;;:::o;18937:223::-;19077:34;19073:1;19065:6;19061:14;19054:58;19146:6;19141:2;19133:6;19129:15;19122:31;18937:223;:::o;19166:366::-;19308:3;19329:67;19393:2;19388:3;19329:67;:::i;:::-;19322:74;;19405:93;19494:3;19405:93;:::i;:::-;19523:2;19518:3;19514:12;19507:19;;19166:366;;;:::o;19538:419::-;19704:4;19742:2;19731:9;19727:18;19719:26;;19791:9;19785:4;19781:20;19777:1;19766:9;19762:17;19755:47;19819:131;19945:4;19819:131;:::i;:::-;19811:139;;19538:419;;;:::o;19963:221::-;20103:34;20099:1;20091:6;20087:14;20080:58;20172:4;20167:2;20159:6;20155:15;20148:29;19963:221;:::o;20190:366::-;20332:3;20353:67;20417:2;20412:3;20353:67;:::i;:::-;20346:74;;20429:93;20518:3;20429:93;:::i;:::-;20547:2;20542:3;20538:12;20531:19;;20190:366;;;:::o;20562:419::-;20728:4;20766:2;20755:9;20751:18;20743:26;;20815:9;20809:4;20805:20;20801:1;20790:9;20786:17;20779:47;20843:131;20969:4;20843:131;:::i;:::-;20835:139;;20562:419;;;:::o;20987:224::-;21127:34;21123:1;21115:6;21111:14;21104:58;21196:7;21191:2;21183:6;21179:15;21172:32;20987:224;:::o;21217:366::-;21359:3;21380:67;21444:2;21439:3;21380:67;:::i;:::-;21373:74;;21456:93;21545:3;21456:93;:::i;:::-;21574:2;21569:3;21565:12;21558:19;;21217:366;;;:::o;21589:419::-;21755:4;21793:2;21782:9;21778:18;21770:26;;21842:9;21836:4;21832:20;21828:1;21817:9;21813:17;21806:47;21870:131;21996:4;21870:131;:::i;:::-;21862:139;;21589:419;;;:::o;22014:166::-;22154:18;22150:1;22142:6;22138:14;22131:42;22014:166;:::o;22186:366::-;22328:3;22349:67;22413:2;22408:3;22349:67;:::i;:::-;22342:74;;22425:93;22514:3;22425:93;:::i;:::-;22543:2;22538:3;22534:12;22527:19;;22186:366;;;:::o;22558:419::-;22724:4;22762:2;22751:9;22747:18;22739:26;;22811:9;22805:4;22801:20;22797:1;22786:9;22782:17;22775:47;22839:131;22965:4;22839:131;:::i;:::-;22831:139;;22558:419;;;:::o;22983:221::-;23123:34;23119:1;23111:6;23107:14;23100:58;23192:4;23187:2;23179:6;23175:15;23168:29;22983:221;:::o;23210:366::-;23352:3;23373:67;23437:2;23432:3;23373:67;:::i;:::-;23366:74;;23449:93;23538:3;23449:93;:::i;:::-;23567:2;23562:3;23558:12;23551:19;;23210:366;;;:::o;23582:419::-;23748:4;23786:2;23775:9;23771:18;23763:26;;23835:9;23829:4;23825:20;23821:1;23810:9;23806:17;23799:47;23863:131;23989:4;23863:131;:::i;:::-;23855:139;;23582:419;;;:::o;24007:176::-;24147:28;24143:1;24135:6;24131:14;24124:52;24007:176;:::o;24189:366::-;24331:3;24352:67;24416:2;24411:3;24352:67;:::i;:::-;24345:74;;24428:93;24517:3;24428:93;:::i;:::-;24546:2;24541:3;24537:12;24530:19;;24189:366;;;:::o;24561:419::-;24727:4;24765:2;24754:9;24750:18;24742:26;;24814:9;24808:4;24804:20;24800:1;24789:9;24785:17;24778:47;24842:131;24968:4;24842:131;:::i;:::-;24834:139;;24561:419;;;:::o;24986:180::-;25034:77;25031:1;25024:88;25131:4;25128:1;25121:15;25155:4;25152:1;25145:15;25172:185;25212:1;25229:20;25247:1;25229:20;:::i;:::-;25224:25;;25263:20;25281:1;25263:20;:::i;:::-;25258:25;;25302:1;25292:35;;25307:18;;:::i;:::-;25292:35;25349:1;25346;25342:9;25337:14;;25172:185;;;;:::o;25363:180::-;25411:77;25408:1;25401:88;25508:4;25505:1;25498:15;25532:4;25529:1;25522:15;25549:85;25594:7;25623:5;25612:16;;25549:85;;;:::o;25640:60::-;25668:3;25689:5;25682:12;;25640:60;;;:::o;25706:158::-;25764:9;25797:61;25815:42;25824:32;25850:5;25824:32;:::i;:::-;25815:42;:::i;:::-;25797:61;:::i;:::-;25784:74;;25706:158;;;:::o;25870:147::-;25965:45;26004:5;25965:45;:::i;:::-;25960:3;25953:58;25870:147;;:::o;26023:114::-;26090:6;26124:5;26118:12;26108:22;;26023:114;;;:::o;26143:184::-;26242:11;26276:6;26271:3;26264:19;26316:4;26311:3;26307:14;26292:29;;26143:184;;;;:::o;26333:132::-;26400:4;26423:3;26415:11;;26453:4;26448:3;26444:14;26436:22;;26333:132;;;:::o;26471:108::-;26548:24;26566:5;26548:24;:::i;:::-;26543:3;26536:37;26471:108;;:::o;26585:179::-;26654:10;26675:46;26717:3;26709:6;26675:46;:::i;:::-;26753:4;26748:3;26744:14;26730:28;;26585:179;;;;:::o;26770:113::-;26840:4;26872;26867:3;26863:14;26855:22;;26770:113;;;:::o;26919:732::-;27038:3;27067:54;27115:5;27067:54;:::i;:::-;27137:86;27216:6;27211:3;27137:86;:::i;:::-;27130:93;;27247:56;27297:5;27247:56;:::i;:::-;27326:7;27357:1;27342:284;27367:6;27364:1;27361:13;27342:284;;;27443:6;27437:13;27470:63;27529:3;27514:13;27470:63;:::i;:::-;27463:70;;27556:60;27609:6;27556:60;:::i;:::-;27546:70;;27402:224;27389:1;27386;27382:9;27377:14;;27342:284;;;27346:14;27642:3;27635:10;;27043:608;;;26919:732;;;;:::o;27657:142::-;27707:9;27740:53;27758:34;27767:24;27785:5;27767:24;:::i;:::-;27758:34;:::i;:::-;27740:53;:::i;:::-;27727:66;;27657:142;;;:::o;27805:126::-;27855:9;27888:37;27919:5;27888:37;:::i;:::-;27875:50;;27805:126;;;:::o;27937:134::-;27995:9;28028:37;28059:5;28028:37;:::i;:::-;28015:50;;27937:134;;;:::o;28077:147::-;28172:45;28211:5;28172:45;:::i;:::-;28167:3;28160:58;28077:147;;:::o;28230:847::-;28501:4;28539:3;28528:9;28524:19;28516:27;;28553:71;28621:1;28610:9;28606:17;28597:6;28553:71;:::i;:::-;28634:80;28710:2;28699:9;28695:18;28686:6;28634:80;:::i;:::-;28761:9;28755:4;28751:20;28746:2;28735:9;28731:18;28724:48;28789:108;28892:4;28883:6;28789:108;:::i;:::-;28781:116;;28907:80;28983:2;28972:9;28968:18;28959:6;28907:80;:::i;:::-;28997:73;29065:3;29054:9;29050:19;29041:6;28997:73;:::i;:::-;28230:847;;;;;;;;:::o;29083:831::-;29346:4;29384:3;29373:9;29369:19;29361:27;;29398:71;29466:1;29455:9;29451:17;29442:6;29398:71;:::i;:::-;29479:80;29555:2;29544:9;29540:18;29531:6;29479:80;:::i;:::-;29606:9;29600:4;29596:20;29591:2;29580:9;29576:18;29569:48;29634:108;29737:4;29728:6;29634:108;:::i;:::-;29626:116;;29752:72;29820:2;29809:9;29805:18;29796:6;29752:72;:::i;:::-;29834:73;29902:3;29891:9;29887:19;29878:6;29834:73;:::i;:::-;29083:831;;;;;;;;:::o;29920:807::-;30169:4;30207:3;30196:9;30192:19;30184:27;;30221:71;30289:1;30278:9;30274:17;30265:6;30221:71;:::i;:::-;30302:72;30370:2;30359:9;30355:18;30346:6;30302:72;:::i;:::-;30384:80;30460:2;30449:9;30445:18;30436:6;30384:80;:::i;:::-;30474;30550:2;30539:9;30535:18;30526:6;30474:80;:::i;:::-;30564:73;30632:3;30621:9;30617:19;30608:6;30564:73;:::i;:::-;30647;30715:3;30704:9;30700:19;30691:6;30647:73;:::i;:::-;29920:807;;;;;;;;;:::o;30733:143::-;30790:5;30821:6;30815:13;30806:22;;30837:33;30864:5;30837:33;:::i;:::-;30733:143;;;;:::o;30882:663::-;30970:6;30978;30986;31035:2;31023:9;31014:7;31010:23;31006:32;31003:119;;;31041:79;;:::i;:::-;31003:119;31161:1;31186:64;31242:7;31233:6;31222:9;31218:22;31186:64;:::i;:::-;31176:74;;31132:128;31299:2;31325:64;31381:7;31372:6;31361:9;31357:22;31325:64;:::i;:::-;31315:74;;31270:129;31438:2;31464:64;31520:7;31511:6;31500:9;31496:22;31464:64;:::i;:::-;31454:74;;31409:129;30882:663;;;;;:::o;31551:225::-;31691:34;31687:1;31679:6;31675:14;31668:58;31760:8;31755:2;31747:6;31743:15;31736:33;31551:225;:::o;31782:366::-;31924:3;31945:67;32009:2;32004:3;31945:67;:::i;:::-;31938:74;;32021:93;32110:3;32021:93;:::i;:::-;32139:2;32134:3;32130:12;32123:19;;31782:366;;;:::o;32154:419::-;32320:4;32358:2;32347:9;32343:18;32335:26;;32407:9;32401:4;32397:20;32393:1;32382:9;32378:17;32371:47;32435:131;32561:4;32435:131;:::i;:::-;32427:139;;32154:419;;;:::o

Swarm Source

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