





from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_UpperCAmelCase										=					logging.get_logger(__name__)

_UpperCAmelCase										=					{
    """google/electra-small-generator""": """https://huggingface.co/google/electra-small-generator/resolve/main/config.json""",
    """google/electra-base-generator""": """https://huggingface.co/google/electra-base-generator/resolve/main/config.json""",
    """google/electra-large-generator""": """https://huggingface.co/google/electra-large-generator/resolve/main/config.json""",
    """google/electra-small-discriminator""": (
        """https://huggingface.co/google/electra-small-discriminator/resolve/main/config.json"""
    ),
    """google/electra-base-discriminator""": (
        """https://huggingface.co/google/electra-base-discriminator/resolve/main/config.json"""
    ),
    """google/electra-large-discriminator""": (
        """https://huggingface.co/google/electra-large-discriminator/resolve/main/config.json"""
    ),
}



class 				_UpperCamelCase       (						lowerCAmelCase_  ):
       _UpperCamelCase					:       Union[str, Any]       = """electra"""

       def __init__(		self:			Dict       , _SCREAMING_SNAKE_CASE:			Optional[int]=30522       , _SCREAMING_SNAKE_CASE:			str=128       , _SCREAMING_SNAKE_CASE:			Optional[int]=256       , _SCREAMING_SNAKE_CASE:			List[str]=12       , _SCREAMING_SNAKE_CASE:			Tuple=4       , _SCREAMING_SNAKE_CASE:			List[str]=1024       , _SCREAMING_SNAKE_CASE:			Optional[int]="gelu"       , _SCREAMING_SNAKE_CASE:			List[str]=0.1       , _SCREAMING_SNAKE_CASE:			str=0.1       , _SCREAMING_SNAKE_CASE:			Optional[int]=512       , _SCREAMING_SNAKE_CASE:			Optional[Any]=2       , _SCREAMING_SNAKE_CASE:			str=0.02       , _SCREAMING_SNAKE_CASE:			Dict=1e-12       , _SCREAMING_SNAKE_CASE:			List[str]="first"       , _SCREAMING_SNAKE_CASE:			Union[str, Any]=True       , _SCREAMING_SNAKE_CASE:			Tuple="gelu"       , _SCREAMING_SNAKE_CASE:			str=0.1       , _SCREAMING_SNAKE_CASE:			str=0       , _SCREAMING_SNAKE_CASE:			Optional[Any]="absolute"       , _SCREAMING_SNAKE_CASE:			Any=True       , _SCREAMING_SNAKE_CASE:			Tuple=None       , **_SCREAMING_SNAKE_CASE:			List[str]       , )							->			int:




              """simple docstring"""


              super().__init__(pad_token_id=UpperCAmelCase__       , **UpperCAmelCase__		)

              UpperCamelCase_ 							=	vocab_size
              UpperCamelCase_ 							=	embedding_size
              UpperCamelCase_ 							=	hidden_size
              UpperCamelCase_ 							=	num_hidden_layers
              UpperCamelCase_ 							=	num_attention_heads
              UpperCamelCase_ 							=	intermediate_size
              UpperCamelCase_ 							=	hidden_act
              UpperCamelCase_ 							=	hidden_dropout_prob
              UpperCamelCase_ 							=	attention_probs_dropout_prob
              UpperCamelCase_ 							=	max_position_embeddings
              UpperCamelCase_ 							=	type_vocab_size
              UpperCamelCase_ 							=	initializer_range
              UpperCamelCase_ 							=	layer_norm_eps

              UpperCamelCase_ 							=	summary_type
              UpperCamelCase_ 							=	summary_use_proj
              UpperCamelCase_ 							=	summary_activation
              UpperCamelCase_ 							=	summary_last_dropout
              UpperCamelCase_ 							=	position_embedding_type
              UpperCamelCase_ 							=	use_cache
              UpperCamelCase_ 							=	classifier_dropout



class 				_UpperCamelCase       (						lowerCAmelCase_  ):

       @property
       def lowercase			(		self:			str		)							->			Mapping[str, Mapping[int, str]]:




              """simple docstring"""


              if self.task == "multiple-choice":
                     UpperCamelCase_ 							=	{0: """batch""", 1: """choice""", 2: """sequence"""}
              else:
                     UpperCamelCase_ 							=	{0: """batch""", 1: """sequence"""}
              return OrderedDict(
                  [
                      ("input_ids", dynamic_axis),
                      ("attention_mask", dynamic_axis),
                      ("token_type_ids", dynamic_axis),
                  ]		)




import itertools






def        __lowercase   (  _A = 1000000      )  ->    int:
      SCREAMING_SNAKE_CASE			:   Tuple	  = [1]

      for i in itertools.count(len(_A      )      ):
            SCREAMING_SNAKE_CASE			:   Optional[int]	  = 0
            for j in itertools.count(1      ):
                  SCREAMING_SNAKE_CASE			:   str	  = -1 if j % 2 == 0 else +1
                  SCREAMING_SNAKE_CASE			:   Any	  = (j * j * 3 - j) // 2
                  if index > i:
                        break
                  item += partitions[i - index] * sign
                  item %= number
                  index += j
                  if index > i:
                        break
                  item += partitions[i - index] * sign
                  item %= number

            if item == 0:
                  return i
            partitions.append(_A      )

      return 0


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  print(F"""{solution() = }""")




