import warnings
from functools import wraps
from typing import Callable
def       A	(    _lowercase						):

						@wraps(_lowercase						)
						def _inner_fn(*_lowercase		,  **_lowercase						):
												warnings.warn(
												    (f"""'{fn.__name__}' is experimental and might be subject to breaking changes in the future.""")		,  _lowercase		,  )
												return fn(*_lowercase		,  **_lowercase						)

						return _inner_fn






import math
def       A	(    _lowercase						):
						return math.sqrt(_lowercase						) * math.sqrt(_lowercase						) == num
def       A	(    _lowercase						):
						SCREAMING_SNAKE_CASE							:    Dict							=							0
						SCREAMING_SNAKE_CASE							:    Tuple							=							n
						while left <= right:
												SCREAMING_SNAKE_CASE							:    Union[str, Any]							=							(left + right) // 2
												if mid**2 == n:
																		return True
												elif mid**2 > n:
																		SCREAMING_SNAKE_CASE							:    Optional[Any]							=							mid - 1
												else:
																		SCREAMING_SNAKE_CASE							:    Optional[int]							=							mid + 1
						return False


if __name__ == "__main__":
					import doctest

					doctest.testmod()





