from manim import *





class     lowerCAmelCase__     (				SCREAMING_SNAKE_CASE_			):


		'''simple docstring'''






		def   _snake_case       (       self     :     Optional[Any]		)      ->	List[str]:
				_lowerCamelCase				   =  Rectangle(height=0.5     ,  width=0.5		)
				_lowerCamelCase				   =  Rectangle(height=0.46     ,  width=0.46		).set_stroke(width=0		)

				_lowerCamelCase				   =  [mem.copy() for i in range(6		)]
				_lowerCamelCase				   =  [mem.copy() for i in range(6		)]
				_lowerCamelCase				   =  VGroup(*snake_case__		).arrange(snake_case__     ,  buff=0		)
				_lowerCamelCase				   =  VGroup(*snake_case__		).arrange(snake_case__     ,  buff=0		)
				_lowerCamelCase				   =  VGroup(snake_case__     ,  snake_case__		).arrange(snake_case__     ,  buff=0		)
				_lowerCamelCase				   =  Text('CPU'     ,  font_size=2_4		)
				_lowerCamelCase				   =  Group(snake_case__     ,  snake_case__		).arrange(snake_case__     ,  buff=0.5     ,  aligned_edge=snake_case__		)
				cpu.move_to([-2.5, -0.5, 0]		)
				self.add(snake_case__		)

				_lowerCamelCase				   =  [mem.copy() for i in range(1		)]
				_lowerCamelCase				   =  VGroup(*snake_case__		).arrange(snake_case__     ,  buff=0		)
				_lowerCamelCase				   =  Text('GPU'     ,  font_size=2_4		)
				_lowerCamelCase				   =  Group(snake_case__     ,  snake_case__		).arrange(snake_case__     ,  buff=0.5     ,  aligned_edge=snake_case__		)
				gpu.align_to(snake_case__     ,  snake_case__		)
				gpu.set_x(gpu.get_x() - 1		)

				self.add(snake_case__		)

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

				_lowerCamelCase				   =  Text('Model'     ,  font_size=2_4		)
				_lowerCamelCase				   =  Group(snake_case__     ,  snake_case__		).arrange(snake_case__     ,  buff=0.5     ,  aligned_edge=snake_case__		)
				model.move_to([3, -1.0, 0]		)

				self.play(
				    Create(snake_case__     ,  run_time=1		)     ,  Create(snake_case__     ,  run_time=1		)     ,  Create(snake_case__     ,  run_time=1		)     ,  )

				_lowerCamelCase				   =  MarkupText(
				    f"""First, an empty model skeleton is loaded\ninto <span fgcolor='{YELLOW}'>memory</span> without using much RAM."""     ,  font_size=2_4     ,  )

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

				_lowerCamelCase				   =  MarkupText(
				    f"""<b>Key:</b>\n\n<span fgcolor='{YELLOW}'>●</span> Empty Model"""     ,  font_size=1_8     ,  )

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

				step_a.move_to([2, 2, 0]		)
				self.play(Write(snake_case__     ,  run_time=2.5		)     ,  Write(snake_case__		)     ,  Write(snake_case__		)		)

				self.add(snake_case__		)

				_lowerCamelCase				   =  []
				_lowerCamelCase				   =  []
				_lowerCamelCase				   =  []
				for i, rect in enumerate(snake_case__		):
						_lowerCamelCase				   =  Rectangle(height=0.46     ,  width=0.46		).set_stroke(width=0.0		).set_fill(snake_case__     ,  opacity=0.7		)
						cpu_target.move_to(snake_case__		)
						cpu_target.generate_target()
						_lowerCamelCase				   =  0.46 / 4
						_lowerCamelCase				   =  0.46 / 3

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

						first_animations.append(rect.animate(run_time=0.5		).set_stroke(snake_case__		)		)
						second_animations.append(MoveToTarget(snake_case__     ,  run_time=1.5		)		)

				self.play(*snake_case__		)
				self.play(*snake_case__		)

				self.wait()
def 	lowerCamelCase					(	UpperCamelCase     :				int			,       UpperCamelCase     :				int							)   ->    float:
		return base * power(UpperCamelCase			,       (exponent - 1)							) if exponent else 1


if __name__ == "__main__":
				print('Raise base to the power of exponent using recursion...')
				A						=			int(input('Enter the base: ').strip())
				A						=			int(input('Enter the exponent: ').strip())
				A						=			power(base, abs(exponent))
				if exponent < 0:  # power() does not properly deal w/ negative exponents
								A						=			1 / result
				print(F'''{base} to the power of {exponent} is {result}''')