


def 					UpperCamelCase   (      __magic_name__	:				int       ,       __magic_name__	:				int	)  ->    int:
		"""simple docstring"""




		lowercase__	     =						1  # To kept the Calculated Value
		# Since C(n, k) = C(n, n-k)
		if k > (n - k):
				lowercase__	     =						n - k
		# Calculate C(n,k)
		for i in range(__magic_name__	):
				result *= n - i
				result //= i + 1
		return result






def 					UpperCamelCase   (      __magic_name__	:				int	)  ->    int:
		"""simple docstring"""




		return binomial_coefficient(2 * node_count       ,       __magic_name__	) // (node_count + 1)






def 					UpperCamelCase   (      __magic_name__	:				int	)  ->    int:
		"""simple docstring"""




		if n < 0:
				raise ValueError("""factorial() not defined for negative values"""	)
		lowercase__	     =						1
		for i in range(1       ,       n + 1	):
				result *= i
		return result






def 					UpperCamelCase   (      __magic_name__	:				int	)  ->    int:
		"""simple docstring"""




		return catalan_number(__magic_name__	) * factorial(__magic_name__	)


if __name__ == "__main__":
	A			:						Tuple        =  int(input('Enter the number of nodes: ').strip() or 0)
	if node_count <= 0:
		raise ValueError('We need some nodes to work with.')
	print(
	    F'Given {node_count} nodes, there are {binary_tree_count(node_count)} '
	    F'binary trees and {catalan_number(node_count)} binary search trees.'
	)



import argparse

import torch

from transformers import BertConfig, BertForPreTraining, load_tf_weights_in_bert
from transformers.utils import logging


logging.set_verbosity_info()


def      UpperCamelCase   (       __lowerCamelCase	:					List[str]							,   __lowerCamelCase	:					Union[str, Any]							,   __lowerCamelCase	:					Union[str, Any]       ):
       # Initialise PyTorch model
       snake_case			:  Optional[int]     							= BertConfig.from_json_file(__lowerCamelCase       )
       print(f"""Building PyTorch model from configuration: {config}"""       )
       snake_case			:  Any     							= BertForPreTraining(__lowerCamelCase       )

       # Load weights from tf checkpoint
       load_tf_weights_in_bert(__lowerCamelCase							,   __lowerCamelCase							,   __lowerCamelCase       )

       # Save pytorch-model
       print(f"""Save PyTorch model to {pytorch_dump_path}"""       )
       torch.save(model.state_dict()							,   __lowerCamelCase       )


if __name__ == "__main__":
   __lowerCamelCase				=			argparse.ArgumentParser()
   # Required parameters
   parser.add_argument(
       """--tf_checkpoint_path""", default=None, type=str, required=True, help="""Path to the TensorFlow checkpoint path."""
   )
   parser.add_argument(
       """--bert_config_file""",
       default=None,
       type=str,
       required=True,
       help=(
           """The config json file corresponding to the pre-trained BERT model. \n"""
           """This specifies the model architecture."""
       ),
   )
   parser.add_argument(
       """--pytorch_dump_path""", default=None, type=str, required=True, help="""Path to the output PyTorch model."""
   )
   __lowerCamelCase				=			parser.parse_args()
   convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.bert_config_file, args.pytorch_dump_path)





