




"""simple docstring"""

from manim import *

class        lowercase      (    __UpperCAmelCase):







				def 					a_  (							self   :					int       ):



					"""simple docstring"""

					A_  :				str	   =		Rectangle(height=0.5      ,     width=0.5       )
					A_  :				Union[str, Any]	   =		Rectangle(height=0.25      ,     width=0.25       )
					A_  :				Any	   =		Rectangle(height=0.46      ,     width=0.46       ).set_stroke(width=0       )

					A_  :				str	   =		[mem.copy() for i in range(6       )]
					A_  :				List[str]	   =		[mem.copy() for i in range(6       )]
					A_  :				Dict	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				int	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				List[Any]	   =		VGroup(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				List[Any]	   =		Text('''CPU'''      ,     font_size=24       )
					A_  :				List[str]	   =		Group(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0.5      ,     aligned_edge=_lowerCamelCase       )
					cpu.move_to([-2.5, -0.5, 0]       )
					self.add(_lowerCamelCase       )

					A_  :				Optional[Any]	   =		[mem.copy() for i in range(4       )]
					A_  :				Dict	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				Union[str, Any]	   =		Text('''GPU'''      ,     font_size=24       )
					A_  :				List[Any]	   =		Group(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0.5      ,     aligned_edge=_lowerCamelCase       )
					gpu.move_to([-1, -1, 0]       )
					self.add(_lowerCamelCase       )

					A_  :				Optional[Any]	   =		[mem.copy() for i in range(6       )]
					A_  :				Any	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )

					A_  :				int	   =		Text('''Model'''      ,     font_size=24       )
					A_  :				Union[str, Any]	   =		Group(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0.5      ,     aligned_edge=_lowerCamelCase       )
					model.move_to([3, -1.0, 0]       )
					self.add(_lowerCamelCase       )

					A_  :				Tuple	   =		[]
					A_  :				Any	   =		[]
					A_  :				Dict	   =		[]

					for i, rect in enumerate(_lowerCamelCase       ):
						rect.set_stroke(_lowerCamelCase       )

						A_  :				str	   =		Rectangle(height=0.46 / 4      ,     width=0.46 / 3       ).set_stroke(width=0.0       ).set_fill(_lowerCamelCase      ,     opacity=0.7       )

						if i == 0:
							cpu_target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT       )      ,     buff=0.02      ,     direction=_lowerCamelCase       )
							cpu_target.set_x(cpu_target.get_x() + 0.1       )
						elif i == 3:
							cpu_target.next_to(model_cpu_arr[0]      ,     direction=_lowerCamelCase      ,     buff=0.0       )
						else:
							cpu_target.next_to(model_cpu_arr[i - 1]      ,     direction=_lowerCamelCase      ,     buff=0.0       )
						self.add(_lowerCamelCase       )
						model_cpu_arr.append(_lowerCamelCase       )

					self.add(*_lowerCamelCase      ,     *_lowerCamelCase      ,     *_lowerCamelCase       )

					A_  :				List[str]	   =		[mem.copy() for i in range(6       )]
					A_  :				Optional[int]	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )

					A_  :				Union[str, Any]	   =		Text('''Loaded Checkpoint'''      ,     font_size=24       )
					A_  :				Tuple	   =		Group(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0.5      ,     aligned_edge=_lowerCamelCase       )
					checkpoint.move_to([3, 0.5, 0]       )

					self.add(_lowerCamelCase       )

					A_  :				str	   =		[]
					A_  :				Optional[int]	   =		[]

					for i, rect in enumerate(_lowerCamelCase       ):
						A_  :				Tuple	   =		fill.copy().set_fill(_lowerCamelCase      ,     opacity=0.7       )
						target.move_to(_lowerCamelCase       )
						ckpt_arr.append(_lowerCamelCase       )

						A_  :				Union[str, Any]	   =		target.copy()
						if i < 5:
							cpu_target.move_to(cpu_left_col_base[i + 1]       )
						else:
							cpu_target.move_to(cpu_right_col_base[i - 5]       )
						ckpt_cpu_arr.append(_lowerCamelCase       )
					self.add(*_lowerCamelCase      ,     *_lowerCamelCase       )

					A_  :				Any	   =		Square(side_length=2.2       )
					key.move_to([-5, 2, 0]       )

					A_  :				int	   =		MarkupText(
					    F"""<b>Key:</b>\n\n<span fgcolor='{YELLOW}'>●</span> Empty Model"""      ,     font_size=18      ,     )

					key_text.move_to([-5, 2.4, 0]       )

					self.add(_lowerCamelCase      ,     _lowerCamelCase       )

					A_  :				str	   =		MarkupText(
					    F"""<span fgcolor='{BLUE}'>●</span> Checkpoint"""      ,     font_size=18      ,     )

					blue_text.next_to(_lowerCamelCase      ,     DOWN * 2.4      ,     aligned_edge=key_text.get_left()       )
					self.add(_lowerCamelCase       )

					A_  :				int	   =		MarkupText(
					    F"""Based on the passed in configuration, weights are stored in\na variety of np.memmaps on disk or to a particular device."""      ,     font_size=24      ,     )
					step_a.move_to([2, 2, 0]       )

					A_  :				List[Any]	   =		[meta_mem.copy() for i in range(6       )]
					A_  :				Any	   =		[meta_mem.copy() for i in range(6       )]
					A_  :				List[str]	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				Dict	   =		VGroup(*_lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				Union[str, Any]	   =		VGroup(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0       )
					A_  :				Union[str, Any]	   =		Text('''Disk'''      ,     font_size=24       )
					A_  :				Dict	   =		Group(_lowerCamelCase      ,     _lowerCamelCase       ).arrange(_lowerCamelCase      ,     buff=0.5      ,     aligned_edge=_lowerCamelCase       )
					disk.move_to([-4.0, -1.25, 0]       )
					self.play(Write(_lowerCamelCase      ,     run_time=3       )      ,     Write(_lowerCamelCase      ,     run_time=1       )      ,     Create(_lowerCamelCase      ,     run_time=1       )       )

					A_  :				Union[str, Any]	   =		[]
					for i, rect in enumerate(_lowerCamelCase       ):
						A_  :				Tuple	   =		rect.copy()
						target.generate_target()
						target.target.move_to(disk_left_col_base[i]       ).scale(0.5       )
						animations.append(MoveToTarget(_lowerCamelCase      ,     run_time=1.5       )       )
					self.play(*_lowerCamelCase       )

					self.play(FadeOut(_lowerCamelCase       )       )

					A_  :				Optional[int]	   =		MarkupText(F"""Then, the checkpoint is removed from memory\nthrough garbage collection."""      ,     font_size=24       )
					step_a.move_to([2, 2, 0]       )

					self.play(Write(_lowerCamelCase      ,     run_time=3       )       )

					self.play(
					    FadeOut(_lowerCamelCase      ,     _lowerCamelCase      ,     *_lowerCamelCase      ,     *_lowerCamelCase       )      ,     )

					self.wait()











"""simple docstring"""

def 		lowercase_      (		_UpperCAmelCase	):




	"""simple docstring"""






	A_  :				int	   =		len(_UpperCAmelCase	)
	for i in range(length - 1	):
		A_  :				str	   =		i
		for k in range(i + 1  ,      _UpperCAmelCase	):
			if collection[k] < collection[least]:
				A_  :				Tuple	   =		k
		if least != i:
			A_   , A_  :				Optional[int]	   =		(collection[i], collection[least])
	return collection


if __name__ == "__main__":
		_lowerCamelCase  :			Optional[int]        =       input('Enter numbers separated by a comma:\n').strip()
		_lowerCamelCase  :			List[str]        =       [int(item) for item in user_input.split(',')]
		print(selection_sort(unsorted))





