


def 				UpperCamelCase_(      lowerCamelCase_ )    ->						int:

    if not isinstance(lowerCamelCase_							, lowerCamelCase_ ):
        raise TypeError('only integers accepted as input' )
    else:
        _lowercase       :							Any      		=		str(abs(lowerCamelCase_ ) )
        _lowercase       :							Dict      		=		[list(lowerCamelCase_ ) for char in range(len(lowerCamelCase_ ) )]
        for index in range(len(lowerCamelCase_ ) ):
            num_transpositions[index].pop(lowerCamelCase_ )
        return max(
            int(''.join(list(lowerCamelCase_ ) ) ) for transposition in num_transpositions )


if __name__ == "__main__":
 __import__("doctest").testmod()






def 				UpperCamelCase_(      lowerCamelCase_ )    ->						int:
    if not numbers:
        return 0

    if not isinstance(lowerCamelCase_							, (list, tuple) ) or not all(
        isinstance(lowerCamelCase_							, lowerCamelCase_ ) for number in numbers ):
        raise ValueError('numbers must be an iterable of integers' )

    _lowercase       :							int      		=		numbers[0]

    for i in range(1							, len(lowerCamelCase_ ) ):
        # update the maximum and minimum subarray products
        _lowercase       :							Union[str, Any]      		=		numbers[i]
        if number < 0:
            _lowercase		,				_lowercase       :							Any      		=		min_till_now, max_till_now
        _lowercase       :							Union[str, Any]      		=		max(lowerCamelCase_							, max_till_now * number )
        _lowercase       :							Union[str, Any]      		=		min(lowerCamelCase_							, min_till_now * number )

        # update the maximum product found till now
        _lowercase       :							Optional[Any]      		=		max(lowerCamelCase_							, lowerCamelCase_ )

    return max_prod


