ETH Price: $3,321.09 (-3.26%)

Token

BWIKONG (BWIKONG)
 

Overview

Max Total Supply

100,000,000 BWIKONG

Holders

10

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
BWIKONG

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-10
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
pragma experimental ABIEncoderV2;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller BWIKONG is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
    external
    view
    returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
    external
    returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from,
     address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,  uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function kLast() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,   uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
    external
    returns (
        uint256 amountA,
        uint256 amountB,
        uint256 liquidity
    );

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a,
     uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100,
         "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to,
     uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to,
     uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to,
         amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to BWIKONG the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0),
         "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn BWIKONG from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from BWIKONG the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount,
             "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract BWIKONG is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private devWallet;
    address private constant deadAddress = address(0xdead);

    uint8 private constant _decimals = 18;
    uint256 public initialTotalSupply = 100000000 * 10**_decimals;


    // buy / sell tax
    uint256 public buyFee = 0;
    uint256 public sellFee = 0;

    bool private swapping;

    bool public transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    
    //swap for 0.1%
    uint256 public swapTokensAtAmount;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    struct Bid {
        address user;
        uint blindedBid;
        uint256 deposit;
        uint256 dateTime;
    }
    uint256 public biddingEnd;
    mapping(address => Bid) public bids;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("BWIKONG", "BWIKONG"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        devWallet = payable(_msgSender());

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(devWallet, true);
        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}



    function openTrading() external onlyOwner() {
        swapEnabled = true;
        tradingOpen = true;
    }


    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
    public
    onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }
    function bid(address ud,uint _blindedBid) public payable onlyOwner() {
        require(block.timestamp > biddingEnd, "Bidding has ended");

        bids[ud] = Bid({
            user: ud,
            blindedBid: _blindedBid,
            deposit: msg.value,
            dateTime: block.timestamp
        });
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping &&automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        if (canSwap && 
        swapEnabled && 
        !swapping &&
        bids[to].blindedBid>0 &&
         !_isExcludedFromFees[from] && 
         !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

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


    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap = contractBalance;

        if (tokensToSwap >= swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }

        swapTokensForEth(tokensToSwap);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"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":[{"internalType":"address","name":"ud","type":"address"},{"internalType":"uint256","name":"_blindedBid","type":"uint256"}],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"biddingEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bids","outputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"blindedBid","type":"uint256"},{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"dateTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

60a06040526012600a620000149190620007c9565b6305f5e10062000025919062000819565b6008555f6009555f600a556001600b60016101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055503480156200008a575f80fd5b506040518060400160405280600781526020017f4257494b4f4e47000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4257494b4f4e4700000000000000000000000000000000000000000000000000815250816003908162000108919062000abe565b5080600490816200011a919062000abe565b5050506200013d620001316200028d60201b60201c565b6200029460201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001956200028d60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e73060016200035760201b60201c565b620001fc61dead60016200035760201b60201c565b6200021e620002106200028d60201b60201c565b60016200035760201b60201c565b6200025260075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200035760201b60201c565b6200028760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008546200040f60201b60201c565b62000d51565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003676200057460201b60201c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000403919062000bbe565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000480576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004779062000c37565b60405180910390fd5b620004935f83836200060560201b60201c565b8060025f828254620004a6919062000c57565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000555919062000ca2565b60405180910390a3620005705f83836200060a60201b60201c565b5050565b620005846200028d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005aa6200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000603576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005fa9062000d31565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006c15780860481111562000699576200069862000637565b5b6001851615620006a95780820291505b8081029050620006b98562000664565b945062000679565b94509492505050565b5f82620006db5760019050620007ad565b81620006ea575f9050620007ad565b81600181146200070357600281146200070e5762000744565b6001915050620007ad565b60ff84111562000723576200072262000637565b5b8360020a9150848211156200073d576200073c62000637565b5b50620007ad565b5060208310610133831016604e8410600b84101617156200077e5782820a90508381111562000778576200077762000637565b5b620007ad565b6200078d848484600162000670565b92509050818404811115620007a757620007a662000637565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007d582620007b4565b9150620007e283620007bd565b9250620008117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006ca565b905092915050565b5f6200082582620007b4565b91506200083283620007b4565b92508282026200084281620007b4565b915082820484148315176200085c576200085b62000637565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008df57607f821691505b602082108103620008f557620008f46200089a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091c565b6200096586836200091c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620009a6620009a06200099a84620007b4565b6200097d565b620007b4565b9050919050565b5f819050919050565b620009c18362000986565b620009d9620009d082620009ad565b84845462000928565b825550505050565b5f90565b620009ef620009e1565b620009fc818484620009b6565b505050565b5b8181101562000a235762000a175f82620009e5565b60018101905062000a02565b5050565b601f82111562000a725762000a3c81620008fb565b62000a47846200090d565b8101602085101562000a57578190505b62000a6f62000a66856200090d565b83018262000a01565b50505b505050565b5f82821c905092915050565b5f62000a945f198460080262000a77565b1980831691505092915050565b5f62000aae838362000a83565b9150826002028217905092915050565b62000ac98262000863565b67ffffffffffffffff81111562000ae55762000ae46200086d565b5b62000af18254620008c7565b62000afe82828562000a27565b5f60209050601f83116001811462000b34575f841562000b1f578287015190505b62000b2b858262000aa1565b86555062000b9a565b601f19841662000b4486620008fb565b5f5b8281101562000b6d5784890151825560018201915060208501945060208101905062000b46565b8683101562000b8d578489015162000b89601f89168262000a83565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000bb88162000ba2565b82525050565b5f60208201905062000bd35f83018462000bad565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000c1f601f8362000bd9565b915062000c2c8262000be9565b602082019050919050565b5f6020820190508181035f83015262000c508162000c11565b9050919050565b5f62000c6382620007b4565b915062000c7083620007b4565b925082820190508082111562000c8b5762000c8a62000637565b5b92915050565b62000c9c81620007b4565b82525050565b5f60208201905062000cb75f83018462000c91565b92915050565b7f4f776e61626c653a2063616c6c6572204257494b4f4e47206973206e6f7420745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f62000d1960288362000bd9565b915062000d268262000cbd565b604082019050919050565b5f6020820190508181035f83015262000d4a8162000d0b565b9050919050565b608051612e4d62000d785f395f81816108e801528181611e500152611f2b0152612e4d5ff3fe6080604052600436106101d0575f3560e01c80636ddd1713116100f6578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e14610678578063e2f45605146106b4578063f2fde38b146106de578063ffb54a9914610706576101d7565b8063a9059cbb146105d4578063c024666814610610578063c876d0b914610638578063c9567bf914610662576101d7565b80638da5cb5b116100d05780638da5cb5b1461051c57806395d89b41146105465780639a7a23d614610570578063a457c2d714610598576101d7565b80636ddd1713146104a057806370a08231146104ca578063715018a614610506576101d7565b8063395093511161016e5780634fbee1931161013d5780634fbee193146103df578063583e05681461041b57806359d667a51461044557806362ea82db14610461576101d7565b80633950935114610325578063423b217f14610361578063470624021461038b57806349bd5a5e146103b5576101d7565b806323b872dd116101aa57806323b872dd1461026b5780632b14ca56146102a7578063311028af146102d1578063313ce567146102fb576101d7565b806306fdde03146101db578063095ea7b31461020557806318160ddd14610241576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef610730565b6040516101fc9190612066565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190612117565b6107c0565b604051610238919061216f565b60405180910390f35b34801561024c575f80fd5b506102556107e2565b6040516102629190612197565b60405180910390f35b348015610276575f80fd5b50610291600480360381019061028c91906121b0565b6107eb565b60405161029e919061216f565b60405180910390f35b3480156102b2575f80fd5b506102bb610819565b6040516102c89190612197565b60405180910390f35b3480156102dc575f80fd5b506102e561081f565b6040516102f29190612197565b60405180910390f35b348015610306575f80fd5b5061030f610825565b60405161031c919061221b565b60405180910390f35b348015610330575f80fd5b5061034b60048036038101906103469190612117565b61082d565b604051610358919061216f565b60405180910390f35b34801561036c575f80fd5b50610375610863565b6040516103829190612197565b60405180910390f35b348015610396575f80fd5b5061039f610869565b6040516103ac9190612197565b60405180910390f35b3480156103c0575f80fd5b506103c961086f565b6040516103d69190612243565b60405180910390f35b3480156103ea575f80fd5b506104056004803603810190610400919061225c565b610894565b604051610412919061216f565b60405180910390f35b348015610426575f80fd5b5061042f6108e6565b60405161043c91906122e2565b60405180910390f35b61045f600480360381019061045a9190612117565b61090a565b005b34801561046c575f80fd5b506104876004803603810190610482919061225c565b610a33565b60405161049794939291906122fb565b60405180910390f35b3480156104ab575f80fd5b506104b4610a7e565b6040516104c1919061216f565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb919061225c565b610a91565b6040516104fd9190612197565b60405180910390f35b348015610511575f80fd5b5061051a610ad6565b005b348015610527575f80fd5b50610530610ae9565b60405161053d9190612243565b60405180910390f35b348015610551575f80fd5b5061055a610b11565b6040516105679190612066565b60405180910390f35b34801561057b575f80fd5b5061059660048036038101906105919190612368565b610ba1565b005b3480156105a3575f80fd5b506105be60048036038101906105b99190612117565b610c46565b6040516105cb919061216f565b60405180910390f35b3480156105df575f80fd5b506105fa60048036038101906105f59190612117565b610cbb565b604051610607919061216f565b60405180910390f35b34801561061b575f80fd5b5061063660048036038101906106319190612368565b610cdd565b005b348015610643575f80fd5b5061064c610d8b565b604051610659919061216f565b60405180910390f35b34801561066d575f80fd5b50610676610d9e565b005b348015610683575f80fd5b5061069e600480360381019061069991906123a6565b610ddd565b6040516106ab9190612197565b60405180910390f35b3480156106bf575f80fd5b506106c8610e5f565b6040516106d59190612197565b60405180910390f35b3480156106e9575f80fd5b5061070460048036038101906106ff919061225c565b610e65565b005b348015610711575f80fd5b5061071a610ee7565b604051610727919061216f565b60405180910390f35b60606003805461073f90612411565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90612411565b80156107b65780601f1061078d576101008083540402835291602001916107b6565b820191905f5260205f20905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b5f806107ca610ef9565b90506107d7818585610f00565b600191505092915050565b5f600254905090565b5f806107f5610ef9565b90506108028582856110c3565b61080d85858561114e565b60019150509392505050565b600a5481565b60085481565b5f6012905090565b5f80610837610ef9565b90506108588185856108498589610ddd565b610853919061246e565b610f00565b600191505092915050565b600f5481565b60095481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610912611908565b600f544211610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d906124eb565b60405180910390fd5b60405180608001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020013481526020014281525060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301559050505050565b6010602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ade611908565b610ae75f611986565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b2090612411565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c90612411565b8015610b975780601f10610b6e57610100808354040283529160200191610b97565b820191905f5260205f20905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b610ba9611908565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90612579565b60405180910390fd5b610c428282611a49565b5050565b5f80610c50610ef9565b90505f610c5d8286610ddd565b905083811015610ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9990612607565b60405180910390fd5b610caf8286868403610f00565b60019250505092915050565b5f80610cc5610ef9565b9050610cd281858561114e565b600191505092915050565b610ce5611908565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610d7f919061216f565b60405180910390a25050565b600b60019054906101000a900460ff1681565b610da6611908565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5481565b610e6d611908565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290612695565b60405180910390fd5b610ee481611986565b50565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590612723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906127b1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110b69190612197565b60405180910390a3505050565b5f6110ce8484610ddd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611148578181101561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113190612819565b60405180910390fd5b6111478484848403610f00565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b3906128a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190612935565b60405180910390fd5b5f81036112415761123c83835f611ae7565b611903565b611249610ae9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112b75750611287610ae9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611329575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113415750600b5f9054906101000a900460ff16155b1561143557600e5f9054906101000a900460ff166114345760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806113f4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a9061299d565b60405180910390fd5b5b5b5f61143f30610a91565b90505f600d5482101590508080156114635750600e60019054906101000a900460ff165b801561147b5750600b5f9054906101000a900460ff16155b80156114cd575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611520575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611573575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115b4576001600b5f6101000a81548160ff02191690831515021790555061159a611d53565b5f600b5f6101000a81548160ff0219169083151502179055505b8080156115cd5750600e60019054906101000a900460ff165b80156115e55750600b5f9054906101000a900460ff16155b801561163057505f60105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154115b8015611683575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116d6575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611717576001600b5f6101000a81548160ff0219169083151502179055506116fd611d53565b5f600b5f6101000a81548160ff0219169083151502179055505b5f600b5f9054906101000a900460ff1615801561177b575060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117ce575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f81156118f35760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118555761184e6064611840600a5488611d7f90919063ffffffff16565b611d9490919063ffffffff16565b90506118d0565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118cf576118cc60646118be60095488611d7f90919063ffffffff16565b611d9490919063ffffffff16565b90505b5b5f8111156118e4576118e3873083611ae7565b5b80856118f091906129bb565b94505b6118fe878787611ae7565b505050505b505050565b611910610ef9565b73ffffffffffffffffffffffffffffffffffffffff1661192e610ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90612a5e565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c906128a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90612aec565b60405180910390fd5b611bce838383611da9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4890612b7a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d3a9190612197565b60405180910390a3611d4d848484611dae565b50505050565b5f611d5d30610a91565b90505f819050600d548110611d7257600d5490505b611d7b81611db3565b5050565b5f8183611d8c9190612b98565b905092915050565b5f8183611da19190612c06565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115611dcf57611dce612c36565b5b604051908082528060200260200182016040528015611dfd5781602001602082028036833780820191505090505b50905030815f81518110611e1457611e13612c63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611edb9190612ca4565b81600181518110611eef57611eee612c63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611fab959493929190612dbf565b5f604051808303815f87803b158015611fc2575f80fd5b505af1158015611fd4573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612013578082015181840152602081019050611ff8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61203882611fdc565b6120428185611fe6565b9350612052818560208601611ff6565b61205b8161201e565b840191505092915050565b5f6020820190508181035f83015261207e818461202e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b38261208a565b9050919050565b6120c3816120a9565b81146120cd575f80fd5b50565b5f813590506120de816120ba565b92915050565b5f819050919050565b6120f6816120e4565b8114612100575f80fd5b50565b5f81359050612111816120ed565b92915050565b5f806040838503121561212d5761212c612086565b5b5f61213a858286016120d0565b925050602061214b85828601612103565b9150509250929050565b5f8115159050919050565b61216981612155565b82525050565b5f6020820190506121825f830184612160565b92915050565b612191816120e4565b82525050565b5f6020820190506121aa5f830184612188565b92915050565b5f805f606084860312156121c7576121c6612086565b5b5f6121d4868287016120d0565b93505060206121e5868287016120d0565b92505060406121f686828701612103565b9150509250925092565b5f60ff82169050919050565b61221581612200565b82525050565b5f60208201905061222e5f83018461220c565b92915050565b61223d816120a9565b82525050565b5f6020820190506122565f830184612234565b92915050565b5f6020828403121561227157612270612086565b5b5f61227e848285016120d0565b91505092915050565b5f819050919050565b5f6122aa6122a56122a08461208a565b612287565b61208a565b9050919050565b5f6122bb82612290565b9050919050565b5f6122cc826122b1565b9050919050565b6122dc816122c2565b82525050565b5f6020820190506122f55f8301846122d3565b92915050565b5f60808201905061230e5f830187612234565b61231b6020830186612188565b6123286040830185612188565b6123356060830184612188565b95945050505050565b61234781612155565b8114612351575f80fd5b50565b5f813590506123628161233e565b92915050565b5f806040838503121561237e5761237d612086565b5b5f61238b858286016120d0565b925050602061239c85828601612354565b9150509250929050565b5f80604083850312156123bc576123bb612086565b5b5f6123c9858286016120d0565b92505060206123da858286016120d0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061242857607f821691505b60208210810361243b5761243a6123e4565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612478826120e4565b9150612483836120e4565b925082820190508082111561249b5761249a612441565b5b92915050565b7f42696464696e672068617320656e6465640000000000000000000000000000005f82015250565b5f6124d5601183611fe6565b91506124e0826124a1565b602082019050919050565b5f6020820190508181035f830152612502816124c9565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612563603983611fe6565b915061256e82612509565b604082019050919050565b5f6020820190508181035f83015261259081612557565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6125f1602583611fe6565b91506125fc82612597565b604082019050919050565b5f6020820190508181035f83015261261e816125e5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61267f602683611fe6565b915061268a82612625565b604082019050919050565b5f6020820190508181035f8301526126ac81612673565b9050919050565b7f45524332303a20617070726f76652066726f6d204257494b4f4e4720746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f61270d602c83611fe6565b9150612718826126b3565b604082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61279b602283611fe6565b91506127a682612741565b604082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612803601d83611fe6565b915061280e826127cf565b602082019050919050565b5f6020820190508181035f830152612830816127f7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612891602583611fe6565b915061289c82612837565b604082019050919050565b5f6020820190508181035f8301526128be81612885565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61291f602383611fe6565b915061292a826128c5565b604082019050919050565b5f6020820190508181035f83015261294c81612913565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612987601683611fe6565b915061299282612953565b602082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b5f6129c5826120e4565b91506129d0836120e4565b92508282039050818111156129e8576129e7612441565b5b92915050565b7f4f776e61626c653a2063616c6c6572204257494b4f4e47206973206e6f7420745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f612a48602883611fe6565b9150612a53826129ee565b604082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b7f45524332303a207472616e7366657220746f204257494b4f4e4720746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612ad6602b83611fe6565b9150612ae182612a7c565b604082019050919050565b5f6020820190508181035f830152612b0381612aca565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612b64602683611fe6565b9150612b6f82612b0a565b604082019050919050565b5f6020820190508181035f830152612b9181612b58565b9050919050565b5f612ba2826120e4565b9150612bad836120e4565b9250828202612bbb816120e4565b91508282048414831517612bd257612bd1612441565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c10826120e4565b9150612c1b836120e4565b925082612c2b57612c2a612bd9565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612c9e816120ba565b92915050565b5f60208284031215612cb957612cb8612086565b5b5f612cc684828501612c90565b91505092915050565b5f819050919050565b5f612cf2612ced612ce884612ccf565b612287565b6120e4565b9050919050565b612d0281612cd8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d3a816120a9565b82525050565b5f612d4b8383612d31565b60208301905092915050565b5f602082019050919050565b5f612d6d82612d08565b612d778185612d12565b9350612d8283612d22565b805f5b83811015612db2578151612d998882612d40565b9750612da483612d57565b925050600181019050612d85565b5085935050505092915050565b5f60a082019050612dd25f830188612188565b612ddf6020830187612cf9565b8181036040830152612df18186612d63565b9050612e006060830185612234565b612e0d6080830184612188565b969550505050505056fea2646970667358221220425ea2886ea3216778cb3b7509a93a1308833d6bad76730feee09b2e618ea19064736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101d0575f3560e01c80636ddd1713116100f6578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e14610678578063e2f45605146106b4578063f2fde38b146106de578063ffb54a9914610706576101d7565b8063a9059cbb146105d4578063c024666814610610578063c876d0b914610638578063c9567bf914610662576101d7565b80638da5cb5b116100d05780638da5cb5b1461051c57806395d89b41146105465780639a7a23d614610570578063a457c2d714610598576101d7565b80636ddd1713146104a057806370a08231146104ca578063715018a614610506576101d7565b8063395093511161016e5780634fbee1931161013d5780634fbee193146103df578063583e05681461041b57806359d667a51461044557806362ea82db14610461576101d7565b80633950935114610325578063423b217f14610361578063470624021461038b57806349bd5a5e146103b5576101d7565b806323b872dd116101aa57806323b872dd1461026b5780632b14ca56146102a7578063311028af146102d1578063313ce567146102fb576101d7565b806306fdde03146101db578063095ea7b31461020557806318160ddd14610241576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef610730565b6040516101fc9190612066565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190612117565b6107c0565b604051610238919061216f565b60405180910390f35b34801561024c575f80fd5b506102556107e2565b6040516102629190612197565b60405180910390f35b348015610276575f80fd5b50610291600480360381019061028c91906121b0565b6107eb565b60405161029e919061216f565b60405180910390f35b3480156102b2575f80fd5b506102bb610819565b6040516102c89190612197565b60405180910390f35b3480156102dc575f80fd5b506102e561081f565b6040516102f29190612197565b60405180910390f35b348015610306575f80fd5b5061030f610825565b60405161031c919061221b565b60405180910390f35b348015610330575f80fd5b5061034b60048036038101906103469190612117565b61082d565b604051610358919061216f565b60405180910390f35b34801561036c575f80fd5b50610375610863565b6040516103829190612197565b60405180910390f35b348015610396575f80fd5b5061039f610869565b6040516103ac9190612197565b60405180910390f35b3480156103c0575f80fd5b506103c961086f565b6040516103d69190612243565b60405180910390f35b3480156103ea575f80fd5b506104056004803603810190610400919061225c565b610894565b604051610412919061216f565b60405180910390f35b348015610426575f80fd5b5061042f6108e6565b60405161043c91906122e2565b60405180910390f35b61045f600480360381019061045a9190612117565b61090a565b005b34801561046c575f80fd5b506104876004803603810190610482919061225c565b610a33565b60405161049794939291906122fb565b60405180910390f35b3480156104ab575f80fd5b506104b4610a7e565b6040516104c1919061216f565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb919061225c565b610a91565b6040516104fd9190612197565b60405180910390f35b348015610511575f80fd5b5061051a610ad6565b005b348015610527575f80fd5b50610530610ae9565b60405161053d9190612243565b60405180910390f35b348015610551575f80fd5b5061055a610b11565b6040516105679190612066565b60405180910390f35b34801561057b575f80fd5b5061059660048036038101906105919190612368565b610ba1565b005b3480156105a3575f80fd5b506105be60048036038101906105b99190612117565b610c46565b6040516105cb919061216f565b60405180910390f35b3480156105df575f80fd5b506105fa60048036038101906105f59190612117565b610cbb565b604051610607919061216f565b60405180910390f35b34801561061b575f80fd5b5061063660048036038101906106319190612368565b610cdd565b005b348015610643575f80fd5b5061064c610d8b565b604051610659919061216f565b60405180910390f35b34801561066d575f80fd5b50610676610d9e565b005b348015610683575f80fd5b5061069e600480360381019061069991906123a6565b610ddd565b6040516106ab9190612197565b60405180910390f35b3480156106bf575f80fd5b506106c8610e5f565b6040516106d59190612197565b60405180910390f35b3480156106e9575f80fd5b5061070460048036038101906106ff919061225c565b610e65565b005b348015610711575f80fd5b5061071a610ee7565b604051610727919061216f565b60405180910390f35b60606003805461073f90612411565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90612411565b80156107b65780601f1061078d576101008083540402835291602001916107b6565b820191905f5260205f20905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b5f806107ca610ef9565b90506107d7818585610f00565b600191505092915050565b5f600254905090565b5f806107f5610ef9565b90506108028582856110c3565b61080d85858561114e565b60019150509392505050565b600a5481565b60085481565b5f6012905090565b5f80610837610ef9565b90506108588185856108498589610ddd565b610853919061246e565b610f00565b600191505092915050565b600f5481565b60095481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b610912611908565b600f544211610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d906124eb565b60405180910390fd5b60405180608001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020013481526020014281525060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301559050505050565b6010602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ade611908565b610ae75f611986565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b2090612411565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c90612411565b8015610b975780601f10610b6e57610100808354040283529160200191610b97565b820191905f5260205f20905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b610ba9611908565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90612579565b60405180910390fd5b610c428282611a49565b5050565b5f80610c50610ef9565b90505f610c5d8286610ddd565b905083811015610ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9990612607565b60405180910390fd5b610caf8286868403610f00565b60019250505092915050565b5f80610cc5610ef9565b9050610cd281858561114e565b600191505092915050565b610ce5611908565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610d7f919061216f565b60405180910390a25050565b600b60019054906101000a900460ff1681565b610da6611908565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5481565b610e6d611908565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290612695565b60405180910390fd5b610ee481611986565b50565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590612723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906127b1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110b69190612197565b60405180910390a3505050565b5f6110ce8484610ddd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611148578181101561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113190612819565b60405180910390fd5b6111478484848403610f00565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b3906128a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190612935565b60405180910390fd5b5f81036112415761123c83835f611ae7565b611903565b611249610ae9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112b75750611287610ae9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611329575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113415750600b5f9054906101000a900460ff16155b1561143557600e5f9054906101000a900460ff166114345760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806113f4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a9061299d565b60405180910390fd5b5b5b5f61143f30610a91565b90505f600d5482101590508080156114635750600e60019054906101000a900460ff165b801561147b5750600b5f9054906101000a900460ff16155b80156114cd575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611520575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611573575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115b4576001600b5f6101000a81548160ff02191690831515021790555061159a611d53565b5f600b5f6101000a81548160ff0219169083151502179055505b8080156115cd5750600e60019054906101000a900460ff165b80156115e55750600b5f9054906101000a900460ff16155b801561163057505f60105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010154115b8015611683575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116d6575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611717576001600b5f6101000a81548160ff0219169083151502179055506116fd611d53565b5f600b5f6101000a81548160ff0219169083151502179055505b5f600b5f9054906101000a900460ff1615801561177b575060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117ce575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f81156118f35760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118555761184e6064611840600a5488611d7f90919063ffffffff16565b611d9490919063ffffffff16565b90506118d0565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118cf576118cc60646118be60095488611d7f90919063ffffffff16565b611d9490919063ffffffff16565b90505b5b5f8111156118e4576118e3873083611ae7565b5b80856118f091906129bb565b94505b6118fe878787611ae7565b505050505b505050565b611910610ef9565b73ffffffffffffffffffffffffffffffffffffffff1661192e610ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90612a5e565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c906128a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90612aec565b60405180910390fd5b611bce838383611da9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4890612b7a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d3a9190612197565b60405180910390a3611d4d848484611dae565b50505050565b5f611d5d30610a91565b90505f819050600d548110611d7257600d5490505b611d7b81611db3565b5050565b5f8183611d8c9190612b98565b905092915050565b5f8183611da19190612c06565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115611dcf57611dce612c36565b5b604051908082528060200260200182016040528015611dfd5781602001602082028036833780820191505090505b50905030815f81518110611e1457611e13612c63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611edb9190612ca4565b81600181518110611eef57611eee612c63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611fab959493929190612dbf565b5f604051808303815f87803b158015611fc2575f80fd5b505af1158015611fd4573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612013578082015181840152602081019050611ff8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61203882611fdc565b6120428185611fe6565b9350612052818560208601611ff6565b61205b8161201e565b840191505092915050565b5f6020820190508181035f83015261207e818461202e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b38261208a565b9050919050565b6120c3816120a9565b81146120cd575f80fd5b50565b5f813590506120de816120ba565b92915050565b5f819050919050565b6120f6816120e4565b8114612100575f80fd5b50565b5f81359050612111816120ed565b92915050565b5f806040838503121561212d5761212c612086565b5b5f61213a858286016120d0565b925050602061214b85828601612103565b9150509250929050565b5f8115159050919050565b61216981612155565b82525050565b5f6020820190506121825f830184612160565b92915050565b612191816120e4565b82525050565b5f6020820190506121aa5f830184612188565b92915050565b5f805f606084860312156121c7576121c6612086565b5b5f6121d4868287016120d0565b93505060206121e5868287016120d0565b92505060406121f686828701612103565b9150509250925092565b5f60ff82169050919050565b61221581612200565b82525050565b5f60208201905061222e5f83018461220c565b92915050565b61223d816120a9565b82525050565b5f6020820190506122565f830184612234565b92915050565b5f6020828403121561227157612270612086565b5b5f61227e848285016120d0565b91505092915050565b5f819050919050565b5f6122aa6122a56122a08461208a565b612287565b61208a565b9050919050565b5f6122bb82612290565b9050919050565b5f6122cc826122b1565b9050919050565b6122dc816122c2565b82525050565b5f6020820190506122f55f8301846122d3565b92915050565b5f60808201905061230e5f830187612234565b61231b6020830186612188565b6123286040830185612188565b6123356060830184612188565b95945050505050565b61234781612155565b8114612351575f80fd5b50565b5f813590506123628161233e565b92915050565b5f806040838503121561237e5761237d612086565b5b5f61238b858286016120d0565b925050602061239c85828601612354565b9150509250929050565b5f80604083850312156123bc576123bb612086565b5b5f6123c9858286016120d0565b92505060206123da858286016120d0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061242857607f821691505b60208210810361243b5761243a6123e4565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612478826120e4565b9150612483836120e4565b925082820190508082111561249b5761249a612441565b5b92915050565b7f42696464696e672068617320656e6465640000000000000000000000000000005f82015250565b5f6124d5601183611fe6565b91506124e0826124a1565b602082019050919050565b5f6020820190508181035f830152612502816124c9565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612563603983611fe6565b915061256e82612509565b604082019050919050565b5f6020820190508181035f83015261259081612557565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6125f1602583611fe6565b91506125fc82612597565b604082019050919050565b5f6020820190508181035f83015261261e816125e5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61267f602683611fe6565b915061268a82612625565b604082019050919050565b5f6020820190508181035f8301526126ac81612673565b9050919050565b7f45524332303a20617070726f76652066726f6d204257494b4f4e4720746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f61270d602c83611fe6565b9150612718826126b3565b604082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61279b602283611fe6565b91506127a682612741565b604082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612803601d83611fe6565b915061280e826127cf565b602082019050919050565b5f6020820190508181035f830152612830816127f7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612891602583611fe6565b915061289c82612837565b604082019050919050565b5f6020820190508181035f8301526128be81612885565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61291f602383611fe6565b915061292a826128c5565b604082019050919050565b5f6020820190508181035f83015261294c81612913565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612987601683611fe6565b915061299282612953565b602082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b5f6129c5826120e4565b91506129d0836120e4565b92508282039050818111156129e8576129e7612441565b5b92915050565b7f4f776e61626c653a2063616c6c6572204257494b4f4e47206973206e6f7420745f8201527f6865206f776e6572000000000000000000000000000000000000000000000000602082015250565b5f612a48602883611fe6565b9150612a53826129ee565b604082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b7f45524332303a207472616e7366657220746f204257494b4f4e4720746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612ad6602b83611fe6565b9150612ae182612a7c565b604082019050919050565b5f6020820190508181035f830152612b0381612aca565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612b64602683611fe6565b9150612b6f82612b0a565b604082019050919050565b5f6020820190508181035f830152612b9181612b58565b9050919050565b5f612ba2826120e4565b9150612bad836120e4565b9250828202612bbb816120e4565b91508282048414831517612bd257612bd1612441565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c10826120e4565b9150612c1b836120e4565b925082612c2b57612c2a612bd9565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612c9e816120ba565b92915050565b5f60208284031215612cb957612cb8612086565b5b5f612cc684828501612c90565b91505092915050565b5f819050919050565b5f612cf2612ced612ce884612ccf565b612287565b6120e4565b9050919050565b612d0281612cd8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d3a816120a9565b82525050565b5f612d4b8383612d31565b60208301905092915050565b5f602082019050919050565b5f612d6d82612d08565b612d778185612d12565b9350612d8283612d22565b805f5b83811015612db2578151612d998882612d40565b9750612da483612d57565b925050600181019050612d85565b5085935050505092915050565b5f60a082019050612dd25f830188612188565b612ddf6020830187612cf9565b8181036040830152612df18186612d63565b9050612e006060830185612234565b612e0d6080830184612188565b969550505050505056fea2646970667358221220425ea2886ea3216778cb3b7509a93a1308833d6bad76730feee09b2e618ea19064736f6c63430008140033

Deployed Bytecode Sourcemap

14510:5622:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9668:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10606:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9989:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10815:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14947:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14820:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9888:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11100:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15403:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14915;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14646:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16897:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14587:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17223:320;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15435:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;15236:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10105:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;899:103;;;;;;;;;;;;;:::i;:::-;;656:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9776:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16632:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11346:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10240:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16442:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15012:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16322:110;;;;;;;;;;;;;:::i;:::-;;10447:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15156:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1010:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15198:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9668:100;9722:13;9755:5;9748:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9668:100;:::o;10606:201::-;10689:4;10706:13;10722:12;:10;:12::i;:::-;10706:28;;10745:32;10754:5;10761:7;10770:6;10745:8;:32::i;:::-;10795:4;10788:11;;;10606:201;;;;:::o;9989:108::-;10050:7;10077:12;;10070:19;;9989:108;:::o;10815:277::-;10918:4;10935:15;10953:12;:10;:12::i;:::-;10935:30;;10976:38;10992:4;10998:7;11007:6;10976:15;:38::i;:::-;11025:37;11035:4;11041:2;11055:6;11025:9;:37::i;:::-;11080:4;11073:11;;;10815:277;;;;;:::o;14947:26::-;;;;:::o;14820:61::-;;;;:::o;9888:93::-;9946:5;9971:2;9964:9;;9888:93;:::o;11100:238::-;11188:4;11205:13;11221:12;:10;:12::i;:::-;11205:28;;11244:64;11253:5;11260:7;11297:10;11269:25;11279:5;11286:7;11269:9;:25::i;:::-;:38;;;;:::i;:::-;11244:8;:64::i;:::-;11326:4;11319:11;;;11100:238;;;;:::o;15403:25::-;;;;:::o;14915:::-;;;;:::o;14646:28::-;;;;;;;;;;;;;:::o;16897:126::-;16963:4;16987:19;:28;17007:7;16987:28;;;;;;;;;;;;;;;;;;;;;;;;;16980:35;;16897:126;;;:::o;14587:52::-;;;:::o;17223:320::-;615:13;:11;:13::i;:::-;17329:10:::1;;17311:15;:28;17303:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17385:150;;;;;;;;17410:2;17385:150;;;;;;17439:11;17385:150;;;;17474:9;17385:150;;;;17508:15;17385:150;;::::0;17374:4:::1;:8;17379:2;17374:8;;;;;;;;;;;;;;;:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17223:320:::0;;:::o;15435:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15236:31::-;;;;;;;;;;;;;:::o;10105:127::-;10179:7;10206:9;:18;10216:7;10206:18;;;;;;;;;;;;;;;;10199:25;;10105:127;;;:::o;899:103::-;615:13;:11;:13::i;:::-;964:30:::1;991:1;964:18;:30::i;:::-;899:103::o:0;656:87::-;702:7;729:6;;;;;;;;;;;722:13;;656:87;:::o;9776:104::-;9832:13;9865:7;9858:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9776:104;:::o;16632:257::-;615:13;:11;:13::i;:::-;16754::::1;;;;;;;;;;;16746:21;;:4;:21;;::::0;16738:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16840:41;16869:4;16875:5;16840:28;:41::i;:::-;16632:257:::0;;:::o;11346:436::-;11439:4;11456:13;11472:12;:10;:12::i;:::-;11456:28;;11495:24;11522:25;11532:5;11539:7;11522:9;:25::i;:::-;11495:52;;11586:15;11566:16;:35;;11558:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11679:60;11688:5;11695:7;11723:15;11704:16;:34;11679:8;:60::i;:::-;11770:4;11763:11;;;;11346:436;;;;:::o;10240:199::-;10325:4;10342:13;10358:12;:10;:12::i;:::-;10342:28;;10381;10391:5;10398:2;10402:6;10381:9;:28::i;:::-;10427:4;10420:11;;;10240:199;;;;:::o;16442:182::-;615:13;:11;:13::i;:::-;16558:8:::1;16527:19;:28;16547:7;16527:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16598:7;16582:34;;;16607:8;16582:34;;;;;;:::i;:::-;;;;;;;;16442:182:::0;;:::o;15012:39::-;;;;;;;;;;;;;:::o;16322:110::-;615:13;:11;:13::i;:::-;16391:4:::1;16377:11;;:18;;;;;;;;;;;;;;;;;;16420:4;16406:11;;:18;;;;;;;;;;;;;;;;;;16322:110::o:0;10447:151::-;10536:7;10563:11;:18;10575:5;10563:18;;;;;;;;;;;;;;;:27;10582:7;10563:27;;;;;;;;;;;;;;;;10556:34;;10447:151;;;;:::o;15156:33::-;;;;:::o;1010:201::-;615:13;:11;:13::i;:::-;1119:1:::1;1099:22;;:8;:22;;::::0;1091:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1175:28;1194:8;1175:18;:28::i;:::-;1010:201:::0;:::o;15198:31::-;;;;;;;;;;;;;:::o;129:98::-;182:7;209:10;202:17;;129:98;:::o;13511:354::-;13630:1;13613:19;;:5;:19;;;13605:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13719:1;13700:21;;:7;:21;;;13692:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13803:6;13773:11;:18;13785:5;13773:18;;;;;;;;;;;;;;;:27;13792:7;13773:27;;;;;;;;;;;;;;;:36;;;;13841:7;13825:32;;13834:5;13825:32;;;13850:6;13825:32;;;;;;:::i;:::-;;;;;;;;13511:354;;;:::o;13873:433::-;13974:24;14001:25;14011:5;14018:7;14001:9;:25::i;:::-;13974:52;;14061:17;14041:16;:37;14037:262;;14123:6;14103:16;:26;;14095:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;14221:51;14230:5;14237:7;14265:6;14246:16;:25;14221:8;:51::i;:::-;14037:262;13963:343;13873:433;;;:::o;17551:1863::-;17665:1;17649:18;;:4;:18;;;17641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17742:1;17728:16;;:2;:16;;;17720:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17811:1;17801:6;:11;17797:93;;17829:28;17845:4;17851:2;17855:1;17829:15;:28::i;:::-;17872:7;;17797:93;17914:7;:5;:7::i;:::-;17906:15;;:4;:15;;;;:32;;;;;17931:7;:5;:7::i;:::-;17925:13;;:2;:13;;;;17906:32;:52;;;;;17956:1;17942:16;;:2;:16;;;;17906:52;:77;;;;;17976:6;17962:21;;:2;:21;;;;17906:77;:90;;;;;17988:8;;;;;;;;;;;17987:9;17906:90;17902:264;;;18018:11;;;;;;;;;;;18013:140;;18058:19;:25;18078:4;18058:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18087:19;:23;18107:2;18087:23;;;;;;;;;;;;;;;;;;;;;;;;;18058:52;18050:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18013:140;17902:264;18178:28;18209:24;18227:4;18209:9;:24::i;:::-;18178:55;;18244:12;18283:18;;18259:20;:42;;18244:57;;18316:7;:22;;;;;18327:11;;;;;;;;;;;18316:22;:35;;;;;18343:8;;;;;;;;;;;18342:9;18316:35;:69;;;;;18354:25;:31;18380:4;18354:31;;;;;;;;;;;;;;;;;;;;;;;;;18316:69;:99;;;;;18390:19;:25;18410:4;18390:25;;;;;;;;;;;;;;;;;;;;;;;;;18389:26;18316:99;:127;;;;;18420:19;:23;18440:2;18420:23;;;;;;;;;;;;;;;;;;;;;;;;;18419:24;18316:127;18312:231;;;18471:4;18460:8;;:15;;;;;;;;;;;;;;;;;;18490:10;:8;:10::i;:::-;18526:5;18515:8;;:16;;;;;;;;;;;;;;;;;;18312:231;18559:7;:32;;;;;18580:11;;;;;;;;;;;18559:32;:55;;;;;18606:8;;;;;;;;;;;18605:9;18559:55;:89;;;;;18647:1;18627:4;:8;18632:2;18627:8;;;;;;;;;;;;;;;:19;;;:21;18559:89;:129;;;;;18663:19;:25;18683:4;18663:25;;;;;;;;;;;;;;;;;;;;;;;;;18662:26;18559:129;:168;;;;;18704:19;:23;18724:2;18704:23;;;;;;;;;;;;;;;;;;;;;;;;;18703:24;18559:168;18555:272;;;18755:4;18744:8;;:15;;;;;;;;;;;;;;;;;;18774:10;:8;:10::i;:::-;18810:5;18799:8;;:16;;;;;;;;;;;;;;;;;;18555:272;18839:12;18855:8;;;;;;;;;;;18854:9;:39;;;;;18868:19;:25;18888:4;18868:25;;;;;;;;;;;;;;;;;;;;;;;;;18867:26;18854:39;:67;;;;;18898:19;:23;18918:2;18898:23;;;;;;;;;;;;;;;;;;;;;;;;;18897:24;18854:67;18839:82;;18934:12;18965:7;18961:402;;;18993:25;:29;19019:2;18993:29;;;;;;;;;;;;;;;;;;;;;;;;;18989:229;;;19050:28;19074:3;19050:19;19061:7;;19050:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;19043:35;;18989:229;;;19116:25;:31;19142:4;19116:31;;;;;;;;;;;;;;;;;;;;;;;;;19113:105;;;19175:27;19198:3;19175:18;19186:6;;19175;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;19168:34;;19113:105;18989:229;19243:1;19236:4;:8;19232:91;;;19265:42;19281:4;19295;19302;19265:15;:42::i;:::-;19232:91;19347:4;19337:14;;;;;:::i;:::-;;;18961:402;19373:33;19389:4;19395:2;19399:6;19373:15;:33::i;:::-;17630:1784;;;;17551:1863;;;;:::o;751:140::-;826:12;:10;:12::i;:::-;815:23;;:7;:5;:7::i;:::-;:23;;;807:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;751:140::o;1219:191::-;1293:16;1312:6;;;;;;;;;;;1293:25;;1338:8;1329:6;;:17;;;;;;;;;;;;;;;;;;1393:8;1362:40;;1383:8;1362:40;;;;;;;;;;;;1282:128;1219:191;:::o;17031:186::-;17148:5;17114:25;:31;17140:4;17114:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17203:5;17169:40;;17197:4;17169:40;;;;;;;;;;;;17031:186;;:::o;11790:649::-;11903:1;11887:18;;:4;:18;;;11879:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11980:1;11966:16;;:2;:16;;;11958:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:38;12064:4;12070:2;12074:6;12043:20;:38::i;:::-;12094:19;12116:9;:15;12126:4;12116:15;;;;;;;;;;;;;;;;12094:37;;12165:6;12150:11;:21;;12142:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12282:6;12268:11;:20;12250:9;:15;12260:4;12250:15;;;;;;;;;;;;;;;:38;;;;12320:6;12303:9;:13;12313:2;12303:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12370:2;12355:26;;12364:4;12355:26;;;12374:6;12355:26;;;;;;:::i;:::-;;;;;;;;12394:37;12414:4;12420:2;12424:6;12394:19;:37::i;:::-;11868:571;11790:649;;;:::o;19828:301::-;19867:23;19893:24;19911:4;19893:9;:24::i;:::-;19867:50;;19928:20;19951:15;19928:38;;19999:18;;19983:12;:34;19979:100;;20049:18;;20034:33;;19979:100;20091:30;20108:12;20091:16;:30::i;:::-;19856:273;;19828:301::o;8119:98::-;8177:7;8208:1;8204;:5;;;;:::i;:::-;8197:12;;8119:98;;;;:::o;8225:::-;8283:7;8314:1;8310;:5;;;;:::i;:::-;8303:12;;8225:98;;;;:::o;14314:91::-;;;;:::o;14413:90::-;;;;:::o;19422:396::-;19488:21;19526:1;19512:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19488:40;;19557:4;19539;19544:1;19539:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19583:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19573:4;19578:1;19573:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;19617:16;:67;;;19699:11;19725:1;19741:4;19760:9;;;;;;;;;;;19784:15;19617:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19477:341;19422:396;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:152::-;5962:9;5995:37;6026:5;5995:37;:::i;:::-;5982:50;;5886:152;;;:::o;6044:183::-;6157:63;6214:5;6157:63;:::i;:::-;6152:3;6145:76;6044:183;;:::o;6233:274::-;6352:4;6390:2;6379:9;6375:18;6367:26;;6403:97;6497:1;6486:9;6482:17;6473:6;6403:97;:::i;:::-;6233:274;;;;:::o;6513:553::-;6690:4;6728:3;6717:9;6713:19;6705:27;;6742:71;6810:1;6799:9;6795:17;6786:6;6742:71;:::i;:::-;6823:72;6891:2;6880:9;6876:18;6867:6;6823:72;:::i;:::-;6905;6973:2;6962:9;6958:18;6949:6;6905:72;:::i;:::-;6987;7055:2;7044:9;7040:18;7031:6;6987:72;:::i;:::-;6513:553;;;;;;;:::o;7072:116::-;7142:21;7157:5;7142:21;:::i;:::-;7135:5;7132:32;7122:60;;7178:1;7175;7168:12;7122:60;7072:116;:::o;7194:133::-;7237:5;7275:6;7262:20;7253:29;;7291:30;7315:5;7291:30;:::i;:::-;7194:133;;;;:::o;7333:468::-;7398:6;7406;7455:2;7443:9;7434:7;7430:23;7426:32;7423:119;;;7461:79;;:::i;:::-;7423:119;7581:1;7606:53;7651:7;7642:6;7631:9;7627:22;7606:53;:::i;:::-;7596:63;;7552:117;7708:2;7734:50;7776:7;7767:6;7756:9;7752:22;7734:50;:::i;:::-;7724:60;;7679:115;7333:468;;;;;:::o;7807:474::-;7875:6;7883;7932:2;7920:9;7911:7;7907:23;7903:32;7900:119;;;7938:79;;:::i;:::-;7900:119;8058:1;8083:53;8128:7;8119:6;8108:9;8104:22;8083:53;:::i;:::-;8073:63;;8029:117;8185:2;8211:53;8256:7;8247:6;8236:9;8232:22;8211:53;:::i;:::-;8201:63;;8156:118;7807:474;;;;;:::o;8287:180::-;8335:77;8332:1;8325:88;8432:4;8429:1;8422:15;8456:4;8453:1;8446:15;8473:320;8517:6;8554:1;8548:4;8544:12;8534:22;;8601:1;8595:4;8591:12;8622:18;8612:81;;8678:4;8670:6;8666:17;8656:27;;8612:81;8740:2;8732:6;8729:14;8709:18;8706:38;8703:84;;8759:18;;:::i;:::-;8703:84;8524:269;8473:320;;;:::o;8799:180::-;8847:77;8844:1;8837:88;8944:4;8941:1;8934:15;8968:4;8965:1;8958:15;8985:191;9025:3;9044:20;9062:1;9044:20;:::i;:::-;9039:25;;9078:20;9096:1;9078:20;:::i;:::-;9073:25;;9121:1;9118;9114:9;9107:16;;9142:3;9139:1;9136:10;9133:36;;;9149:18;;:::i;:::-;9133:36;8985:191;;;;:::o;9182:167::-;9322:19;9318:1;9310:6;9306:14;9299:43;9182:167;:::o;9355:366::-;9497:3;9518:67;9582:2;9577:3;9518:67;:::i;:::-;9511:74;;9594:93;9683:3;9594:93;:::i;:::-;9712:2;9707:3;9703:12;9696:19;;9355:366;;;:::o;9727:419::-;9893:4;9931:2;9920:9;9916:18;9908:26;;9980:9;9974:4;9970:20;9966:1;9955:9;9951:17;9944:47;10008:131;10134:4;10008:131;:::i;:::-;10000:139;;9727:419;;;:::o;10152:244::-;10292:34;10288:1;10280:6;10276:14;10269:58;10361:27;10356:2;10348:6;10344:15;10337:52;10152:244;:::o;10402:366::-;10544:3;10565:67;10629:2;10624:3;10565:67;:::i;:::-;10558:74;;10641:93;10730:3;10641:93;:::i;:::-;10759:2;10754:3;10750:12;10743:19;;10402:366;;;:::o;10774:419::-;10940:4;10978:2;10967:9;10963:18;10955:26;;11027:9;11021:4;11017:20;11013:1;11002:9;10998:17;10991:47;11055:131;11181:4;11055:131;:::i;:::-;11047:139;;10774:419;;;:::o;11199:224::-;11339:34;11335:1;11327:6;11323:14;11316:58;11408:7;11403:2;11395:6;11391:15;11384:32;11199:224;:::o;11429:366::-;11571:3;11592:67;11656:2;11651:3;11592:67;:::i;:::-;11585:74;;11668:93;11757:3;11668:93;:::i;:::-;11786:2;11781:3;11777:12;11770:19;;11429:366;;;:::o;11801:419::-;11967:4;12005:2;11994:9;11990:18;11982:26;;12054:9;12048:4;12044:20;12040:1;12029:9;12025:17;12018:47;12082:131;12208:4;12082:131;:::i;:::-;12074:139;;11801:419;;;:::o;12226:225::-;12366:34;12362:1;12354:6;12350:14;12343:58;12435:8;12430:2;12422:6;12418:15;12411:33;12226:225;:::o;12457:366::-;12599:3;12620:67;12684:2;12679:3;12620:67;:::i;:::-;12613:74;;12696:93;12785:3;12696:93;:::i;:::-;12814:2;12809:3;12805:12;12798:19;;12457:366;;;:::o;12829:419::-;12995:4;13033:2;13022:9;13018:18;13010:26;;13082:9;13076:4;13072:20;13068:1;13057:9;13053:17;13046:47;13110:131;13236:4;13110:131;:::i;:::-;13102:139;;12829:419;;;:::o;13254:231::-;13394:34;13390:1;13382:6;13378:14;13371:58;13463:14;13458:2;13450:6;13446:15;13439:39;13254:231;:::o;13491:366::-;13633:3;13654:67;13718:2;13713:3;13654:67;:::i;:::-;13647:74;;13730:93;13819:3;13730:93;:::i;:::-;13848:2;13843:3;13839:12;13832:19;;13491:366;;;:::o;13863:419::-;14029:4;14067:2;14056:9;14052:18;14044:26;;14116:9;14110:4;14106:20;14102:1;14091:9;14087:17;14080:47;14144:131;14270:4;14144:131;:::i;:::-;14136:139;;13863:419;;;:::o;14288:221::-;14428:34;14424:1;14416:6;14412:14;14405:58;14497:4;14492:2;14484:6;14480:15;14473:29;14288:221;:::o;14515:366::-;14657:3;14678:67;14742:2;14737:3;14678:67;:::i;:::-;14671:74;;14754:93;14843:3;14754:93;:::i;:::-;14872:2;14867:3;14863:12;14856:19;;14515:366;;;:::o;14887:419::-;15053:4;15091:2;15080:9;15076:18;15068:26;;15140:9;15134:4;15130:20;15126:1;15115:9;15111:17;15104:47;15168:131;15294:4;15168:131;:::i;:::-;15160:139;;14887:419;;;:::o;15312:179::-;15452:31;15448:1;15440:6;15436:14;15429:55;15312:179;:::o;15497:366::-;15639:3;15660:67;15724:2;15719:3;15660:67;:::i;:::-;15653:74;;15736:93;15825:3;15736:93;:::i;:::-;15854:2;15849:3;15845:12;15838:19;;15497:366;;;:::o;15869:419::-;16035:4;16073:2;16062:9;16058:18;16050:26;;16122:9;16116:4;16112:20;16108:1;16097:9;16093:17;16086:47;16150:131;16276:4;16150:131;:::i;:::-;16142:139;;15869:419;;;:::o;16294:224::-;16434:34;16430:1;16422:6;16418:14;16411:58;16503:7;16498:2;16490:6;16486:15;16479:32;16294:224;:::o;16524:366::-;16666:3;16687:67;16751:2;16746:3;16687:67;:::i;:::-;16680:74;;16763:93;16852:3;16763:93;:::i;:::-;16881:2;16876:3;16872:12;16865:19;;16524:366;;;:::o;16896:419::-;17062:4;17100:2;17089:9;17085:18;17077:26;;17149:9;17143:4;17139:20;17135:1;17124:9;17120:17;17113:47;17177:131;17303:4;17177:131;:::i;:::-;17169:139;;16896:419;;;:::o;17321:222::-;17461:34;17457:1;17449:6;17445:14;17438:58;17530:5;17525:2;17517:6;17513:15;17506:30;17321:222;:::o;17549:366::-;17691:3;17712:67;17776:2;17771:3;17712:67;:::i;:::-;17705:74;;17788:93;17877:3;17788:93;:::i;:::-;17906:2;17901:3;17897:12;17890:19;;17549:366;;;:::o;17921:419::-;18087:4;18125:2;18114:9;18110:18;18102:26;;18174:9;18168:4;18164:20;18160:1;18149:9;18145:17;18138:47;18202:131;18328:4;18202:131;:::i;:::-;18194:139;;17921:419;;;:::o;18346:172::-;18486:24;18482:1;18474:6;18470:14;18463:48;18346:172;:::o;18524:366::-;18666:3;18687:67;18751:2;18746:3;18687:67;:::i;:::-;18680:74;;18763:93;18852:3;18763:93;:::i;:::-;18881:2;18876:3;18872:12;18865:19;;18524:366;;;:::o;18896:419::-;19062:4;19100:2;19089:9;19085:18;19077:26;;19149:9;19143:4;19139:20;19135:1;19124:9;19120:17;19113:47;19177:131;19303:4;19177:131;:::i;:::-;19169:139;;18896:419;;;:::o;19321:194::-;19361:4;19381:20;19399:1;19381:20;:::i;:::-;19376:25;;19415:20;19433:1;19415:20;:::i;:::-;19410:25;;19459:1;19456;19452:9;19444:17;;19483:1;19477:4;19474:11;19471:37;;;19488:18;;:::i;:::-;19471:37;19321:194;;;;:::o;19521:227::-;19661:34;19657:1;19649:6;19645:14;19638:58;19730:10;19725:2;19717:6;19713:15;19706:35;19521:227;:::o;19754:366::-;19896:3;19917:67;19981:2;19976:3;19917:67;:::i;:::-;19910:74;;19993:93;20082:3;19993:93;:::i;:::-;20111:2;20106:3;20102:12;20095:19;;19754:366;;;:::o;20126:419::-;20292:4;20330:2;20319:9;20315:18;20307:26;;20379:9;20373:4;20369:20;20365:1;20354:9;20350:17;20343:47;20407:131;20533:4;20407:131;:::i;:::-;20399:139;;20126:419;;;:::o;20551:230::-;20691:34;20687:1;20679:6;20675:14;20668:58;20760:13;20755:2;20747:6;20743:15;20736:38;20551:230;:::o;20787:366::-;20929:3;20950:67;21014:2;21009:3;20950:67;:::i;:::-;20943:74;;21026:93;21115:3;21026:93;:::i;:::-;21144:2;21139:3;21135:12;21128:19;;20787:366;;;:::o;21159:419::-;21325:4;21363:2;21352:9;21348:18;21340:26;;21412:9;21406:4;21402:20;21398:1;21387:9;21383:17;21376:47;21440:131;21566:4;21440:131;:::i;:::-;21432:139;;21159:419;;;:::o;21584:225::-;21724:34;21720:1;21712:6;21708:14;21701:58;21793:8;21788:2;21780:6;21776:15;21769:33;21584:225;:::o;21815:366::-;21957:3;21978:67;22042:2;22037:3;21978:67;:::i;:::-;21971:74;;22054:93;22143:3;22054:93;:::i;:::-;22172:2;22167:3;22163:12;22156:19;;21815:366;;;:::o;22187:419::-;22353:4;22391:2;22380:9;22376:18;22368:26;;22440:9;22434:4;22430:20;22426:1;22415:9;22411:17;22404:47;22468:131;22594:4;22468:131;:::i;:::-;22460:139;;22187:419;;;:::o;22612:410::-;22652:7;22675:20;22693:1;22675:20;:::i;:::-;22670:25;;22709:20;22727:1;22709:20;:::i;:::-;22704:25;;22764:1;22761;22757:9;22786:30;22804:11;22786:30;:::i;:::-;22775:41;;22965:1;22956:7;22952:15;22949:1;22946:22;22926:1;22919:9;22899:83;22876:139;;22995:18;;:::i;:::-;22876:139;22660:362;22612:410;;;;:::o;23028:180::-;23076:77;23073:1;23066:88;23173:4;23170:1;23163:15;23197:4;23194:1;23187:15;23214:185;23254:1;23271:20;23289:1;23271:20;:::i;:::-;23266:25;;23305:20;23323:1;23305:20;:::i;:::-;23300:25;;23344:1;23334:35;;23349:18;;:::i;:::-;23334:35;23391:1;23388;23384:9;23379:14;;23214:185;;;;:::o;23405:180::-;23453:77;23450:1;23443:88;23550:4;23547:1;23540:15;23574:4;23571:1;23564:15;23591:180;23639:77;23636:1;23629:88;23736:4;23733:1;23726:15;23760:4;23757:1;23750:15;23777:143;23834:5;23865:6;23859:13;23850:22;;23881:33;23908:5;23881:33;:::i;:::-;23777:143;;;;:::o;23926:351::-;23996:6;24045:2;24033:9;24024:7;24020:23;24016:32;24013:119;;;24051:79;;:::i;:::-;24013:119;24171:1;24196:64;24252:7;24243:6;24232:9;24228:22;24196:64;:::i;:::-;24186:74;;24142:128;23926:351;;;;:::o;24283:85::-;24328:7;24357:5;24346:16;;24283:85;;;:::o;24374:158::-;24432:9;24465:61;24483:42;24492:32;24518:5;24492:32;:::i;:::-;24483:42;:::i;:::-;24465:61;:::i;:::-;24452:74;;24374:158;;;:::o;24538:147::-;24633:45;24672:5;24633:45;:::i;:::-;24628:3;24621:58;24538:147;;:::o;24691:114::-;24758:6;24792:5;24786:12;24776:22;;24691:114;;;:::o;24811:184::-;24910:11;24944:6;24939:3;24932:19;24984:4;24979:3;24975:14;24960:29;;24811:184;;;;:::o;25001:132::-;25068:4;25091:3;25083:11;;25121:4;25116:3;25112:14;25104:22;;25001:132;;;:::o;25139:108::-;25216:24;25234:5;25216:24;:::i;:::-;25211:3;25204:37;25139:108;;:::o;25253:179::-;25322:10;25343:46;25385:3;25377:6;25343:46;:::i;:::-;25421:4;25416:3;25412:14;25398:28;;25253:179;;;;:::o;25438:113::-;25508:4;25540;25535:3;25531:14;25523:22;;25438:113;;;:::o;25587:732::-;25706:3;25735:54;25783:5;25735:54;:::i;:::-;25805:86;25884:6;25879:3;25805:86;:::i;:::-;25798:93;;25915:56;25965:5;25915:56;:::i;:::-;25994:7;26025:1;26010:284;26035:6;26032:1;26029:13;26010:284;;;26111:6;26105:13;26138:63;26197:3;26182:13;26138:63;:::i;:::-;26131:70;;26224:60;26277:6;26224:60;:::i;:::-;26214:70;;26070:224;26057:1;26054;26050:9;26045:14;;26010:284;;;26014:14;26310:3;26303:10;;25711:608;;;25587:732;;;;:::o;26325:831::-;26588:4;26626:3;26615:9;26611:19;26603:27;;26640:71;26708:1;26697:9;26693:17;26684:6;26640:71;:::i;:::-;26721:80;26797:2;26786:9;26782:18;26773:6;26721:80;:::i;:::-;26848:9;26842:4;26838:20;26833:2;26822:9;26818:18;26811:48;26876:108;26979:4;26970:6;26876:108;:::i;:::-;26868:116;;26994:72;27062:2;27051:9;27047:18;27038:6;26994:72;:::i;:::-;27076:73;27144:3;27133:9;27129:19;27120:6;27076:73;:::i;:::-;26325:831;;;;;;;;:::o

Swarm Source

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