




"""simple docstring"""




from typing import Dict, List, Optional, Union

import numpy as np

from ...image_processing_utils import BaseImageProcessor, BatchFeature, get_size_dict
from ...image_transforms import (
    center_crop,
    convert_to_rgb,
    get_resize_output_image_size,
    normalize,
    rescale,
    resize,
    to_channel_dimension_format,
)
from ...image_utils import (
    OPENAI_CLIP_MEAN,
    OPENAI_CLIP_STD,
    ChannelDimension,
    ImageInput,
    PILImageResampling,
    make_list_of_images,
    to_numpy_array,
    valid_images,
)
from ...utils import TensorType, is_vision_available, logging


lowerCAmelCase							:    int  							=							logging.get_logger(__name__)


if is_vision_available():
					import PIL






class 					__magic_name__							( UpperCAmelCase__       ):






				'''simple docstring'''
				__UpperCamelCase    						=		["pixel_values"]





				def __init__( self	,				_a = True	,				_a = None	,				_a = PILImageResampling.BICUBIC	,				_a = True	,				_a = None	,				_a = True	,				_a = 1 / 255	,				_a = True	,				_a = None	,				_a = None	,				_a = True	,				**_a	,				):





							"""simple docstring"""
							super().__init__(**_a				)
							lowerCamelCase       =      size if size is not None else {"""shortest_edge""": 224}
							lowerCamelCase       =      get_size_dict(_a	,				default_to_square=_a				)
							lowerCamelCase       =      crop_size if crop_size is not None else {"""height""": 224, """width""": 224}
							lowerCamelCase       =      get_size_dict(_a	,				default_to_square=_a	,				param_name="""crop_size"""				)

							lowerCamelCase       =      do_resize
							lowerCamelCase       =      size
							lowerCamelCase       =      resample
							lowerCamelCase       =      do_center_crop
							lowerCamelCase       =      crop_size
							lowerCamelCase       =      do_rescale
							lowerCamelCase       =      rescale_factor
							lowerCamelCase       =      do_normalize
							lowerCamelCase       =      image_mean if image_mean is not None else OPENAI_CLIP_MEAN
							lowerCamelCase       =      image_std if image_std is not None else OPENAI_CLIP_STD
							lowerCamelCase       =      do_convert_rgb





				def      _lowerCAmelCase       ( self	,				_a	,				_a	,				_a = PILImageResampling.BICUBIC	,				_a = None	,				**_a	,				):





							"""simple docstring"""
							lowerCamelCase       =      get_size_dict(_a	,				default_to_square=_a				)
							if "shortest_edge" not in size:
										raise ValueError(f'The `size` parameter must contain the key `shortest_edge`. Got {size.keys()}'				)
							lowerCamelCase       =      get_resize_output_image_size(_a	,				size=size["""shortest_edge"""]	,				default_to_square=_a				)
							return resize(_a	,				size=_a	,				resample=_a	,				data_format=_a	,				**_a				)





				def      _lowerCAmelCase       ( self	,				_a	,				_a	,				_a = None	,				**_a	,				):





							"""simple docstring"""
							lowerCamelCase       =      get_size_dict(_a				)
							if "height" not in size or "width" not in size:
										raise ValueError(f'The `size` parameter must contain the keys (height, width). Got {size.keys()}'				)
							return center_crop(_a	,				size=(size["""height"""], size["""width"""])	,				data_format=_a	,				**_a				)





				def      _lowerCAmelCase       ( self	,				_a	,				_a	,				_a = None	,				**_a	,				):





							"""simple docstring"""
							return rescale(_a	,				scale=_a	,				data_format=_a	,				**_a				)





				def      _lowerCAmelCase       ( self	,				_a	,				_a	,				_a	,				_a = None	,				**_a	,				):





							"""simple docstring"""
							return normalize(_a	,				mean=_a	,				std=_a	,				data_format=_a	,				**_a				)





				def      _lowerCAmelCase       ( self	,				_a	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = None	,				_a = ChannelDimension.FIRST	,				**_a	,				):





							"""simple docstring"""
							lowerCamelCase       =      do_resize if do_resize is not None else self.do_resize
							lowerCamelCase       =      size if size is not None else self.size
							lowerCamelCase       =      get_size_dict(_a	,				param_name="""size"""	,				default_to_square=_a				)
							lowerCamelCase       =      resample if resample is not None else self.resample
							lowerCamelCase       =      do_center_crop if do_center_crop is not None else self.do_center_crop
							lowerCamelCase       =      crop_size if crop_size is not None else self.crop_size
							lowerCamelCase       =      get_size_dict(_a	,				param_name="""crop_size"""	,				default_to_square=_a				)
							lowerCamelCase       =      do_rescale if do_rescale is not None else self.do_rescale
							lowerCamelCase       =      rescale_factor if rescale_factor is not None else self.rescale_factor
							lowerCamelCase       =      do_normalize if do_normalize is not None else self.do_normalize
							lowerCamelCase       =      image_mean if image_mean is not None else self.image_mean
							lowerCamelCase       =      image_std if image_std is not None else self.image_std
							lowerCamelCase       =      do_convert_rgb if do_convert_rgb is not None else self.do_convert_rgb

							lowerCamelCase       =      make_list_of_images(_a				)

							if not valid_images(_a				):
										raise ValueError(
										    """Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, """
										    """torch.Tensor, tf.Tensor or jax.ndarray."""				)

							if do_resize and size is None:
										raise ValueError("""Size must be specified if do_resize is True."""				)

							if do_center_crop and crop_size is None:
										raise ValueError("""Crop size must be specified if do_center_crop is True."""				)

							if do_rescale and rescale_factor is None:
										raise ValueError("""Rescale factor must be specified if do_rescale is True."""				)

							if do_normalize and (image_mean is None or image_std is None):
										raise ValueError("""Image mean and std must be specified if do_normalize is True."""				)

							# PIL RGBA images are converted to RGB
							if do_convert_rgb:
										lowerCamelCase       =      [convert_to_rgb(_a				) for image in images]

							# All transformations expect numpy arrays.
							lowerCamelCase       =      [to_numpy_array(_a				) for image in images]

							if do_resize:
										lowerCamelCase       =      [self.resize(image=_a	,				size=_a	,				resample=_a				) for image in images]

							if do_center_crop:
										lowerCamelCase       =      [self.center_crop(image=_a	,				size=_a				) for image in images]

							if do_rescale:
										lowerCamelCase       =      [self.rescale(image=_a	,				scale=_a				) for image in images]

							if do_normalize:
										lowerCamelCase       =      [self.normalize(image=_a	,				mean=_a	,				std=_a				) for image in images]

							lowerCamelCase       =      [to_channel_dimension_format(_a	,				_a				) for image in images]

							lowerCamelCase       =      {"""pixel_values""": images}
							return BatchFeature(data=_a	,				tensor_type=_a				)









"""simple docstring"""




from functools import lru_cache



def 					a__				(       snake_case__       )		->      set:
			lowerCamelCase       =      2
			lowerCamelCase       =      set()
			while i * i <= n:
						if n % i:
									i += 1
						else:
									n //= i
									factors.add(snake_case__       )
			if n > 1:
						factors.add(snake_case__       )
			return factors



@lru_cache
def 					a__				(       snake_case__       )		->      int:
			return len(unique_prime_factors(snake_case__       )       )



def 					a__				(       snake_case__       )		->      bool:
			return len(set(snake_case__       )       ) in (0, 1)



def 					a__				(       snake_case__       )		->      list:
			lowerCamelCase       =      2

			while True:
						# Increment each value of a generated range
						lowerCamelCase       =      [base + i for i in range(snake_case__       )]

						# Run elements through out unique_prime_factors function
						# Append our target number to the end.
						lowerCamelCase       =      [upf_len(snake_case__       ) for x in group]
						checker.append(snake_case__       )

						# If all numbers in the list are equal, return the group variable.
						if equality(snake_case__       ):
									return group

						# Increment our base variable by 1
						base += 1



def 					a__				(       snake_case__ = 4       )		->      int:
			lowerCamelCase       =      run(snake_case__       )
			return results[0] if len(snake_case__       ) else None


if __name__ == "__main__":
					print(solution())



