



"""simple docstring"""
from __future__ import annotations

import math
import random
from collections.abc import Collection
from typing import overload



class       SCREAMING_SNAKE_CASE__  :

   def __init__(   self      ,     _SCREAMING_SNAKE_CASE = None						)  ->      None:





    '''simple docstring'''




    if components is None:
     UpperCAmelCase	:					Dict	=	[]
    UpperCAmelCase	:					List[str]	=	list(_SCREAMING_SNAKE_CASE						)

   def __len__(   self						)  ->      int:





    '''simple docstring'''




    return len(self.__components						)

   def __str__(   self						)  ->      str:





    '''simple docstring'''




    return "(" + ",".join(map(_SCREAMING_SNAKE_CASE      ,     self.__components						)						) + ")"

   def __add__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Vector:





    '''simple docstring'''




    UpperCAmelCase	:					Optional[int]	=	len(self						)
    if size == len(_SCREAMING_SNAKE_CASE						):
     UpperCAmelCase	:					Tuple	=	[self.__components[i] + other.component(_SCREAMING_SNAKE_CASE						) for i in range(_SCREAMING_SNAKE_CASE						)]
     return Vector(_SCREAMING_SNAKE_CASE						)
    else:
     raise Exception("""must have the same size"""						)

   def __sub__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Vector:





    '''simple docstring'''




    UpperCAmelCase	:					Optional[Any]	=	len(self						)
    if size == len(_SCREAMING_SNAKE_CASE						):
     UpperCAmelCase	:					Union[str, Any]	=	[self.__components[i] - other.component(_SCREAMING_SNAKE_CASE						) for i in range(_SCREAMING_SNAKE_CASE						)]
     return Vector(_SCREAMING_SNAKE_CASE						)
    else:  # error case
     raise Exception("""must have the same size"""						)

   @overload
   def __mul__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Vector:





    '''simple docstring'''




    ...

   @overload
   def __mul__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      float:





    '''simple docstring'''




    ...

   def __mul__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      float | Vector:





    '''simple docstring'''




    if isinstance(_SCREAMING_SNAKE_CASE      ,     (float, int)						):
     UpperCAmelCase	:					List[str]	=	[c * other for c in self.__components]
     return Vector(_SCREAMING_SNAKE_CASE						)
    elif isinstance(_SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						) and len(self						) == len(_SCREAMING_SNAKE_CASE						):
     UpperCAmelCase	:					List[str]	=	len(self						)
     UpperCAmelCase	:					List[str]	=	[self.__components[i] * other.component(_SCREAMING_SNAKE_CASE						) for i in range(_SCREAMING_SNAKE_CASE						)]
     return sum(_SCREAMING_SNAKE_CASE						)
    else:  # error case
     raise Exception("""invalid operand!"""						)

   def 	SCREAMING_SNAKE_CASE     (   self						)  ->      Vector:





    '''simple docstring'''




    return Vector(self.__components						)

   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE						)  ->      float:





    '''simple docstring'''




    if isinstance(_SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						) and -len(self.__components						) <= i < len(self.__components						):
     return self.__components[i]
    else:
     raise Exception("""index out of range"""						)

   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)  ->      None:





    '''simple docstring'''




    assert -len(self.__components						) <= pos < len(self.__components						)
    UpperCAmelCase	:					int	=	value

   def 	SCREAMING_SNAKE_CASE     (   self						)  ->      float:





    '''simple docstring'''




    if len(self.__components						) == 0:
     raise Exception("""Vector is empty"""						)
    UpperCAmelCase	:					List[Any]	=	[c**2 for c in self.__components]
    return math.sqrt(sum(_SCREAMING_SNAKE_CASE						)						)




   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE = False						)  ->      float:





    '''simple docstring'''




    UpperCAmelCase	:					List[str]	=	self * other
    UpperCAmelCase	:					str	=	self.euclidean_length() * other.euclidean_length()
    if deg:
     return math.degrees(math.acos(num / den						)						)
    else:
     return math.acos(num / den						)

def       _snake_case						(						UpperCamelCase						:		int						):
 assert isinstance(_lowerCamelCase			,		_lowerCamelCase						)
 return Vector([0] * dimension						)

def       _snake_case						(						UpperCamelCase						:		int			,		UpperCamelCase						:		int						):
 assert isinstance(_lowerCamelCase			,		_lowerCamelCase						) and (isinstance(_lowerCamelCase			,		_lowerCamelCase						))
 UpperCAmelCase	:					List[Any]	=	[0] * dimension
 UpperCAmelCase	:					Optional[Any]	=	1
 return Vector(_lowerCamelCase						)

def       _snake_case						(						UpperCamelCase						:		float			,		UpperCamelCase						:		Vector			,		UpperCamelCase						:		Vector						):
 assert (
     isinstance(_lowerCamelCase			,		_lowerCamelCase						)
     and isinstance(_lowerCamelCase			,		_lowerCamelCase						)
     and (isinstance(_lowerCamelCase			,		(int, float)						))
 )
 return x * scalar + y

def       _snake_case						(						UpperCamelCase						:		int			,		UpperCamelCase						:		int			,		UpperCamelCase						:		int						):
 random.seed(_lowerCamelCase						)
 UpperCAmelCase	:					Optional[int]	=	[random.randint(_lowerCamelCase			,		_lowerCamelCase						) for _ in range(_lowerCamelCase						)]
 return Vector(_lowerCamelCase						)



class       SCREAMING_SNAKE_CASE__  :

   def __init__(   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)  ->      None:





    '''simple docstring'''




    UpperCAmelCase	:					Any	=	matrix
    UpperCAmelCase	:					Optional[Any]	=	w
    UpperCAmelCase	:					Optional[Any]	=	h

   def __str__(   self						)  ->      str:





    '''simple docstring'''




    UpperCAmelCase	:					Any	=	""
    for i in range(self.__height						):
     ans += "|"
     for j in range(self.__width						):
      if j < self.__width - 1:
       ans += str(self.__matrix[i][j]						) + ","
      else:
       ans += str(self.__matrix[i][j]						) + "|\n"
    return ans

   def __add__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Matrix:





    '''simple docstring'''




    if self.__width == other.width() and self.__height == other.height():
     UpperCAmelCase	:					str	=	[]
     for i in range(self.__height						):
      UpperCAmelCase	:					Any	=	[
          self.__matrix[i][j] + other.component(_SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)
          for j in range(self.__width						)
      ]
      matrix.append(_SCREAMING_SNAKE_CASE						)
     return Matrix(_SCREAMING_SNAKE_CASE      ,     self.__width      ,     self.__height						)
    else:
     raise Exception("""matrix must have the same dimension!"""						)

   def __sub__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Matrix:





    '''simple docstring'''




    if self.__width == other.width() and self.__height == other.height():
     UpperCAmelCase	:					List[Any]	=	[]
     for i in range(self.__height						):
      UpperCAmelCase	:					Optional[Any]	=	[
          self.__matrix[i][j] - other.component(_SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)
          for j in range(self.__width						)
      ]
      matrix.append(_SCREAMING_SNAKE_CASE						)
     return Matrix(_SCREAMING_SNAKE_CASE      ,     self.__width      ,     self.__height						)
    else:
     raise Exception("""matrices must have the same dimension!"""						)

   @overload
   def __mul__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Matrix:





    '''simple docstring'''




    ...

   @overload
   def __mul__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Vector:





    '''simple docstring'''




    ...

   def __mul__(   self      ,     _SCREAMING_SNAKE_CASE						)  ->      Vector | Matrix:





    '''simple docstring'''




    if isinstance(_SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						):  # matrix-vector
     if len(_SCREAMING_SNAKE_CASE						) == self.__width:
      UpperCAmelCase	:					Any	=	zero_vector(self.__height						)
      for i in range(self.__height						):
       UpperCAmelCase	:					List[str]	=	[
           self.__matrix[i][j] * other.component(_SCREAMING_SNAKE_CASE						)
           for j in range(self.__width						)
       ]
       ans.change_component(_SCREAMING_SNAKE_CASE      ,     sum(_SCREAMING_SNAKE_CASE						)						)
      return ans
     else:
      raise Exception(
          """vector must have the same size as the """
          """number of columns of the matrix!"""						)
    elif isinstance(_SCREAMING_SNAKE_CASE      ,     (int, float)						):  # matrix-scalar
     UpperCAmelCase	:					Dict	=	[
         [self.__matrix[i][j] * other for j in range(self.__width						)]
         for i in range(self.__height						)
     ]
     return Matrix(_SCREAMING_SNAKE_CASE      ,     self.__width      ,     self.__height						)
    return None

   def 	SCREAMING_SNAKE_CASE     (   self						)  ->      int:





    '''simple docstring'''




    return self.__height

   def 	SCREAMING_SNAKE_CASE     (   self						)  ->      int:





    '''simple docstring'''




    return self.__width

   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)  ->      float:





    '''simple docstring'''




    if 0 <= x < self.__height and 0 <= y < self.__width:
     return self.__matrix[x][y]
    else:
     raise Exception("""change_component: indices out of bounds"""						)

   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)  ->      None:





    '''simple docstring'''




    if 0 <= x < self.__height and 0 <= y < self.__width:
     UpperCAmelCase	:					Optional[Any]	=	value
    else:
     raise Exception("""change_component: indices out of bounds"""						)

   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)  ->      float:





    '''simple docstring'''




    if self.__height != self.__width:
     raise Exception("""Matrix is not square"""						)
    UpperCAmelCase	:					List[str]	=	self.__matrix[:x] + self.__matrix[x + 1 :]
    for i in range(len(_SCREAMING_SNAKE_CASE						)						):
     UpperCAmelCase	:					List[str]	=	minor[i][:y] + minor[i][y + 1 :]
    return Matrix(_SCREAMING_SNAKE_CASE      ,     self.__width - 1      ,     self.__height - 1						).determinant()

   def 	SCREAMING_SNAKE_CASE     (   self      ,     _SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)  ->      float:





    '''simple docstring'''




    if self.__height != self.__width:
     raise Exception("""Matrix is not square"""						)
    if 0 <= x < self.__height and 0 <= y < self.__width:
     return (-1) ** (x + y) * self.minor(_SCREAMING_SNAKE_CASE      ,     _SCREAMING_SNAKE_CASE						)
    else:
     raise Exception("""Indices out of bounds"""						)




   def 	SCREAMING_SNAKE_CASE     (   self						)  ->      float:





    '''simple docstring'''




    if self.__height != self.__width:
     raise Exception("""Matrix is not square"""						)
    if self.__height < 1:
     raise Exception("""Matrix has no element"""						)
    elif self.__height == 1:
     return self.__matrix[0][0]
    elif self.__height == 2:
     return (
         self.__matrix[0][0] * self.__matrix[1][1]
         - self.__matrix[0][1] * self.__matrix[1][0]
     )
    else:
     UpperCAmelCase	:					Any	=	[
         self.__matrix[0][y] * self.cofactor(0      ,     _SCREAMING_SNAKE_CASE						) for y in range(self.__width						)
     ]
     return sum(_SCREAMING_SNAKE_CASE						)

def       _snake_case						(						UpperCamelCase						:		int						):
 UpperCAmelCase	:					list[list[float]]	=	[[0] * n for _ in range(_lowerCamelCase						)]
 return Matrix(_lowerCamelCase			,		_lowerCamelCase			,		_lowerCamelCase						)

def       _snake_case						(						UpperCamelCase						:		int			,		UpperCamelCase						:		int			,		UpperCamelCase						:		int			,		UpperCamelCase						:		int						):
 random.seed(_lowerCamelCase						)
 UpperCAmelCase	:					list[list[float]]	=	[
     [random.randint(_lowerCamelCase			,		_lowerCamelCase						) for _ in range(_lowerCamelCase						)] for _ in range(_lowerCamelCase						)
 ]
 return Matrix(_lowerCamelCase			,		_lowerCamelCase			,		_lowerCamelCase						)


import argparse
import json
from pathlib import Path

import requests
import torch
from huggingface_hub import hf_hub_download
from PIL import Image

from transformers import BeitConfig, BeitForImageClassification, BeitForMaskedImageModeling, BeitImageProcessor
from transformers.image_utils import PILImageResampling
from transformers.utils import logging


logging.set_verbosity_info()
lowercase  :					Dict													=       logging.get_logger(__name__)




def 	_SCREAMING_SNAKE_CASE					(		_lowerCamelCase :			Optional[Any]						,  _lowerCamelCase :			Union[str, Any]=False						,  _lowerCamelCase :			Optional[int]=False)					->    Any:






							'''simple docstring'''





							__UpperCamelCase	:   Optional[int]			   =					"backbone." if is_semantic else ""

							__UpperCamelCase	:   Optional[Any]			   =					[]
							for i in range(config.num_hidden_layers):
														# encoder layers: output projection, 2 feedforward neural networks and 2 layernorms
														rename_keys.append((F'{prefix}blocks.{i}.norm1.weight', F'beit.encoder.layer.{i}.layernorm_before.weight'))
														rename_keys.append((F'{prefix}blocks.{i}.norm1.bias', F'beit.encoder.layer.{i}.layernorm_before.bias'))
														rename_keys.append(
														    (F'{prefix}blocks.{i}.attn.proj.weight', F'beit.encoder.layer.{i}.attention.output.dense.weight'))
														rename_keys.append(
														    (F'{prefix}blocks.{i}.attn.proj.bias', F'beit.encoder.layer.{i}.attention.output.dense.bias'))
														rename_keys.append((F'{prefix}blocks.{i}.norm2.weight', F'beit.encoder.layer.{i}.layernorm_after.weight'))
														rename_keys.append((F'{prefix}blocks.{i}.norm2.bias', F'beit.encoder.layer.{i}.layernorm_after.bias'))
														rename_keys.append((F'{prefix}blocks.{i}.mlp.fc1.weight', F'beit.encoder.layer.{i}.intermediate.dense.weight'))
														rename_keys.append((F'{prefix}blocks.{i}.mlp.fc1.bias', F'beit.encoder.layer.{i}.intermediate.dense.bias'))
														rename_keys.append((F'{prefix}blocks.{i}.mlp.fc2.weight', F'beit.encoder.layer.{i}.output.dense.weight'))
														rename_keys.append((F'{prefix}blocks.{i}.mlp.fc2.bias', F'beit.encoder.layer.{i}.output.dense.bias'))

							# projection layer + position embeddings
							rename_keys.extend(
							    [
							        (F'{prefix}cls_token', "beit.embeddings.cls_token"),
							        (F'{prefix}patch_embed.proj.weight', "beit.embeddings.patch_embeddings.projection.weight"),
							        (F'{prefix}patch_embed.proj.bias', "beit.embeddings.patch_embeddings.projection.bias"),
							        (F'{prefix}pos_embed', "beit.embeddings.position_embeddings"),
							    ])

							if has_lm_head:
														# mask token + layernorm
														rename_keys.extend(
														    [
														        ("mask_token", "beit.embeddings.mask_token"),
														        ("norm.weight", "layernorm.weight"),
														        ("norm.bias", "layernorm.bias"),
														    ])
							else:
														# layernorm + classification head
														rename_keys.extend(
														    [
														        ("fc_norm.weight", "beit.pooler.layernorm.weight"),
														        ("fc_norm.bias", "beit.pooler.layernorm.bias"),
														        ("head.weight", "classifier.weight"),
														        ("head.bias", "classifier.bias"),
														    ])

							return rename_keys




def 	_SCREAMING_SNAKE_CASE					(		_lowerCamelCase :			Tuple						,  _lowerCamelCase :			List[str]						,  _lowerCamelCase :			Union[str, Any]=False						,  _lowerCamelCase :			Optional[int]=False)					->    List[str]:






							'''simple docstring'''





							for i in range(config.num_hidden_layers):
														__UpperCamelCase	:   List[Any]			   =					"backbone." if is_semantic else ""
														# queries, keys and values
														__UpperCamelCase	:   Tuple			   =					state_dict.pop(F'{prefix}blocks.{i}.attn.qkv.weight')
														__UpperCamelCase	:   Optional[Any]			   =					state_dict.pop(F'{prefix}blocks.{i}.attn.q_bias')
														__UpperCamelCase	:   int			   =					state_dict.pop(F'{prefix}blocks.{i}.attn.v_bias')

														__UpperCamelCase	:   Optional[int]			   =					in_proj_weight[
														    : config.hidden_size, :
														]
														__UpperCamelCase	:   Any			   =					q_bias
														__UpperCamelCase	:   Dict			   =					in_proj_weight[
														    config.hidden_size : config.hidden_size * 2, :
														]
														__UpperCamelCase	:   List[Any]			   =					in_proj_weight[
														    -config.hidden_size :, :
														]
														__UpperCamelCase	:   Tuple			   =					v_bias

														# gamma_1 and gamma_2
														# we call them lambda because otherwise they are renamed when using .from_pretrained
														__UpperCamelCase	:   Union[str, Any]			   =					state_dict.pop(F'{prefix}blocks.{i}.gamma_1')
														__UpperCamelCase	:   Optional[int]			   =					state_dict.pop(F'{prefix}blocks.{i}.gamma_2')

														__UpperCamelCase	:   Any			   =					gamma_a
														__UpperCamelCase	:   List[Any]			   =					gamma_a




def 	_SCREAMING_SNAKE_CASE					(		_lowerCamelCase :			str						,  _lowerCamelCase :			List[str]						,  _lowerCamelCase :			Optional[Any])					->    Any:






							'''simple docstring'''





							__UpperCamelCase	:   str			   =					dct.pop(_lowerCamelCase)
							__UpperCamelCase	:   str			   =					val




def 	_SCREAMING_SNAKE_CASE					(		)					->    Optional[int]:






							'''simple docstring'''





							__UpperCamelCase	:   Any			   =					"http://images.cocodataset.org/val2017/000000039769.jpg"
							__UpperCamelCase	:   Dict			   =					Image.open(requests.get(_lowerCamelCase						,  stream=_lowerCamelCase).raw)
							return im




@torch.no_grad()
def 	_SCREAMING_SNAKE_CASE					(		_lowerCamelCase :			Optional[int]						,  _lowerCamelCase :			List[str]						,  _lowerCamelCase :			Dict=False)					->    str:






							'''simple docstring'''





							__UpperCamelCase	:   str			   =					False if "rvlcdip" in checkpoint_url else True
							__UpperCamelCase	:   int			   =					BeitConfig(use_absolute_position_embeddings=_lowerCamelCase						,  use_mask_token=_lowerCamelCase)

							# size of the architecture
							if "large" in checkpoint_url or "dit-l" in checkpoint_url:
														__UpperCamelCase	:   Optional[int]			   =					1_024
														__UpperCamelCase	:   Union[str, Any]			   =					4_096
														__UpperCamelCase	:   Tuple			   =					24
														__UpperCamelCase	:   int			   =					16

							# labels
							if "rvlcdip" in checkpoint_url:
														__UpperCamelCase	:   List[str]			   =					16
														__UpperCamelCase	:   str			   =					"huggingface/label-files"
														__UpperCamelCase	:   str			   =					"rvlcdip-id2label.json"
														__UpperCamelCase	:   Tuple			   =					json.load(open(hf_hub_download(_lowerCamelCase						,  _lowerCamelCase						,  repo_type="dataset")						,  "r"))
														__UpperCamelCase	:   Dict			   =					{int(_lowerCamelCase): v for k, v in idalabel.items()}
														__UpperCamelCase	:   Optional[Any]			   =					idalabel
														__UpperCamelCase	:   List[Any]			   =					{v: k for k, v in idalabel.items()}

							# load state_dict of original model, remove and rename some keys
							__UpperCamelCase	:   str			   =					torch.hub.load_state_dict_from_url(_lowerCamelCase						,  map_location="cpu")["model"]

							__UpperCamelCase	:   Optional[Any]			   =					create_rename_keys(_lowerCamelCase						,  has_lm_head=_lowerCamelCase)
							for src, dest in rename_keys:
														rename_key(_lowerCamelCase						,  _lowerCamelCase						,  _lowerCamelCase)
							read_in_q_k_v(_lowerCamelCase						,  _lowerCamelCase						,  has_lm_head=_lowerCamelCase)

							# load HuggingFace model
							__UpperCamelCase	:   List[Any]			   =					BeitForMaskedImageModeling(_lowerCamelCase) if has_lm_head else BeitForImageClassification(_lowerCamelCase)
							model.eval()
							model.load_state_dict(_lowerCamelCase)

							# Check outputs on an image
							__UpperCamelCase	:   Dict			   =					BeitImageProcessor(
							    size=config.image_size						,  resample=PILImageResampling.BILINEAR						,  do_center_crop=_lowerCamelCase)
							__UpperCamelCase	:   Union[str, Any]			   =					prepare_img()

							__UpperCamelCase	:   Union[str, Any]			   =					image_processor(images=_lowerCamelCase						,  return_tensors="pt")
							__UpperCamelCase	:   str			   =					encoding["pixel_values"]

							__UpperCamelCase	:   str			   =					model(_lowerCamelCase)
							__UpperCamelCase	:   Union[str, Any]			   =					outputs.logits

							# verify logits
							__UpperCamelCase	:   Tuple			   =					[1, 16] if "rvlcdip" in checkpoint_url else [1, 196, 8_192]
							assert logits.shape == torch.Size(_lowerCamelCase), "Shape of logits not as expected"

							Path(_lowerCamelCase).mkdir(exist_ok=_lowerCamelCase)
							print(F'Saving model to {pytorch_dump_folder_path}')
							model.save_pretrained(_lowerCamelCase)
							print(F'Saving image processor to {pytorch_dump_folder_path}')
							image_processor.save_pretrained(_lowerCamelCase)

							if push_to_hub:
														if has_lm_head:
																					__UpperCamelCase	:   List[str]			   =					"dit-base" if "base" in checkpoint_url else "dit-large"
														else:
																					__UpperCamelCase	:   Optional[Any]			   =					"dit-base-finetuned-rvlcdip" if "dit-b" in checkpoint_url else "dit-large-finetuned-rvlcdip"
														image_processor.push_to_hub(
														    repo_path_or_name=Path(_lowerCamelCase						,  _lowerCamelCase)						,  organization="nielsr"						,  commit_message="Add image processor"						,  use_temp_dir=_lowerCamelCase						,  )
														model.push_to_hub(
														    repo_path_or_name=Path(_lowerCamelCase						,  _lowerCamelCase)						,  organization="nielsr"						,  commit_message="Add model"						,  use_temp_dir=_lowerCamelCase						,  )


if __name__ == "__main__":
		lowercase  :					Optional[Any]													=       argparse.ArgumentParser()

		parser.add_argument(
		    '--checkpoint_url',
		    default='https://layoutlm.blob.core.windows.net/dit/dit-pts/dit-base-224-p16-500k-62d53a.pth',
		    type=str,
		    help='URL to the original PyTorch checkpoint (.pth file).',
		)
		parser.add_argument(
		    '--pytorch_dump_folder_path', default=None, type=str, help='Path to the folder to output PyTorch model.'
		)
		parser.add_argument(
		    '--push_to_hub',
		    action='store_true',
		)
		lowercase  :					Tuple													=       parser.parse_args()
		convert_dit_checkpoint(args.checkpoint_url, args.pytorch_dump_folder_path, args.push_to_hub)