





"""simple docstring"""




from timeit import timeit

a						: Optional[int]     	=			{
    '''MALAYALAM''': True,
    '''String''': False,
    '''rotor''': True,
    '''level''': True,
    '''A''': True,
    '''BB''': True,
    '''ABC''': False,
    '''amanaplanacanalpanama''': True,  # "a man a plan a canal panama"
}
# Ensure our test data is valid
assert all((key == key[::-1]) is value for key, value in test_data.items())






def       _SCREAMING_SNAKE_CASE		(	_lowercase						:    str					) ->bool:






	'''simple docstring'''






	a      :		Tuple	=				0
	a      :		Union[str, Any]	=				len(_lowercase					) - 1
	while start_i < end_i:
		if s[start_i] == s[end_i]:
			start_i += 1
			end_i -= 1
		else:
			return False
	return True






def       _SCREAMING_SNAKE_CASE		(	_lowercase						:    str					) ->bool:






	'''simple docstring'''






	a      :		Tuple	=				len(_lowercase					) // 2
	a      :		str	=				len(_lowercase					)

	# We need to traverse till half of the length of string
	# as we can get access of the i'th last element from
	# i'th index.
	# eg: [0,1,2,3,4,5] => 4th index can be accessed
	# with the help of 1st index (i==n-i-1)
	# where n is length of string
	return all(s[i] == s[n - i - 1] for i in range(_lowercase					)					)






def       _SCREAMING_SNAKE_CASE		(	_lowercase						:    str					) ->bool:






	'''simple docstring'''






	if len(_lowercase					) <= 2:
		return True
	if s[0] == s[len(_lowercase					) - 1]:
		return is_palindrome_recursive(s[1:-1]					)
	else:
		return False






def       _SCREAMING_SNAKE_CASE		(	_lowercase						:    str					) ->bool:






	'''simple docstring'''






	return s == s[::-1]






def       _SCREAMING_SNAKE_CASE		(	_lowercase						:    str					) ->None:






	'''simple docstring'''






	a      :		Tuple	=				F"""all({name}(key) is value for key, value in test_data.items())"""
	a      :		int	=				F"""from __main__ import test_data, {name}"""
	a      :		Dict	=				50_0000
	a      :		Dict	=				timeit(stmt=_lowercase    ,       setup=_lowercase    ,       number=_lowercase					)
	print(F"""{name:<35} finished {number:,} runs in {result:.5f} seconds"""					)


if __name__ == "__main__":
		for key, value in test_data.items():
				assert is_palindrome(key) is is_palindrome_recursive(key)
				assert is_palindrome(key) is is_palindrome_slice(key)
				print(F'''{key:21} {value}''')
		print('''a man a plan a canal panama''')

		# finished 500,000 runs in 0.46793 seconds
		benchmark_function('''is_palindrome_slice''')
		# finished 500,000 runs in 0.85234 seconds
		benchmark_function('''is_palindrome''')
		# finished 500,000 runs in 1.32028 seconds
		benchmark_function('''is_palindrome_recursive''')
		# finished 500,000 runs in 2.08679 seconds
		benchmark_function('''is_palindrome_traversal''')









"""simple docstring"""




from datetime import datetime

import requests






def       _SCREAMING_SNAKE_CASE		(	_lowercase						:    str					) ->bytes:






	'''simple docstring'''






	a      :		Dict	=				"https://downloadgram.net/wp-json/wppress/video-downloader/video?url="
	a      :		Dict	=				requests.get(base_url + url					).json()[0]["urls"][0]["src"]
	return requests.get(_lowercase					).content


if __name__ == "__main__":
		a						: str     	=			input('''Enter Video/IGTV url: ''').strip()
		a						: Any     	=			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}.''')


