


from __future__ import annotations
def 			_a (      SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		lowercase__            =      []
		lowercase__     ,		lowercase__            =      input_list[low:mid], input_list[mid : high + 1]
		while left and right:
				result.append((left if left[0] <= right[0] else right).pop(0     )     )
		lowercase__            =      result + left + right
		return input_list
def 			_a (      SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		if len(SCREAMING_SNAKE_CASE     ) <= 1:
				return input_list
		lowercase__            =      list(SCREAMING_SNAKE_CASE     )

		# iteration for two-way merging
		lowercase__            =      2
		while p <= len(SCREAMING_SNAKE_CASE     ):
				# getting low, high and middle value for merge-sort of single list
				for i in range(0						,				len(SCREAMING_SNAKE_CASE     )						,				SCREAMING_SNAKE_CASE     ):
						lowercase__            =      i
						lowercase__            =      i + p - 1
						lowercase__            =      (low + high + 1) // 2
						lowercase__            =      merge(SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     )
				# final merge of last two parts
				if p * 2 >= len(SCREAMING_SNAKE_CASE     ):
						lowercase__            =      i
						lowercase__            =      merge(SCREAMING_SNAKE_CASE						,				0						,				SCREAMING_SNAKE_CASE						,				len(SCREAMING_SNAKE_CASE     ) - 1     )
						break
				p *= 2

		return input_list


if __name__ == "__main__":
			lowerCAmelCase       =							input('Enter numbers separated by a comma:\n').strip()
			if user_input == "":
						lowerCAmelCase       =							[]
			else:
						lowerCAmelCase       =							[int(item.strip()) for item in user_input.split(',')]
			print(iter_merge_sort(unsorted))






def 			_a (      SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		return credit_card_number.startswith(('''34''', '''35''', '''37''', '''4''', '''5''', '''6''')     )
def 			_a (      SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		lowercase__            =      credit_card_number
		lowercase__            =      0
		lowercase__            =      len(SCREAMING_SNAKE_CASE     ) - 2
		for i in range(SCREAMING_SNAKE_CASE						,				-1						,				-2     ):
				#  double the value of every second digit
				lowercase__            =      int(cc_number[i]     )
				digit *= 2
				# If doubling of a number results in a two digit number
				# i.e greater than 9(e.g., 6 × 2 = 12),
				# then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
				# to get a single digit number.
				if digit > 9:
						digit %= 10
						digit += 1
				lowercase__            =      cc_number[:i] + str(SCREAMING_SNAKE_CASE     ) + cc_number[i + 1 :]
				total += digit

		# Sum up the remaining digits
		for i in range(len(SCREAMING_SNAKE_CASE     ) - 1						,				-1						,				-2     ):
				total += int(cc_number[i]     )

		return total % 10 == 0
def 			_a (      SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		lowercase__            =      f'{credit_card_number} is an invalid credit card number because'
		if not credit_card_number.isdigit():
				print(f'{error_message} it has nonnumerical characters.'     )
				return False

		if not 13 <= len(SCREAMING_SNAKE_CASE     ) <= 16:
				print(f'{error_message} of its length.'     )
				return False

		if not validate_initial_digits(SCREAMING_SNAKE_CASE     ):
				print(f'{error_message} of its first two digits.'     )
				return False

		if not luhn_validation(SCREAMING_SNAKE_CASE     ):
				print(f'{error_message} it fails the Luhn check.'     )
				return False

		print(f'{credit_card_number} is a valid credit card number.'     )
		return True


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			validate_credit_card_number('4111111111111111')
			validate_credit_card_number('32323')


