ETH Price: $2,635.69 (+0.89%)

Token

Stonk Inu (Stonk)
 

Overview

Max Total Supply

1,000,000,000 Stonk

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,657,550.264950725873891348 Stonk

Value
$0.00
0xb8ebb69f94898397277e7d3c13b5136d0a39b4fb
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:
StonkInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 6 of 6: StonkInu.sol
/*
 * @author Stonk Inu
 * @notice It seems the right time to stonk.
 */

// Website: https://stonkinuerc.com/
// Telegram: https://t.me/stonkgram
// Twitter: https://twitter.com/stonkerc

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "./Ownable.sol";
import "./SafeMath.sol";
import "./IDEXFactory.sol";
import "./IDEXRouter.sol";
import "./IERC20.sol";

contract StonkInu is IERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Stonk Inu";
    string constant _symbol = "Stonk";
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 100_000_000_0 * (10 ** _decimals);

    uint256 public _maxWalletAmount = (_totalSupply * 2) / 100;

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

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    mapping(address => bool) isStopExempt;
    uint256 liquidityFee = 0;

    // 3% of taxes. We'll stonk you with rewards and great marketing.
    uint256 marketingFee = 30;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 1000;

    address public marketingFeeReceiver =
        0x6fecdc40538fC84ec0DC7415C00D405f1FE904B0;

    IDEXRouter public router;
    address public pair;

    bool public stonkModeEnabled = false;
    uint256 public swapThreshold = (_totalSupply / 10000) * 100; // 1%
    bool inSwap;

    modifier stonkMode() {
        stonkModeEnabled = true;
        _;
        stonkModeEnabled = false;
    }

    constructor() Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        //NO FEES FOR DEPLOYER
        isFeeExempt[0x6fecdc40538fC84ec0DC7415C00D405f1FE904B0] = true;
        //DEPLOYER CAN BUY WITH TRADING STOPPED
        isStopExempt[0x6fecdc40538fC84ec0DC7415C00D405f1FE904B0] = true;
        isStopExempt[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
        isStopExempt[pair] = true;
        isStopExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable {}

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

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

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address _sender,
        address _recipient,
        uint256 _amount
    ) internal returns (bool) {
        require(
            stonkModeEnabled || (amIStopExempt(_recipient)),
            "Trading is currentrly stopped."
        );
        if (inSwap) {
            return _basicTransfer(_sender, _recipient, _amount);
        }

        if (_recipient != pair && _recipient != DEAD) {
            require(
                isTxLimitExempt[_recipient] ||
                    _balances[_recipient] + _amount <= _maxWalletAmount,
                "You're trying to Stonk too much!"
            );
        }
        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[_sender] = _balances[_sender].sub(
            _amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = shouldTakeFee(_sender)
            ? takeFee(_sender, _amount)
            : _amount;
        _balances[_recipient] = _balances[_recipient].add(amountReceived);

        emit Transfer(_sender, _recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    /*
     * @notice This function enable the trading.
               Once the trading mode is active it cannot be stopped.
               It's time to STONK!
     */
    function enableStonking() external onlyOwner {
        stonkModeEnabled = true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    /*
     * @notice The dev can disable fee for the stonkers.
     */
    function disableFee(address _stonker) external onlyOwner {
        isFeeExempt[_stonker] = true;
    }

    /*
     * @notice The dev can allow some Stonker to buy when stonkMode is not started yet.
     */
    function disableStop(address _stonker) external onlyOwner {
        isStopExempt[_stonker] = true;
    }

    /*
     * @notice The following function returns a bool if the Stonker can buy when stonkMode is still stopped.
     */
    function amIStopExempt(address _request) public view returns (bool) {
        return isStopExempt[_request];
    }

    function takeFee(
        address sender,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal stonkMode {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance
            .mul(liquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );

        (bool MarketingSuccess /* bytes memory data */, ) = payable(
            marketingFeeReceiver
        ).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal stonkMode {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: amount
        }(0, path, to, block.timestamp);
    }

    function clearStuckTBalance() external {
        _basicTransfer(
            address(this),
            marketingFeeReceiver,
            balanceOf(address(this))
        );
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent) / 1000;
    }

    function setSwapThreshold(uint256 _swapThreshold) external onlyOwner {
        swapThreshold = (_totalSupply / 100000) * _swapThreshold;
    }

    event AutoLiquify(uint256 amountETH, uint256 amountSTONK);
}

File 1 of 6: IDEXFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

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

File 2 of 6: IDEXRouter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

File 3 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

File 4 of 6: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

File 5 of 6: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

Contract 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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountSTONK","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_request","type":"address"}],"name":"amIStopExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"}],"name":"approveMax","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":"clearStuckTBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_stonker","type":"address"}],"name":"disableFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stonker","type":"address"}],"name":"disableStop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableStonking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stonkModeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac919062000a93565b633b9aca00620000bd919062000bd0565b60035560646002600354620000d3919062000bd0565b620000df919062000a00565b6004556000600a55601e600b55600b54600a54620000fe9190620009a3565b600c556103e8600d55736fecdc40538fc84ec0dc7415c00d405f1fe904b0600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060146101000a81548160ff02191690831515021790555060646127106003546200018b919062000a00565b62000197919062000bd0565b601155348015620001a757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b657600080fd5b505afa158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f1919062000905565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037557600080fd5b505afa1580156200038a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b0919062000905565b306040518363ffffffff1660e01b8152600401620003d092919062000959565b602060405180830381600087803b158015620003eb57600080fd5b505af115801562000400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000426919062000905565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160076000736fecdc40538fc84ec0dc7415c00d405f1fe904b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000736fecdc40538fc84ec0dc7415c00d405f1fe904b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620008df919062000986565b60405180910390a35062000d06565b600081519050620008ff8162000cec565b92915050565b6000602082840312156200091e576200091d62000cda565b5b60006200092e84828501620008ee565b91505092915050565b620009428162000c31565b82525050565b620009538162000c65565b82525050565b600060408201905062000970600083018562000937565b6200097f602083018462000937565b9392505050565b60006020820190506200099d600083018462000948565b92915050565b6000620009b08262000c65565b9150620009bd8362000c65565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009f557620009f462000c7c565b5b828201905092915050565b600062000a0d8262000c65565b915062000a1a8362000c65565b92508262000a2d5762000a2c62000cab565b5b828204905092915050565b6000808291508390505b600185111562000a8a5780860481111562000a625762000a6162000c7c565b5b600185161562000a725780820291505b808102905062000a828562000cdf565b945062000a42565b94509492505050565b600062000aa08262000c65565b915062000aad8362000c6f565b925062000adc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ae4565b905092915050565b60008262000af6576001905062000bc9565b8162000b06576000905062000bc9565b816001811462000b1f576002811462000b2a5762000b60565b600191505062000bc9565b60ff84111562000b3f5762000b3e62000c7c565b5b8360020a91508482111562000b595762000b5862000c7c565b5b5062000bc9565b5060208310610133831016604e8410600b841016171562000b9a5782820a90508381111562000b945762000b9362000c7c565b5b62000bc9565b62000ba9848484600162000a38565b9250905081840481111562000bc35762000bc262000c7c565b5b81810290505b9392505050565b600062000bdd8262000c65565b915062000bea8362000c65565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c265762000c2562000c7c565b5b828202905092915050565b600062000c3e8262000c45565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000cf78162000c31565b811462000d0357600080fd5b50565b612ab58062000d166000396000f3fe6080604052600436106101855760003560e01c80637e5dd745116100d1578063a9059cbb1161008a578063e96fada211610064578063e96fada214610593578063f1d5f517146105be578063f887ea40146105e7578063f9534555146106125761018c565b8063a9059cbb14610502578063d3efadf31461053f578063dd62ed3e146105565761018c565b80637e5dd745146103f0578063893d20e81461041b57806395d89b41146104465780639d0014b114610471578063a64c9afc1461049a578063a8aa1b31146104d75761018c565b806323b872dd1161013e578063571ac8b011610118578063571ac8b0146103345780636c0a24eb1461037157806370a082311461039c578063715018a6146103d95761018c565b806323b872dd1461028f5780632f54bf6e146102cc578063313ce567146103095761018c565b80630445b6671461019157806306fdde03146101bc57806307524349146101e7578063095ea7b3146101fe57806318160ddd1461023b5780631e104031146102665761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661063b565b6040516101b39190612562565b60405180910390f35b3480156101c857600080fd5b506101d1610641565b6040516101de9190612480565b60405180910390f35b3480156101f357600080fd5b506101fc61067e565b005b34801561020a57600080fd5b50610225600480360381019061022091906120ec565b6106e3565b604051610232919061244a565b60405180910390f35b34801561024757600080fd5b506102506107d5565b60405161025d9190612562565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190611fff565b6107df565b005b34801561029b57600080fd5b506102b660048036038101906102b19190612099565b610882565b6040516102c3919061244a565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee9190611fff565b610a82565b604051610300919061244a565b60405180910390f35b34801561031557600080fd5b5061031e610adb565b60405161032b9190612600565b60405180910390f35b34801561034057600080fd5b5061035b60048036038101906103569190611fff565b610ae4565b604051610368919061244a565b60405180910390f35b34801561037d57600080fd5b50610386610b17565b6040516103939190612562565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190611fff565b610b1d565b6040516103d09190612562565b60405180910390f35b3480156103e557600080fd5b506103ee610b66565b005b3480156103fc57600080fd5b50610405610c29565b604051610412919061244a565b60405180910390f35b34801561042757600080fd5b50610430610c3c565b60405161043d91906123ce565b60405180910390f35b34801561045257600080fd5b5061045b610c65565b6040516104689190612480565b60405180910390f35b34801561047d57600080fd5b506104986004803603810190610493919061212c565b610ca2565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190611fff565b610d0f565b6040516104ce919061244a565b60405180910390f35b3480156104e357600080fd5b506104ec610d65565b6040516104f991906123ce565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906120ec565b610d8b565b604051610536919061244a565b60405180910390f35b34801561054b57600080fd5b50610554610da0565b005b34801561056257600080fd5b5061057d60048036038101906105789190612059565b610dd8565b60405161058a9190612562565b60405180910390f35b34801561059f57600080fd5b506105a8610e5f565b6040516105b591906123ce565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e0919061212c565b610e85565b005b3480156105f357600080fd5b506105fc610ef1565b6040516106099190612465565b60405180910390f35b34801561061e57600080fd5b5061063960048036038101906106349190611fff565b610f17565b005b60115481565b60606040518060400160405280600981526020017f53746f6e6b20496e750000000000000000000000000000000000000000000000815250905090565b61068733610a82565b6106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd90612542565b60405180910390fd5b6001601060146101000a81548160ff021916908315150217905550565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190612562565b60405180910390a36001905092915050565b6000600354905090565b6107e833610a82565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e90612542565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a6e576109ed826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fba9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a7984848461101e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610b10827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106e3565b9050919050565b60045481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b6f33610a82565b610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590612542565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c1f91906123ce565b60405180910390a1565b601060149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f53746f6e6b000000000000000000000000000000000000000000000000000000815250905090565b610cab33610a82565b610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190612542565b60405180910390fd5b80620186a0600354610cfc91906126d1565b610d069190612702565b60118190555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9833848461101e565b905092915050565b610dd530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dd030610b1d565b611446565b50565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e8e33610a82565b610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490612542565b60405180910390fd5b6103e881600354610ede9190612702565b610ee891906126d1565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f2033610a82565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690612542565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000838311158290611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff99190612480565b60405180910390fd5b5060008385611011919061275c565b9050809150509392505050565b6000601060149054906101000a900460ff1680611040575061103f83610d0f565b5b61107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906124e2565b60405180910390fd5b601260009054906101000a900460ff16156110a65761109f848484611446565b905061143f565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111525750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561123b57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111fb575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111f8919061267b565b11155b61123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190612522565b60405180910390fd5b5b611243611619565b15611251576112506116d8565b5b6112da826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fba9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061132885611c40565b611332578261133d565b61133c8584611c97565b5b905061139181600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114319190612562565b60405180910390a360019150505b9392505050565b60006114d1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fba9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061156682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116069190612562565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116865750601260009054906101000a900460ff16155b80156116d35750601154600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601060146101000a81548160ff021916908315150217905550600060115490506000611738600261172a600c5461171c600a5487611e3990919063ffffffff16565b611eb490919063ffffffff16565b611eb490919063ffffffff16565b9050600061174f8284611efe90919063ffffffff16565b90506000600267ffffffffffffffff81111561176e5761176d6128ed565b5b60405190808252806020026020018201604052801561179c5781602001602082028036833780820191505090505b50905030816000815181106117b4576117b36128be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561185657600080fd5b505afa15801561186a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188e919061202c565b816001815181106118a2576118a16128be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161194595949392919061257d565b600060405180830381600087803b15801561195f57600080fd5b505af1158015611973573d6000803e3d6000fd5b50505050600061198c8247611efe90919063ffffffff16565b905060006119ba6119a96002600a54611eb490919063ffffffff16565b600c54611efe90919063ffffffff16565b905060006119f860026119ea846119dc600a5488611e3990919063ffffffff16565b611eb490919063ffffffff16565b611eb490919063ffffffff16565b90506000611a2383611a15600b5487611e3990919063ffffffff16565b611eb490919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611a71906123b9565b600060405180830381858888f193505050503d8060008114611aaf576040519150601f19603f3d011682016040523d82523d6000602084013e611ab4565b606091505b5050905080611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef906124c2565b60405180910390fd5b6000891115611c1957600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611b8a969594939291906123e9565b6060604051808303818588803b158015611ba357600080fd5b505af1158015611bb7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bdc9190612159565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611c109291906125d7565b60405180910390a15b505050505050505050506000601060146101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611cc3600d54611cb5600c5486611e3990919063ffffffff16565b611eb490919063ffffffff16565b9050611d1781600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db79190612562565b60405180910390a3611dd28184611efe90919063ffffffff16565b91505092915050565b6000808284611dea919061267b565b905083811015611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e26906124a2565b60405180910390fd5b8091505092915050565b600080831415611e4c5760009050611eae565b60008284611e5a9190612702565b9050828482611e6991906126d1565b14611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea090612502565b60405180910390fd5b809150505b92915050565b6000611ef683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f48565b905092915050565b6000611f4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fba565b905092915050565b60008083118290611f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f869190612480565b60405180910390fd5b5060008385611f9e91906126d1565b9050809150509392505050565b600081359050611fba81612a51565b92915050565b600081519050611fcf81612a51565b92915050565b600081359050611fe481612a68565b92915050565b600081519050611ff981612a68565b92915050565b6000602082840312156120155761201461291c565b5b600061202384828501611fab565b91505092915050565b6000602082840312156120425761204161291c565b5b600061205084828501611fc0565b91505092915050565b600080604083850312156120705761206f61291c565b5b600061207e85828601611fab565b925050602061208f85828601611fab565b9150509250929050565b6000806000606084860312156120b2576120b161291c565b5b60006120c086828701611fab565b93505060206120d186828701611fab565b92505060406120e286828701611fd5565b9150509250925092565b600080604083850312156121035761210261291c565b5b600061211185828601611fab565b925050602061212285828601611fd5565b9150509250929050565b6000602082840312156121425761214161291c565b5b600061215084828501611fd5565b91505092915050565b6000806000606084860312156121725761217161291c565b5b600061218086828701611fea565b935050602061219186828701611fea565b92505060406121a286828701611fea565b9150509250925092565b60006121b883836121c4565b60208301905092915050565b6121cd81612790565b82525050565b6121dc81612790565b82525050565b60006121ed8261262b565b6121f7818561264e565b93506122028361261b565b8060005b8381101561223357815161221a88826121ac565b975061222583612641565b925050600181019050612206565b5085935050505092915050565b612249816127a2565b82525050565b612258816127e5565b82525050565b612267816127f7565b82525050565b600061227882612636565b612282818561266a565b935061229281856020860161282d565b61229b81612921565b840191505092915050565b60006122b3601b8361266a565b91506122be82612932565b602082019050919050565b60006122d6601e8361266a565b91506122e18261295b565b602082019050919050565b60006122f9601e8361266a565b915061230482612984565b602082019050919050565b600061231c60218361266a565b9150612327826129ad565b604082019050919050565b600061233f60208361266a565b915061234a826129fc565b602082019050919050565b600061236260068361266a565b915061236d82612a25565b602082019050919050565b600061238560008361265f565b915061239082612a4e565b600082019050919050565b6123a4816127ce565b82525050565b6123b3816127d8565b82525050565b60006123c482612378565b9150819050919050565b60006020820190506123e360008301846121d3565b92915050565b600060c0820190506123fe60008301896121d3565b61240b602083018861239b565b612418604083018761225e565b612425606083018661225e565b61243260808301856121d3565b61243f60a083018461239b565b979650505050505050565b600060208201905061245f6000830184612240565b92915050565b600060208201905061247a600083018461224f565b92915050565b6000602082019050818103600083015261249a818461226d565b905092915050565b600060208201905081810360008301526124bb816122a6565b9050919050565b600060208201905081810360008301526124db816122c9565b9050919050565b600060208201905081810360008301526124fb816122ec565b9050919050565b6000602082019050818103600083015261251b8161230f565b9050919050565b6000602082019050818103600083015261253b81612332565b9050919050565b6000602082019050818103600083015261255b81612355565b9050919050565b6000602082019050612577600083018461239b565b92915050565b600060a082019050612592600083018861239b565b61259f602083018761225e565b81810360408301526125b181866121e2565b90506125c060608301856121d3565b6125cd608083018461239b565b9695505050505050565b60006040820190506125ec600083018561239b565b6125f9602083018461239b565b9392505050565b600060208201905061261560008301846123aa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612686826127ce565b9150612691836127ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126c6576126c5612860565b5b828201905092915050565b60006126dc826127ce565b91506126e7836127ce565b9250826126f7576126f661288f565b5b828204905092915050565b600061270d826127ce565b9150612718836127ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561275157612750612860565b5b828202905092915050565b6000612767826127ce565b9150612772836127ce565b92508282101561278557612784612860565b5b828203905092915050565b600061279b826127ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127f082612809565b9050919050565b6000612802826127ce565b9050919050565b60006128148261281b565b9050919050565b6000612826826127ae565b9050919050565b60005b8381101561284b578082015181840152602081019050612830565b8381111561285a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f54726164696e672069732063757272656e74726c792073746f707065642e0000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f7527726520747279696e6720746f2053746f6e6b20746f6f206d75636821600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b612a5a81612790565b8114612a6557600080fd5b50565b612a71816127ce565b8114612a7c57600080fd5b5056fea2646970667358221220a7c0b2527bae1d17bf8cfd48778003662564eccdf0ed95a86343dddfb811009a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637e5dd745116100d1578063a9059cbb1161008a578063e96fada211610064578063e96fada214610593578063f1d5f517146105be578063f887ea40146105e7578063f9534555146106125761018c565b8063a9059cbb14610502578063d3efadf31461053f578063dd62ed3e146105565761018c565b80637e5dd745146103f0578063893d20e81461041b57806395d89b41146104465780639d0014b114610471578063a64c9afc1461049a578063a8aa1b31146104d75761018c565b806323b872dd1161013e578063571ac8b011610118578063571ac8b0146103345780636c0a24eb1461037157806370a082311461039c578063715018a6146103d95761018c565b806323b872dd1461028f5780632f54bf6e146102cc578063313ce567146103095761018c565b80630445b6671461019157806306fdde03146101bc57806307524349146101e7578063095ea7b3146101fe57806318160ddd1461023b5780631e104031146102665761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661063b565b6040516101b39190612562565b60405180910390f35b3480156101c857600080fd5b506101d1610641565b6040516101de9190612480565b60405180910390f35b3480156101f357600080fd5b506101fc61067e565b005b34801561020a57600080fd5b50610225600480360381019061022091906120ec565b6106e3565b604051610232919061244a565b60405180910390f35b34801561024757600080fd5b506102506107d5565b60405161025d9190612562565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190611fff565b6107df565b005b34801561029b57600080fd5b506102b660048036038101906102b19190612099565b610882565b6040516102c3919061244a565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee9190611fff565b610a82565b604051610300919061244a565b60405180910390f35b34801561031557600080fd5b5061031e610adb565b60405161032b9190612600565b60405180910390f35b34801561034057600080fd5b5061035b60048036038101906103569190611fff565b610ae4565b604051610368919061244a565b60405180910390f35b34801561037d57600080fd5b50610386610b17565b6040516103939190612562565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190611fff565b610b1d565b6040516103d09190612562565b60405180910390f35b3480156103e557600080fd5b506103ee610b66565b005b3480156103fc57600080fd5b50610405610c29565b604051610412919061244a565b60405180910390f35b34801561042757600080fd5b50610430610c3c565b60405161043d91906123ce565b60405180910390f35b34801561045257600080fd5b5061045b610c65565b6040516104689190612480565b60405180910390f35b34801561047d57600080fd5b506104986004803603810190610493919061212c565b610ca2565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190611fff565b610d0f565b6040516104ce919061244a565b60405180910390f35b3480156104e357600080fd5b506104ec610d65565b6040516104f991906123ce565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906120ec565b610d8b565b604051610536919061244a565b60405180910390f35b34801561054b57600080fd5b50610554610da0565b005b34801561056257600080fd5b5061057d60048036038101906105789190612059565b610dd8565b60405161058a9190612562565b60405180910390f35b34801561059f57600080fd5b506105a8610e5f565b6040516105b591906123ce565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e0919061212c565b610e85565b005b3480156105f357600080fd5b506105fc610ef1565b6040516106099190612465565b60405180910390f35b34801561061e57600080fd5b5061063960048036038101906106349190611fff565b610f17565b005b60115481565b60606040518060400160405280600981526020017f53746f6e6b20496e750000000000000000000000000000000000000000000000815250905090565b61068733610a82565b6106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd90612542565b60405180910390fd5b6001601060146101000a81548160ff021916908315150217905550565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190612562565b60405180910390a36001905092915050565b6000600354905090565b6107e833610a82565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e90612542565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a6e576109ed826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fba9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a7984848461101e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610b10827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106e3565b9050919050565b60045481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b6f33610a82565b610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590612542565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c1f91906123ce565b60405180910390a1565b601060149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f53746f6e6b000000000000000000000000000000000000000000000000000000815250905090565b610cab33610a82565b610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190612542565b60405180910390fd5b80620186a0600354610cfc91906126d1565b610d069190612702565b60118190555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9833848461101e565b905092915050565b610dd530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dd030610b1d565b611446565b50565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e8e33610a82565b610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490612542565b60405180910390fd5b6103e881600354610ede9190612702565b610ee891906126d1565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f2033610a82565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690612542565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000838311158290611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff99190612480565b60405180910390fd5b5060008385611011919061275c565b9050809150509392505050565b6000601060149054906101000a900460ff1680611040575061103f83610d0f565b5b61107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906124e2565b60405180910390fd5b601260009054906101000a900460ff16156110a65761109f848484611446565b905061143f565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111525750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561123b57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111fb575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111f8919061267b565b11155b61123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190612522565b60405180910390fd5b5b611243611619565b15611251576112506116d8565b5b6112da826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fba9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061132885611c40565b611332578261133d565b61133c8584611c97565b5b905061139181600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114319190612562565b60405180910390a360019150505b9392505050565b60006114d1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fba9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061156682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116069190612562565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116865750601260009054906101000a900460ff16155b80156116d35750601154600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601060146101000a81548160ff021916908315150217905550600060115490506000611738600261172a600c5461171c600a5487611e3990919063ffffffff16565b611eb490919063ffffffff16565b611eb490919063ffffffff16565b9050600061174f8284611efe90919063ffffffff16565b90506000600267ffffffffffffffff81111561176e5761176d6128ed565b5b60405190808252806020026020018201604052801561179c5781602001602082028036833780820191505090505b50905030816000815181106117b4576117b36128be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561185657600080fd5b505afa15801561186a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188e919061202c565b816001815181106118a2576118a16128be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161194595949392919061257d565b600060405180830381600087803b15801561195f57600080fd5b505af1158015611973573d6000803e3d6000fd5b50505050600061198c8247611efe90919063ffffffff16565b905060006119ba6119a96002600a54611eb490919063ffffffff16565b600c54611efe90919063ffffffff16565b905060006119f860026119ea846119dc600a5488611e3990919063ffffffff16565b611eb490919063ffffffff16565b611eb490919063ffffffff16565b90506000611a2383611a15600b5487611e3990919063ffffffff16565b611eb490919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611a71906123b9565b600060405180830381858888f193505050503d8060008114611aaf576040519150601f19603f3d011682016040523d82523d6000602084013e611ab4565b606091505b5050905080611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef906124c2565b60405180910390fd5b6000891115611c1957600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611b8a969594939291906123e9565b6060604051808303818588803b158015611ba357600080fd5b505af1158015611bb7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bdc9190612159565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611c109291906125d7565b60405180910390a15b505050505050505050506000601060146101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611cc3600d54611cb5600c5486611e3990919063ffffffff16565b611eb490919063ffffffff16565b9050611d1781600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db79190612562565b60405180910390a3611dd28184611efe90919063ffffffff16565b91505092915050565b6000808284611dea919061267b565b905083811015611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e26906124a2565b60405180910390fd5b8091505092915050565b600080831415611e4c5760009050611eae565b60008284611e5a9190612702565b9050828482611e6991906126d1565b14611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea090612502565b60405180910390fd5b809150505b92915050565b6000611ef683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f48565b905092915050565b6000611f4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fba565b905092915050565b60008083118290611f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f869190612480565b60405180910390fd5b5060008385611f9e91906126d1565b9050809150509392505050565b600081359050611fba81612a51565b92915050565b600081519050611fcf81612a51565b92915050565b600081359050611fe481612a68565b92915050565b600081519050611ff981612a68565b92915050565b6000602082840312156120155761201461291c565b5b600061202384828501611fab565b91505092915050565b6000602082840312156120425761204161291c565b5b600061205084828501611fc0565b91505092915050565b600080604083850312156120705761206f61291c565b5b600061207e85828601611fab565b925050602061208f85828601611fab565b9150509250929050565b6000806000606084860312156120b2576120b161291c565b5b60006120c086828701611fab565b93505060206120d186828701611fab565b92505060406120e286828701611fd5565b9150509250925092565b600080604083850312156121035761210261291c565b5b600061211185828601611fab565b925050602061212285828601611fd5565b9150509250929050565b6000602082840312156121425761214161291c565b5b600061215084828501611fd5565b91505092915050565b6000806000606084860312156121725761217161291c565b5b600061218086828701611fea565b935050602061219186828701611fea565b92505060406121a286828701611fea565b9150509250925092565b60006121b883836121c4565b60208301905092915050565b6121cd81612790565b82525050565b6121dc81612790565b82525050565b60006121ed8261262b565b6121f7818561264e565b93506122028361261b565b8060005b8381101561223357815161221a88826121ac565b975061222583612641565b925050600181019050612206565b5085935050505092915050565b612249816127a2565b82525050565b612258816127e5565b82525050565b612267816127f7565b82525050565b600061227882612636565b612282818561266a565b935061229281856020860161282d565b61229b81612921565b840191505092915050565b60006122b3601b8361266a565b91506122be82612932565b602082019050919050565b60006122d6601e8361266a565b91506122e18261295b565b602082019050919050565b60006122f9601e8361266a565b915061230482612984565b602082019050919050565b600061231c60218361266a565b9150612327826129ad565b604082019050919050565b600061233f60208361266a565b915061234a826129fc565b602082019050919050565b600061236260068361266a565b915061236d82612a25565b602082019050919050565b600061238560008361265f565b915061239082612a4e565b600082019050919050565b6123a4816127ce565b82525050565b6123b3816127d8565b82525050565b60006123c482612378565b9150819050919050565b60006020820190506123e360008301846121d3565b92915050565b600060c0820190506123fe60008301896121d3565b61240b602083018861239b565b612418604083018761225e565b612425606083018661225e565b61243260808301856121d3565b61243f60a083018461239b565b979650505050505050565b600060208201905061245f6000830184612240565b92915050565b600060208201905061247a600083018461224f565b92915050565b6000602082019050818103600083015261249a818461226d565b905092915050565b600060208201905081810360008301526124bb816122a6565b9050919050565b600060208201905081810360008301526124db816122c9565b9050919050565b600060208201905081810360008301526124fb816122ec565b9050919050565b6000602082019050818103600083015261251b8161230f565b9050919050565b6000602082019050818103600083015261253b81612332565b9050919050565b6000602082019050818103600083015261255b81612355565b9050919050565b6000602082019050612577600083018461239b565b92915050565b600060a082019050612592600083018861239b565b61259f602083018761225e565b81810360408301526125b181866121e2565b90506125c060608301856121d3565b6125cd608083018461239b565b9695505050505050565b60006040820190506125ec600083018561239b565b6125f9602083018461239b565b9392505050565b600060208201905061261560008301846123aa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612686826127ce565b9150612691836127ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126c6576126c5612860565b5b828201905092915050565b60006126dc826127ce565b91506126e7836127ce565b9250826126f7576126f661288f565b5b828204905092915050565b600061270d826127ce565b9150612718836127ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561275157612750612860565b5b828202905092915050565b6000612767826127ce565b9150612772836127ce565b92508282101561278557612784612860565b5b828203905092915050565b600061279b826127ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127f082612809565b9050919050565b6000612802826127ce565b9050919050565b60006128148261281b565b9050919050565b6000612826826127ae565b9050919050565b60005b8381101561284b578082015181840152602081019050612830565b8381111561285a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f54726164696e672069732063757272656e74726c792073746f707065642e0000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f7527726520747279696e6720746f2053746f6e6b20746f6f206d75636821600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b612a5a81612790565b8114612a6557600080fd5b50565b612a71816127ce565b8114612a7c57600080fd5b5056fea2646970667358221220a7c0b2527bae1d17bf8cfd48778003662564eccdf0ed95a86343dddfb811009a64736f6c63430008070033

Deployed Bytecode Sourcemap

374:9533:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1480:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2886:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6019:85;;;;;;;;;;;;;:::i;:::-;;3376:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2580:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6511:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3924:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;265:101:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:92:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3616:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;762:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3080:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;371:128:3;;;;;;;;;;;;;:::i;:::-;;1438:36:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2984:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9699:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6745:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1412:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3742:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9369:179;;;;;;;;;;;;;:::i;:::-;;3203:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9554:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1382:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1480:59;;;;:::o;2886:92::-;2934:13;2966:5;;;;;;;;;;;;;;;;;2959:12;;2886:92;:::o;6019:85::-;220:19:3;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6093:4:5::1;6074:16;;:23;;;;;;;;;;;;;;;;;;6019:85::o:0;3376:234::-;3473:4;3524:6;3489:11;:23;3501:10;3489:23;;;;;;;;;;;;;;;:32;3513:7;3489:32;;;;;;;;;;;;;;;:41;;;;3566:7;3545:37;;3554:10;3545:37;;;3575:6;3545:37;;;;;;:::i;:::-;;;;;;;;3599:4;3592:11;;3376:234;;;;:::o;2580:100::-;2635:7;2661:12;;2654:19;;2580:100;:::o;6511:104::-;220:19:3;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6604:4:5::1;6579:12;:22;6592:8;6579:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;6511:104:::0;:::o;3924:413::-;4054:4;4109:17;4074:11;:19;4086:6;4074:19;;;;;;;;;;;;;;;:31;4094:10;4074:31;;;;;;;;;;;;;;;;:52;4070:203;;4176:86;4229:6;4176:86;;;;;;;;;;;;;;;;;:11;:19;4188:6;4176:19;;;;;;;;;;;;;;;:31;4196:10;4176:31;;;;;;;;;;;;;;;;:52;;:86;;;;;:::i;:::-;4142:11;:19;4154:6;4142:19;;;;;;;;;;;;;;;:31;4162:10;4142:31;;;;;;;;;;;;;;;:120;;;;4070:203;4290:40;4304:6;4312:9;4323:6;4290:13;:40::i;:::-;4283:47;;3924:413;;;;;:::o;265:101:3:-;320:4;354:5;;;;;;;;;;;343:16;;:7;:16;;;336:23;;265:101;;;:::o;2686:92:5:-;2738:5;691:2;2755:16;;2686:92;:::o;3616:120::-;3671:4;3694:35;3702:7;3711:17;3694:7;:35::i;:::-;3687:42;;3616:120;;;:::o;762:58::-;;;;:::o;3080:117::-;3146:7;3172:9;:18;3182:7;3172:18;;;;;;;;;;;;;;;;3165:25;;3080:117;;;:::o;371:128:3:-;220:19;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;443:1:::1;427:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;460:32;489:1;460:32;;;;;;:::i;:::-;;;;;;;;371:128::o:0;1438:36:5:-;;;;;;;;;;;;;:::o;2984:90::-;3036:7;3062:5;;;;;;;;;;;3055:12;;2984:90;:::o;2784:96::-;2834:13;2866:7;;;;;;;;;;;;;;;;;2859:14;;2784:96;:::o;9699:142::-;220:19:3;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9820:14:5::1;9810:6;9795:12;;:21;;;;:::i;:::-;9794:40;;;;:::i;:::-;9778:13;:56;;;;9699:142:::0;:::o;6745:114::-;6807:4;6830:12;:22;6843:8;6830:22;;;;;;;;;;;;;;;;;;;;;;;;;6823:29;;6745:114;;;:::o;1412:19::-;;;;;;;;;;;;;:::o;3742:176::-;3844:4;3867:44;3881:10;3893:9;3904:6;3867:13;:44::i;:::-;3860:51;;3742:176;;;;:::o;9369:179::-;9418:123;9454:4;9473:20;;;;;;;;;;;9507:24;9525:4;9507:9;:24::i;:::-;9418:14;:123::i;:::-;;9369:179::o;3203:167::-;3309:7;3335:11;:19;3347:6;3335:19;;;;;;;;;;;;;;;:28;3355:7;3335:28;;;;;;;;;;;;;;;;3328:35;;3203:167;;;;:::o;1287:88::-;;;;;;;;;;;;;:::o;9554:139::-;220:19:3;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9682:4:5::1;9665:13;9650:12;;:28;;;;:::i;:::-;9649:37;;;;:::i;:::-;9630:16;:56;;;;9554:139:::0;:::o;1382:24::-;;;;;;;;;;;;;:::o;6300:102::-;220:19:3;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6391:4:5::1;6367:11;:21;6379:8;6367:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6300:102:::0;:::o;399:186:4:-;485:7;517:1;512;:6;;520:12;504:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;543:9;559:1;555;:5;;;;:::i;:::-;543:17;;577:1;570:8;;;399:186;;;;;:::o;4343:1107:5:-;4468:4;4505:16;;;;;;;;;;;:47;;;;4526:25;4540:10;4526:13;:25::i;:::-;4505:47;4484:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;4622:6;;;;;;;;;;;4618:88;;;4651:44;4666:7;4675:10;4687:7;4651:14;:44::i;:::-;4644:51;;;;4618:88;4734:4;;;;;;;;;;;4720:18;;:10;:18;;;;:40;;;;;4756:4;;;;;;;;;;;4742:18;;:10;:18;;;;4720:40;4716:264;;;4801:15;:27;4817:10;4801:27;;;;;;;;;;;;;;;;;;;;;;;;;:102;;;;4887:16;;4876:7;4852:9;:21;4862:10;4852:21;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:51;;4801:102;4776:193;;;;;;;;;;;;:::i;:::-;;;;;;;;;4716:264;4993:16;:14;:16::i;:::-;4989:57;;;5025:10;:8;:10::i;:::-;4989:57;5077:89;5113:7;5077:89;;;;;;;;;;;;;;;;;:9;:18;5087:7;5077:18;;;;;;;;;;;;;;;;:22;;:89;;;;;:::i;:::-;5056:9;:18;5066:7;5056:18;;;;;;;;;;;;;;;:110;;;;5177:22;5202;5216:7;5202:13;:22::i;:::-;:84;;5279:7;5202:84;;;5239:25;5247:7;5256;5239;:25::i;:::-;5202:84;5177:109;;5320:41;5346:14;5320:9;:21;5330:10;5320:21;;;;;;;;;;;;;;;;:25;;:41;;;;:::i;:::-;5296:9;:21;5306:10;5296:21;;;;;;;;;;;;;;;:65;;;;5395:10;5377:45;;5386:7;5377:45;;;5407:14;5377:45;;;;;;:::i;:::-;;;;;;;;5439:4;5432:11;;;4343:1107;;;;;;:::o;5456:389::-;5579:4;5615:87;5650:6;5615:87;;;;;;;;;;;;;;;;;:9;:17;5625:6;5615:17;;;;;;;;;;;;;;;;:21;;:87;;;;;:::i;:::-;5595:9;:17;5605:6;5595:17;;;;;;;;;;;;;;;:107;;;;5735:32;5760:6;5735:9;:20;5745:9;5735:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5712:9;:20;5722:9;5712:20;;;;;;;;;;;;;;;:55;;;;5799:9;5782:35;;5791:6;5782:35;;;5810:6;5782:35;;;;;;:::i;:::-;;;;;;;;5834:4;5827:11;;5456:389;;;;;:::o;7217:189::-;7266:4;7315;;;;;;;;;;;7301:18;;:10;:18;;;;:41;;;;;7336:6;;;;;;;;;;;7335:7;7301:41;:98;;;;;7386:13;;7358:9;:24;7376:4;7358:24;;;;;;;;;;;;;;;;:41;;7301:98;7282:117;;7217:189;:::o;7412:1621::-;1619:4;1600:16;;:23;;;;;;;;;;;;;;;;;;7461:28:::1;7492:13;;7461:44;;7515:23;7541:98;7637:1;7541:78;7610:8;;7541:51;7579:12;;7541:20;:37;;:51;;;;:::i;:::-;:68;;:78;;;;:::i;:::-;:95;;:98;;;;:::i;:::-;7515:124;;7649:20;7672:41;7697:15;7672:20;:24;;:41;;;;:::i;:::-;7649:64;;7724:21;7762:1;7748:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:40;;7792:4;7774;7779:1;7774:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7817:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7807:4;7812:1;7807:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7841:21;7865;7841:45;;7897:6;;;;;;;;;;;:57;;;7968:12;7994:1;8009:4;8035;8054:15;7897:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8089:17;8109:40;8135:13;8109:21;:25;;:40;;;;:::i;:::-;8089:60;;8159:19;8181:33;8194:19;8211:1;8194:12;;:16;;:19;;;;:::i;:::-;8181:8;;:12;;:33;;;;:::i;:::-;8159:55;;8224:26;8253:90;8341:1;8253:70;8311:11;8253:40;8280:12;;8253:9;:26;;:40;;;;:::i;:::-;:57;;:70;;;;:::i;:::-;:87;;:90;;;;:::i;:::-;8224:119;;8353:26;8382:66;8427:11;8382:27;8396:12;;8382:9;:13;;:27;;;;:::i;:::-;:31;;:66;;;;:::i;:::-;8353:95;;8460:21;8532:20;;;;;;;;;;;8511:56;;8575:18;8600:5;8511:99;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8459:151;;;8628:16;8620:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8712:1;8694:15;:19;8690:337;;;8729:6;;;;;;;;;;;:22;;;8759:18;8804:4;8827:15;8860:1;8879::::0;8898:4:::1;;;;;;;;;;;8920:15;8729:220;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8968:48;8980:18;9000:15;8968:48;;;;;;;:::i;:::-;;;;;;;;8690:337;7451:1582;;;;;;;;;;1663:5:::0;1644:16;;:24;;;;;;;;;;;;;;;;;;7412:1621::o;6110:112::-;6172:4;6196:11;:19;6208:6;6196:19;;;;;;;;;;;;;;;;;;;;;;;;;6195:20;6188:27;;6110:112;;;:::o;6865:346::-;6954:7;6973:17;6993:40;7018:14;;6993:20;7004:8;;6993:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;6973:60;;7070:39;7099:9;7070;:24;7088:4;7070:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;7043:9;:24;7061:4;7043:24;;;;;;;;;;;;;;;:66;;;;7149:4;7124:42;;7133:6;7124:42;;;7156:9;7124:42;;;;;;:::i;:::-;;;;;;;;7183:21;7194:9;7183:6;:10;;:21;;;;:::i;:::-;7176:28;;;6865:346;;;;:::o;80:175:4:-;138:7;157:9;173:1;169;:5;;;;:::i;:::-;157:17;;197:1;192;:6;;184:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;247:1;240:8;;;80:175;;;;:::o;590:239::-;648:7;676:1;671;:6;667:45;;;700:1;693:8;;;;667:45;721:9;737:1;733;:5;;;;:::i;:::-;721:17;;765:1;760;756;:5;;;;:::i;:::-;:10;748:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;821:1;814:8;;;590:239;;;;;:::o;834:130::-;892:7;918:39;922:1;925;918:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;911:46;;834:130;;;;:::o;260:134::-;318:7;344:43;348:1;351;344:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;337:50;;260:134;;;;:::o;969:185::-;1055:7;1086:1;1082;:5;1089:12;1074:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1112:9;1128:1;1124;:5;;;;:::i;:::-;1112:17;;1146:1;1139:8;;;969:185;;;;;:::o;7:139:6:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;301:139;;;;:::o;446:143::-;503:5;534:6;528:13;519:22;;550:33;577:5;550:33;:::i;:::-;446:143;;;;:::o;595:329::-;654:6;703:2;691:9;682:7;678:23;674:32;671:119;;;709:79;;:::i;:::-;671:119;829:1;854:53;899:7;890:6;879:9;875:22;854:53;:::i;:::-;844:63;;800:117;595:329;;;;:::o;930:351::-;1000:6;1049:2;1037:9;1028:7;1024:23;1020:32;1017:119;;;1055:79;;:::i;:::-;1017:119;1175:1;1200:64;1256:7;1247:6;1236:9;1232:22;1200:64;:::i;:::-;1190:74;;1146:128;930:351;;;;:::o;1287:474::-;1355:6;1363;1412:2;1400:9;1391:7;1387:23;1383:32;1380:119;;;1418:79;;:::i;:::-;1380:119;1538:1;1563:53;1608:7;1599:6;1588:9;1584:22;1563:53;:::i;:::-;1553:63;;1509:117;1665:2;1691:53;1736:7;1727:6;1716:9;1712:22;1691:53;:::i;:::-;1681:63;;1636:118;1287:474;;;;;:::o;1767:619::-;1844:6;1852;1860;1909:2;1897:9;1888:7;1884:23;1880:32;1877:119;;;1915:79;;:::i;:::-;1877:119;2035:1;2060:53;2105:7;2096:6;2085:9;2081:22;2060:53;:::i;:::-;2050:63;;2006:117;2162:2;2188:53;2233:7;2224:6;2213:9;2209:22;2188:53;:::i;:::-;2178:63;;2133:118;2290:2;2316:53;2361:7;2352:6;2341:9;2337:22;2316:53;:::i;:::-;2306:63;;2261:118;1767:619;;;;;:::o;2392:474::-;2460:6;2468;2517:2;2505:9;2496:7;2492:23;2488:32;2485:119;;;2523:79;;:::i;:::-;2485:119;2643:1;2668:53;2713:7;2704:6;2693:9;2689:22;2668:53;:::i;:::-;2658:63;;2614:117;2770:2;2796:53;2841:7;2832:6;2821:9;2817:22;2796:53;:::i;:::-;2786:63;;2741:118;2392:474;;;;;:::o;2872:329::-;2931:6;2980:2;2968:9;2959:7;2955:23;2951:32;2948:119;;;2986:79;;:::i;:::-;2948:119;3106:1;3131:53;3176:7;3167:6;3156:9;3152:22;3131:53;:::i;:::-;3121:63;;3077:117;2872:329;;;;:::o;3207:663::-;3295:6;3303;3311;3360:2;3348:9;3339:7;3335:23;3331:32;3328:119;;;3366:79;;:::i;:::-;3328:119;3486:1;3511:64;3567:7;3558:6;3547:9;3543:22;3511:64;:::i;:::-;3501:74;;3457:128;3624:2;3650:64;3706:7;3697:6;3686:9;3682:22;3650:64;:::i;:::-;3640:74;;3595:129;3763:2;3789:64;3845:7;3836:6;3825:9;3821:22;3789:64;:::i;:::-;3779:74;;3734:129;3207:663;;;;;:::o;3876:179::-;3945:10;3966:46;4008:3;4000:6;3966:46;:::i;:::-;4044:4;4039:3;4035:14;4021:28;;3876:179;;;;:::o;4061:108::-;4138:24;4156:5;4138:24;:::i;:::-;4133:3;4126:37;4061:108;;:::o;4175:118::-;4262:24;4280:5;4262:24;:::i;:::-;4257:3;4250:37;4175:118;;:::o;4329:732::-;4448:3;4477:54;4525:5;4477:54;:::i;:::-;4547:86;4626:6;4621:3;4547:86;:::i;:::-;4540:93;;4657:56;4707:5;4657:56;:::i;:::-;4736:7;4767:1;4752:284;4777:6;4774:1;4771:13;4752:284;;;4853:6;4847:13;4880:63;4939:3;4924:13;4880:63;:::i;:::-;4873:70;;4966:60;5019:6;4966:60;:::i;:::-;4956:70;;4812:224;4799:1;4796;4792:9;4787:14;;4752:284;;;4756:14;5052:3;5045:10;;4453:608;;;4329:732;;;;:::o;5067:109::-;5148:21;5163:5;5148:21;:::i;:::-;5143:3;5136:34;5067:109;;:::o;5182:167::-;5287:55;5336:5;5287:55;:::i;:::-;5282:3;5275:68;5182:167;;:::o;5355:147::-;5450:45;5489:5;5450:45;:::i;:::-;5445:3;5438:58;5355:147;;:::o;5508:364::-;5596:3;5624:39;5657:5;5624:39;:::i;:::-;5679:71;5743:6;5738:3;5679:71;:::i;:::-;5672:78;;5759:52;5804:6;5799:3;5792:4;5785:5;5781:16;5759:52;:::i;:::-;5836:29;5858:6;5836:29;:::i;:::-;5831:3;5827:39;5820:46;;5600:272;5508:364;;;;:::o;5878:366::-;6020:3;6041:67;6105:2;6100:3;6041:67;:::i;:::-;6034:74;;6117:93;6206:3;6117:93;:::i;:::-;6235:2;6230:3;6226:12;6219:19;;5878:366;;;:::o;6250:::-;6392:3;6413:67;6477:2;6472:3;6413:67;:::i;:::-;6406:74;;6489:93;6578:3;6489:93;:::i;:::-;6607:2;6602:3;6598:12;6591:19;;6250:366;;;:::o;6622:::-;6764:3;6785:67;6849:2;6844:3;6785:67;:::i;:::-;6778:74;;6861:93;6950:3;6861:93;:::i;:::-;6979:2;6974:3;6970:12;6963:19;;6622:366;;;:::o;6994:::-;7136:3;7157:67;7221:2;7216:3;7157:67;:::i;:::-;7150:74;;7233:93;7322:3;7233:93;:::i;:::-;7351:2;7346:3;7342:12;7335:19;;6994:366;;;:::o;7366:::-;7508:3;7529:67;7593:2;7588:3;7529:67;:::i;:::-;7522:74;;7605:93;7694:3;7605:93;:::i;:::-;7723:2;7718:3;7714:12;7707:19;;7366:366;;;:::o;7738:365::-;7880:3;7901:66;7965:1;7960:3;7901:66;:::i;:::-;7894:73;;7976:93;8065:3;7976:93;:::i;:::-;8094:2;8089:3;8085:12;8078:19;;7738:365;;;:::o;8109:398::-;8268:3;8289:83;8370:1;8365:3;8289:83;:::i;:::-;8282:90;;8381:93;8470:3;8381:93;:::i;:::-;8499:1;8494:3;8490:11;8483:18;;8109:398;;;:::o;8513:118::-;8600:24;8618:5;8600:24;:::i;:::-;8595:3;8588:37;8513:118;;:::o;8637:112::-;8720:22;8736:5;8720:22;:::i;:::-;8715:3;8708:35;8637:112;;:::o;8755:379::-;8939:3;8961:147;9104:3;8961:147;:::i;:::-;8954:154;;9125:3;9118:10;;8755:379;;;:::o;9140:222::-;9233:4;9271:2;9260:9;9256:18;9248:26;;9284:71;9352:1;9341:9;9337:17;9328:6;9284:71;:::i;:::-;9140:222;;;;:::o;9368:807::-;9617:4;9655:3;9644:9;9640:19;9632:27;;9669:71;9737:1;9726:9;9722:17;9713:6;9669:71;:::i;:::-;9750:72;9818:2;9807:9;9803:18;9794:6;9750:72;:::i;:::-;9832:80;9908:2;9897:9;9893:18;9884:6;9832:80;:::i;:::-;9922;9998:2;9987:9;9983:18;9974:6;9922:80;:::i;:::-;10012:73;10080:3;10069:9;10065:19;10056:6;10012:73;:::i;:::-;10095;10163:3;10152:9;10148:19;10139:6;10095:73;:::i;:::-;9368:807;;;;;;;;;:::o;10181:210::-;10268:4;10306:2;10295:9;10291:18;10283:26;;10319:65;10381:1;10370:9;10366:17;10357:6;10319:65;:::i;:::-;10181:210;;;;:::o;10397:258::-;10508:4;10546:2;10535:9;10531:18;10523:26;;10559:89;10645:1;10634:9;10630:17;10621:6;10559:89;:::i;:::-;10397:258;;;;:::o;10661:313::-;10774:4;10812:2;10801:9;10797:18;10789:26;;10861:9;10855:4;10851:20;10847:1;10836:9;10832:17;10825:47;10889:78;10962:4;10953:6;10889:78;:::i;:::-;10881:86;;10661:313;;;;:::o;10980:419::-;11146:4;11184:2;11173:9;11169:18;11161:26;;11233:9;11227:4;11223:20;11219:1;11208:9;11204:17;11197:47;11261:131;11387:4;11261:131;:::i;:::-;11253:139;;10980:419;;;:::o;11405:::-;11571:4;11609:2;11598:9;11594:18;11586:26;;11658:9;11652:4;11648:20;11644:1;11633:9;11629:17;11622:47;11686:131;11812:4;11686:131;:::i;:::-;11678:139;;11405:419;;;:::o;11830:::-;11996:4;12034:2;12023:9;12019:18;12011:26;;12083:9;12077:4;12073:20;12069:1;12058:9;12054:17;12047:47;12111:131;12237:4;12111:131;:::i;:::-;12103:139;;11830:419;;;:::o;12255:::-;12421:4;12459:2;12448:9;12444:18;12436:26;;12508:9;12502:4;12498:20;12494:1;12483:9;12479:17;12472:47;12536:131;12662:4;12536:131;:::i;:::-;12528:139;;12255:419;;;:::o;12680:::-;12846:4;12884:2;12873:9;12869:18;12861:26;;12933:9;12927:4;12923:20;12919:1;12908:9;12904:17;12897:47;12961:131;13087:4;12961:131;:::i;:::-;12953:139;;12680:419;;;:::o;13105:::-;13271:4;13309:2;13298:9;13294:18;13286:26;;13358:9;13352:4;13348:20;13344:1;13333:9;13329:17;13322:47;13386:131;13512:4;13386:131;:::i;:::-;13378:139;;13105:419;;;:::o;13530:222::-;13623:4;13661:2;13650:9;13646:18;13638:26;;13674:71;13742:1;13731:9;13727:17;13718:6;13674:71;:::i;:::-;13530:222;;;;:::o;13758:831::-;14021:4;14059:3;14048:9;14044:19;14036:27;;14073:71;14141:1;14130:9;14126:17;14117:6;14073:71;:::i;:::-;14154:80;14230:2;14219:9;14215:18;14206:6;14154:80;:::i;:::-;14281:9;14275:4;14271:20;14266:2;14255:9;14251:18;14244:48;14309:108;14412:4;14403:6;14309:108;:::i;:::-;14301:116;;14427:72;14495:2;14484:9;14480:18;14471:6;14427:72;:::i;:::-;14509:73;14577:3;14566:9;14562:19;14553:6;14509:73;:::i;:::-;13758:831;;;;;;;;:::o;14595:332::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14767:71;14835:1;14824:9;14820:17;14811:6;14767:71;:::i;:::-;14848:72;14916:2;14905:9;14901:18;14892:6;14848:72;:::i;:::-;14595:332;;;;;:::o;14933:214::-;15022:4;15060:2;15049:9;15045:18;15037:26;;15073:67;15137:1;15126:9;15122:17;15113:6;15073:67;:::i;:::-;14933:214;;;;:::o;15234:132::-;15301:4;15324:3;15316:11;;15354:4;15349:3;15345:14;15337:22;;15234:132;;;:::o;15372:114::-;15439:6;15473:5;15467:12;15457:22;;15372:114;;;:::o;15492:99::-;15544:6;15578:5;15572:12;15562:22;;15492:99;;;:::o;15597:113::-;15667:4;15699;15694:3;15690:14;15682:22;;15597:113;;;:::o;15716:184::-;15815:11;15849:6;15844:3;15837:19;15889:4;15884:3;15880:14;15865:29;;15716:184;;;;:::o;15906:147::-;16007:11;16044:3;16029:18;;15906:147;;;;:::o;16059:169::-;16143:11;16177:6;16172:3;16165:19;16217:4;16212:3;16208:14;16193:29;;16059:169;;;;:::o;16234:305::-;16274:3;16293:20;16311:1;16293:20;:::i;:::-;16288:25;;16327:20;16345:1;16327:20;:::i;:::-;16322:25;;16481:1;16413:66;16409:74;16406:1;16403:81;16400:107;;;16487:18;;:::i;:::-;16400:107;16531:1;16528;16524:9;16517:16;;16234:305;;;;:::o;16545:185::-;16585:1;16602:20;16620:1;16602:20;:::i;:::-;16597:25;;16636:20;16654:1;16636:20;:::i;:::-;16631:25;;16675:1;16665:35;;16680:18;;:::i;:::-;16665:35;16722:1;16719;16715:9;16710:14;;16545:185;;;;:::o;16736:348::-;16776:7;16799:20;16817:1;16799:20;:::i;:::-;16794:25;;16833:20;16851:1;16833:20;:::i;:::-;16828:25;;17021:1;16953:66;16949:74;16946:1;16943:81;16938:1;16931:9;16924:17;16920:105;16917:131;;;17028:18;;:::i;:::-;16917:131;17076:1;17073;17069:9;17058:20;;16736:348;;;;:::o;17090:191::-;17130:4;17150:20;17168:1;17150:20;:::i;:::-;17145:25;;17184:20;17202:1;17184:20;:::i;:::-;17179:25;;17223:1;17220;17217:8;17214:34;;;17228:18;;:::i;:::-;17214:34;17273:1;17270;17266:9;17258:17;;17090:191;;;;:::o;17287:96::-;17324:7;17353:24;17371:5;17353:24;:::i;:::-;17342:35;;17287:96;;;:::o;17389:90::-;17423:7;17466:5;17459:13;17452:21;17441:32;;17389:90;;;:::o;17485:126::-;17522:7;17562:42;17555:5;17551:54;17540:65;;17485:126;;;:::o;17617:77::-;17654:7;17683:5;17672:16;;17617:77;;;:::o;17700:86::-;17735:7;17775:4;17768:5;17764:16;17753:27;;17700:86;;;:::o;17792:144::-;17860:9;17893:37;17924:5;17893:37;:::i;:::-;17880:50;;17792:144;;;:::o;17942:121::-;18000:9;18033:24;18051:5;18033:24;:::i;:::-;18020:37;;17942:121;;;:::o;18069:126::-;18119:9;18152:37;18183:5;18152:37;:::i;:::-;18139:50;;18069:126;;;:::o;18201:113::-;18251:9;18284:24;18302:5;18284:24;:::i;:::-;18271:37;;18201:113;;;:::o;18320:307::-;18388:1;18398:113;18412:6;18409:1;18406:13;18398:113;;;18497:1;18492:3;18488:11;18482:18;18478:1;18473:3;18469:11;18462:39;18434:2;18431:1;18427:10;18422:15;;18398:113;;;18529:6;18526:1;18523:13;18520:101;;;18609:1;18600:6;18595:3;18591:16;18584:27;18520:101;18369:258;18320:307;;;:::o;18633:180::-;18681:77;18678:1;18671:88;18778:4;18775:1;18768:15;18802:4;18799:1;18792:15;18819:180;18867:77;18864:1;18857:88;18964:4;18961:1;18954:15;18988:4;18985:1;18978:15;19005:180;19053:77;19050:1;19043:88;19150:4;19147:1;19140:15;19174:4;19171:1;19164:15;19191:180;19239:77;19236:1;19229:88;19336:4;19333:1;19326:15;19360:4;19357:1;19350:15;19500:117;19609:1;19606;19599:12;19623:102;19664:6;19715:2;19711:7;19706:2;19699:5;19695:14;19691:28;19681:38;;19623:102;;;:::o;19731:177::-;19871:29;19867:1;19859:6;19855:14;19848:53;19731:177;:::o;19914:180::-;20054:32;20050:1;20042:6;20038:14;20031:56;19914:180;:::o;20100:::-;20240:32;20236:1;20228:6;20224:14;20217:56;20100:180;:::o;20286:220::-;20426:34;20422:1;20414:6;20410:14;20403:58;20495:3;20490:2;20482:6;20478:15;20471:28;20286:220;:::o;20512:182::-;20652:34;20648:1;20640:6;20636:14;20629:58;20512:182;:::o;20700:156::-;20840:8;20836:1;20828:6;20824:14;20817:32;20700:156;:::o;20862:114::-;;:::o;20982:122::-;21055:24;21073:5;21055:24;:::i;:::-;21048:5;21045:35;21035:63;;21094:1;21091;21084:12;21035:63;20982:122;:::o;21110:::-;21183:24;21201:5;21183:24;:::i;:::-;21176:5;21173:35;21163:63;;21222:1;21219;21212:12;21163:63;21110:122;:::o

Swarm Source

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