





def 	_SCREAMING_SNAKE_CASE		(      SCREAMING_SNAKE_CASE		:str   ,   SCREAMING_SNAKE_CASE		:str   )      ->   bool:
 __lowerCAmelCase					:	Tuple      =       len(SCREAMING_SNAKE_CASE   ) + 1
 __lowerCAmelCase					:	Any      =       len(SCREAMING_SNAKE_CASE   ) + 1

 # dp is a 2d matrix where dp[i][j] denotes whether prefix string of
 # length i of input_string matches with prefix string of length j of
 # given pattern.
 # "dp" stands for dynamic programming.
 __lowerCAmelCase					:	List[str]      =       [[0 for i in range(SCREAMING_SNAKE_CASE   )] for j in range(SCREAMING_SNAKE_CASE   )]

 # since string of zero length match pattern of zero length
 __lowerCAmelCase					:	List[Any]      =       1

 # since pattern of zero length will never match with string of non-zero length
 for i in range(1   ,   SCREAMING_SNAKE_CASE   ):
  __lowerCAmelCase					:	Tuple      =       0

 # since string of zero length will match with pattern where there
 # is at least one * alternatively
 for j in range(1   ,   SCREAMING_SNAKE_CASE   ):
  __lowerCAmelCase					:	int      =       dp[0][j - 2] if pattern[j - 1] == """*""" else 0

 # now using bottom-up approach to find for all remaining lengths
 for i in range(1   ,   SCREAMING_SNAKE_CASE   ):
  for j in range(1   ,   SCREAMING_SNAKE_CASE   ):
   if input_string[i - 1] == pattern[j - 1] or pattern[j - 1] == ".":
    __lowerCAmelCase					:	Optional[int]      =       dp[i - 1][j - 1]

   elif pattern[j - 1] == "*":
    if dp[i][j - 2] == 1:
     __lowerCAmelCase					:	Optional[Any]      =       1
    elif pattern[j - 2] in (input_string[i - 1], "."):
     __lowerCAmelCase					:	int      =       dp[i - 1][j]
    else:
     __lowerCAmelCase					:	Any      =       0
   else:
    __lowerCAmelCase					:	Tuple      =       0

 return bool(dp[-1][-1]   )


if __name__ == "__main__":
      import doctest

      doctest.testmod()
      # inputing the strings
      # input_string = input("input a string :")
      # pattern = input("input a pattern :")

      _UpperCAmelCase             =							'aab'
      _UpperCAmelCase             =							'c*a*b'

      # using function to check whether given string matches the given pattern
      if match_pattern(input_string, pattern):
            print(f'''{input_string} matches the given pattern {pattern}''')
      else:
            print(f'''{input_string} does not match with the given pattern {pattern}''')








from datetime import datetime

import requests






def 	_SCREAMING_SNAKE_CASE		(      SCREAMING_SNAKE_CASE		:str   )      ->   bytes:
 __lowerCAmelCase					:	List[Any]      =       """https://downloadgram.net/wp-json/wppress/video-downloader/video?url="""
 __lowerCAmelCase					:	Dict      =       requests.get(base_url + url   ).json()[0]["""urls"""][0]["""src"""]
 return requests.get(SCREAMING_SNAKE_CASE   ).content


if __name__ == "__main__":
      _UpperCAmelCase             =							input('Enter Video/IGTV url: ').strip()
      _UpperCAmelCase             =							f'''{datetime.now():%Y-%m-%d_%H:%M:%S}.mp4'''
      with open(file_name, 'wb') as fp:
            fp.write(download_video(url))
      print(f'''Done. Video saved to disk as {file_name}.''')