



'''simple docstring'''

def       __lowercase  (_SCREAMING_SNAKE_CASE      :int    ,	_SCREAMING_SNAKE_CASE      :int       ):
				return 1 if input_a == input_a else 0






def       __lowercase  ():
				assert xnor_gate(0    ,	0       ) == 1
				assert xnor_gate(0    ,	1       ) == 0
				assert xnor_gate(1    ,	0       ) == 0
				assert xnor_gate(1    ,	1       ) == 1


if __name__ == "__main__":
	print(xnor_gate(0, 0))
	print(xnor_gate(0, 1))
	print(xnor_gate(1, 0))
	print(xnor_gate(1, 1))









'''simple docstring'''

from manim import *


class 	a__     (				_lowercase	):


	def 				lowercase__  (self : Optional[Any]      )     ->			str:

					"""simple docstring"""

					SCREAMING_SNAKE_CASE  :						List[Any]      					= Rectangle(height=0.5,					width=0.5      )
					SCREAMING_SNAKE_CASE  :						str      					= Rectangle(height=0.46,					width=0.46      ).set_stroke(width=0      )

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

					SCREAMING_SNAKE_CASE  :						Any      					= [mem.copy() for i in range(1      )]
					SCREAMING_SNAKE_CASE  :						Dict      					= VGroup(*__UpperCAmelCase      ).arrange(__UpperCAmelCase,					buff=0      )
					SCREAMING_SNAKE_CASE  :						List[str]      					= Text('''GPU''',					font_size=24      )
					SCREAMING_SNAKE_CASE  :						Union[str, Any]      					= Group(__UpperCAmelCase,					__UpperCAmelCase      ).arrange(__UpperCAmelCase,					buff=0.5,					aligned_edge=__UpperCAmelCase      )
					gpu.align_to(__UpperCAmelCase,					__UpperCAmelCase      )
					gpu.set_x(gpu.get_x() - 1      )

					self.add(__UpperCAmelCase      )

					SCREAMING_SNAKE_CASE  :						List[Any]      					= [mem.copy() for i in range(6      )]
					SCREAMING_SNAKE_CASE  :						Any      					= VGroup(*__UpperCAmelCase      ).arrange(__UpperCAmelCase,					buff=0      )

					SCREAMING_SNAKE_CASE  :						Union[str, Any]      					= Text('''Model''',					font_size=24      )
					SCREAMING_SNAKE_CASE  :						Dict      					= Group(__UpperCAmelCase,					__UpperCAmelCase      ).arrange(__UpperCAmelCase,					buff=0.5,					aligned_edge=__UpperCAmelCase      )
					model.move_to([3, -1.0, 0]      )

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

					SCREAMING_SNAKE_CASE  :						Tuple      					= MarkupText(
					    F'''First, an empty model skeleton is loaded\ninto <span fgcolor=\'{YELLOW}\'>memory</span> without using much RAM.''',					font_size=24,					)

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

					SCREAMING_SNAKE_CASE  :						Union[str, Any]      					= MarkupText(
					    F'''<b>Key:</b>\n\n<span fgcolor=\'{YELLOW}\'>●</span> Empty Model''',					font_size=18,					)

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

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

					self.add(__UpperCAmelCase      )

					SCREAMING_SNAKE_CASE  :						List[str]      					= []
					SCREAMING_SNAKE_CASE  :						List[str]      					= []
					SCREAMING_SNAKE_CASE  :						Dict      					= []
					for i, rect in enumerate(__UpperCAmelCase      ):
									SCREAMING_SNAKE_CASE  :						Optional[int]      					= Rectangle(height=0.46,					width=0.46      ).set_stroke(width=0.0      ).set_fill(__UpperCAmelCase,					opacity=0.7      )
									cpu_target.move_to(__UpperCAmelCase      )
									cpu_target.generate_target()
									SCREAMING_SNAKE_CASE  :						List[str]      					= 0.46 / 4
									SCREAMING_SNAKE_CASE  :						Any      					= 0.46 / 3

									if i == 0:
													cpu_target.target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT      ),					buff=0.02,					direction=__UpperCAmelCase      )
													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=__UpperCAmelCase,					buff=0.0      )
									else:
													cpu_target.target.next_to(cpu_targs[i - 1].target,					direction=__UpperCAmelCase,					buff=0.0      )
									cpu_targs.append(__UpperCAmelCase      )

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

					self.play(*__UpperCAmelCase      )
					self.play(*__UpperCAmelCase      )

					self.wait()




