






from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding




class        _lowerCAmelCase( a__      ):





       """simple docstring"""







       a       :	Optional[int]								=["image_processor", "tokenizer"]
       a       :	Any								="EfficientNetImageProcessor"
       a       :	List[str]								=("BertTokenizer", "BertTokenizerFast")





       def __init__(      self						,    _lowerCamelCase						,    _lowerCamelCase							):
         super().__init__(SCREAMING_SNAKE_CASE_						,    SCREAMING_SNAKE_CASE_							)





       def __call__(      self						,    _lowerCamelCase=None						,    _lowerCamelCase=None						,    _lowerCamelCase="max_length"						,    _lowerCamelCase=6_4						,    _lowerCamelCase=None						,    **_lowerCamelCase							):
         if text is None and images is None:
           raise ValueError('You have to specify either text or images. Both cannot be none.'							)

         if text is not None:
           UpperCamelCase_:      str					   =       self.tokenizer(
               SCREAMING_SNAKE_CASE_						,    padding=SCREAMING_SNAKE_CASE_						,    max_length=SCREAMING_SNAKE_CASE_						,    return_tensors=SCREAMING_SNAKE_CASE_						,    **SCREAMING_SNAKE_CASE_							)

         if images is not None:
           UpperCamelCase_:      Union[str, Any]					   =       self.image_processor(SCREAMING_SNAKE_CASE_						,    return_tensors=SCREAMING_SNAKE_CASE_						,    **SCREAMING_SNAKE_CASE_							)

         if text is not None and images is not None:
           UpperCamelCase_:      Tuple					   =       image_features.pixel_values
           return encoding
         elif text is not None:
           return encoding
         else:
           return BatchEncoding(data=dict(**SCREAMING_SNAKE_CASE_							)						,    tensor_type=SCREAMING_SNAKE_CASE_							)





       def     _a					(      self						,    *_lowerCamelCase						,    **_lowerCamelCase							):
         return self.tokenizer.batch_decode(*SCREAMING_SNAKE_CASE_						,    **SCREAMING_SNAKE_CASE_							)





       def     _a					(      self						,    *_lowerCamelCase						,    **_lowerCamelCase							):
         return self.tokenizer.decode(*SCREAMING_SNAKE_CASE_						,    **SCREAMING_SNAKE_CASE_							)





       @property
       def     _a					(      self							):
         UpperCamelCase_:      Optional[Any]					   =       self.tokenizer.model_input_names
         UpperCamelCase_:      List[str]					   =       self.image_processor.model_input_names
         return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names							)							)







def 						snake_case      (UpperCAmelCase__ = 4_0_0_0_0_0_0						) ->       int:

  if n <= 1:
    return 0
  UpperCamelCase_:      Dict					   =       0
  UpperCamelCase_:      Union[str, Any]					   =       2
  UpperCamelCase_:      int					   =       0
  while 4 * b + a <= n:
    UpperCamelCase_   ,UpperCamelCase_:      List[str]					   =       b, 4 * b + a
    count += a
  return count + b


if __name__ == "__main__":
   print(F'''{solution() = }''')