ETH Price: $3,190.30 (+4.83%)

Token

Bitgigz (BGZ)
 

Overview

Max Total Supply

100,000,000 BGZ

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000006711037 BGZ

Value
$0.00
0x7746c3aea58ce44a23f91da607b7512ec646fd2d
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:
Bitgigz

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-28
*/

// ███████ ███████ ███████ ███████ ███████ ███████ ███████
// Webiste: https://bitgigz.com/
// Telegram: https://t.me/Bitgigz
// Twitter: https://twitter.com/Bitgigz
// ███████ ███████ ███████ ███████ ███████ ███████ ███████

// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

/********************************************************************************************
  INTERFACE
********************************************************************************************/

interface IERC20 {
    
    // EVENT 

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

    // FUNCTION

    function name() external view returns (string memory);
    
    function symbol() external view returns (string memory);
    
    function decimals() external view returns (uint8);
    
    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 IPair {

    // FUNCTION

    function token0() external view returns (address);

    function token1() external view returns (address);
}


interface IFactory {

    // FUNCTION

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

interface IRouter {

    // FUNCTION

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
    
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable;
    
    function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts);
}

interface IAuthError {

    // ERROR

    error InvalidOwner(address account);

    error UnauthorizedAccount(address account);

    error InvalidAuthorizedAccount(address account);

    error CurrentAuthorizedState(address account, bool state);
}

interface ICommonError {

    // ERROR

    error CannotUseCurrentAddress(address current);

    error CannotUseCurrentValue(uint256 current);

    error CannotUseCurrentState(bool current);

    error InvalidAddress(address invalid);

    error InvalidValue(uint256 invalid);
}

/********************************************************************************************
  ACCESS
********************************************************************************************/

abstract contract Auth is IAuthError {
    
    // DATA

    address private _owner;

    // MAPPING

    mapping(address => bool) public authorization;

    // MODIFIER

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

    modifier authorized() {
        _checkAuthorized();
        _;
    }

    // CONSTRUCCTOR

    constructor(address initialOwner) {
        _transferOwnership(initialOwner);
        authorization[initialOwner] = true;
        if (initialOwner != msg.sender) {
            authorization[msg.sender] = true;
        }
    }

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

    event UpdateAuthorizedAccount(address authorizedAccount, address caller, bool state, uint256 timestamp);

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

    function _checkOwner() internal view virtual {
        if (owner() != msg.sender) {
            revert UnauthorizedAccount(msg.sender);
        }
    }

    function _checkAuthorized() internal view virtual {
        if (!authorization[msg.sender]) {
            revert UnauthorizedAccount(msg.sender);
        }
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert InvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    function authorize(address account) public virtual onlyOwner {
        if (account == address(0) || account == address(0xdead)) {
            revert InvalidAuthorizedAccount(account);
        }
        _authorization(account, msg.sender, true);
    }

    function unauthorize(address account) public virtual onlyOwner {
        if (account == address(0) || account == address(0xdead)) {
            revert InvalidAuthorizedAccount(account);
        }
        _authorization(account, msg.sender, false);
    }

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

    function _authorization(address account, address caller, bool state) internal virtual {
        if (authorization[account] == state) {
            revert CurrentAuthorizedState(account, state);
        }
        authorization[account] = state;
        emit UpdateAuthorizedAccount(account, caller, state, block.timestamp);
    }
}

/********************************************************************************************
  TOKEN
********************************************************************************************/

contract Bitgigz is Auth, ICommonError, IERC20 {

    // DATA

    IRouter public router;

    string private constant NAME = "Bitgigz";
    string private constant SYMBOL = "BGZ";

    uint8 private constant DECIMALS = 18;

    uint256 private _totalSupply;
    
    uint256 public constant FEEDENOMINATOR = 10_000;

    uint256 public constant BUYDEVFEE = 100;
    uint256 public constant SELLDEVFEE = 100;
    uint256 public constant TRANSFERDEVFEE = 0;

    uint256 public developmentFeeCollected = 0;
    uint256 public totalFeeCollected = 0;
    uint256 public developmentFeeRedeemed = 0;
    uint256 public totalFeeRedeemed = 0;
    uint256 public totalTriggerZeusBuyback = 0;
    uint256 public lastTriggerZeusTimestamp = 0;
    uint256 public minSwap = 100 ether;

    bool private constant ISBGZ = true;

    bool public presaleFinalized = false;
    bool public isFeeActive = false;
    bool public isSwapEnabled = false;
    bool public inSwap = false;

    address public constant ZERO = address(0);
    address public constant DEAD = address(0xdead);
    address public constant PROJECTOWNER = 0x16b18fB4f05561c38266c15266D501A45a867174;
    address public constant DEV = 0x16b18fB4f05561c38266c15266D501A45a867174;

    address public pair;
    
    // MAPPING

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludeFromFees;
    mapping(address => bool) public isPairLP;

    // MODIFIER

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

    // ERROR

    error InvalidFeeActiveState(bool current);

    error InvalidSwapEnabledState(bool current);

    error PresaleAlreadyFinalized(bool current);

    // CONSTRUCTOR

    constructor() Auth (msg.sender) {
        _mint(msg.sender, 100_000_000 * 10**DECIMALS);

        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());

        isPairLP[pair] = true;

        isExcludeFromFees[msg.sender] = true;
        isExcludeFromFees[PROJECTOWNER] = true;
        isExcludeFromFees[address(router)] = true;
    }

    // EVENT

    event UpdateRouter(address oldRouter, address newRouter, address caller, uint256 timestamp);

    event UpdateMinSwap(uint256 oldMinSwap, uint256 newMinSwap, address caller, uint256 timestamp);

    event UpdateFeeActive(bool oldStatus, bool newStatus, address caller, uint256 timestamp);

    event UpdateSwapEnabled(bool oldStatus, bool newStatus, address caller, uint256 timestamp);

    event UpdateDevelopmentReceiver(address oldDevelopmentReceiver, address newDevelopmentReceiver, address caller, uint256 timestamp);
        
    event AutoRedeem(uint256 developmentFeeDistribution, uint256 amountToRedeem, address caller, uint256 timestamp);

    // FUNCTION

    /* General */

    receive() external payable {}

    function finalizePresale() external authorized {
        if (presaleFinalized) { revert PresaleAlreadyFinalized(presaleFinalized); }
        if (isFeeActive) { revert InvalidFeeActiveState(isFeeActive); }
        if (isSwapEnabled) { revert InvalidSwapEnabledState(isSwapEnabled); }
        isFeeActive = true;
        isSwapEnabled = true;
        presaleFinalized = true;
    }

    /* Redeem */

    function autoRedeem(uint256 amountToRedeem) public swapping {  
        uint256 developmentToRedeem = developmentFeeCollected - developmentFeeRedeemed;
        uint256 totalToRedeem = totalFeeCollected - totalFeeRedeemed;

        uint256 developmentFeeDistribution = amountToRedeem * developmentToRedeem / totalToRedeem;
        
        developmentFeeRedeemed += developmentFeeDistribution;
        totalFeeRedeemed += amountToRedeem;

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

        _approve(address(this), address(router), amountToRedeem);
        
        emit AutoRedeem(developmentFeeDistribution, amountToRedeem, msg.sender, block.timestamp);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            developmentFeeDistribution,
            0,
            path,
            DEV,
            block.timestamp
        );
    }

    /* Check */

    function isBitgigz() external pure returns (bool) {
        return ISBGZ;
    }

    function circulatingSupply() external view returns (uint256) {
        return totalSupply() - balanceOf(DEAD) - balanceOf(ZERO);
    }

    /* Update */

    function updateRouter(address newRouter) external onlyOwner {
        if (address(router) == newRouter) { revert CannotUseCurrentAddress(newRouter); }
        address oldRouter = address(router);
        router = IRouter(newRouter);
        
        isExcludeFromFees[newRouter] = true;

        emit UpdateRouter(oldRouter, newRouter, msg.sender, block.timestamp);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        isPairLP[pair] = true;
    }

    function updateMinSwap(uint256 newMinSwap) external authorized {
        if (minSwap == newMinSwap) { revert CannotUseCurrentValue(newMinSwap); }
        if (minSwap < 100 * 10**DECIMALS) { revert InvalidValue(100 * 10**DECIMALS); }
        uint256 oldMinSwap = minSwap;
        minSwap = newMinSwap;
        emit UpdateMinSwap(oldMinSwap, newMinSwap, msg.sender, block.timestamp);
    }

    function updateFeeActive(bool newStatus) external authorized {
        if (isFeeActive == newStatus) { revert CannotUseCurrentState(newStatus); }
        bool oldStatus = isFeeActive;
        isFeeActive = newStatus;
        emit UpdateFeeActive(oldStatus, newStatus, msg.sender, block.timestamp);
    }

    function updateSwapEnabled(bool newStatus) external authorized {
        if (isSwapEnabled == newStatus) { revert CannotUseCurrentState(newStatus); }
        bool oldStatus = isSwapEnabled;
        isSwapEnabled = newStatus;
        emit UpdateSwapEnabled(oldStatus, newStatus, msg.sender, block.timestamp);
    }

    function setExcludeFromFees(address user, bool status) external authorized {
        if (isExcludeFromFees[user] == status) { revert CannotUseCurrentState(status); }
        isExcludeFromFees[user] = status;
    }

    function setPairLP(address lpPair, bool status) external authorized {
        if (isPairLP[lpPair] == status) { revert CannotUseCurrentState(status); }
        if (IPair(lpPair).token0() != address(this) && IPair(lpPair).token1() != address(this)) { revert InvalidAddress(lpPair); }
        isPairLP[lpPair] = status;
    }

    /* Fee */

    function takeBuyFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * BUYDEVFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function takeSellFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * SELLDEVFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function takeTransferFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * TRANSFERDEVFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function tallyCollection(address from, uint256 collectDevelopment) internal swapping {
        developmentFeeCollected += collectDevelopment;
        totalFeeCollected += collectDevelopment;
        _balances[from] -= collectDevelopment;
        _balances[address(this)] += collectDevelopment;

    }

    /* Buyback */

    function triggerZeusBuyback(uint256 amount) external authorized {
        totalTriggerZeusBuyback += amount;
        lastTriggerZeusTimestamp = block.timestamp;
        buyTokens(amount, DEAD);
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        if (msg.sender == DEAD) { revert InvalidAddress(DEAD); }
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

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

    /* ERC20 Standard */

    function name() external view virtual override returns (string memory) {
        return NAME;
    }
    
    function symbol() external view virtual override returns (string memory) {
        return SYMBOL;
    }
    
    function decimals() external view virtual override returns (uint8) {
        return DECIMALS;
    }
    
    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) external virtual override returns (bool) {
        address provider = msg.sender;
        return _transfer(provider, to, amount);
    }
    
    function allowance(address provider, address spender) public view virtual override returns (uint256) {
        return _allowances[provider][spender];
    }
    
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address provider = msg.sender;
        _approve(provider, spender, amount);
        return true;
    }
    
    function transferFrom(address from, address to, uint256 amount) external virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        return _transfer(from, to, amount);
    }
    
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        address provider = msg.sender;
        _approve(provider, spender, allowance(provider, spender) + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        address provider = msg.sender;
        uint256 currentAllowance = allowance(provider, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(provider, spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        if (account == ZERO) { revert InvalidAddress(account); }

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

    function _approve(address provider, address spender, uint256 amount) internal virtual {
        if (provider == ZERO) { revert InvalidAddress(provider); }
        if (spender == ZERO) { revert InvalidAddress(spender); }

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

    /* Additional */

    function _basicTransfer(address from, address to, uint256 amount ) internal returns (bool) {
        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);
        return true;
    }
    
    /* Overrides */
 
    function _transfer(address from, address to, uint256 amount) internal virtual returns (bool) {
        if (from == ZERO) { revert InvalidAddress(from); }
        if (to == ZERO) { revert InvalidAddress(to); }

        if (inSwap || isExcludeFromFees[from]) {
            return _basicTransfer(from, to, amount);
        }

        if (from != pair && isSwapEnabled && balanceOf(address(this)) >= minSwap && totalFeeCollected - totalFeeRedeemed >= minSwap) {
            autoRedeem(minSwap);
        }

        uint256 newAmount = amount;

        if (isFeeActive && !isExcludeFromFees[from] && !isExcludeFromFees[to]) {
            newAmount = _beforeTokenTransfer(from, to, amount);
        }

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

        emit Transfer(from, to, newAmount);

        return true;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal swapping virtual returns (uint256) {
        if (isPairLP[from] && (BUYDEVFEE > 0)) {
            return takeBuyFee(from, amount);
        }
        if (isPairLP[to] && (SELLDEVFEE > 0)) {
            return takeSellFee(from, amount);
        }
        if (!isPairLP[from] && !isPairLP[to] && (TRANSFERDEVFEE > 0)) {
            return takeTransferFee(from, amount);
        }
        return amount;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"current","type":"address"}],"name":"CannotUseCurrentAddress","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"CannotUseCurrentState","type":"error"},{"inputs":[{"internalType":"uint256","name":"current","type":"uint256"}],"name":"CannotUseCurrentValue","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"CurrentAuthorizedState","type":"error"},{"inputs":[{"internalType":"address","name":"invalid","type":"address"}],"name":"InvalidAddress","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidAuthorizedAccount","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidFeeActiveState","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidOwner","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidSwapEnabledState","type":"error"},{"inputs":[{"internalType":"uint256","name":"invalid","type":"uint256"}],"name":"InvalidValue","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"PresaleAlreadyFinalized","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"UnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"developmentFeeDistribution","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToRedeem","type":"uint256"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AutoRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"authorizedAccount","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"state","type":"bool"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateAuthorizedAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldDevelopmentReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"newDevelopmentReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateDevelopmentReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateFeeActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMinSwap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMinSwap","type":"uint256"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateMinSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateSwapEnabled","type":"event"},{"inputs":[],"name":"BUYDEVFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEEDENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROJECTOWNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELLDEVFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRANSFERDEVFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"provider","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":"","type":"address"}],"name":"authorization","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToRedeem","type":"uint256"}],"name":"autoRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","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":[],"name":"developmentFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFeeRedeemed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizePresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"isBitgigz","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFeeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPairLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTriggerZeusTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpPair","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPairLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeRedeemed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTriggerZeusBuyback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"triggerZeusBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"updateFeeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwap","type":"uint256"}],"name":"updateMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006004819055600581905560068190556007819055600881905560095568056bc75e2d63100000600a55600b805463ffffffff191690553480156200004957600080fd5b50336200005681620002fb565b6001600160a01b0381166000818152600160208190526040909120805460ff191690911790553314620000a157336000908152600160208190526040909120805460ff191690911790555b50620000cb33620000b56012600a62000504565b620000c5906305f5e1006200051c565b6200034b565b600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000130573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000156919062000536565b6001600160a01b031663c9c6539630600260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001df919062000536565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000253919062000536565b600b8054600160201b600160c01b0319166401000000006001600160a01b0393841681029190911791829055900481166000908152600f60209081526040808320805460ff199081166001908117909255338552600e90935281842080548416821790557f37a2497e338fcabe8e08dec1b1cc3ce6895c573e6f580cd3fac460c95724f1ab805484168217905560025490941683529091208054909116909117905562000577565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166200038257604051634726455360e11b81526001600160a01b038316600482015260240160405180910390fd5b806003600082825462000396919062000561565b90915550506001600160a01b0382166000818152600c60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004465781600019048211156200042a576200042a620003ef565b808516156200043857918102915b93841c93908002906200040a565b509250929050565b6000826200045f57506001620004fe565b816200046e57506000620004fe565b81600181146200048757600281146200049257620004b2565b6001915050620004fe565b60ff841115620004a657620004a6620003ef565b50506001821b620004fe565b5060208310610133831016604e8410600b8410161715620004d7575081810a620004fe565b620004e3838362000405565b8060001904821115620004fa57620004fa620003ef565b0290505b92915050565b60006200051560ff8416836200044e565b9392505050565b8082028115828204841417620004fe57620004fe620003ef565b6000602082840312156200054957600080fd5b81516001600160a01b03811681146200051557600080fd5b80820180821115620004fe57620004fe620003ef565b61235e80620005876000396000f3fe6080604052600436106102e85760003560e01c80638da5cb5b11610190578063c851cc32116100dc578063dd62ed3e11610095578063f0b37c041161006f578063f0b37c0414610875578063f2a4268714610895578063f2fde38b146108c5578063f887ea40146108e557600080fd5b8063dd62ed3e14610820578063e0dfb88014610840578063e43504da1461085657600080fd5b8063c851cc3214610779578063c95b0a8414610411578063cbe1296914610799578063d63cad22146107c9578063d8306786146107e9578063da4daf711461080a57600080fd5b8063a457c2d711610149578063ab28a04c11610123578063ab28a04c1461072d578063b6a5d7de14610743578063b9b2b5cd14610763578063c1eb5ddd146105f357600080fd5b8063a457c2d7146106c5578063a8aa1b31146106e5578063a9059cbb1461070d57600080fd5b80638da5cb5b1461061b578063924de9b7146106395780639358928b1461065957806395d89b411461066e57806397e1b9d31461069a578063a0a6e940146106b057600080fd5b80633bf314541161024f5780636a407bc311610208578063715018a6116101e2578063715018a6146105a857806371538eed146105bd57806375fed3c7146105d357806378eec331146105f357600080fd5b80636a407bc3146105435780636d4980931461055857806370a082311461057257600080fd5b80633bf31454146104a257806358fa63ca146104c257806359cd9031146104d75780635f4702b8146104ed578063625dd6051461050357806363a954921461052357600080fd5b806318160ddd116102a157806318160ddd146103f2578063181a88ba1461041157806323b872dd14610426578063313ce56714610446578063351a964d14610462578063395093511461048257600080fd5b806301295143146102f457806303fd2a451461031657806306c886201461034957806306fdde031461036957806308c43650146103a2578063095ea7b3146103d257600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f366004611eee565b610905565b005b34801561032257600080fd5b5061032c61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561035557600080fd5b5060015b6040519015158152602001610340565b34801561037557600080fd5b506040805180820190915260078152662134ba33b4b3bd60c91b60208201525b6040516103409190611f07565b3480156103ae57600080fd5b506103596103bd366004611f6a565b600f6020526000908152604090205460ff1681565b3480156103de57600080fd5b506103596103ed366004611f87565b610b4c565b3480156103fe57600080fd5b506003545b604051908152602001610340565b34801561041d57600080fd5b50610403606481565b34801561043257600080fd5b50610359610441366004611fb3565b610b66565b34801561045257600080fd5b5060405160128152602001610340565b34801561046e57600080fd5b50600b546103599062010000900460ff1681565b34801561048e57600080fd5b5061035961049d366004611f87565b610b8a565b3480156104ae57600080fd5b506103146104bd366004612009565b610bac565b3480156104ce57600080fd5b5061032c600081565b3480156104e357600080fd5b50610403600a5481565b3480156104f957600080fd5b5061040360045481565b34801561050f57600080fd5b5061031461051e366004612024565b610c61565b34801561052f57600080fd5b5061031461053e366004611eee565b610df7565b34801561054f57600080fd5b50610403600081565b34801561056457600080fd5b50600b546103599060ff1681565b34801561057e57600080fd5b5061040361058d366004611f6a565b6001600160a01b03166000908152600c602052604090205490565b3480156105b457600080fd5b50610314610e29565b3480156105c957600080fd5b5061040360075481565b3480156105df57600080fd5b506103146105ee366004611eee565b610e3d565b3480156105ff57600080fd5b5061032c7316b18fb4f05561c38266c15266d501a45a86717481565b34801561062757600080fd5b506000546001600160a01b031661032c565b34801561064557600080fd5b50610314610654366004612009565b610f0b565b34801561066557600080fd5b50610403610fb5565b34801561067a57600080fd5b506040805180820190915260038152622123ad60e91b6020820152610395565b3480156106a657600080fd5b5061040360095481565b3480156106bc57600080fd5b50610314611025565b3480156106d157600080fd5b506103596106e0366004611f87565b6110e0565b3480156106f157600080fd5b50600b5461032c9064010000000090046001600160a01b031681565b34801561071957600080fd5b50610359610728366004611f87565b611166565b34801561073957600080fd5b5061040361271081565b34801561074f57600080fd5b5061031461075e366004611f6a565b61117c565b34801561076f57600080fd5b5061040360055481565b34801561078557600080fd5b50610314610794366004611f6a565b6111d9565b3480156107a557600080fd5b506103596107b4366004611f6a565b60016020526000908152604090205460ff1681565b3480156107d557600080fd5b506103146107e4366004612024565b61145b565b3480156107f557600080fd5b50600b54610359906301000000900460ff1681565b34801561081657600080fd5b5061040360085481565b34801561082c57600080fd5b5061040361083b366004612059565b6114d2565b34801561084c57600080fd5b5061040360065481565b34801561086257600080fd5b50600b5461035990610100900460ff1681565b34801561088157600080fd5b50610314610890366004611f6a565b6114fd565b3480156108a157600080fd5b506103596108b0366004611f6a565b600e6020526000908152604090205460ff1681565b3480156108d157600080fd5b506103146108e0366004611f6a565b61155a565b3480156108f157600080fd5b5060025461032c906001600160a01b031681565b600b805463ff0000001916630100000017905560065460045460009161092a916120a8565b9050600060075460055461093e91906120a8565b905060008161094d84866120bb565b61095791906120d2565b9050806006600082825461096b91906120f4565b92505081905550836007600082825461098491906120f4565b909155505060408051600280825260608201835260009260208301908036833701905050905030816000815181106109be576109be612107565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b919061211d565b81600181518110610a4e57610a4e612107565b6001600160a01b039283166020918202929092010152600254610a749130911687611595565b6040805183815260208101879052338183015242606082015290517fb933c1b294702108551eddf782a9c7d1a018b57f68ecf63bc59a1247daa19c309181900360800190a160025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610b0690859060009086907316b18fb4f05561c38266c15266d501a45a86717490429060040161217e565b600060405180830381600087803b158015610b2057600080fd5b505af1158015610b34573d6000803e3d6000fd5b5050600b805463ff0000001916905550505050505050565b600033610b5a818585611595565b60019150505b92915050565b600033610b7485828561165a565b610b7f8585856116d4565b9150505b9392505050565b600033610b5a818585610b9d83836114d2565b610ba791906120f4565b611595565b610bb4611910565b801515600b60019054906101000a900460ff16151503610bef5760405162a7e72d60e41b815281151560048201526024015b60405180910390fd5b600b805482151561010081810261ff00198416179093556040805160ff94909304939093168015158352602083019190915233928201929092524260608201527ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f906080015b60405180910390a15050565b610c69611910565b6001600160a01b0382166000908152600f602052604090205481151560ff909116151503610cad5760405162a7e72d60e41b81528115156004820152602401610be6565b306001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d19919061211d565b6001600160a01b031614158015610da35750306001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d97919061211d565b6001600160a01b031614155b15610dcc57604051634726455360e11b81526001600160a01b0383166004820152602401610be6565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b610dff611910565b8060086000828254610e1191906120f4565b909155505042600955610e268161dead611942565b50565b610e31611adb565b610e3b6000611b17565b565b610e45611910565b80600a5403610e6a5760405163657e16cf60e01b815260048101829052602401610be6565b610e766012600a61229e565b610e819060646120bb565b600a541015610ebd57610e966012600a61229e565b610ea19060646120bb565b60405163181c9d0b60e21b8152600401610be691815260200190565b600a805490829055604080518281526020810184905233918101919091524260608201527f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c590608001610c55565b610f13611910565b801515600b60029054906101000a900460ff16151503610f495760405162a7e72d60e41b81528115156004820152602401610be6565b600b80548215156201000081810262ff0000198416179093556040805160ff94909304939093168015158352602083019190915233928201929092524260608201527fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a04490608001610c55565b600c6020527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e85461dead60009081527f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c5460035491929161101691906120a8565b61102091906120a8565b905090565b61102d611910565b600b5460ff161561105b57600b54604051624dc03960e01b815260ff90911615156004820152602401610be6565b600b54610100900460ff161561109357600b54604051630eff900b60e21b815261010090910460ff1615156004820152602401610be6565b600b5462010000900460ff16156110cd57600b5460405163610a8e6760e01b81526201000090910460ff1615156004820152602401610be6565b600b805462ffffff191662010101179055565b600033816110ee82866114d2565b90508381101561114e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610be6565b61115b8286868403611595565b506001949350505050565b6000336111748185856116d4565b949350505050565b611184611adb565b6001600160a01b03811615806111a457506001600160a01b03811661dead145b156111cd57604051635077b8ed60e11b81526001600160a01b0382166004820152602401610be6565b610e2681336001611b67565b6111e1611adb565b6002546001600160a01b0380831691160361121a5760405163a936636960e01b81526001600160a01b0382166004820152602401610be6565b600280546001600160a01b031981166001600160a01b038481169182179093556000818152600e6020908152604091829020805460ff19166001179055815194909316808552928401919091523390830152426060830152907fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb9060800160405180910390a1600260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611317919061211d565b6001600160a01b031663c9c6539630600260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d919061211d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e919061211d565b600b8054640100000000600160c01b0319166401000000006001600160a01b03938416810291909117918290559004166000908152600f60205260409020805460ff191660011790555050565b611463611910565b6001600160a01b0382166000908152600e602052604090205481151560ff9091161515036114a75760405162a7e72d60e41b81528115156004820152602401610be6565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b611505611adb565b6001600160a01b038116158061152557506001600160a01b03811661dead145b1561154e57604051635077b8ed60e11b81526001600160a01b0382166004820152602401610be6565b610e2681336000611b67565b611562611adb565b6001600160a01b03811661158c5760405163b20f76e360e01b815260006004820152602401610be6565b610e2681611b17565b6001600160a01b0383166115c757604051634726455360e11b81526001600160a01b0384166004820152602401610be6565b6001600160a01b0382166115f957604051634726455360e11b81526001600160a01b0383166004820152602401610be6565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061166684846114d2565b905060001981146116ce57818110156116c15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610be6565b6116ce8484848403611595565b50505050565b60006001600160a01b03841661170857604051634726455360e11b81526001600160a01b0385166004820152602401610be6565b6001600160a01b03831661173a57604051634726455360e11b81526001600160a01b0384166004820152602401610be6565b600b546301000000900460ff168061176a57506001600160a01b0384166000908152600e602052604090205460ff165b156117815761177a848484611c31565b9050610b83565b600b546001600160a01b0385811664010000000090920416148015906117af5750600b5462010000900460ff165b80156117cc5750600a54306000908152600c602052604090205410155b80156117e95750600a546007546005546117e691906120a8565b10155b156117f9576117f9600a54610905565b600b548290610100900460ff16801561182b57506001600160a01b0385166000908152600e602052604090205460ff16155b801561185057506001600160a01b0384166000908152600e602052604090205460ff16155b1561186357611860858585611cca565b90505b6001600160a01b0385166000908152600c602052604090205481111561189b5760405162461bcd60e51b8152600401610be6906122ad565b6001600160a01b038086166000818152600c6020526040808220805486900390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118fd9085815260200190565b60405180910390a3506001949350505050565b3360009081526001602052604090205460ff16610e3b576040516332b2baa360e01b8152336004820152602401610be6565b600b805463ff0000001916630100000017905561deac19330161197c57604051634726455360e11b815261dead6004820152602401610be6565b6040805160028082526060820183526000926020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156119e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0a919061211d565b81600081518110611a1d57611a1d612107565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611a5157611a51612107565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de95908590611a97906000908690889042906004016122f3565b6000604051808303818588803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050600b805463ff00000019169055505050505050565b33611aee6000546001600160a01b031690565b6001600160a01b031614610e3b576040516332b2baa360e01b8152336004820152602401610be6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526001602052604090205481151560ff909116151503611bbb57604051635ce75a3b60e01b81526001600160a01b03841660048201528115156024820152604401610be6565b6001600160a01b03838116600081815260016020908152604091829020805460ff19168615159081179091558251938452938616908301528101919091524260608201527fff1d0a27274ca0cc8403b0e8f4a70b968164366f4856d18f7569eba542e9aae49060800160405180910390a1505050565b6001600160a01b0383166000908152600c602052604081205482811015611c6a5760405162461bcd60e51b8152600401610be6906122ad565b6001600160a01b038086166000818152600c602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118fd9087815260200190565b600b805463ff000000191663010000001790556001600160a01b0383166000908152600f602052604081205460ff168015611d03575060015b15611d1957611d128483611dc0565b9050611dac565b6001600160a01b0383166000908152600f602052604090205460ff168015611d3f575060015b15611d4e57611d128483611dc0565b6001600160a01b0384166000908152600f602052604090205460ff16158015611d9057506001600160a01b0383166000908152600f602052604090205460ff16155b8015611d9a575060005b15611da957611d128483611e23565b50805b600b805463ff000000191690559392505050565b600b805463ff00000019166301000000179055600080612710611de46064856120bb565b611dee91906120d2565b90506000611dfc82856120a8565b90508115611e0e57611e0e8583611e46565b600b805463ff00000019169055949350505050565b600b805463ff00000019166301000000179055600080612710611de482856120bb565b600b805463ff0000001916630100000017905560048054829190600090611e6e9084906120f4565b925050819055508060056000828254611e8791906120f4565b90915550506001600160a01b0382166000908152600c602052604081208054839290611eb49084906120a8565b9091555050306000908152600c602052604081208054839290611ed89084906120f4565b9091555050600b805463ff000000191690555050565b600060208284031215611f0057600080fd5b5035919050565b600060208083528351808285015260005b81811015611f3457858101830151858201604001528201611f18565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e2657600080fd5b600060208284031215611f7c57600080fd5b8135610b8381611f55565b60008060408385031215611f9a57600080fd5b8235611fa581611f55565b946020939093013593505050565b600080600060608486031215611fc857600080fd5b8335611fd381611f55565b92506020840135611fe381611f55565b929592945050506040919091013590565b8035801515811461200457600080fd5b919050565b60006020828403121561201b57600080fd5b610b8382611ff4565b6000806040838503121561203757600080fd5b823561204281611f55565b915061205060208401611ff4565b90509250929050565b6000806040838503121561206c57600080fd5b823561207781611f55565b9150602083013561208781611f55565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6057610b60612092565b8082028115828204841417610b6057610b60612092565b6000826120ef57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b6057610b60612092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561212f57600080fd5b8151610b8381611f55565b600081518084526020808501945080840160005b838110156121735781516001600160a01b03168752958201959082019060010161214e565b509495945050505050565b85815284602082015260a06040820152600061219d60a083018661213a565b6001600160a01b0394909416606083015250608001529392505050565b600181815b808511156121f55781600019048211156121db576121db612092565b808516156121e857918102915b93841c93908002906121bf565b509250929050565b60008261220c57506001610b60565b8161221957506000610b60565b816001811461222f576002811461223957612255565b6001915050610b60565b60ff84111561224a5761224a612092565b50506001821b610b60565b5060208310610133831016604e8410600b8410161715612278575081810a610b60565b61228283836121ba565b806000190482111561229657612296612092565b029392505050565b6000610b8360ff8416836121fd565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b84815260806020820152600061230c608083018661213a565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122057b9982842244ffbff48df1046db846f1741cc45c2c05820bc0bdea2363a32d564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c80638da5cb5b11610190578063c851cc32116100dc578063dd62ed3e11610095578063f0b37c041161006f578063f0b37c0414610875578063f2a4268714610895578063f2fde38b146108c5578063f887ea40146108e557600080fd5b8063dd62ed3e14610820578063e0dfb88014610840578063e43504da1461085657600080fd5b8063c851cc3214610779578063c95b0a8414610411578063cbe1296914610799578063d63cad22146107c9578063d8306786146107e9578063da4daf711461080a57600080fd5b8063a457c2d711610149578063ab28a04c11610123578063ab28a04c1461072d578063b6a5d7de14610743578063b9b2b5cd14610763578063c1eb5ddd146105f357600080fd5b8063a457c2d7146106c5578063a8aa1b31146106e5578063a9059cbb1461070d57600080fd5b80638da5cb5b1461061b578063924de9b7146106395780639358928b1461065957806395d89b411461066e57806397e1b9d31461069a578063a0a6e940146106b057600080fd5b80633bf314541161024f5780636a407bc311610208578063715018a6116101e2578063715018a6146105a857806371538eed146105bd57806375fed3c7146105d357806378eec331146105f357600080fd5b80636a407bc3146105435780636d4980931461055857806370a082311461057257600080fd5b80633bf31454146104a257806358fa63ca146104c257806359cd9031146104d75780635f4702b8146104ed578063625dd6051461050357806363a954921461052357600080fd5b806318160ddd116102a157806318160ddd146103f2578063181a88ba1461041157806323b872dd14610426578063313ce56714610446578063351a964d14610462578063395093511461048257600080fd5b806301295143146102f457806303fd2a451461031657806306c886201461034957806306fdde031461036957806308c43650146103a2578063095ea7b3146103d257600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f366004611eee565b610905565b005b34801561032257600080fd5b5061032c61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561035557600080fd5b5060015b6040519015158152602001610340565b34801561037557600080fd5b506040805180820190915260078152662134ba33b4b3bd60c91b60208201525b6040516103409190611f07565b3480156103ae57600080fd5b506103596103bd366004611f6a565b600f6020526000908152604090205460ff1681565b3480156103de57600080fd5b506103596103ed366004611f87565b610b4c565b3480156103fe57600080fd5b506003545b604051908152602001610340565b34801561041d57600080fd5b50610403606481565b34801561043257600080fd5b50610359610441366004611fb3565b610b66565b34801561045257600080fd5b5060405160128152602001610340565b34801561046e57600080fd5b50600b546103599062010000900460ff1681565b34801561048e57600080fd5b5061035961049d366004611f87565b610b8a565b3480156104ae57600080fd5b506103146104bd366004612009565b610bac565b3480156104ce57600080fd5b5061032c600081565b3480156104e357600080fd5b50610403600a5481565b3480156104f957600080fd5b5061040360045481565b34801561050f57600080fd5b5061031461051e366004612024565b610c61565b34801561052f57600080fd5b5061031461053e366004611eee565b610df7565b34801561054f57600080fd5b50610403600081565b34801561056457600080fd5b50600b546103599060ff1681565b34801561057e57600080fd5b5061040361058d366004611f6a565b6001600160a01b03166000908152600c602052604090205490565b3480156105b457600080fd5b50610314610e29565b3480156105c957600080fd5b5061040360075481565b3480156105df57600080fd5b506103146105ee366004611eee565b610e3d565b3480156105ff57600080fd5b5061032c7316b18fb4f05561c38266c15266d501a45a86717481565b34801561062757600080fd5b506000546001600160a01b031661032c565b34801561064557600080fd5b50610314610654366004612009565b610f0b565b34801561066557600080fd5b50610403610fb5565b34801561067a57600080fd5b506040805180820190915260038152622123ad60e91b6020820152610395565b3480156106a657600080fd5b5061040360095481565b3480156106bc57600080fd5b50610314611025565b3480156106d157600080fd5b506103596106e0366004611f87565b6110e0565b3480156106f157600080fd5b50600b5461032c9064010000000090046001600160a01b031681565b34801561071957600080fd5b50610359610728366004611f87565b611166565b34801561073957600080fd5b5061040361271081565b34801561074f57600080fd5b5061031461075e366004611f6a565b61117c565b34801561076f57600080fd5b5061040360055481565b34801561078557600080fd5b50610314610794366004611f6a565b6111d9565b3480156107a557600080fd5b506103596107b4366004611f6a565b60016020526000908152604090205460ff1681565b3480156107d557600080fd5b506103146107e4366004612024565b61145b565b3480156107f557600080fd5b50600b54610359906301000000900460ff1681565b34801561081657600080fd5b5061040360085481565b34801561082c57600080fd5b5061040361083b366004612059565b6114d2565b34801561084c57600080fd5b5061040360065481565b34801561086257600080fd5b50600b5461035990610100900460ff1681565b34801561088157600080fd5b50610314610890366004611f6a565b6114fd565b3480156108a157600080fd5b506103596108b0366004611f6a565b600e6020526000908152604090205460ff1681565b3480156108d157600080fd5b506103146108e0366004611f6a565b61155a565b3480156108f157600080fd5b5060025461032c906001600160a01b031681565b600b805463ff0000001916630100000017905560065460045460009161092a916120a8565b9050600060075460055461093e91906120a8565b905060008161094d84866120bb565b61095791906120d2565b9050806006600082825461096b91906120f4565b92505081905550836007600082825461098491906120f4565b909155505060408051600280825260608201835260009260208301908036833701905050905030816000815181106109be576109be612107565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b919061211d565b81600181518110610a4e57610a4e612107565b6001600160a01b039283166020918202929092010152600254610a749130911687611595565b6040805183815260208101879052338183015242606082015290517fb933c1b294702108551eddf782a9c7d1a018b57f68ecf63bc59a1247daa19c309181900360800190a160025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610b0690859060009086907316b18fb4f05561c38266c15266d501a45a86717490429060040161217e565b600060405180830381600087803b158015610b2057600080fd5b505af1158015610b34573d6000803e3d6000fd5b5050600b805463ff0000001916905550505050505050565b600033610b5a818585611595565b60019150505b92915050565b600033610b7485828561165a565b610b7f8585856116d4565b9150505b9392505050565b600033610b5a818585610b9d83836114d2565b610ba791906120f4565b611595565b610bb4611910565b801515600b60019054906101000a900460ff16151503610bef5760405162a7e72d60e41b815281151560048201526024015b60405180910390fd5b600b805482151561010081810261ff00198416179093556040805160ff94909304939093168015158352602083019190915233928201929092524260608201527ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f906080015b60405180910390a15050565b610c69611910565b6001600160a01b0382166000908152600f602052604090205481151560ff909116151503610cad5760405162a7e72d60e41b81528115156004820152602401610be6565b306001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d19919061211d565b6001600160a01b031614158015610da35750306001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d97919061211d565b6001600160a01b031614155b15610dcc57604051634726455360e11b81526001600160a01b0383166004820152602401610be6565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b610dff611910565b8060086000828254610e1191906120f4565b909155505042600955610e268161dead611942565b50565b610e31611adb565b610e3b6000611b17565b565b610e45611910565b80600a5403610e6a5760405163657e16cf60e01b815260048101829052602401610be6565b610e766012600a61229e565b610e819060646120bb565b600a541015610ebd57610e966012600a61229e565b610ea19060646120bb565b60405163181c9d0b60e21b8152600401610be691815260200190565b600a805490829055604080518281526020810184905233918101919091524260608201527f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c590608001610c55565b610f13611910565b801515600b60029054906101000a900460ff16151503610f495760405162a7e72d60e41b81528115156004820152602401610be6565b600b80548215156201000081810262ff0000198416179093556040805160ff94909304939093168015158352602083019190915233928201929092524260608201527fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a04490608001610c55565b600c6020527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e85461dead60009081527f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c5460035491929161101691906120a8565b61102091906120a8565b905090565b61102d611910565b600b5460ff161561105b57600b54604051624dc03960e01b815260ff90911615156004820152602401610be6565b600b54610100900460ff161561109357600b54604051630eff900b60e21b815261010090910460ff1615156004820152602401610be6565b600b5462010000900460ff16156110cd57600b5460405163610a8e6760e01b81526201000090910460ff1615156004820152602401610be6565b600b805462ffffff191662010101179055565b600033816110ee82866114d2565b90508381101561114e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610be6565b61115b8286868403611595565b506001949350505050565b6000336111748185856116d4565b949350505050565b611184611adb565b6001600160a01b03811615806111a457506001600160a01b03811661dead145b156111cd57604051635077b8ed60e11b81526001600160a01b0382166004820152602401610be6565b610e2681336001611b67565b6111e1611adb565b6002546001600160a01b0380831691160361121a5760405163a936636960e01b81526001600160a01b0382166004820152602401610be6565b600280546001600160a01b031981166001600160a01b038481169182179093556000818152600e6020908152604091829020805460ff19166001179055815194909316808552928401919091523390830152426060830152907fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb9060800160405180910390a1600260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611317919061211d565b6001600160a01b031663c9c6539630600260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d919061211d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e919061211d565b600b8054640100000000600160c01b0319166401000000006001600160a01b03938416810291909117918290559004166000908152600f60205260409020805460ff191660011790555050565b611463611910565b6001600160a01b0382166000908152600e602052604090205481151560ff9091161515036114a75760405162a7e72d60e41b81528115156004820152602401610be6565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b611505611adb565b6001600160a01b038116158061152557506001600160a01b03811661dead145b1561154e57604051635077b8ed60e11b81526001600160a01b0382166004820152602401610be6565b610e2681336000611b67565b611562611adb565b6001600160a01b03811661158c5760405163b20f76e360e01b815260006004820152602401610be6565b610e2681611b17565b6001600160a01b0383166115c757604051634726455360e11b81526001600160a01b0384166004820152602401610be6565b6001600160a01b0382166115f957604051634726455360e11b81526001600160a01b0383166004820152602401610be6565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061166684846114d2565b905060001981146116ce57818110156116c15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610be6565b6116ce8484848403611595565b50505050565b60006001600160a01b03841661170857604051634726455360e11b81526001600160a01b0385166004820152602401610be6565b6001600160a01b03831661173a57604051634726455360e11b81526001600160a01b0384166004820152602401610be6565b600b546301000000900460ff168061176a57506001600160a01b0384166000908152600e602052604090205460ff165b156117815761177a848484611c31565b9050610b83565b600b546001600160a01b0385811664010000000090920416148015906117af5750600b5462010000900460ff165b80156117cc5750600a54306000908152600c602052604090205410155b80156117e95750600a546007546005546117e691906120a8565b10155b156117f9576117f9600a54610905565b600b548290610100900460ff16801561182b57506001600160a01b0385166000908152600e602052604090205460ff16155b801561185057506001600160a01b0384166000908152600e602052604090205460ff16155b1561186357611860858585611cca565b90505b6001600160a01b0385166000908152600c602052604090205481111561189b5760405162461bcd60e51b8152600401610be6906122ad565b6001600160a01b038086166000818152600c6020526040808220805486900390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118fd9085815260200190565b60405180910390a3506001949350505050565b3360009081526001602052604090205460ff16610e3b576040516332b2baa360e01b8152336004820152602401610be6565b600b805463ff0000001916630100000017905561deac19330161197c57604051634726455360e11b815261dead6004820152602401610be6565b6040805160028082526060820183526000926020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156119e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0a919061211d565b81600081518110611a1d57611a1d612107565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611a5157611a51612107565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de95908590611a97906000908690889042906004016122f3565b6000604051808303818588803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050600b805463ff00000019169055505050505050565b33611aee6000546001600160a01b031690565b6001600160a01b031614610e3b576040516332b2baa360e01b8152336004820152602401610be6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526001602052604090205481151560ff909116151503611bbb57604051635ce75a3b60e01b81526001600160a01b03841660048201528115156024820152604401610be6565b6001600160a01b03838116600081815260016020908152604091829020805460ff19168615159081179091558251938452938616908301528101919091524260608201527fff1d0a27274ca0cc8403b0e8f4a70b968164366f4856d18f7569eba542e9aae49060800160405180910390a1505050565b6001600160a01b0383166000908152600c602052604081205482811015611c6a5760405162461bcd60e51b8152600401610be6906122ad565b6001600160a01b038086166000818152600c602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118fd9087815260200190565b600b805463ff000000191663010000001790556001600160a01b0383166000908152600f602052604081205460ff168015611d03575060015b15611d1957611d128483611dc0565b9050611dac565b6001600160a01b0383166000908152600f602052604090205460ff168015611d3f575060015b15611d4e57611d128483611dc0565b6001600160a01b0384166000908152600f602052604090205460ff16158015611d9057506001600160a01b0383166000908152600f602052604090205460ff16155b8015611d9a575060005b15611da957611d128483611e23565b50805b600b805463ff000000191690559392505050565b600b805463ff00000019166301000000179055600080612710611de46064856120bb565b611dee91906120d2565b90506000611dfc82856120a8565b90508115611e0e57611e0e8583611e46565b600b805463ff00000019169055949350505050565b600b805463ff00000019166301000000179055600080612710611de482856120bb565b600b805463ff0000001916630100000017905560048054829190600090611e6e9084906120f4565b925050819055508060056000828254611e8791906120f4565b90915550506001600160a01b0382166000908152600c602052604081208054839290611eb49084906120a8565b9091555050306000908152600c602052604081208054839290611ed89084906120f4565b9091555050600b805463ff000000191690555050565b600060208284031215611f0057600080fd5b5035919050565b600060208083528351808285015260005b81811015611f3457858101830151858201604001528201611f18565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e2657600080fd5b600060208284031215611f7c57600080fd5b8135610b8381611f55565b60008060408385031215611f9a57600080fd5b8235611fa581611f55565b946020939093013593505050565b600080600060608486031215611fc857600080fd5b8335611fd381611f55565b92506020840135611fe381611f55565b929592945050506040919091013590565b8035801515811461200457600080fd5b919050565b60006020828403121561201b57600080fd5b610b8382611ff4565b6000806040838503121561203757600080fd5b823561204281611f55565b915061205060208401611ff4565b90509250929050565b6000806040838503121561206c57600080fd5b823561207781611f55565b9150602083013561208781611f55565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6057610b60612092565b8082028115828204841417610b6057610b60612092565b6000826120ef57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b6057610b60612092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561212f57600080fd5b8151610b8381611f55565b600081518084526020808501945080840160005b838110156121735781516001600160a01b03168752958201959082019060010161214e565b509495945050505050565b85815284602082015260a06040820152600061219d60a083018661213a565b6001600160a01b0394909416606083015250608001529392505050565b600181815b808511156121f55781600019048211156121db576121db612092565b808516156121e857918102915b93841c93908002906121bf565b509250929050565b60008261220c57506001610b60565b8161221957506000610b60565b816001811461222f576002811461223957612255565b6001915050610b60565b60ff84111561224a5761224a612092565b50506001821b610b60565b5060208310610133831016604e8410600b8410161715612278575081810a610b60565b61228283836121ba565b806000190482111561229657612296612092565b029392505050565b6000610b8360ff8416836121fd565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b84815260806020820152600061230c608083018661213a565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122057b9982842244ffbff48df1046db846f1741cc45c2c05820bc0bdea2363a32d564736f6c63430008120033

Deployed Bytecode Sourcemap

6260:14075:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9742:954;;;;;;;;;;-1:-1:-1;9742:954:0;;;;;:::i;:::-;;:::i;:::-;;7312:46;;;;;;;;;;;;7351:6;7312:46;;;;;-1:-1:-1;;;;;363:32:1;;;345:51;;333:2;318:18;7312:46:0;;;;;;;;10723:81;;;;;;;;;;-1:-1:-1;7095:4:0;10723:81;;;572:14:1;;565:22;547:41;;535:2;520:18;10723:81:0;407:187:1;15087:101:0;;;;;;;;;;-1:-1:-1;15176:4:0;;;;;;;;;;;;-1:-1:-1;;;15176:4:0;;;;15087:101;;;;;;;:::i;7766:40::-;;;;;;;;;;-1:-1:-1;7766:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16054:205;;;;;;;;;;-1:-1:-1;16054:205:0;;;;;:::i;:::-;;:::i;15430:108::-;;;;;;;;;;-1:-1:-1;15518:12:0;;15430:108;;;2006:25:1;;;1994:2;1979:18;15430:108:0;1860:177:1;6643:40:0;;;;;;;;;;;;6680:3;6643:40;;16271:246;;;;;;;;;;-1:-1:-1;16271:246:0;;;;;:::i;:::-;;:::i;15317:101::-;;;;;;;;;;-1:-1:-1;15317:101:0;;6489:2;2645:36:1;;2633:2;2618:18;15317:101:0;2503:184:1;7189:33:0;;;;;;;;;;-1:-1:-1;7189:33:0;;;;;;;;;;;16529:247;;;;;;;;;;-1:-1:-1;16529:247:0;;;;;:::i;:::-;;:::i;11881:308::-;;;;;;;;;;-1:-1:-1;11881:308:0;;;;;:::i;:::-;;:::i;7264:41::-;;;;;;;;;;;;7303:1;7264:41;;7022:34;;;;;;;;;;;;;;;;6741:42;;;;;;;;;;;;;;;;12747:327;;;;;;;;;;-1:-1:-1;12747:327:0;;;;;:::i;:::-;;:::i;14442:203::-;;;;;;;;;;-1:-1:-1;14442:203:0;;;;;:::i;:::-;;:::i;6690:42::-;;;;;;;;;;;;6731:1;6690:42;;7108:36;;;;;;;;;;-1:-1:-1;7108:36:0;;;;;;;;15550:127;;;;;;;;;;-1:-1:-1;15550:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;15651:18:0;15624:7;15651:18;;;:9;:18;;;;;;;15550:127;4658:103;;;;;;;;;;;;;:::i;6881:35::-;;;;;;;;;;;;;;;;11480:393;;;;;;;;;;-1:-1:-1;11480:393:0;;;;;:::i;:::-;;:::i;7365:81::-;;;;;;;;;;;;7404:42;7365:81;;4227:87;;;;;;;;;;-1:-1:-1;4273:7:0;4300:6;-1:-1:-1;;;;;4300:6:0;4227:87;;12197:318;;;;;;;;;;-1:-1:-1;12197:318:0;;;;;:::i;:::-;;:::i;10812:136::-;;;;;;;;;;;;;:::i;15200:105::-;;;;;;;;;;-1:-1:-1;15291:6:0;;;;;;;;;;;;-1:-1:-1;;;15291:6:0;;;;15200:105;;6972:43;;;;;;;;;;;;;;;;9328:386;;;;;;;;;;;;;:::i;16788:445::-;;;;;;;;;;-1:-1:-1;16788:445:0;;;;;:::i;:::-;;:::i;7534:19::-;;;;;;;;;;-1:-1:-1;7534:19:0;;;;;;;-1:-1:-1;;;;;7534:19:0;;;15689:184;;;;;;;;;;-1:-1:-1;15689:184:0;;;;;:::i;:::-;;:::i;6541:47::-;;;;;;;;;;;;6582:6;6541:47;;4990:255;;;;;;;;;;-1:-1:-1;4990:255:0;;;;;:::i;:::-;;:::i;6790:36::-;;;;;;;;;;;;;;;;10976:496;;;;;;;;;;-1:-1:-1;10976:496:0;;;;;:::i;:::-;;:::i;3493:45::-;;;;;;;;;;-1:-1:-1;3493:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12523:216;;;;;;;;;;-1:-1:-1;12523:216:0;;;;;:::i;:::-;;:::i;7229:26::-;;;;;;;;;;-1:-1:-1;7229:26:0;;;;;;;;;;;6923:42;;;;;;;;;;;;;;;;15885:157;;;;;;;;;;-1:-1:-1;15885:157:0;;;;;:::i;:::-;;:::i;6833:41::-;;;;;;;;;;;;;;;;7151:31;;;;;;;;;;-1:-1:-1;7151:31:0;;;;;;;;;;;5253:258;;;;;;;;;;-1:-1:-1;5253:258:0;;;;;:::i;:::-;;:::i;7710:49::-;;;;;;;;;;-1:-1:-1;7710:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4769:213;;;;;;;;;;-1:-1:-1;4769:213:0;;;;;:::i;:::-;;:::i;6331:21::-;;;;;;;;;;-1:-1:-1;6331:21:0;;;;-1:-1:-1;;;;;6331:21:0;;;9742:954;7865:6;:13;;-1:-1:-1;;7865:13:0;;;;;9871:22:::1;::::0;9845:23:::1;::::0;7865:13;;9845:48:::1;::::0;::::1;:::i;:::-;9815:78;;9904:21;9948:16;;9928:17;;:36;;;;:::i;:::-;9904:60:::0;-1:-1:-1;9977:34:0::1;9904:60:::0;10014:36:::1;10031:19:::0;10014:14;:36:::1;:::i;:::-;:52;;;;:::i;:::-;9977:89;;10113:26;10087:22;;:52;;;;;;;:::i;:::-;;;;;;;;10170:14;10150:16;;:34;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;10221:16:0::1;::::0;;10235:1:::1;10221:16:::0;;;;;::::1;::::0;;10197:21:::1;::::0;10221:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10221:16:0::1;10197:40;;10266:4;10248;10253:1;10248:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10248:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10292:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10292:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10248:7;;10292:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10282:4;10287:1;10282:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10282:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10350:6:::1;::::0;10318:56:::1;::::0;10335:4:::1;::::0;10350:6:::1;10359:14:::0;10318:8:::1;:56::i;:::-;10400:83;::::0;;5519:25:1;;;5575:2;5560:18;;5553:34;;;10455:10:0::1;5603:18:1::0;;;5596:60;10467:15:0::1;5687:2:1::0;5672:18;;5665:34;10400:83:0;;::::1;::::0;;;;5506:3:1;10400:83:0;;::::1;10496:6;::::0;:192:::1;::::0;-1:-1:-1;;;10496:192:0;;-1:-1:-1;;;;;10496:6:0;;::::1;::::0;:57:::1;::::0;:192:::1;::::0;10568:26;;10496:6:::1;::::0;10625:4;;7483:42:::1;::::0;10662:15:::1;::::0;10496:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7901:6:0;:14;;-1:-1:-1;;7901:14:0;;;-1:-1:-1;;;;;;;9742:954:0:o;16054:205::-;16137:4;16173:10;16194:35;16173:10;16213:7;16222:6;16194:8;:35::i;:::-;16247:4;16240:11;;;16054:205;;;;;:::o;16271:246::-;16370:4;16405:10;16426:38;16442:4;16405:10;16457:6;16426:15;:38::i;:::-;16482:27;16492:4;16498:2;16502:6;16482:9;:27::i;:::-;16475:34;;;16271:246;;;;;;:::o;16529:247::-;16619:4;16655:10;16676:70;16655:10;16695:7;16735:10;16704:28;16655:10;16695:7;16704:9;:28::i;:::-;:41;;;;:::i;:::-;16676:8;:70::i;11881:308::-;3672:18;:16;:18::i;:::-;11972:9:::1;11957:24;;:11;;;;;;;;;;;:24;;::::0;11953:74:::1;;11992:32;::::0;-1:-1:-1;;;11992:32:0;;572:14:1;;565:22;11992:32:0::1;::::0;::::1;547:41:1::0;520:18;;11992:32:0::1;;;;;;;;11953:74;12054:11;::::0;;12076:23;::::1;;12054:11;12076:23:::0;;::::1;-1:-1:-1::0;;12076:23:0;::::1;;::::0;;;12115:66:::1;::::0;;12054:11:::1;::::0;;;::::1;::::0;;;::::1;7007:14:1::0;;7000:22;6982:41;;7054:2;7039:18;;7032:50;;;;12153:10:0::1;7098:18:1::0;;;7091:60;;;;12165:15:0::1;7182:2:1::0;7167:18;;7160:34;12115:66:0::1;::::0;6969:3:1;6954:19;12115:66:0::1;;;;;;;;11942:247;11881:308:::0;:::o;12747:327::-;3672:18;:16;:18::i;:::-;-1:-1:-1;;;;;12830:16:0;::::1;;::::0;;;:8:::1;:16;::::0;;;;;:26;::::1;;:16;::::0;;::::1;:26;;::::0;12826:73:::1;;12867:29;::::0;-1:-1:-1;;;12867:29:0;;572:14:1;;565:22;12867:29:0::1;::::0;::::1;547:41:1::0;520:18;;12867:29:0::1;407:187:1::0;12826:73:0::1;12947:4;-1:-1:-1::0;;;;;12913:39:0::1;12919:6;-1:-1:-1::0;;;;;12913:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12913:39:0::1;;;:82;;;;;12990:4;-1:-1:-1::0;;;;;12956:39:0::1;12962:6;-1:-1:-1::0;;;;;12956:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12956:39:0::1;;;12913:82;12909:122;;;13006:22;::::0;-1:-1:-1;;;13006:22:0;;-1:-1:-1;;;;;363:32:1;;13006:22:0::1;::::0;::::1;345:51:1::0;318:18;;13006:22:0::1;199:203:1::0;12909:122:0::1;-1:-1:-1::0;;;;;13041:16:0;;;::::1;;::::0;;;:8:::1;:16;::::0;;;;:25;;-1:-1:-1;;13041:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12747:327::o;14442:203::-;3672:18;:16;:18::i;:::-;14544:6:::1;14517:23;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;14588:15:0::1;14561:24;:42:::0;14614:23:::1;14624:6:::0;7351::::1;14614:9;:23::i;:::-;14442:203:::0;:::o;4658:103::-;3598:13;:11;:13::i;:::-;4723:30:::1;4750:1;4723:18;:30::i;:::-;4658:103::o:0;11480:393::-;3672:18;:16;:18::i;:::-;11569:10:::1;11558:7;;:21:::0;11554:72:::1;;11590:33;::::0;-1:-1:-1;;;11590:33:0;;::::1;::::0;::::1;2006:25:1::0;;;1979:18;;11590:33:0::1;1860:177:1::0;11554:72:0::1;11656:12;6489:2;11656;:12;:::i;:::-;11650:18;::::0;:3:::1;:18;:::i;:::-;11640:7;;:28;11636:78;;;11698:12;6489:2;11698;:12;:::i;:::-;11692:18;::::0;:3:::1;:18;:::i;:::-;11679:32;;-1:-1:-1::0;;;11679:32:0::1;;;;;;2006:25:1::0;;1994:2;1979:18;;1860:177;11636:78:0::1;11745:7;::::0;;11763:20;;;;11799:66:::1;::::0;;5519:25:1;;;5575:2;5560:18;;5553:34;;;11837:10:0::1;5603:18:1::0;;;5596:60;;;;11849:15:0::1;5687:2:1::0;5672:18;;5665:34;11799:66:0::1;::::0;5506:3:1;5491:19;11799:66:0::1;5288:417:1::0;12197:318:0;3672:18;:16;:18::i;:::-;12292:9:::1;12275:26;;:13;;;;;;;;;;;:26;;::::0;12271:76:::1;;12312:32;::::0;-1:-1:-1;;;12312:32:0;;572:14:1;;565:22;12312:32:0::1;::::0;::::1;547:41:1::0;520:18;;12312:32:0::1;407:187:1::0;12271:76:0::1;12374:13;::::0;;12398:25;::::1;;12374:13:::0;12398:25;;::::1;-1:-1:-1::0;;12398:25:0;::::1;;::::0;;;12439:68:::1;::::0;;12374:13:::1;::::0;;;::::1;::::0;;;::::1;7007:14:1::0;;7000:22;6982:41;;7054:2;7039:18;;7032:50;;;;12479:10:0::1;7098:18:1::0;;;7091:60;;;;12491:15:0::1;7182:2:1::0;7167:18;;7160:34;12439:68:0::1;::::0;6969:3:1;6954:19;12439:68:0::1;6763:437:1::0;10812:136:0;15651:9;:18;;;;7351:6;10864:7;15651:18;;;;;15518:12;;10864:7;;15651:18;10891:31;;15651:18;10891:31;:::i;:::-;:49;;;;:::i;:::-;10884:56;;10812:136;:::o;9328:386::-;3672:18;:16;:18::i;:::-;9390:16:::1;::::0;::::1;;9386:75;;;9441:16;::::0;9417:41:::1;::::0;-1:-1:-1;;;9417:41:0;;9441:16:::1;::::0;;::::1;572:14:1::0;565:22;9417:41:0::1;::::0;::::1;547::1::0;520:18;;9417:41:0::1;407:187:1::0;9386:75:0::1;9475:11;::::0;::::1;::::0;::::1;;;9471:63;;;9519:11;::::0;9497:34:::1;::::0;-1:-1:-1;;;9497:34:0;;9519:11:::1;::::0;;::::1;;;572:14:1::0;565:22;9497:34:0::1;::::0;::::1;547:41:1::0;520:18;;9497:34:0::1;407:187:1::0;9471:63:0::1;9548:13;::::0;;;::::1;;;9544:69;;;9596:13;::::0;9572:38:::1;::::0;-1:-1:-1;;;9572:38:0;;9596:13;;;::::1;;;572:14:1::0;565:22;9572:38:0::1;::::0;::::1;547:41:1::0;520:18;;9572:38:0::1;407:187:1::0;9544:69:0::1;9623:11;:18:::0;;-1:-1:-1;;9683:23:0;;;;;9328:386::o;16788:445::-;16883:4;16919:10;16883:4;16967:28;16919:10;16987:7;16967:9;:28::i;:::-;16940:55;;17034:15;17014:16;:35;;17006:85;;;;-1:-1:-1;;;17006:85:0;;8790:2:1;17006:85:0;;;8772:21:1;8829:2;8809:18;;;8802:30;8868:34;8848:18;;;8841:62;-1:-1:-1;;;8919:18:1;;;8912:35;8964:19;;17006:85:0;8588:401:1;17006:85:0;17127:63;17136:8;17146:7;17174:15;17155:16;:34;17127:8;:63::i;:::-;-1:-1:-1;17221:4:0;;16788:445;-1:-1:-1;;;;16788:445:0:o;15689:184::-;15770:4;15806:10;15834:31;15806:10;15854:2;15858:6;15834:9;:31::i;:::-;15827:38;15689:184;-1:-1:-1;;;;15689:184:0:o;4990:255::-;3598:13;:11;:13::i;:::-;-1:-1:-1;;;;;5066:21:0;::::1;::::0;;:51:::1;;-1:-1:-1::0;;;;;;5091:26:0;::::1;5110:6;5091:26;5066:51;5062:124;;;5141:33;::::0;-1:-1:-1;;;5141:33:0;;-1:-1:-1;;;;;363:32:1;;5141:33:0::1;::::0;::::1;345:51:1::0;318:18;;5141:33:0::1;199:203:1::0;5062:124:0::1;5196:41;5211:7;5220:10;5232:4;5196:14;:41::i;10976:496::-:0;3598:13;:11;:13::i;:::-;11059:6:::1;::::0;-1:-1:-1;;;;;11051:28:0;;::::1;11059:6:::0;::::1;11051:28:::0;11047:80:::1;;11090:34;::::0;-1:-1:-1;;;11090:34:0;;-1:-1:-1;;;;;363:32:1;;11090:34:0::1;::::0;::::1;345:51:1::0;318:18;;11090:34:0::1;199:203:1::0;11047:80:0::1;11165:6;::::0;;-1:-1:-1;;;;;;11183:27:0;::::1;-1:-1:-1::0;;;;;11183:27:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11231:28:0;;;:17:::1;:28;::::0;;;;;;;;:35;;-1:-1:-1;;11231:35:0::1;-1:-1:-1::0;11231:35:0::1;::::0;;11284:63;;11165:6;;;::::1;9263:34:1::0;;;9313:18;;;9306:43;;;;11319:10:0::1;9365:18:1::0;;;9358:43;11331:15:0::1;9432:2:1::0;9417:18;;9410:34;11165:6:0;11284:63:::1;::::0;9212:3:1;9197:19;11284:63:0::1;;;;;;;11374:6;;;;;;;;;-1:-1:-1::0;;;;;11374:6:0::1;-1:-1:-1::0;;;;;11374:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11365:37:0::1;;11411:4;11418:6;;;;;;;;;-1:-1:-1::0;;;;;11418:6:0::1;-1:-1:-1::0;;;;;11418:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11365:67;::::0;-1:-1:-1;;;;;;11365:67:0::1;::::0;;;;;;-1:-1:-1;;;;;9685:15:1;;;11365:67:0::1;::::0;::::1;9667:34:1::0;9737:15;;9717:18;;;9710:43;9602:18;;11365:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11358:4;:74:::0;;-1:-1:-1;;;;;;11358:74:0::1;::::0;-1:-1:-1;;;;;11358:74:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;11452:4;::::1;;-1:-1:-1::0;11443:14:0;;;:8:::1;:14;::::0;;;;:21;;-1:-1:-1;;11443:21:0::1;-1:-1:-1::0;11443:21:0::1;::::0;;-1:-1:-1;;10976:496:0:o;12523:216::-;3672:18;:16;:18::i;:::-;-1:-1:-1;;;;;12613:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;:33;::::1;;:23;::::0;;::::1;:33;;::::0;12609:80:::1;;12657:29;::::0;-1:-1:-1;;;12657:29:0;;572:14:1;;565:22;12657:29:0::1;::::0;::::1;547:41:1::0;520:18;;12657:29:0::1;407:187:1::0;12609:80:0::1;-1:-1:-1::0;;;;;12699:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:32;;-1:-1:-1;;12699:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12523:216::o;15885:157::-;-1:-1:-1;;;;;16004:21:0;;;15977:7;16004:21;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;15885:157::o;5253:258::-;3598:13;:11;:13::i;:::-;-1:-1:-1;;;;;5331:21:0;::::1;::::0;;:51:::1;;-1:-1:-1::0;;;;;;5356:26:0;::::1;5375:6;5356:26;5331:51;5327:124;;;5406:33;::::0;-1:-1:-1;;;5406:33:0;;-1:-1:-1;;;;;363:32:1;;5406:33:0::1;::::0;::::1;345:51:1::0;318:18;;5406:33:0::1;199:203:1::0;5327:124:0::1;5461:42;5476:7;5485:10;5497:5;5461:14;:42::i;4769:213::-:0;3598:13;:11;:13::i;:::-;-1:-1:-1;;;;;4854:22:0;::::1;4850:86;;4900:24;::::0;-1:-1:-1;;;4900:24:0;;4921:1:::1;4900:24;::::0;::::1;345:51:1::0;318:18;;4900:24:0::1;199:203:1::0;4850:86:0::1;4946:28;4965:8;4946:18;:28::i;17555:331::-:0;-1:-1:-1;;;;;17656:16:0;;17652:58;;17683:24;;-1:-1:-1;;;17683:24:0;;-1:-1:-1;;;;;363:32:1;;17683:24:0;;;345:51:1;318:18;;17683:24:0;199:203:1;17652:58:0;-1:-1:-1;;;;;17724:15:0;;17720:56;;17750:23;;-1:-1:-1;;;17750:23:0;;-1:-1:-1;;;;;363:32:1;;17750:23:0;;;345:51:1;318:18;;17750:23:0;199:203:1;17720:56:0;-1:-1:-1;;;;;17788:21:0;;;;;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;:39;;;17843:35;;2006:25:1;;;17843:35:0;;1979:18:1;17843:35:0;;;;;;;17555:331;;;:::o;17898:428::-;18002:24;18029:28;18039:8;18049:7;18029:9;:28::i;:::-;18002:55;;-1:-1:-1;;18072:16:0;:37;18068:251;;18154:6;18134:16;:26;;18126:68;;;;-1:-1:-1;;;18126:68:0;;9966:2:1;18126:68:0;;;9948:21:1;10005:2;9985:18;;;9978:30;10044:31;10024:18;;;10017:59;10093:18;;18126:68:0;9764:353:1;18126:68:0;18238:54;18247:8;18257:7;18285:6;18266:16;:25;18238:8;:54::i;:::-;17991:335;17898:428;;;:::o;18813:1012::-;18900:4;-1:-1:-1;;;;;18921:12:0;;18917:50;;18944:20;;-1:-1:-1;;;18944:20:0;;-1:-1:-1;;;;;363:32:1;;18944:20:0;;;345:51:1;318:18;;18944:20:0;199:203:1;18917:50:0;-1:-1:-1;;;;;18981:10:0;;18977:46;;19002:18;;-1:-1:-1;;;19002:18:0;;-1:-1:-1;;;;;363:32:1;;19002:18:0;;;345:51:1;318:18;;19002::0;199:203:1;18977:46:0;19039:6;;;;;;;;:33;;-1:-1:-1;;;;;;19049:23:0;;;;;;:17;:23;;;;;;;;19039:33;19035:105;;;19096:32;19111:4;19117:2;19121:6;19096:14;:32::i;:::-;19089:39;;;;19035:105;19164:4;;-1:-1:-1;;;;;19156:12:0;;;19164:4;;;;;19156:12;;;;:29;;-1:-1:-1;19172:13:0;;;;;;;19156:29;:68;;;;-1:-1:-1;19217:7:0;;19207:4;15624:7;15651:18;;;:9;:18;;;;;;19189:35;;19156:68;:119;;;;;19268:7;;19248:16;;19228:17;;:36;;;;:::i;:::-;:47;;19156:119;19152:171;;;19292:19;19303:7;;19292:10;:19::i;:::-;19378:11;;19355:6;;19378:11;;;;;:39;;;;-1:-1:-1;;;;;;19394:23:0;;;;;;:17;:23;;;;;;;;19393:24;19378:39;:65;;;;-1:-1:-1;;;;;;19422:21:0;;;;;;:17;:21;;;;;;;;19421:22;19378:65;19374:148;;;19472:38;19493:4;19499:2;19503:6;19472:20;:38::i;:::-;19460:50;;19374:148;-1:-1:-1;;;;;19542:15:0;;;;;;:9;:15;;;;;;:28;-1:-1:-1;19542:28:0;19534:79;;;;-1:-1:-1;;;19534:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19667:15:0;;;;;;;:9;:15;;;;;;;;:27;;;19649:45;;19709:13;;;;;;;;;;:26;;;;;;19764:29;;;;;;19685:9;2006:25:1;;1994:2;1979:18;;1860:177;19764:29:0;;;;;;;;-1:-1:-1;19813:4:0;;18813:1012;-1:-1:-1;;;;18813:1012:0:o;4485:165::-;4565:10;4551:25;;;;:13;:25;;;;;;;;4546:97;;4600:31;;-1:-1:-1;;;4600:31:0;;4620:10;4600:31;;;345:51:1;318:18;;4600:31:0;199:203:1;14653:398:0;7865:6;:13;;-1:-1:-1;;7865:13:0;;;;;-1:-1:-1;;14733:10:0::1;:18:::0;14729:56:::1;;14762:20;::::0;-1:-1:-1;;;14762:20:0;;7351:6:::1;14762:20;::::0;::::1;345:51:1::0;318:18;;14762:20:0::1;199:203:1::0;14729:56:0::1;14819:16;::::0;;14833:1:::1;14819:16:::0;;;;;::::1;::::0;;14795:21:::1;::::0;14819:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;14856:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14856:13:0;;;;14795:40;;-1:-1:-1;;;;;;14856:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;14856:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14846:4;14851:1;14846:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14846:23:0::1;;;-1:-1:-1::0;;;;;14846:23:0::1;;;::::0;::::1;14898:4;14880;14885:1;14880:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14880:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14916:6:::1;::::0;:127:::1;::::0;-1:-1:-1;;;14916:127:0;;:6;::::1;::::0;:57:::1;::::0;14995:6;;14916:127:::1;::::0;:6:::1;::::0;15017:4;;15023:2;;15027:15:::1;::::0;14916:127:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7901:6:0;:14;;-1:-1:-1;;7901:14:0;;;-1:-1:-1;;;;;;14653:398:0:o;4322:155::-;4393:10;4382:7;4273;4300:6;-1:-1:-1;;;;;4300:6:0;;4227:87;4382:7;-1:-1:-1;;;;;4382:21:0;;4378:92;;4427:31;;-1:-1:-1;;;4427:31:0;;4447:10;4427:31;;;345:51:1;318:18;;4427:31:0;199:203:1;5519:191:0;5593:16;5612:6;;-1:-1:-1;;;;;5629:17:0;;;-1:-1:-1;;;;;;5629:17:0;;;;;;5662:40;;5612:6;;;;;;;5662:40;;5593:16;5662:40;5582:128;5519:191;:::o;5718:334::-;-1:-1:-1;;;;;5819:22:0;;;;;;:13;:22;;;;;;:31;;;:22;;;;:31;;;5815:109;;5874:38;;-1:-1:-1;;;5874:38:0;;-1:-1:-1;;;;;11230:32:1;;5874:38:0;;;11212:51:1;11306:14;;11299:22;11279:18;;;11272:50;11185:18;;5874:38:0;11044:284:1;5815:109:0;-1:-1:-1;;;;;5934:22:0;;;;;;;:13;:22;;;;;;;;;:30;;-1:-1:-1;;5934:30:0;;;;;;;;;;5980:64;;11596:34:1;;;11666:15;;;11646:18;;;11639:43;11698:18;;11691:50;;;;6028:15:0;11772:2:1;11757:18;;11750:34;5980:64:0;;11545:3:1;11530:19;5980:64:0;;;;;;;5718:334;;;:::o;18358:419::-;-1:-1:-1;;;;;18482:15:0;;18443:4;18482:15;;;:9;:15;;;;;;18516:21;;;;18508:72;;;;-1:-1:-1;;;18508:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18616:15:0;;;;;;;:9;:15;;;;;;18634:20;;;18616:38;;18669:13;;;;;;;;;;:23;;;;;;18721:26;;;;;;18648:6;2006:25:1;;1994:2;1979:18;;1860:177;19833:497:0;7865:6;:13;;-1:-1:-1;;7865:13:0;;;;;-1:-1:-1;;;;;19964:14:0;::::1;19940:7:::0;19964:14;;;:8:::1;:14;::::0;;;;;7865:13;19964:14:::1;:33:::0;::::1;;;-1:-1:-1::0;19983:13:0;19964:33:::1;19960:97;;;20021:24;20032:4;20038:6;20021:10;:24::i;:::-;20014:31;;;;19960:97;-1:-1:-1::0;;;;;20071:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;::::1;;:32:::0;::::1;;;-1:-1:-1::0;20088:14:0;20071:32:::1;20067:97;;;20127:25;20139:4;20145:6;20127:11;:25::i;20067:97::-;-1:-1:-1::0;;;;;20179:14:0;::::1;;::::0;;;:8:::1;:14;::::0;;;;;::::1;;20178:15;:32:::0;::::1;;;-1:-1:-1::0;;;;;;20198:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;::::1;;20197:13;20178:32;:56;;;;-1:-1:-1::0;20232:1:0::1;20178:56;20174:125;;;20258:29;20274:4;20280:6;20258:15;:29::i;20174:125::-;-1:-1:-1::0;20316:6:0;7889:1:::1;7901:6:::0;:14;;-1:-1:-1;;7901:14:0;;;19833:497;;-1:-1:-1;;;19833:497:0:o;13099:324::-;7865:6;:13;;-1:-1:-1;;7865:13:0;;;;;13176:7;;6582:6:::1;13216:18;6633:3;13216:6:::0;:18:::1;:::i;:::-;:35;;;;:::i;:::-;13196:55:::0;-1:-1:-1;13262:17:0::1;13282:18;13196:55:::0;13282:6;:18:::1;:::i;:::-;13262:38:::0;-1:-1:-1;13315:13:0;;13311:78:::1;;13345:32;13361:4;13367:9;13345:15;:32::i;:::-;7901:6:::0;:14;;-1:-1:-1;;7901:14:0;;;13406:9;13099:324;-1:-1:-1;;;;13099:324:0:o;13765:334::-;7865:6;:13;;-1:-1:-1;;7865:13:0;;;;;13847:7;;6582:6:::1;13887:23;13847:7:::0;13887:6;:23:::1;:::i;14107:306::-:0;7865:6;:13;;-1:-1:-1;;7865:13:0;;;;;14203:23:::1;:45:::0;;14230:18;;14203:23;7865:13;;14203:45:::1;::::0;14230:18;;14203:45:::1;:::i;:::-;;;;;;;;14280:18;14259:17;;:39;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;14309:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:37;;14328:18;;14309:15;:37:::1;::::0;14328:18;;14309:37:::1;:::i;:::-;::::0;;;-1:-1:-1;;14375:4:0::1;14357:24;::::0;;;:9:::1;:24;::::0;;;;:46;;14385:18;;14357:24;:46:::1;::::0;14385:18;;14357:46:::1;:::i;:::-;::::0;;;-1:-1:-1;;7901:6:0;:14;;-1:-1:-1;;7901:14:0;;;-1:-1:-1;;14107:306:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;599:548::-;711:4;740:2;769;758:9;751:21;801:6;795:13;844:6;839:2;828:9;824:18;817:34;869:1;879:140;893:6;890:1;887:13;879:140;;;988:14;;;984:23;;978:30;954:17;;;973:2;950:26;943:66;908:10;;879:140;;;883:3;1068:1;1063:2;1054:6;1043:9;1039:22;1035:31;1028:42;1138:2;1131;1127:7;1122:2;1114:6;1110:15;1106:29;1095:9;1091:45;1087:54;1079:62;;;;599:548;;;;:::o;1152:131::-;-1:-1:-1;;;;;1227:31:1;;1217:42;;1207:70;;1273:1;1270;1263:12;1288:247;1347:6;1400:2;1388:9;1379:7;1375:23;1371:32;1368:52;;;1416:1;1413;1406:12;1368:52;1455:9;1442:23;1474:31;1499:5;1474:31;:::i;1540:315::-;1608:6;1616;1669:2;1657:9;1648:7;1644:23;1640:32;1637:52;;;1685:1;1682;1675:12;1637:52;1724:9;1711:23;1743:31;1768:5;1743:31;:::i;:::-;1793:5;1845:2;1830:18;;;;1817:32;;-1:-1:-1;;;1540:315:1:o;2042:456::-;2119:6;2127;2135;2188:2;2176:9;2167:7;2163:23;2159:32;2156:52;;;2204:1;2201;2194:12;2156:52;2243:9;2230:23;2262:31;2287:5;2262:31;:::i;:::-;2312:5;-1:-1:-1;2369:2:1;2354:18;;2341:32;2382:33;2341:32;2382:33;:::i;:::-;2042:456;;2434:7;;-1:-1:-1;;;2488:2:1;2473:18;;;;2460:32;;2042:456::o;2692:160::-;2757:20;;2813:13;;2806:21;2796:32;;2786:60;;2842:1;2839;2832:12;2786:60;2692:160;;;:::o;2857:180::-;2913:6;2966:2;2954:9;2945:7;2941:23;2937:32;2934:52;;;2982:1;2979;2972:12;2934:52;3005:26;3021:9;3005:26;:::i;3042:315::-;3107:6;3115;3168:2;3156:9;3147:7;3143:23;3139:32;3136:52;;;3184:1;3181;3174:12;3136:52;3223:9;3210:23;3242:31;3267:5;3242:31;:::i;:::-;3292:5;-1:-1:-1;3316:35:1;3347:2;3332:18;;3316:35;:::i;:::-;3306:45;;3042:315;;;;;:::o;3362:388::-;3430:6;3438;3491:2;3479:9;3470:7;3466:23;3462:32;3459:52;;;3507:1;3504;3497:12;3459:52;3546:9;3533:23;3565:31;3590:5;3565:31;:::i;:::-;3615:5;-1:-1:-1;3672:2:1;3657:18;;3644:32;3685:33;3644:32;3685:33;:::i;:::-;3737:7;3727:17;;;3362:388;;;;;:::o;3978:127::-;4039:10;4034:3;4030:20;4027:1;4020:31;4070:4;4067:1;4060:15;4094:4;4091:1;4084:15;4110:128;4177:9;;;4198:11;;;4195:37;;;4212:18;;:::i;4243:168::-;4316:9;;;4347;;4364:15;;;4358:22;;4344:37;4334:71;;4385:18;;:::i;4416:217::-;4456:1;4482;4472:132;;4526:10;4521:3;4517:20;4514:1;4507:31;4561:4;4558:1;4551:15;4589:4;4586:1;4579:15;4472:132;-1:-1:-1;4618:9:1;;4416:217::o;4638:125::-;4703:9;;;4724:10;;;4721:36;;;4737:18;;:::i;4900:127::-;4961:10;4956:3;4952:20;4949:1;4942:31;4992:4;4989:1;4982:15;5016:4;5013:1;5006:15;5032:251;5102:6;5155:2;5143:9;5134:7;5130:23;5126:32;5123:52;;;5171:1;5168;5161:12;5123:52;5203:9;5197:16;5222:31;5247:5;5222:31;:::i;5710:461::-;5763:3;5801:5;5795:12;5828:6;5823:3;5816:19;5854:4;5883:2;5878:3;5874:12;5867:19;;5920:2;5913:5;5909:14;5941:1;5951:195;5965:6;5962:1;5959:13;5951:195;;;6030:13;;-1:-1:-1;;;;;6026:39:1;6014:52;;6086:12;;;;6121:15;;;;6062:1;5980:9;5951:195;;;-1:-1:-1;6162:3:1;;5710:461;-1:-1:-1;;;;;5710:461:1:o;6176:582::-;6475:6;6464:9;6457:25;6518:6;6513:2;6502:9;6498:18;6491:34;6561:3;6556:2;6545:9;6541:18;6534:31;6438:4;6582:57;6634:3;6623:9;6619:19;6611:6;6582:57;:::i;:::-;-1:-1:-1;;;;;6675:32:1;;;;6670:2;6655:18;;6648:60;-1:-1:-1;6739:3:1;6724:19;6717:35;6574:65;6176:582;-1:-1:-1;;;6176:582:1:o;7205:422::-;7294:1;7337:5;7294:1;7351:270;7372:7;7362:8;7359:21;7351:270;;;7431:4;7427:1;7423:6;7419:17;7413:4;7410:27;7407:53;;;7440:18;;:::i;:::-;7490:7;7480:8;7476:22;7473:55;;;7510:16;;;;7473:55;7589:22;;;;7549:15;;;;7351:270;;;7355:3;7205:422;;;;;:::o;7632:806::-;7681:5;7711:8;7701:80;;-1:-1:-1;7752:1:1;7766:5;;7701:80;7800:4;7790:76;;-1:-1:-1;7837:1:1;7851:5;;7790:76;7882:4;7900:1;7895:59;;;;7968:1;7963:130;;;;7875:218;;7895:59;7925:1;7916:10;;7939:5;;;7963:130;8000:3;7990:8;7987:17;7984:43;;;8007:18;;:::i;:::-;-1:-1:-1;;8063:1:1;8049:16;;8078:5;;7875:218;;8177:2;8167:8;8164:16;8158:3;8152:4;8149:13;8145:36;8139:2;8129:8;8126:16;8121:2;8115:4;8112:12;8108:35;8105:77;8102:159;;;-1:-1:-1;8214:19:1;;;8246:5;;8102:159;8293:34;8318:8;8312:4;8293:34;:::i;:::-;8363:6;8359:1;8355:6;8351:19;8342:7;8339:32;8336:58;;;8374:18;;:::i;:::-;8412:20;;7632:806;-1:-1:-1;;;7632:806:1:o;8443:140::-;8501:5;8530:47;8571:4;8561:8;8557:19;8551:4;8530:47;:::i;10122:402::-;10324:2;10306:21;;;10363:2;10343:18;;;10336:30;10402:34;10397:2;10382:18;;10375:62;-1:-1:-1;;;10468:2:1;10453:18;;10446:36;10514:3;10499:19;;10122:402::o;10529:510::-;10800:6;10789:9;10782:25;10843:3;10838:2;10827:9;10823:18;10816:31;10763:4;10864:57;10916:3;10905:9;10901:19;10893:6;10864:57;:::i;:::-;-1:-1:-1;;;;;10957:32:1;;;;10952:2;10937:18;;10930:60;-1:-1:-1;11021:2:1;11006:18;10999:34;10856:65;10529:510;-1:-1:-1;;10529:510:1:o

Swarm Source

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