






def    SCREAMING_SNAKE_CASE_							(							__magic_name__					:  str					)		->			str:






	"""simple docstring"""



	UpperCamelCase     :int          =	0

	# if input_string is "aba" than new_input_string become "a|b|a"
	UpperCamelCase     :Dict          =	""""""
	UpperCamelCase     :int          =	""""""

	# append each character + "|" in new_string for range(0, length-1)
	for i in input_string[: len(__magic_name__					) - 1]:
		new_input_string += i + "|"
	# append last character
	new_input_string += input_string[-1]

	# we will store the starting and ending of previous furthest ending palindromic
	# substring
	UpperCamelCase     ,      UpperCamelCase     :str          =	0, 0

	# length[i] shows the length of palindromic substring with center i
	UpperCamelCase     :str          =	[1 for i in range(len(__magic_name__					)					)]

	# for each character in new_string find corresponding palindromic string
	UpperCamelCase     :List[Any]          =	0
	for j in range(len(__magic_name__					)					):
		UpperCamelCase     :str          =	1 if j > r else min(length[l + r - j] // 2	,			r - j + 1					)
		while (
		    j - k >= 0
		    and j + k < len(__magic_name__					)
		    and new_input_string[k + j] == new_input_string[j - k]
		):
			k += 1

		UpperCamelCase     :str          =	2 * k - 1

		# does this string is ending after the previously explored end (that is r) ?
		# if yes the update the new r to the last index of this
		if j + k - 1 > r:
			UpperCamelCase     :Optional[int]          =	j - k + 1  # noqa: E741
			UpperCamelCase     :Tuple          =	j + k - 1

		# update max_length and start position
		if max_length < length[j]:
			UpperCamelCase     :int          =	length[j]
			UpperCamelCase     :Dict          =	j

    # create that string
	UpperCamelCase     :List[Any]          =	new_input_string[start - max_length // 2 : start + max_length // 2 + 1]
	for i in s:
		if i != "|":
			output_string += i

	return output_string


if __name__ == "__main__":
	import doctest

	doctest.testmod()

def       _snake_case	(   lowerCAmelCase							:   int   , lowerCAmelCase							:   int	):
		"""simple docstring"""







		while b:
				SCREAMING_SNAKE_CASE_      ,    SCREAMING_SNAKE_CASE_  :		int				      =    b, a % b
		return a




def       _snake_case	(   lowerCAmelCase							:   int   , lowerCAmelCase							:   int	):
		"""simple docstring"""







		return a if b == 0 else euclidean_gcd_recursive(lowerCAmelCase   , a % b	)




def       _snake_case	(   ):
		"""simple docstring"""







		print(f'euclidean_gcd(3, 5) = {euclidean_gcd(3   , 5	)}'	)
		print(f'euclidean_gcd(5, 3) = {euclidean_gcd(5   , 3	)}'	)
		print(f'euclidean_gcd(1, 3) = {euclidean_gcd(1   , 3	)}'	)
		print(f'euclidean_gcd(3, 6) = {euclidean_gcd(3   , 6	)}'	)
		print(f'euclidean_gcd(6, 3) = {euclidean_gcd(6   , 3	)}'	)

		print(f'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3   , 5	)}'	)
		print(f'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5   , 3	)}'	)
		print(f'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1   , 3	)}'	)
		print(f'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3   , 6	)}'	)
		print(f'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6   , 3	)}'	)


if __name__ == "__main__":
		main()
