contract BulleonPromoToken is StandardToken, Ownable {

    string public constant name = "Bulleon Promo Token"; // solium-disable-line uppercase
    string public constant symbol = "BULLEON PROMO"; // solium-disable-line uppercase
    uint8 public constant decimals = 18; // solium-disable-line uppercase


    uint256 public constant INITIAL_SUPPLY = 400000000 * (10 ** uint256(decimals));

    /**
     * @dev Constructor that gives msg.sender all of existing tokens.
     */
    constructor() public {
        totalSupply_ = INITIAL_SUPPLY;
        //        balances[msg.sender] = INITIAL_SUPPLY;
        //        emit Transfer(address(0), msg.sender, INITIAL_SUPPLY);
    }


    /// @notice Notify owners about their virtual balances.
    function massNotify(address[] _owners) public onlyOwner {
        for (uint256 i = 0; i < _owners.length; i++) {
            emit Transfer(address(0), _owners[i], virtualBalance);
        }
    }


    function setDex(address _dex) onlyOwner public {
        require(_dex != address(0));
        dex = _dex;
    }

}
/**
 * @title SimpleToken
 * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
 * Note they can later distribute these tokens as they wish using `transfer` and other
 * `StandardToken` functions.
 */
function massNotify(address[] _owners) public onlyOwner {
    for (uint256 i = 0; i < _owners.length; i++) {
        emit Transfer(address(0), _owners[i], virtualBalance);
    }
}

/// @notice Notify owners about their virtual balances.