ETH Price: $2,174.41 (-3.95%)

Token

Gigachad ($GIGA)
 

Overview

Max Total Supply

696,969,696,969 $GIGA

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: $GIGA 2
Balance
5,481,956,381.248561518 $GIGA

Value
$0.00
0xa841c5028e573b1f4f3dfe3652d423ff0e214b55
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:
gigachad

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-04-18
*/

/**
Are you a GIGAchad anon?
    __               __                     
  _/  |_            /  |                    
 / $$   \   ______  $$/   ______    ______  
/$$$$$$  | /      \ /  | /      \  /      \ 
$$ \__$$/ /$$$$$$  |$$ |/$$$$$$  | $$$$$$  |
$$      \ $$ |  $$ |$$ |$$ |  $$ | /    $$ |
 $$$$$$  |$$ \__$$ |$$ |$$ \__$$ |/$$$$$$$ |
/  \__$$ |$$    $$ |$$ |$$    $$ |$$    $$ |
$$    $$/  $$$$$$$ |$$/  $$$$$$$ | $$$$$$$/ 
 $$$$$$/  /  \__$$ |    /  \__$$ |          
   $$/    $$    $$/     $$    $$/           
           $$$$$$/       $$$$$$/            

Twitter: https://twitter.com/gigachadgold
Supply: 696969696969
Initial Liquidity : 1.069WETH (locked)
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.9;

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

}

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

    function factory() external pure returns (address);

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

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

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

contract gigachad is IERC20, Ownable {
    string private constant _name = "Gigachad";
    string private constant _symbol = "$GIGA";
    uint8 private constant _decimals = 9;

    uint256 private constant _totalSupply = 696969696969 * 10 ** 9;
    uint256 private constant _maxFee = 10; 
    uint256 private _taxFeeOnSell = 5; 
    uint256 private _taxFeeOnBuy = 5;
   
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromMax; 

    address payable private constant _devAddress = payable(0x7DFB0aE4B77e575B4cE02868c498bBEaf8452eE5);
    address payable private constant _mktgAddress = payable(0x9A1A3e7c424633431a0e8B3a572B8909109D226F);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private inSwap = false;

    uint256 public _maxTxAmount = 69000000000 * 10 ** 9;
    uint256 public _maxWalletSize = 69000000000 * 10 ** 9;
    uint256 public _swapTokensAtAmount = 100000000 * 10 ** 9;

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

    constructor() {
        _balances[_msgSender()] = _totalSupply;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devAddress] = true;
        _isExcludedFromFee[_mktgAddress] = true;
        _isExcludedFromMax[owner()] = true;
        _isExcludedFromMax[address(this)] = true;
        _isExcludedFromMax[_devAddress] = true;
        _isExcludedFromMax[_mktgAddress] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        _transfer(sender, recipient, 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount != 0, "C'mon, transfer amount must be greater than zero");


        if (!_isExcludedFromMax[from] && !_isExcludedFromMax[to]) {
            require(amount <= _maxTxAmount, "TOKEN: Oh no, max Transaction Limit");
        }

        if (!_isExcludedFromMax[from] && !_isExcludedFromMax[to]) {
            require(
                balanceOf(to) + amount < _maxWalletSize,
                "TOKEN: Oh no, balance exceeds wallet size!"
            );
        }
        uint256 contractTokenBalance = balanceOf(address(this));

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

        bool canSwap = contractTokenBalance >= _swapTokensAtAmount && from != owner() && to != owner();

        if (
            canSwap &&
            !inSwap &&
            from != uniswapV2Pair &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) {
            swapTokensForEth(contractTokenBalance);

            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance != 0) {
                _mktgAddress.transfer(address(this).balance);
            }
        }

        //Transfer Tokens
        uint256 _taxFee = _getTaxFee(from, to);

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

    function _getTaxFee(
        address _from, 
        address _to
    ) internal view returns(uint256) {
        uint256 _taxFee;

        if(_from != uniswapV2Pair && _to != uniswapV2Pair){
            _taxFee = 0;
        } else if(_from == uniswapV2Pair && _to != uniswapV2Pair) {
            _taxFee = _taxFeeOnBuy;
        } else if(_to == uniswapV2Pair && _from != uniswapV2Pair) {
            _taxFee = _taxFeeOnSell;
        }


        if(_isExcludedFromFee[_from] || _isExcludedFromFee[_to]) 
        {
            _taxFee = 0;
        }

        return _taxFee;
    }

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        uint256 tax
    ) private {
        uint256 tTeam = (amount * tax) / 100;
        uint256 tTransferAmount = amount - tTeam;
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + tTransferAmount;
        if (tTeam != 0) {
            _balances[address(this)] = _balances[address(this)] + tTeam;
            emit Transfer(sender, address(this), tTeam);
        }
        emit Transfer(sender, recipient, tTransferAmount);
    }

    // onlyOwner external
    event UpdateTaxFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell);
    function setFee(
        uint256 taxFeeOnBuy,
        uint256 taxFeeOnSell
    ) external onlyOwner {
        require(taxFeeOnBuy <= _maxFee, "Fee is too high");
        require(taxFeeOnSell <= _maxFee, "Fee is too high");
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        emit UpdateTaxFee(taxFeeOnBuy, taxFeeOnSell);
    }

    //Set minimum tokens required to swap.
    event UpdateMinSwapTokenThreshold(uint256 swapTokensAtAmount);
    function setMinSwapTokensThreshold(
        uint256 swapTokensAtAmount
    ) external onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
        emit UpdateMinSwapTokenThreshold(swapTokensAtAmount);
    }

    event ExcludedFromMax(address indexed account, bool _exclude);
    function excludeMultipleAccountsFromMax(
        address[] memory accounts,
        bool _exclude
    ) external onlyOwner {
        for(uint256 i; i < accounts.length; i++) {
            _isExcludedFromMax[accounts[i]] = _exclude;
            emit ExcludedFromMax(accounts[i], _exclude);
        }
    }

    event ExcludedFromFee(address indexed account, bool _exclude);
    function excludeMultipleAccountsFromFees(
        address[] calldata accounts,
        bool excluded
    ) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
           emit ExcludedFromFee(accounts[i], excluded);
        }
    }

    
    

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"_exclude","type":"bool"}],"name":"ExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"_exclude","type":"bool"}],"name":"ExcludedFromMax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"UpdateMinSwapTokenThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"UpdateTaxFee","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_exclude","type":"bool"}],"name":"excludeMultipleAccountsFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600560015560056002556000600860146101000a81548160ff0219169083151502179055506803bd913e6c1df400006009556803bd913e6c1df40000600a5567016345785d8a0000600b553480156200005c57600080fd5b506200007d62000071620006cb60201b60201c565b620006d360201b60201c565b6825c865c6b088e49a00600360006200009b620006cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c291906200082a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027291906200082a565b6040518363ffffffff1660e01b8152600401620002919291906200086d565b6020604051808303816000875af1158015620002b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d791906200082a565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200032d6200079760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000737dfb0ae4b77e575b4ce02868c498bbeaf8452ee573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000739a1a3e7c424633431a0e8b3a572b8909109d226f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620004c46200079760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737dfb0ae4b77e575b4ce02868c498bbeaf8452ee573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000739a1a3e7c424633431a0e8b3a572b8909109d226f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000655620006cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6825c865c6b088e49a00604051620006bd9190620008b5565b60405180910390a3620008d2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f282620007c5565b9050919050565b6200080481620007e5565b81146200081057600080fd5b50565b6000815190506200082481620007f9565b92915050565b600060208284031215620008435762000842620007c0565b5b6000620008538482850162000813565b91505092915050565b6200086781620007e5565b82525050565b60006040820190506200088460008301856200085c565b6200089360208301846200085c565b9392505050565b6000819050919050565b620008af816200089a565b82525050565b6000602082019050620008cc6000830184620008a4565b92915050565b612cb980620008e26000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103dd57806398a5c31514610408578063a9059cbb14610431578063c492f0461461046e578063dd62ed3e14610497578063f2fde38b146104d457610135565b806370a0823114610308578063715018a6146103455780637d1db4a51461035c5780638da5cb5b146103875780638f9a55c0146103b257610135565b80632fd689e3116100f25780632fd689e314610235578063313ce5671461026057806341c6ee381461028b57806349bd5a5e146102b457806352f7c988146102df57610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104fd565b60405161015c9190611d1e565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611de8565b61053a565b6040516101999190611e43565b60405180910390f35b3480156101ae57600080fd5b506101b7610558565b6040516101c49190611ebd565b60405180910390f35b3480156101d957600080fd5b506101e261057e565b6040516101ef9190611ee7565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611f02565b61058f565b60405161022c9190611e43565b60405180910390f35b34801561024157600080fd5b5061024a610686565b6040516102579190611ee7565b60405180910390f35b34801561026c57600080fd5b5061027561068c565b6040516102829190611f71565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612100565b610695565b005b3480156102c057600080fd5b506102c961079a565b6040516102d6919061216b565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190612186565b6107c0565b005b34801561031457600080fd5b5061032f600480360381019061032a91906121c6565b61089b565b60405161033c9190611ee7565b60405180910390f35b34801561035157600080fd5b5061035a6108e4565b005b34801561036857600080fd5b506103716108f8565b60405161037e9190611ee7565b60405180910390f35b34801561039357600080fd5b5061039c6108fe565b6040516103a9919061216b565b60405180910390f35b3480156103be57600080fd5b506103c7610927565b6040516103d49190611ee7565b60405180910390f35b3480156103e957600080fd5b506103f261092d565b6040516103ff9190611d1e565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a91906121f3565b61096a565b005b34801561043d57600080fd5b5061045860048036038101906104539190611de8565b6109b3565b6040516104659190611e43565b60405180910390f35b34801561047a57600080fd5b506104956004803603810190610490919061227b565b6109d1565b005b3480156104a357600080fd5b506104be60048036038101906104b991906122db565b610af3565b6040516104cb9190611ee7565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f691906121c6565b610b7a565b005b60606040518060400160405280600881526020017f4769676163686164000000000000000000000000000000000000000000000000815250905090565b600061054e610547610bfd565b8484610c05565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006825c865c6b088e49a00905090565b600080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105db610bfd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561065b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106529061238d565b60405180910390fd5b61066f85610667610bfd565b858403610c05565b61067a858585610dce565b60019150509392505050565b600b5481565b60006009905090565b61069d61133e565b60005b82518110156107955781600660008584815181106106c1576106c06123ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082818151811061072d5761072c6123ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f2805abee54b8f8811367e220e10c2da1762bea5b3295e256642ccd72486259008360405161077a9190611e43565b60405180910390a2808061078d9061240b565b9150506106a0565b505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107c861133e565b600a82111561080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061249f565b60405180910390fd5b600a811115610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061249f565b60405180910390fd5b81600281905550806001819055507f3bd44ad33925c1a81e6dea38583782e35a5124cee2473f5fe16d366f0ad0d6b6828260405161088f9291906124bf565b60405180910390a15050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ec61133e565b6108f660006113bc565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600581526020017f2447494741000000000000000000000000000000000000000000000000000000815250905090565b61097261133e565b80600b819055507fd371a90ac9298515f0c64bbcd4159ea805a04df67586927b3709819f88912f99816040516109a89190611ee7565b60405180910390a150565b60006109c76109c0610bfd565b8484610dce565b6001905092915050565b6109d961133e565b60005b83839050811015610aed5781600560008686858181106109ff576109fe6123ad565b5b9050602002016020810190610a1491906121c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550838382818110610a7857610a776123ad565b5b9050602002016020810190610a8d91906121c6565b73ffffffffffffffffffffffffffffffffffffffff167f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa983604051610ad29190611e43565b60405180910390a28080610ae59061240b565b9150506109dc565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b8261133e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be89061255a565b60405180910390fd5b610bfa816113bc565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b906125ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda9061267e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc19190611ee7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612710565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906127a2565b60405180910390fd5b60008103610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690612834565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f935750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610fde57600954811115610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd4906128c6565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110825750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156110df57600a54816110948461089b565b61109e91906128e6565b106110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d59061298c565b60405180910390fd5b5b60006110ea3061089b565b905060095481106110fb5760095490505b6000600b54821015801561114257506111126108fe565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561118157506111516108fe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b905080801561119d5750600860149054906101000a900460ff16155b80156111f75750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561124d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156112a35750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561131c576112b182611480565b60004790506000811461131a57739a1a3e7c424633431a0e8b3a572b8909109d226f73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611318573d6000803e3d6000fd5b505b505b600061132886866116f9565b9050611336868686846119dd565b505050505050565b611346610bfd565b73ffffffffffffffffffffffffffffffffffffffff166113646108fe565b73ffffffffffffffffffffffffffffffffffffffff16146113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906129f8565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600860146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156114b8576114b7611f91565b5b6040519080825280602002602001820160405280156114e65781602001602082028036833780820191505090505b50905030816000815181106114fe576114fd6123ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c99190612a2d565b816001815181106115dd576115dc6123ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061164430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c05565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016116a8959493929190612b53565b600060405180830381600087803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b50505050506000600860146101000a81548160ff02191690831515021790555050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117a85750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b65760009050611928565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118615750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611870576002549050611927565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561191b5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119265760015490505b5b5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119c95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119d357600090505b8091505092915050565b6000606482846119ed9190612bad565b6119f79190612c1e565b905060008184611a079190612c4f565b905083600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a549190612c4f565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae291906128e6565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008214611c215781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7891906128e6565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c189190611ee7565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c7e9190611ee7565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc8578082015181840152602081019050611cad565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cf082611c8e565b611cfa8185611c99565b9350611d0a818560208601611caa565b611d1381611cd4565b840191505092915050565b60006020820190508181036000830152611d388184611ce5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d7f82611d54565b9050919050565b611d8f81611d74565b8114611d9a57600080fd5b50565b600081359050611dac81611d86565b92915050565b6000819050919050565b611dc581611db2565b8114611dd057600080fd5b50565b600081359050611de281611dbc565b92915050565b60008060408385031215611dff57611dfe611d4a565b5b6000611e0d85828601611d9d565b9250506020611e1e85828601611dd3565b9150509250929050565b60008115159050919050565b611e3d81611e28565b82525050565b6000602082019050611e586000830184611e34565b92915050565b6000819050919050565b6000611e83611e7e611e7984611d54565b611e5e565b611d54565b9050919050565b6000611e9582611e68565b9050919050565b6000611ea782611e8a565b9050919050565b611eb781611e9c565b82525050565b6000602082019050611ed26000830184611eae565b92915050565b611ee181611db2565b82525050565b6000602082019050611efc6000830184611ed8565b92915050565b600080600060608486031215611f1b57611f1a611d4a565b5b6000611f2986828701611d9d565b9350506020611f3a86828701611d9d565b9250506040611f4b86828701611dd3565b9150509250925092565b600060ff82169050919050565b611f6b81611f55565b82525050565b6000602082019050611f866000830184611f62565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611fc982611cd4565b810181811067ffffffffffffffff82111715611fe857611fe7611f91565b5b80604052505050565b6000611ffb611d40565b90506120078282611fc0565b919050565b600067ffffffffffffffff82111561202757612026611f91565b5b602082029050602081019050919050565b600080fd5b600061205061204b8461200c565b611ff1565b9050808382526020820190506020840283018581111561207357612072612038565b5b835b8181101561209c57806120888882611d9d565b845260208401935050602081019050612075565b5050509392505050565b600082601f8301126120bb576120ba611f8c565b5b81356120cb84826020860161203d565b91505092915050565b6120dd81611e28565b81146120e857600080fd5b50565b6000813590506120fa816120d4565b92915050565b6000806040838503121561211757612116611d4a565b5b600083013567ffffffffffffffff81111561213557612134611d4f565b5b612141858286016120a6565b9250506020612152858286016120eb565b9150509250929050565b61216581611d74565b82525050565b6000602082019050612180600083018461215c565b92915050565b6000806040838503121561219d5761219c611d4a565b5b60006121ab85828601611dd3565b92505060206121bc85828601611dd3565b9150509250929050565b6000602082840312156121dc576121db611d4a565b5b60006121ea84828501611d9d565b91505092915050565b60006020828403121561220957612208611d4a565b5b600061221784828501611dd3565b91505092915050565b600080fd5b60008083601f84011261223b5761223a611f8c565b5b8235905067ffffffffffffffff81111561225857612257612220565b5b60208301915083602082028301111561227457612273612038565b5b9250929050565b60008060006040848603121561229457612293611d4a565b5b600084013567ffffffffffffffff8111156122b2576122b1611d4f565b5b6122be86828701612225565b935093505060206122d1868287016120eb565b9150509250925092565b600080604083850312156122f2576122f1611d4a565b5b600061230085828601611d9d565b925050602061231185828601611d9d565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612377602883611c99565b91506123828261231b565b604082019050919050565b600060208201905081810360008301526123a68161236a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061241682611db2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612448576124476123dc565b5b600182019050919050565b7f46656520697320746f6f20686967680000000000000000000000000000000000600082015250565b6000612489600f83611c99565b915061249482612453565b602082019050919050565b600060208201905081810360008301526124b88161247c565b9050919050565b60006040820190506124d46000830185611ed8565b6124e16020830184611ed8565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612544602683611c99565b915061254f826124e8565b604082019050919050565b6000602082019050818103600083015261257381612537565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125d6602483611c99565b91506125e18261257a565b604082019050919050565b60006020820190508181036000830152612605816125c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612668602283611c99565b91506126738261260c565b604082019050919050565b600060208201905081810360008301526126978161265b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126fa602583611c99565b91506127058261269e565b604082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061278c602383611c99565b915061279782612730565b604082019050919050565b600060208201905081810360008301526127bb8161277f565b9050919050565b7f43276d6f6e2c207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b600061281e603083611c99565b9150612829826127c2565b604082019050919050565b6000602082019050818103600083015261284d81612811565b9050919050565b7f544f4b454e3a204f68206e6f2c206d6178205472616e73616374696f6e204c6960008201527f6d69740000000000000000000000000000000000000000000000000000000000602082015250565b60006128b0602383611c99565b91506128bb82612854565b604082019050919050565b600060208201905081810360008301526128df816128a3565b9050919050565b60006128f182611db2565b91506128fc83611db2565b9250828201905080821115612914576129136123dc565b5b92915050565b7f544f4b454e3a204f68206e6f2c2062616c616e6365206578636565647320776160008201527f6c6c65742073697a652100000000000000000000000000000000000000000000602082015250565b6000612976602a83611c99565b91506129818261291a565b604082019050919050565b600060208201905081810360008301526129a581612969565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129e2602083611c99565b91506129ed826129ac565b602082019050919050565b60006020820190508181036000830152612a11816129d5565b9050919050565b600081519050612a2781611d86565b92915050565b600060208284031215612a4357612a42611d4a565b5b6000612a5184828501612a18565b91505092915050565b6000819050919050565b6000612a7f612a7a612a7584612a5a565b611e5e565b611db2565b9050919050565b612a8f81612a64565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612aca81611d74565b82525050565b6000612adc8383612ac1565b60208301905092915050565b6000602082019050919050565b6000612b0082612a95565b612b0a8185612aa0565b9350612b1583612ab1565b8060005b83811015612b46578151612b2d8882612ad0565b9750612b3883612ae8565b925050600181019050612b19565b5085935050505092915050565b600060a082019050612b686000830188611ed8565b612b756020830187612a86565b8181036040830152612b878186612af5565b9050612b96606083018561215c565b612ba36080830184611ed8565b9695505050505050565b6000612bb882611db2565b9150612bc383611db2565b9250828202612bd181611db2565b91508282048414831517612be857612be76123dc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c2982611db2565b9150612c3483611db2565b925082612c4457612c43612bef565b5b828204905092915050565b6000612c5a82611db2565b9150612c6583611db2565b9250828203905081811115612c7d57612c7c6123dc565b5b9291505056fea26469706673582212206edb754c054bc3c289bd8d067c4575e8e5b34a87838c4f82fb416e7a3a55b15564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103dd57806398a5c31514610408578063a9059cbb14610431578063c492f0461461046e578063dd62ed3e14610497578063f2fde38b146104d457610135565b806370a0823114610308578063715018a6146103455780637d1db4a51461035c5780638da5cb5b146103875780638f9a55c0146103b257610135565b80632fd689e3116100f25780632fd689e314610235578063313ce5671461026057806341c6ee381461028b57806349bd5a5e146102b457806352f7c988146102df57610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104fd565b60405161015c9190611d1e565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611de8565b61053a565b6040516101999190611e43565b60405180910390f35b3480156101ae57600080fd5b506101b7610558565b6040516101c49190611ebd565b60405180910390f35b3480156101d957600080fd5b506101e261057e565b6040516101ef9190611ee7565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611f02565b61058f565b60405161022c9190611e43565b60405180910390f35b34801561024157600080fd5b5061024a610686565b6040516102579190611ee7565b60405180910390f35b34801561026c57600080fd5b5061027561068c565b6040516102829190611f71565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612100565b610695565b005b3480156102c057600080fd5b506102c961079a565b6040516102d6919061216b565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190612186565b6107c0565b005b34801561031457600080fd5b5061032f600480360381019061032a91906121c6565b61089b565b60405161033c9190611ee7565b60405180910390f35b34801561035157600080fd5b5061035a6108e4565b005b34801561036857600080fd5b506103716108f8565b60405161037e9190611ee7565b60405180910390f35b34801561039357600080fd5b5061039c6108fe565b6040516103a9919061216b565b60405180910390f35b3480156103be57600080fd5b506103c7610927565b6040516103d49190611ee7565b60405180910390f35b3480156103e957600080fd5b506103f261092d565b6040516103ff9190611d1e565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a91906121f3565b61096a565b005b34801561043d57600080fd5b5061045860048036038101906104539190611de8565b6109b3565b6040516104659190611e43565b60405180910390f35b34801561047a57600080fd5b506104956004803603810190610490919061227b565b6109d1565b005b3480156104a357600080fd5b506104be60048036038101906104b991906122db565b610af3565b6040516104cb9190611ee7565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f691906121c6565b610b7a565b005b60606040518060400160405280600881526020017f4769676163686164000000000000000000000000000000000000000000000000815250905090565b600061054e610547610bfd565b8484610c05565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006825c865c6b088e49a00905090565b600080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105db610bfd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561065b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106529061238d565b60405180910390fd5b61066f85610667610bfd565b858403610c05565b61067a858585610dce565b60019150509392505050565b600b5481565b60006009905090565b61069d61133e565b60005b82518110156107955781600660008584815181106106c1576106c06123ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082818151811061072d5761072c6123ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f2805abee54b8f8811367e220e10c2da1762bea5b3295e256642ccd72486259008360405161077a9190611e43565b60405180910390a2808061078d9061240b565b9150506106a0565b505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107c861133e565b600a82111561080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061249f565b60405180910390fd5b600a811115610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061249f565b60405180910390fd5b81600281905550806001819055507f3bd44ad33925c1a81e6dea38583782e35a5124cee2473f5fe16d366f0ad0d6b6828260405161088f9291906124bf565b60405180910390a15050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ec61133e565b6108f660006113bc565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600581526020017f2447494741000000000000000000000000000000000000000000000000000000815250905090565b61097261133e565b80600b819055507fd371a90ac9298515f0c64bbcd4159ea805a04df67586927b3709819f88912f99816040516109a89190611ee7565b60405180910390a150565b60006109c76109c0610bfd565b8484610dce565b6001905092915050565b6109d961133e565b60005b83839050811015610aed5781600560008686858181106109ff576109fe6123ad565b5b9050602002016020810190610a1491906121c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550838382818110610a7857610a776123ad565b5b9050602002016020810190610a8d91906121c6565b73ffffffffffffffffffffffffffffffffffffffff167f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa983604051610ad29190611e43565b60405180910390a28080610ae59061240b565b9150506109dc565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b8261133e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be89061255a565b60405180910390fd5b610bfa816113bc565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b906125ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda9061267e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc19190611ee7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612710565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906127a2565b60405180910390fd5b60008103610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690612834565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f935750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610fde57600954811115610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd4906128c6565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110825750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156110df57600a54816110948461089b565b61109e91906128e6565b106110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d59061298c565b60405180910390fd5b5b60006110ea3061089b565b905060095481106110fb5760095490505b6000600b54821015801561114257506111126108fe565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561118157506111516108fe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b905080801561119d5750600860149054906101000a900460ff16155b80156111f75750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561124d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156112a35750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561131c576112b182611480565b60004790506000811461131a57739a1a3e7c424633431a0e8b3a572b8909109d226f73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611318573d6000803e3d6000fd5b505b505b600061132886866116f9565b9050611336868686846119dd565b505050505050565b611346610bfd565b73ffffffffffffffffffffffffffffffffffffffff166113646108fe565b73ffffffffffffffffffffffffffffffffffffffff16146113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906129f8565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600860146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156114b8576114b7611f91565b5b6040519080825280602002602001820160405280156114e65781602001602082028036833780820191505090505b50905030816000815181106114fe576114fd6123ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c99190612a2d565b816001815181106115dd576115dc6123ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061164430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c05565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016116a8959493929190612b53565b600060405180830381600087803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b50505050506000600860146101000a81548160ff02191690831515021790555050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117a85750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b65760009050611928565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118615750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611870576002549050611927565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561191b5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119265760015490505b5b5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119c95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119d357600090505b8091505092915050565b6000606482846119ed9190612bad565b6119f79190612c1e565b905060008184611a079190612c4f565b905083600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a549190612c4f565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae291906128e6565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008214611c215781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7891906128e6565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c189190611ee7565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c7e9190611ee7565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc8578082015181840152602081019050611cad565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cf082611c8e565b611cfa8185611c99565b9350611d0a818560208601611caa565b611d1381611cd4565b840191505092915050565b60006020820190508181036000830152611d388184611ce5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d7f82611d54565b9050919050565b611d8f81611d74565b8114611d9a57600080fd5b50565b600081359050611dac81611d86565b92915050565b6000819050919050565b611dc581611db2565b8114611dd057600080fd5b50565b600081359050611de281611dbc565b92915050565b60008060408385031215611dff57611dfe611d4a565b5b6000611e0d85828601611d9d565b9250506020611e1e85828601611dd3565b9150509250929050565b60008115159050919050565b611e3d81611e28565b82525050565b6000602082019050611e586000830184611e34565b92915050565b6000819050919050565b6000611e83611e7e611e7984611d54565b611e5e565b611d54565b9050919050565b6000611e9582611e68565b9050919050565b6000611ea782611e8a565b9050919050565b611eb781611e9c565b82525050565b6000602082019050611ed26000830184611eae565b92915050565b611ee181611db2565b82525050565b6000602082019050611efc6000830184611ed8565b92915050565b600080600060608486031215611f1b57611f1a611d4a565b5b6000611f2986828701611d9d565b9350506020611f3a86828701611d9d565b9250506040611f4b86828701611dd3565b9150509250925092565b600060ff82169050919050565b611f6b81611f55565b82525050565b6000602082019050611f866000830184611f62565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611fc982611cd4565b810181811067ffffffffffffffff82111715611fe857611fe7611f91565b5b80604052505050565b6000611ffb611d40565b90506120078282611fc0565b919050565b600067ffffffffffffffff82111561202757612026611f91565b5b602082029050602081019050919050565b600080fd5b600061205061204b8461200c565b611ff1565b9050808382526020820190506020840283018581111561207357612072612038565b5b835b8181101561209c57806120888882611d9d565b845260208401935050602081019050612075565b5050509392505050565b600082601f8301126120bb576120ba611f8c565b5b81356120cb84826020860161203d565b91505092915050565b6120dd81611e28565b81146120e857600080fd5b50565b6000813590506120fa816120d4565b92915050565b6000806040838503121561211757612116611d4a565b5b600083013567ffffffffffffffff81111561213557612134611d4f565b5b612141858286016120a6565b9250506020612152858286016120eb565b9150509250929050565b61216581611d74565b82525050565b6000602082019050612180600083018461215c565b92915050565b6000806040838503121561219d5761219c611d4a565b5b60006121ab85828601611dd3565b92505060206121bc85828601611dd3565b9150509250929050565b6000602082840312156121dc576121db611d4a565b5b60006121ea84828501611d9d565b91505092915050565b60006020828403121561220957612208611d4a565b5b600061221784828501611dd3565b91505092915050565b600080fd5b60008083601f84011261223b5761223a611f8c565b5b8235905067ffffffffffffffff81111561225857612257612220565b5b60208301915083602082028301111561227457612273612038565b5b9250929050565b60008060006040848603121561229457612293611d4a565b5b600084013567ffffffffffffffff8111156122b2576122b1611d4f565b5b6122be86828701612225565b935093505060206122d1868287016120eb565b9150509250925092565b600080604083850312156122f2576122f1611d4a565b5b600061230085828601611d9d565b925050602061231185828601611d9d565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612377602883611c99565b91506123828261231b565b604082019050919050565b600060208201905081810360008301526123a68161236a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061241682611db2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612448576124476123dc565b5b600182019050919050565b7f46656520697320746f6f20686967680000000000000000000000000000000000600082015250565b6000612489600f83611c99565b915061249482612453565b602082019050919050565b600060208201905081810360008301526124b88161247c565b9050919050565b60006040820190506124d46000830185611ed8565b6124e16020830184611ed8565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612544602683611c99565b915061254f826124e8565b604082019050919050565b6000602082019050818103600083015261257381612537565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125d6602483611c99565b91506125e18261257a565b604082019050919050565b60006020820190508181036000830152612605816125c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612668602283611c99565b91506126738261260c565b604082019050919050565b600060208201905081810360008301526126978161265b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126fa602583611c99565b91506127058261269e565b604082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061278c602383611c99565b915061279782612730565b604082019050919050565b600060208201905081810360008301526127bb8161277f565b9050919050565b7f43276d6f6e2c207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b600061281e603083611c99565b9150612829826127c2565b604082019050919050565b6000602082019050818103600083015261284d81612811565b9050919050565b7f544f4b454e3a204f68206e6f2c206d6178205472616e73616374696f6e204c6960008201527f6d69740000000000000000000000000000000000000000000000000000000000602082015250565b60006128b0602383611c99565b91506128bb82612854565b604082019050919050565b600060208201905081810360008301526128df816128a3565b9050919050565b60006128f182611db2565b91506128fc83611db2565b9250828201905080821115612914576129136123dc565b5b92915050565b7f544f4b454e3a204f68206e6f2c2062616c616e6365206578636565647320776160008201527f6c6c65742073697a652100000000000000000000000000000000000000000000602082015250565b6000612976602a83611c99565b91506129818261291a565b604082019050919050565b600060208201905081810360008301526129a581612969565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129e2602083611c99565b91506129ed826129ac565b602082019050919050565b60006020820190508181036000830152612a11816129d5565b9050919050565b600081519050612a2781611d86565b92915050565b600060208284031215612a4357612a42611d4a565b5b6000612a5184828501612a18565b91505092915050565b6000819050919050565b6000612a7f612a7a612a7584612a5a565b611e5e565b611db2565b9050919050565b612a8f81612a64565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612aca81611d74565b82525050565b6000612adc8383612ac1565b60208301905092915050565b6000602082019050919050565b6000612b0082612a95565b612b0a8185612aa0565b9350612b1583612ab1565b8060005b83811015612b46578151612b2d8882612ad0565b9750612b3883612ae8565b925050600181019050612b19565b5085935050505092915050565b600060a082019050612b686000830188611ed8565b612b756020830187612a86565b8181036040830152612b878186612af5565b9050612b96606083018561215c565b612ba36080830184611ed8565b9695505050505050565b6000612bb882611db2565b9150612bc383611db2565b9250828202612bd181611db2565b91508282048414831517612be857612be76123dc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c2982611db2565b9150612c3483611db2565b925082612c4457612c43612bef565b5b828204905092915050565b6000612c5a82611db2565b9150612c6583611db2565b9250828203905081811115612c7d57612c7c6123dc565b5b9291505056fea26469706673582212206edb754c054bc3c289bd8d067c4575e8e5b34a87838c4f82fb416e7a3a55b15564736f6c63430008130033

Deployed Bytecode Sourcemap

6301:8952:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8350:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9238:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7144:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8627:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9432:517;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8536:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14492:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7192:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13711:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8735:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2146:103;;;;;;;;;;;;;:::i;:::-;;7265:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1498:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7323:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8441:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14196:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8862:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14880:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9062:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2755:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8350:83;8387:13;8420:5;;;;;;;;;;;;;;;;;8413:12;;8350:83;:::o;9238:186::-;9338:4;9355:39;9364:12;:10;:12::i;:::-;9378:7;9387:6;9355:8;:39::i;:::-;9412:4;9405:11;;9238:186;;;;:::o;7144:41::-;;;;;;;;;;;;;:::o;8627:100::-;8680:7;6527:22;8700:19;;8627:100;:::o;9432:517::-;9564:4;9581:24;9608:11;:19;9620:6;9608:19;;;;;;;;;;;;;;;:33;9628:12;:10;:12::i;:::-;9608:33;;;;;;;;;;;;;;;;9581:60;;9694:6;9674:16;:26;;9652:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;9804:57;9813:6;9821:12;:10;:12::i;:::-;9854:6;9835:16;:25;9804:8;:57::i;:::-;9883:36;9893:6;9901:9;9912:6;9883:9;:36::i;:::-;9937:4;9930:11;;;9432:517;;;;;:::o;7383:56::-;;;;:::o;8536:83::-;8577:5;6477:1;8595:16;;8536:83;:::o;14492:312::-;1384:13;:11;:13::i;:::-;14633:9:::1;14629:168;14648:8;:15;14644:1;:19;14629:168;;;14719:8;14685:18;:31;14704:8;14713:1;14704:11;;;;;;;;:::i;:::-;;;;;;;;14685:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14763:8;14772:1;14763:11;;;;;;;;:::i;:::-;;;;;;;;14747:38;;;14776:8;14747:38;;;;;;:::i;:::-;;;;;;;;14665:3;;;;;:::i;:::-;;;;14629:168;;;;14492:312:::0;;:::o;7192:28::-;;;;;;;;;;;;;:::o;13711:365::-;1384:13;:11;:13::i;:::-;6591:2:::1;13833:11;:22;;13825:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;6591:2;13894:12;:23;;13886:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13963:11;13948:12;:26;;;;14001:12;13985:13;:28;;;;14029:39;14042:11;14055:12;14029:39;;;;;;;:::i;:::-;;;;;;;;13711:365:::0;;:::o;8735:119::-;8801:7;8828:9;:18;8838:7;8828:18;;;;;;;;;;;;;;;;8821:25;;8735:119;;;:::o;2146:103::-;1384:13;:11;:13::i;:::-;2211:30:::1;2238:1;2211:18;:30::i;:::-;2146:103::o:0;7265:51::-;;;;:::o;1498:87::-;1544:7;1571:6;;;;;;;;;;;1564:13;;1498:87;:::o;7323:53::-;;;;:::o;8441:87::-;8480:13;8513:7;;;;;;;;;;;;;;;;;8506:14;;8441:87;:::o;14196:220::-;1384:13;:11;:13::i;:::-;14327:18:::1;14305:19;:40;;;;14361:47;14389:18;14361:47;;;;;;:::i;:::-;;;;;;;;14196:220:::0;:::o;8862:192::-;8965:4;8982:42;8992:12;:10;:12::i;:::-;9006:9;9017:6;8982:9;:42::i;:::-;9042:4;9035:11;;8862:192;;;;:::o;14880:319::-;1384:13;:11;:13::i;:::-;15025:9:::1;15020:172;15044:8;;:15;;15040:1;:19;15020:172;;;15115:8;15081:18;:31;15100:8;;15109:1;15100:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15081:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;15158:8;;15167:1;15158:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15142:38;;;15171:8;15142:38;;;;;;:::i;:::-;;;;;;;;15061:3;;;;;:::i;:::-;;;;15020:172;;;;14880:319:::0;;;:::o;9062:168::-;9168:7;9195:11;:18;9207:5;9195:18;;;;;;;;;;;;;;;:27;9214:7;9195:27;;;;;;;;;;;;;;;;9188:34;;9062:168;;;;:::o;2755:238::-;1384:13;:11;:13::i;:::-;2878:1:::1;2858:22;;:8;:22;;::::0;2836:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2957:28;2976:8;2957:18;:28::i;:::-;2755:238:::0;:::o;798:98::-;851:7;878:10;871:17;;798:98;:::o;9965:335::-;10075:1;10058:19;;:5;:19;;;10050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10156:1;10137:21;;:7;:21;;;10129:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10238:6;10208:11;:18;10220:5;10208:18;;;;;;;;;;;;;;;:27;10227:7;10208:27;;;;;;;;;;;;;;;:36;;;;10276:7;10260:32;;10269:5;10260:32;;;10285:6;10260:32;;;;;;:::i;:::-;;;;;;;;9965:335;;;:::o;10308:1591::-;10412:1;10396:18;;:4;:18;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10489:1;10475:16;;:2;:16;;;10467:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10560:1;10550:6;:11;10542:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10634:18;:24;10653:4;10634:24;;;;;;;;;;;;;;;;;;;;;;;;;10633:25;:52;;;;;10663:18;:22;10682:2;10663:22;;;;;;;;;;;;;;;;;;;;;;;;;10662:23;10633:52;10629:155;;;10720:12;;10710:6;:22;;10702:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10629:155;10801:18;:24;10820:4;10801:24;;;;;;;;;;;;;;;;;;;;;;;;;10800:25;:52;;;;;10830:18;:22;10849:2;10830:22;;;;;;;;;;;;;;;;;;;;;;;;;10829:23;10800:52;10796:228;;;10920:14;;10911:6;10895:13;10905:2;10895:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10869:143;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:228;11034:28;11065:24;11083:4;11065:9;:24::i;:::-;11034:55;;11130:12;;11106:20;:36;11102:104;;11182:12;;11159:35;;11102:104;11218:12;11257:19;;11233:20;:43;;:62;;;;;11288:7;:5;:7::i;:::-;11280:15;;:4;:15;;;;11233:62;:79;;;;;11305:7;:5;:7::i;:::-;11299:13;;:2;:13;;;;11233:79;11218:94;;11343:7;:31;;;;;11368:6;;;;;;;;;;;11367:7;11343:31;:69;;;;;11399:13;;;;;;;;;;;11391:21;;:4;:21;;;;11343:69;:111;;;;;11430:18;:24;11449:4;11430:24;;;;;;;;;;;;;;;;;;;;;;;;;11429:25;11343:111;:151;;;;;11472:18;:22;11491:2;11472:22;;;;;;;;;;;;;;;;;;;;;;;;;11471:23;11343:151;11325:435;;;11521:38;11538:20;11521:16;:38::i;:::-;11576:26;11605:21;11576:50;;11667:1;11645:18;:23;11641:108;;7092:42;11689:21;;:44;11711:21;11689:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11641:108;11506:254;11325:435;11799:15;11817:20;11828:4;11834:2;11817:10;:20::i;:::-;11799:38;;11850:41;11865:4;11871:2;11875:6;11883:7;11850:14;:41::i;:::-;10377:1522;;;10308:1591;;;:::o;1663:132::-;1738:12;:10;:12::i;:::-;1727:23;;:7;:5;:7::i;:::-;:23;;;1719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1663:132::o;2409:191::-;2483:16;2502:6;;;;;;;;;;;2483:25;;2528:8;2519:6;;:17;;;;;;;;;;;;;;;;;;2583:8;2552:40;;2573:8;2552:40;;;;;;;;;;;;2472:128;2409:191;:::o;12513:483::-;7491:4;7482:6;;:13;;;;;;;;;;;;;;;;;;12591:21:::1;12629:1;12615:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12591:40;;12660:4;12642;12647:1;12642:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12686:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12676:4;12681:1;12676:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12719:62;12736:4;12751:15;;;;;;;;;;;12769:11;12719:8;:62::i;:::-;12792:15;;;;;;;;;;;:66;;;12873:11;12899:1;12915:4;12942;12962:15;12792:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12580:416;7527:5:::0;7518:6;;:14;;;;;;;;;;;;;;;;;;12513:483;:::o;11907:598::-;12003:7;12023:15;12063:13;;;;;;;;;;;12054:22;;:5;:22;;;;:46;;;;;12087:13;;;;;;;;;;;12080:20;;:3;:20;;;;12054:46;12051:301;;;12126:1;12116:11;;12051:301;;;12157:13;;;;;;;;;;;12148:22;;:5;:22;;;:46;;;;;12181:13;;;;;;;;;;;12174:20;;:3;:20;;;;12148:46;12145:207;;;12221:12;;12211:22;;12145:207;;;12261:13;;;;;;;;;;;12254:20;;:3;:20;;;:46;;;;;12287:13;;;;;;;;;;;12278:22;;:5;:22;;;;12254:46;12251:101;;;12327:13;;12317:23;;12251:101;12145:207;12051:301;12369:18;:25;12388:5;12369:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;12398:18;:23;12417:3;12398:23;;;;;;;;;;;;;;;;;;;;;;;;;12369:52;12366:105;;;12458:1;12448:11;;12366:105;12490:7;12483:14;;;11907:598;;;;:::o;13004:604::-;13154:13;13187:3;13180;13171:6;:12;;;;:::i;:::-;13170:20;;;;:::i;:::-;13154:36;;13201:23;13236:5;13227:6;:14;;;;:::i;:::-;13201:40;;13292:6;13272:9;:17;13282:6;13272:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13252:9;:17;13262:6;13252:17;;;;;;;;;;;;;;;:46;;;;13355:15;13332:9;:20;13342:9;13332:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;13309:9;:20;13319:9;13309:20;;;;;;;;;;;;;;;:61;;;;13394:1;13385:5;:10;13381:160;;13466:5;13439:9;:24;13457:4;13439:24;;;;;;;;;;;;;;;;:32;;;;:::i;:::-;13412:9;:24;13430:4;13412:24;;;;;;;;;;;;;;;:59;;;;13516:4;13491:38;;13500:6;13491:38;;;13523:5;13491:38;;;;;;:::i;:::-;;;;;;;;13381:160;13573:9;13556:44;;13565:6;13556:44;;;13584:15;13556:44;;;;;;:::i;:::-;;;;;;;;13143:465;;13004:604;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:117::-;5935:1;5932;5925:12;5949:180;5997:77;5994:1;5987:88;6094:4;6091:1;6084:15;6118:4;6115:1;6108:15;6135:281;6218:27;6240:4;6218:27;:::i;:::-;6210:6;6206:40;6348:6;6336:10;6333:22;6312:18;6300:10;6297:34;6294:62;6291:88;;;6359:18;;:::i;:::-;6291:88;6399:10;6395:2;6388:22;6178:238;6135:281;;:::o;6422:129::-;6456:6;6483:20;;:::i;:::-;6473:30;;6512:33;6540:4;6532:6;6512:33;:::i;:::-;6422:129;;;:::o;6557:311::-;6634:4;6724:18;6716:6;6713:30;6710:56;;;6746:18;;:::i;:::-;6710:56;6796:4;6788:6;6784:17;6776:25;;6856:4;6850;6846:15;6838:23;;6557:311;;;:::o;6874:117::-;6983:1;6980;6973:12;7014:710;7110:5;7135:81;7151:64;7208:6;7151:64;:::i;:::-;7135:81;:::i;:::-;7126:90;;7236:5;7265:6;7258:5;7251:21;7299:4;7292:5;7288:16;7281:23;;7352:4;7344:6;7340:17;7332:6;7328:30;7381:3;7373:6;7370:15;7367:122;;;7400:79;;:::i;:::-;7367:122;7515:6;7498:220;7532:6;7527:3;7524:15;7498:220;;;7607:3;7636:37;7669:3;7657:10;7636:37;:::i;:::-;7631:3;7624:50;7703:4;7698:3;7694:14;7687:21;;7574:144;7558:4;7553:3;7549:14;7542:21;;7498:220;;;7502:21;7116:608;;7014:710;;;;;:::o;7747:370::-;7818:5;7867:3;7860:4;7852:6;7848:17;7844:27;7834:122;;7875:79;;:::i;:::-;7834:122;7992:6;7979:20;8017:94;8107:3;8099:6;8092:4;8084:6;8080:17;8017:94;:::i;:::-;8008:103;;7824:293;7747:370;;;;:::o;8123:116::-;8193:21;8208:5;8193:21;:::i;:::-;8186:5;8183:32;8173:60;;8229:1;8226;8219:12;8173:60;8123:116;:::o;8245:133::-;8288:5;8326:6;8313:20;8304:29;;8342:30;8366:5;8342:30;:::i;:::-;8245:133;;;;:::o;8384:678::-;8474:6;8482;8531:2;8519:9;8510:7;8506:23;8502:32;8499:119;;;8537:79;;:::i;:::-;8499:119;8685:1;8674:9;8670:17;8657:31;8715:18;8707:6;8704:30;8701:117;;;8737:79;;:::i;:::-;8701:117;8842:78;8912:7;8903:6;8892:9;8888:22;8842:78;:::i;:::-;8832:88;;8628:302;8969:2;8995:50;9037:7;9028:6;9017:9;9013:22;8995:50;:::i;:::-;8985:60;;8940:115;8384:678;;;;;:::o;9068:118::-;9155:24;9173:5;9155:24;:::i;:::-;9150:3;9143:37;9068:118;;:::o;9192:222::-;9285:4;9323:2;9312:9;9308:18;9300:26;;9336:71;9404:1;9393:9;9389:17;9380:6;9336:71;:::i;:::-;9192:222;;;;:::o;9420:474::-;9488:6;9496;9545:2;9533:9;9524:7;9520:23;9516:32;9513:119;;;9551:79;;:::i;:::-;9513:119;9671:1;9696:53;9741:7;9732:6;9721:9;9717:22;9696:53;:::i;:::-;9686:63;;9642:117;9798:2;9824:53;9869:7;9860:6;9849:9;9845:22;9824:53;:::i;:::-;9814:63;;9769:118;9420:474;;;;;:::o;9900:329::-;9959:6;10008:2;9996:9;9987:7;9983:23;9979:32;9976:119;;;10014:79;;:::i;:::-;9976:119;10134:1;10159:53;10204:7;10195:6;10184:9;10180:22;10159:53;:::i;:::-;10149:63;;10105:117;9900:329;;;;:::o;10235:::-;10294:6;10343:2;10331:9;10322:7;10318:23;10314:32;10311:119;;;10349:79;;:::i;:::-;10311:119;10469:1;10494:53;10539:7;10530:6;10519:9;10515:22;10494:53;:::i;:::-;10484:63;;10440:117;10235:329;;;;:::o;10570:117::-;10679:1;10676;10669:12;10710:568;10783:8;10793:6;10843:3;10836:4;10828:6;10824:17;10820:27;10810:122;;10851:79;;:::i;:::-;10810:122;10964:6;10951:20;10941:30;;10994:18;10986:6;10983:30;10980:117;;;11016:79;;:::i;:::-;10980:117;11130:4;11122:6;11118:17;11106:29;;11184:3;11176:4;11168:6;11164:17;11154:8;11150:32;11147:41;11144:128;;;11191:79;;:::i;:::-;11144:128;10710:568;;;;;:::o;11284:698::-;11376:6;11384;11392;11441:2;11429:9;11420:7;11416:23;11412:32;11409:119;;;11447:79;;:::i;:::-;11409:119;11595:1;11584:9;11580:17;11567:31;11625:18;11617:6;11614:30;11611:117;;;11647:79;;:::i;:::-;11611:117;11760:80;11832:7;11823:6;11812:9;11808:22;11760:80;:::i;:::-;11742:98;;;;11538:312;11889:2;11915:50;11957:7;11948:6;11937:9;11933:22;11915:50;:::i;:::-;11905:60;;11860:115;11284:698;;;;;:::o;11988:474::-;12056:6;12064;12113:2;12101:9;12092:7;12088:23;12084:32;12081:119;;;12119:79;;:::i;:::-;12081:119;12239:1;12264:53;12309:7;12300:6;12289:9;12285:22;12264:53;:::i;:::-;12254:63;;12210:117;12366:2;12392:53;12437:7;12428:6;12417:9;12413:22;12392:53;:::i;:::-;12382:63;;12337:118;11988:474;;;;;:::o;12468:227::-;12608:34;12604:1;12596:6;12592:14;12585:58;12677:10;12672:2;12664:6;12660:15;12653:35;12468:227;:::o;12701:366::-;12843:3;12864:67;12928:2;12923:3;12864:67;:::i;:::-;12857:74;;12940:93;13029:3;12940:93;:::i;:::-;13058:2;13053:3;13049:12;13042:19;;12701:366;;;:::o;13073:419::-;13239:4;13277:2;13266:9;13262:18;13254:26;;13326:9;13320:4;13316:20;13312:1;13301:9;13297:17;13290:47;13354:131;13480:4;13354:131;:::i;:::-;13346:139;;13073:419;;;:::o;13498:180::-;13546:77;13543:1;13536:88;13643:4;13640:1;13633:15;13667:4;13664:1;13657:15;13684:180;13732:77;13729:1;13722:88;13829:4;13826:1;13819:15;13853:4;13850:1;13843:15;13870:233;13909:3;13932:24;13950:5;13932:24;:::i;:::-;13923:33;;13978:66;13971:5;13968:77;13965:103;;14048:18;;:::i;:::-;13965:103;14095:1;14088:5;14084:13;14077:20;;13870:233;;;:::o;14109:165::-;14249:17;14245:1;14237:6;14233:14;14226:41;14109:165;:::o;14280:366::-;14422:3;14443:67;14507:2;14502:3;14443:67;:::i;:::-;14436:74;;14519:93;14608:3;14519:93;:::i;:::-;14637:2;14632:3;14628:12;14621:19;;14280:366;;;:::o;14652:419::-;14818:4;14856:2;14845:9;14841:18;14833:26;;14905:9;14899:4;14895:20;14891:1;14880:9;14876:17;14869:47;14933:131;15059:4;14933:131;:::i;:::-;14925:139;;14652:419;;;:::o;15077:332::-;15198:4;15236:2;15225:9;15221:18;15213:26;;15249:71;15317:1;15306:9;15302:17;15293:6;15249:71;:::i;:::-;15330:72;15398:2;15387:9;15383:18;15374:6;15330:72;:::i;:::-;15077:332;;;;;:::o;15415:225::-;15555:34;15551:1;15543:6;15539:14;15532:58;15624:8;15619:2;15611:6;15607:15;15600:33;15415:225;:::o;15646:366::-;15788:3;15809:67;15873:2;15868:3;15809:67;:::i;:::-;15802:74;;15885:93;15974:3;15885:93;:::i;:::-;16003:2;15998:3;15994:12;15987:19;;15646:366;;;:::o;16018:419::-;16184:4;16222:2;16211:9;16207:18;16199:26;;16271:9;16265:4;16261:20;16257:1;16246:9;16242:17;16235:47;16299:131;16425:4;16299:131;:::i;:::-;16291:139;;16018:419;;;:::o;16443:223::-;16583:34;16579:1;16571:6;16567:14;16560:58;16652:6;16647:2;16639:6;16635:15;16628:31;16443:223;:::o;16672:366::-;16814:3;16835:67;16899:2;16894:3;16835:67;:::i;:::-;16828:74;;16911:93;17000:3;16911:93;:::i;:::-;17029:2;17024:3;17020:12;17013:19;;16672:366;;;:::o;17044:419::-;17210:4;17248:2;17237:9;17233:18;17225:26;;17297:9;17291:4;17287:20;17283:1;17272:9;17268:17;17261:47;17325:131;17451:4;17325:131;:::i;:::-;17317:139;;17044:419;;;:::o;17469:221::-;17609:34;17605:1;17597:6;17593:14;17586:58;17678:4;17673:2;17665:6;17661:15;17654:29;17469:221;:::o;17696:366::-;17838:3;17859:67;17923:2;17918:3;17859:67;:::i;:::-;17852:74;;17935:93;18024:3;17935:93;:::i;:::-;18053:2;18048:3;18044:12;18037:19;;17696:366;;;:::o;18068:419::-;18234:4;18272:2;18261:9;18257:18;18249:26;;18321:9;18315:4;18311:20;18307:1;18296:9;18292:17;18285:47;18349:131;18475:4;18349:131;:::i;:::-;18341:139;;18068:419;;;:::o;18493:224::-;18633:34;18629:1;18621:6;18617:14;18610:58;18702:7;18697:2;18689:6;18685:15;18678:32;18493:224;:::o;18723:366::-;18865:3;18886:67;18950:2;18945:3;18886:67;:::i;:::-;18879:74;;18962:93;19051:3;18962:93;:::i;:::-;19080:2;19075:3;19071:12;19064:19;;18723:366;;;:::o;19095:419::-;19261:4;19299:2;19288:9;19284:18;19276:26;;19348:9;19342:4;19338:20;19334:1;19323:9;19319:17;19312:47;19376:131;19502:4;19376:131;:::i;:::-;19368:139;;19095:419;;;:::o;19520:222::-;19660:34;19656:1;19648:6;19644:14;19637:58;19729:5;19724:2;19716:6;19712:15;19705:30;19520:222;:::o;19748:366::-;19890:3;19911:67;19975:2;19970:3;19911:67;:::i;:::-;19904:74;;19987:93;20076:3;19987:93;:::i;:::-;20105:2;20100:3;20096:12;20089:19;;19748:366;;;:::o;20120:419::-;20286:4;20324:2;20313:9;20309:18;20301:26;;20373:9;20367:4;20363:20;20359:1;20348:9;20344:17;20337:47;20401:131;20527:4;20401:131;:::i;:::-;20393:139;;20120:419;;;:::o;20545:235::-;20685:34;20681:1;20673:6;20669:14;20662:58;20754:18;20749:2;20741:6;20737:15;20730:43;20545:235;:::o;20786:366::-;20928:3;20949:67;21013:2;21008:3;20949:67;:::i;:::-;20942:74;;21025:93;21114:3;21025:93;:::i;:::-;21143:2;21138:3;21134:12;21127:19;;20786:366;;;:::o;21158:419::-;21324:4;21362:2;21351:9;21347:18;21339:26;;21411:9;21405:4;21401:20;21397:1;21386:9;21382:17;21375:47;21439:131;21565:4;21439:131;:::i;:::-;21431:139;;21158:419;;;:::o;21583:222::-;21723:34;21719:1;21711:6;21707:14;21700:58;21792:5;21787:2;21779:6;21775:15;21768:30;21583:222;:::o;21811:366::-;21953:3;21974:67;22038:2;22033:3;21974:67;:::i;:::-;21967:74;;22050:93;22139:3;22050:93;:::i;:::-;22168:2;22163:3;22159:12;22152:19;;21811:366;;;:::o;22183:419::-;22349:4;22387:2;22376:9;22372:18;22364:26;;22436:9;22430:4;22426:20;22422:1;22411:9;22407:17;22400:47;22464:131;22590:4;22464:131;:::i;:::-;22456:139;;22183:419;;;:::o;22608:191::-;22648:3;22667:20;22685:1;22667:20;:::i;:::-;22662:25;;22701:20;22719:1;22701:20;:::i;:::-;22696:25;;22744:1;22741;22737:9;22730:16;;22765:3;22762:1;22759:10;22756:36;;;22772:18;;:::i;:::-;22756:36;22608:191;;;;:::o;22805:229::-;22945:34;22941:1;22933:6;22929:14;22922:58;23014:12;23009:2;23001:6;22997:15;22990:37;22805:229;:::o;23040:366::-;23182:3;23203:67;23267:2;23262:3;23203:67;:::i;:::-;23196:74;;23279:93;23368:3;23279:93;:::i;:::-;23397:2;23392:3;23388:12;23381:19;;23040:366;;;:::o;23412:419::-;23578:4;23616:2;23605:9;23601:18;23593:26;;23665:9;23659:4;23655:20;23651:1;23640:9;23636:17;23629:47;23693:131;23819:4;23693:131;:::i;:::-;23685:139;;23412:419;;;:::o;23837:182::-;23977:34;23973:1;23965:6;23961:14;23954:58;23837:182;:::o;24025:366::-;24167:3;24188:67;24252:2;24247:3;24188:67;:::i;:::-;24181:74;;24264:93;24353:3;24264:93;:::i;:::-;24382:2;24377:3;24373:12;24366:19;;24025:366;;;:::o;24397:419::-;24563:4;24601:2;24590:9;24586:18;24578:26;;24650:9;24644:4;24640:20;24636:1;24625:9;24621:17;24614:47;24678:131;24804:4;24678:131;:::i;:::-;24670:139;;24397:419;;;:::o;24822:143::-;24879:5;24910:6;24904:13;24895:22;;24926:33;24953:5;24926:33;:::i;:::-;24822:143;;;;:::o;24971:351::-;25041:6;25090:2;25078:9;25069:7;25065:23;25061:32;25058:119;;;25096:79;;:::i;:::-;25058:119;25216:1;25241:64;25297:7;25288:6;25277:9;25273:22;25241:64;:::i;:::-;25231:74;;25187:128;24971:351;;;;:::o;25328:85::-;25373:7;25402:5;25391:16;;25328:85;;;:::o;25419:158::-;25477:9;25510:61;25528:42;25537:32;25563:5;25537:32;:::i;:::-;25528:42;:::i;:::-;25510:61;:::i;:::-;25497:74;;25419:158;;;:::o;25583:147::-;25678:45;25717:5;25678:45;:::i;:::-;25673:3;25666:58;25583:147;;:::o;25736:114::-;25803:6;25837:5;25831:12;25821:22;;25736:114;;;:::o;25856:184::-;25955:11;25989:6;25984:3;25977:19;26029:4;26024:3;26020:14;26005:29;;25856:184;;;;:::o;26046:132::-;26113:4;26136:3;26128:11;;26166:4;26161:3;26157:14;26149:22;;26046:132;;;:::o;26184:108::-;26261:24;26279:5;26261:24;:::i;:::-;26256:3;26249:37;26184:108;;:::o;26298:179::-;26367:10;26388:46;26430:3;26422:6;26388:46;:::i;:::-;26466:4;26461:3;26457:14;26443:28;;26298:179;;;;:::o;26483:113::-;26553:4;26585;26580:3;26576:14;26568:22;;26483:113;;;:::o;26632:732::-;26751:3;26780:54;26828:5;26780:54;:::i;:::-;26850:86;26929:6;26924:3;26850:86;:::i;:::-;26843:93;;26960:56;27010:5;26960:56;:::i;:::-;27039:7;27070:1;27055:284;27080:6;27077:1;27074:13;27055:284;;;27156:6;27150:13;27183:63;27242:3;27227:13;27183:63;:::i;:::-;27176:70;;27269:60;27322:6;27269:60;:::i;:::-;27259:70;;27115:224;27102:1;27099;27095:9;27090:14;;27055:284;;;27059:14;27355:3;27348:10;;26756:608;;;26632:732;;;;:::o;27370:831::-;27633:4;27671:3;27660:9;27656:19;27648:27;;27685:71;27753:1;27742:9;27738:17;27729:6;27685:71;:::i;:::-;27766:80;27842:2;27831:9;27827:18;27818:6;27766:80;:::i;:::-;27893:9;27887:4;27883:20;27878:2;27867:9;27863:18;27856:48;27921:108;28024:4;28015:6;27921:108;:::i;:::-;27913:116;;28039:72;28107:2;28096:9;28092:18;28083:6;28039:72;:::i;:::-;28121:73;28189:3;28178:9;28174:19;28165:6;28121:73;:::i;:::-;27370:831;;;;;;;;:::o;28207:410::-;28247:7;28270:20;28288:1;28270:20;:::i;:::-;28265:25;;28304:20;28322:1;28304:20;:::i;:::-;28299:25;;28359:1;28356;28352:9;28381:30;28399:11;28381:30;:::i;:::-;28370:41;;28560:1;28551:7;28547:15;28544:1;28541:22;28521:1;28514:9;28494:83;28471:139;;28590:18;;:::i;:::-;28471:139;28255:362;28207:410;;;;:::o;28623:180::-;28671:77;28668:1;28661:88;28768:4;28765:1;28758:15;28792:4;28789:1;28782:15;28809:185;28849:1;28866:20;28884:1;28866:20;:::i;:::-;28861:25;;28900:20;28918:1;28900:20;:::i;:::-;28895:25;;28939:1;28929:35;;28944:18;;:::i;:::-;28929:35;28986:1;28983;28979:9;28974:14;;28809:185;;;;:::o;29000:194::-;29040:4;29060:20;29078:1;29060:20;:::i;:::-;29055:25;;29094:20;29112:1;29094:20;:::i;:::-;29089:25;;29138:1;29135;29131:9;29123:17;;29162:1;29156:4;29153:11;29150:37;;;29167:18;;:::i;:::-;29150:37;29000:194;;;;:::o

Swarm Source

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