
def 						UpperCAmelCase			(	a_		,   a_		,   a_						)		->	Optional[int]:







				"""simple docstring"""



				if n == 0:
								return 1

				elif n % 2 == 1:
								return (binary_exponentiation(a_		,   n - 1		,   a_						) * a) % mod

				else:
								__A   			= binary_exponentiation(a_		,   n / 2		,   a_						)
								return (b * b) % mod


# a prime number
SCREAMING_SNAKE_CASE							:Any							 =				701

SCREAMING_SNAKE_CASE							:List[str]							 =				10_0000_0000
SCREAMING_SNAKE_CASE							:List[str]							 =				10

# using binary exponentiation function, O(log(p)):
print((a / b) % p == (a * binary_exponentiation(b, p - 2, p)) % p)
print((a / b) % p == (a * b ** (p - 2)) % p)


import PIL.Image
import PIL.ImageOps
from packaging import version
from PIL import Image


if version.parse(version.parse(PIL.__version__).base_version) >= version.parse('9.1.0'):
					SCREAMING_SNAKE_CASE							:Any							 =				{
					    'linear': PIL.Image.Resampling.BILINEAR,
					    'bilinear': PIL.Image.Resampling.BILINEAR,
					    'bicubic': PIL.Image.Resampling.BICUBIC,
					    'lanczos': PIL.Image.Resampling.LANCZOS,
					    'nearest': PIL.Image.Resampling.NEAREST,
					}
else:
					SCREAMING_SNAKE_CASE							:int							 =				{
					    'linear': PIL.Image.LINEAR,
					    'bilinear': PIL.Image.BILINEAR,
					    'bicubic': PIL.Image.BICUBIC,
					    'lanczos': PIL.Image.LANCZOS,
					    'nearest': PIL.Image.NEAREST,
					}


def 						UpperCAmelCase			(	a_						)		->	Optional[Any]:







				"""simple docstring"""



				__A   			= (images / 2 + 0.5).clamp(0		,   1						)
				__A   			= images.cpu().permute(0		,   2		,   3		,   1						).float().numpy()
				__A   			= numpy_to_pil(a_						)
				return images


def 						UpperCAmelCase			(	a_						)		->	int:







				"""simple docstring"""



				if images.ndim == 3:
								__A   			= images[None, ...]
				__A   			= (images * 2_5_5).round().astype("uint8"						)
				if images.shape[-1] == 1:
								# special case for grayscale (single channel) images
								__A   			= [Image.fromarray(image.squeeze()		,   mode="L"						) for image in images]
				else:
								__A   			= [Image.fromarray(a_						) for image in images]

				return pil_images
