






import argparse

import torch

from transformers import YosoConfig, YosoForMaskedLM

def   __lowercase       (			snake_case			):







				"""simple docstring"""






				if "model" in orig_key:
								__magic_name__		:List[Any]   =   orig_key.replace('''model.''',	''''''			)
				if "norm1" in orig_key:
								__magic_name__		:Union[str, Any]   =   orig_key.replace('''norm1''',	'''attention.output.LayerNorm'''			)
				if "norm2" in orig_key:
								__magic_name__		:Optional[Any]   =   orig_key.replace('''norm2''',	'''output.LayerNorm'''			)
				if "norm" in orig_key:
								__magic_name__		:List[str]   =   orig_key.replace('''norm''',	'''LayerNorm'''			)
				if "transformer" in orig_key:
								__magic_name__		:Dict   =   orig_key.split('''.'''			)[0].split('''_'''			)[-1]
								__magic_name__		:Tuple   =   orig_key.replace(f'''transformer_{layer_num}''',	f'''encoder.layer.{layer_num}'''			)
				if "mha.attn" in orig_key:
								__magic_name__		:Optional[Any]   =   orig_key.replace('''mha.attn''',	'''attention.self'''			)
				if "mha" in orig_key:
								__magic_name__		:Optional[Any]   =   orig_key.replace('''mha''',	'''attention'''			)
				if "W_q" in orig_key:
								__magic_name__		:str   =   orig_key.replace('''W_q''',	'''self.query'''			)
				if "W_k" in orig_key:
								__magic_name__		:Optional[int]   =   orig_key.replace('''W_k''',	'''self.key'''			)
				if "W_v" in orig_key:
								__magic_name__		:Dict   =   orig_key.replace('''W_v''',	'''self.value'''			)
				if "ff1" in orig_key:
								__magic_name__		:int   =   orig_key.replace('''ff1''',	'''intermediate.dense'''			)
				if "ff2" in orig_key:
								__magic_name__		:Any   =   orig_key.replace('''ff2''',	'''output.dense'''			)
				if "ff" in orig_key:
								__magic_name__		:Optional[Any]   =   orig_key.replace('''ff''',	'''output.dense'''			)
				if "mlm_class" in orig_key:
								__magic_name__		:List[str]   =   orig_key.replace('''mlm.mlm_class''',	'''cls.predictions.decoder'''			)
				if "mlm" in orig_key:
								__magic_name__		:str   =   orig_key.replace('''mlm''',	'''cls.predictions.transform'''			)
				if "cls" not in orig_key:
								__magic_name__		:Optional[Any]   =   '''yoso.''' + orig_key

				return orig_key

def   __lowercase       (			snake_case,	snake_case			):







				"""simple docstring"""






				for key in orig_state_dict.copy().keys():
								__magic_name__		:Any   =   orig_state_dict.pop(snake_case			)

								if ("pooler" in key) or ("sen_class" in key):
												continue
								else:
												__magic_name__		:int   =   val

				__magic_name__		:Any   =   orig_state_dict['''cls.predictions.decoder.bias''']
				__magic_name__		:Union[str, Any]   =   torch.arange(snake_case			).expand((1, -1)			) + 2

				return orig_state_dict

def   __lowercase       (			snake_case,	snake_case,	snake_case			):







				"""simple docstring"""






				__magic_name__		:Optional[Any]   =   torch.load(snake_case,	map_location='''cpu'''			)['''model_state_dict''']
				__magic_name__		:Optional[int]   =   YosoConfig.from_json_file(snake_case			)
				__magic_name__		:str   =   YosoForMaskedLM(snake_case			)

				__magic_name__		:str   =   convert_checkpoint_helper(config.max_position_embeddings,	snake_case			)

				print(model.load_state_dict(snake_case			)			)
				model.eval()
				model.save_pretrained(snake_case			)

				print(f'''Checkpoint successfuly converted. Model saved at {pytorch_dump_path}'''			)


if __name__ == "__main__":
					SCREAMING_SNAKE_CASE__   :      Union[str, Any]				=		argparse.ArgumentParser()
					# Required parameters
					parser.add_argument(
					    """--pytorch_model_path""", default=None, type=str, required=True, help="""Path to YOSO pytorch checkpoint."""
					)
					parser.add_argument(
					    """--config_file""",
					    default=None,
					    type=str,
					    required=True,
					    help="""The json file for YOSO model config.""",
					)
					parser.add_argument(
					    """--pytorch_dump_path""", default=None, type=str, required=True, help="""Path to the output PyTorch model."""
					)
					SCREAMING_SNAKE_CASE__   :      List[str]				=		parser.parse_args()
					convert_yoso_checkpoint(args.pytorch_model_path, args.config_file, args.pytorch_dump_path)














import sys

SCREAMING_SNAKE_CASE__   :      Optional[Any]				=		(
    """73167176531330624919225119674426574742355349194934"""
    """96983520312774506326239578318016984801869478851843"""
    """85861560789112949495459501737958331952853208805511"""
    """12540698747158523863050715693290963295227443043557"""
    """66896648950445244523161731856403098711121722383113"""
    """62229893423380308135336276614282806444486645238749"""
    """30358907296290491560440772390713810515859307960866"""
    """70172427121883998797908792274921901699720888093776"""
    """65727333001053367881220235421809751254540594752243"""
    """52584907711670556013604839586446706324415722155397"""
    """53697817977846174064955149290862569321978468622482"""
    """83972241375657056057490261407972968652414535100474"""
    """82166370484403199890008895243450658541227588666881"""
    """16427171479924442928230863465674813919123162824586"""
    """17866458359124566529476545682848912883142607690042"""
    """24219022671055626321111109370544217506941658960408"""
    """07198403850962455444362981230987879927244284909188"""
    """84580156166097919133875499200524063689912560717606"""
    """05886116467109405077541002256983155200055935729725"""
    """71636269561882670428252483600823257530420752963450"""
)

def   __lowercase       (			snake_case = N			):







				"""simple docstring"""






				__magic_name__		:Optional[int]   =   -sys.maxsize - 1
				for i in range(len(snake_case			) - 1_2			):
								__magic_name__		:List[Any]   =   1
								for j in range(1_3			):
												product *= int(n[i + j]			)
								if product > largest_product:
												__magic_name__		:str   =   product
				return largest_product


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






