summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuchen Pei <me@ypei.me>2018-01-20 15:41:49 +0100
committerYuchen Pei <me@ypei.me>2018-01-20 15:41:49 +0100
commitd3a0cc3a8ba6dfeb64d3faeffdeb6845b60e5840 (patch)
treed58df9ec2480e2a9ec6240f9c797f83d1a0b1056
parent3571f998b28fbc8d9250ba04c983935f10a16c15 (diff)
rearranged the dir for github
- removed tools and pdfs - rearranged the projects dirs - added md files - other minor changes
-rw-r--r--Assembler.hs (renamed from projects/06/Assembler.hs)3
-rw-r--r--JackCompiler.hs (renamed from projects/11/JackCompiler.hs)3
-rw-r--r--K/Board.jack (renamed from projects/09/K/Board.jack)6
-rw-r--r--K/K.md9
-rw-r--r--K/KGame.jack (renamed from projects/09/K/KGame.jack)6
-rw-r--r--K/Main.jack (renamed from projects/09/K/Main.jack)6
-rw-r--r--README.md12
-rw-r--r--VMTranslator.hs (renamed from projects/08/VMTranslator.hs)3
-rw-r--r--asms/Fill.asm (renamed from projects/04/fill/Fill.asm)0
-rw-r--r--asms/Mult.asm (renamed from projects/04/mult/Mult.asm)0
-rw-r--r--chapter 02.pdfbin102368 -> 0 bytes
-rw-r--r--chapter 04.pdfbin357401 -> 0 bytes
-rw-r--r--chapter 05.pdfbin626759 -> 0 bytes
-rw-r--r--chapter 06.pdfbin268908 -> 0 bytes
-rw-r--r--chips/ALU.hdl (renamed from projects/02/ALU.hdl)0
-rw-r--r--chips/Add16.hdl (renamed from projects/02/Add16.hdl)0
-rw-r--r--chips/And.hdl (renamed from projects/01/And.hdl)0
-rw-r--r--chips/And16.hdl (renamed from projects/01/And16.hdl)0
-rw-r--r--chips/And1With16.hdl (renamed from projects/01/And1With16.hdl)0
-rw-r--r--chips/Bit.hdl (renamed from projects/03/a/Bit.hdl)0
-rw-r--r--chips/CPU.hdl (renamed from projects/05/CPU.hdl)0
-rw-r--r--chips/Computer.hdl (renamed from projects/05/Computer.hdl)0
-rw-r--r--chips/DMux.hdl (renamed from projects/01/DMux.hdl)0
-rw-r--r--chips/DMux4Way.hdl (renamed from projects/01/DMux4Way.hdl)0
-rw-r--r--chips/DMux8Way.hdl (renamed from projects/01/DMux8Way.hdl)0
-rw-r--r--chips/FullAdder.hdl (renamed from projects/02/FullAdder.hdl)0
-rw-r--r--chips/HalfAdder.hdl (renamed from projects/02/HalfAdder.hdl)0
-rw-r--r--chips/Inc16.hdl (renamed from projects/02/Inc16.hdl)0
-rw-r--r--chips/Memory.hdl (renamed from projects/05/Memory.hdl)0
-rw-r--r--chips/Mux.hdl (renamed from projects/01/Mux.hdl)0
-rw-r--r--chips/Mux16.hdl (renamed from projects/01/Mux16.hdl)0
-rw-r--r--chips/Mux4Way16.hdl (renamed from projects/01/Mux4Way16.hdl)0
-rw-r--r--chips/Mux8Way16.hdl (renamed from projects/01/Mux8Way16.hdl)0
-rw-r--r--chips/Not.hdl (renamed from projects/01/Not.hdl)0
-rw-r--r--chips/Not16.hdl (renamed from projects/01/Not16.hdl)0
-rw-r--r--chips/Or.hdl (renamed from projects/01/Or.hdl)0
-rw-r--r--chips/Or16.hdl (renamed from projects/01/Or16.hdl)0
-rw-r--r--chips/Or8Way.hdl (renamed from projects/01/Or8Way.hdl)0
-rw-r--r--chips/PC.hdl (renamed from projects/03/a/PC.hdl)0
-rw-r--r--chips/RAM16K.hdl (renamed from projects/03/b/RAM16K.hdl)0
-rw-r--r--chips/RAM4K.hdl (renamed from projects/03/b/RAM4K.hdl)0
-rw-r--r--chips/RAM512.hdl (renamed from projects/03/b/RAM512.hdl)0
-rw-r--r--chips/RAM64.hdl (renamed from projects/03/a/RAM64.hdl)0
-rw-r--r--chips/RAM8.hdl (renamed from projects/03/a/RAM8.hdl)0
-rw-r--r--chips/Register.hdl (renamed from projects/03/a/Register.hdl)0
-rw-r--r--chips/Xor.hdl (renamed from projects/01/Xor.hdl)0
-rw-r--r--jackos/Array.jack (renamed from projects/12/Array.jack)0
-rw-r--r--jackos/Keyboard.jack (renamed from projects/12/Keyboard.jack)0
-rw-r--r--jackos/Math.jack (renamed from projects/12/Math.jack)0
-rw-r--r--jackos/Memory.jack (renamed from projects/12/Memory.jack)0
-rw-r--r--jackos/Output.jack (renamed from projects/12/Output.jack)0
-rw-r--r--jackos/Screen.jack (renamed from projects/12/Screen.jack)0
-rw-r--r--jackos/String.jack (renamed from projects/12/String.jack)0
-rw-r--r--jackos/Sys.jack (renamed from projects/12/Sys.jack)0
-rw-r--r--lecture 00 introduction.pdfbin228477 -> 0 bytes
-rw-r--r--lecture 01 Boolean logic.pdfbin364179 -> 0 bytes
-rw-r--r--lecture 02 Boolean arithmetic.pdfbin296783 -> 0 bytes
-rw-r--r--lecture 03 sequential logic.pdfbin117285 -> 0 bytes
-rw-r--r--lecture 04 machine language.pdfbin219405 -> 0 bytes
-rw-r--r--lecture 05 computer architecture.pdfbin459238 -> 0 bytes
-rw-r--r--lecture 06 assembler.pdfbin199483 -> 0 bytes
-rw-r--r--lecture 07 virtual machine I.pdfbin491237 -> 0 bytes
-rw-r--r--lecture 08 virtual machine II.pdfbin285458 -> 0 bytes
-rw-r--r--lecture 09 high level language.pdfbin201903 -> 0 bytes
-rw-r--r--lecture 10 compiler I.pdfbin298040 -> 0 bytes
-rw-r--r--lecture 11 compiler II.pdfbin318842 -> 0 bytes
-rw-r--r--lecture 12 OS.pdfbin862887 -> 0 bytes
-rw-r--r--projects/00/file.txt6
-rw-r--r--projects/01/And.cmp5
-rw-r--r--projects/01/And.out5
-rw-r--r--projects/01/And.tst29
-rw-r--r--projects/01/And16.cmp7
-rw-r--r--projects/01/And16.out7
-rw-r--r--projects/01/And16.tst39
-rw-r--r--projects/01/DMux.cmp5
-rw-r--r--projects/01/DMux.out5
-rw-r--r--projects/01/DMux.tst27
-rw-r--r--projects/01/DMux4Way.cmp9
-rw-r--r--projects/01/DMux4Way.out9
-rw-r--r--projects/01/DMux4Way.tst43
-rw-r--r--projects/01/DMux8Way.cmp17
-rw-r--r--projects/01/DMux8Way.out17
-rw-r--r--projects/01/DMux8Way.tst75
-rw-r--r--projects/01/Mux.cmp9
-rw-r--r--projects/01/Mux.out9
-rw-r--r--projects/01/Mux.tst49
-rw-r--r--projects/01/Mux16.cmp9
-rw-r--r--projects/01/Mux16.out9
-rw-r--r--projects/01/Mux16.tst49
-rw-r--r--projects/01/Mux4Way16.cmp9
-rw-r--r--projects/01/Mux4Way16.out9
-rw-r--r--projects/01/Mux4Way16.tst49
-rw-r--r--projects/01/Mux8Way16.cmp17
-rw-r--r--projects/01/Mux8Way16.out17
-rw-r--r--projects/01/Mux8Way16.tst89
-rw-r--r--projects/01/Not.cmp3
-rw-r--r--projects/01/Not.out3
-rw-r--r--projects/01/Not.tst17
-rw-r--r--projects/01/Not16.cmp6
-rw-r--r--projects/01/Not16.out6
-rw-r--r--projects/01/Not16.tst29
-rw-r--r--projects/01/Or.cmp5
-rw-r--r--projects/01/Or.out5
-rw-r--r--projects/01/Or.tst29
-rw-r--r--projects/01/Or16.cmp7
-rw-r--r--projects/01/Or16.out7
-rw-r--r--projects/01/Or16.tst39
-rw-r--r--projects/01/Or8Way.cmp6
-rw-r--r--projects/01/Or8Way.out6
-rw-r--r--projects/01/Or8Way.tst29
-rw-r--r--projects/01/Xor.cmp5
-rw-r--r--projects/01/Xor.out5
-rw-r--r--projects/01/Xor.tst29
-rw-r--r--projects/02/ALU-nostat.cmp37
-rw-r--r--projects/02/ALU-nostat.tst353
-rw-r--r--projects/02/ALU.cmp37
-rw-r--r--projects/02/ALU.out37
-rw-r--r--projects/02/ALU.tst377
-rw-r--r--projects/02/Add16.cmp7
-rw-r--r--projects/02/Add16.out7
-rw-r--r--projects/02/Add16.tst39
-rw-r--r--projects/02/FullAdder.cmp9
-rw-r--r--projects/02/FullAdder.out9
-rw-r--r--projects/02/FullAdder.tst47
-rw-r--r--projects/02/HalfAdder.cmp5
-rw-r--r--projects/02/HalfAdder.out5
-rw-r--r--projects/02/HalfAdder.tst29
-rw-r--r--projects/02/Inc16.cmp5
-rw-r--r--projects/02/Inc16.out5
-rw-r--r--projects/02/Inc16.tst25
-rw-r--r--projects/02/Test.hdl8
-rw-r--r--projects/03/a/Bit.cmp215
-rw-r--r--projects/03/a/Bit.out215
-rw-r--r--projects/03/a/Bit.tst865
-rw-r--r--projects/03/a/PC.cmp31
-rw-r--r--projects/03/a/PC.out31
-rw-r--r--projects/03/a/PC.tst125
-rw-r--r--projects/03/a/RAM64.cmp320
-rw-r--r--projects/03/a/RAM64.out320
-rw-r--r--projects/03/a/RAM64.tst1026
-rw-r--r--projects/03/a/RAM8.cmp173
-rw-r--r--projects/03/a/RAM8.out8
-rw-r--r--projects/03/a/RAM8.tst560
-rw-r--r--projects/03/a/Register.cmp149
-rw-r--r--projects/03/a/Register.out149
-rw-r--r--projects/03/a/Register.tst569
-rw-r--r--projects/03/b/RAM16K.cmp320
-rw-r--r--projects/03/b/RAM16K.out320
-rw-r--r--projects/03/b/RAM16K.tst1026
-rw-r--r--projects/03/b/RAM4K.cmp320
-rw-r--r--projects/03/b/RAM4K.tst1026
-rw-r--r--projects/03/b/RAM512.cmp320
-rw-r--r--projects/03/b/RAM512.tst1027
-rw-r--r--projects/04/fill/Fill.tst11
-rw-r--r--projects/04/fill/FillAutomatic.cmp4
-rw-r--r--projects/04/fill/FillAutomatic.out4
-rw-r--r--projects/04/fill/FillAutomatic.tst37
-rw-r--r--projects/04/mult/Mult.cmp7
-rw-r--r--projects/04/mult/Mult.out7
-rw-r--r--projects/04/mult/Mult.tst74
-rw-r--r--projects/05/Add.hack6
-rw-r--r--projects/05/CPU-external.cmp93
-rw-r--r--projects/05/CPU-external.tst150
-rw-r--r--projects/05/CPU.cmp93
-rw-r--r--projects/05/CPU.out93
-rw-r--r--projects/05/CPU.tst150
-rw-r--r--projects/05/ComputerAdd-external.cmp15
-rw-r--r--projects/05/ComputerAdd-external.tst32
-rw-r--r--projects/05/ComputerAdd.cmp15
-rw-r--r--projects/05/ComputerAdd.out15
-rw-r--r--projects/05/ComputerAdd.tst32
-rw-r--r--projects/05/ComputerMax-external.cmp28
-rw-r--r--projects/05/ComputerMax-external.tst38
-rw-r--r--projects/05/ComputerMax.cmp28
-rw-r--r--projects/05/ComputerMax.out28
-rw-r--r--projects/05/ComputerMax.tst39
-rw-r--r--projects/05/ComputerRect-external.cmp65
-rw-r--r--projects/05/ComputerRect-external.tst26
-rw-r--r--projects/05/ComputerRect.cmp65
-rw-r--r--projects/05/ComputerRect.out65
-rw-r--r--projects/05/ComputerRect.tst26
-rw-r--r--projects/05/Max.hack16
-rw-r--r--projects/05/Memory.cmp54
-rw-r--r--projects/05/Memory.out54
-rw-r--r--projects/05/Memory.tst163
-rw-r--r--projects/05/Rect.hack25
-rwxr-xr-xprojects/06/Assemblerbin70984 -> 0 bytes
-rw-r--r--projects/06/Assembler.hibin2061 -> 0 bytes
-rw-r--r--projects/06/Assembler.obin81056 -> 0 bytes
-rw-r--r--projects/06/add/Add.asm13
-rw-r--r--projects/06/add/Add.hack6
-rw-r--r--projects/06/max/Max.asm26
-rw-r--r--projects/06/max/Max.hack16
-rw-r--r--projects/06/max/MaxL.asm23
-rw-r--r--projects/06/pong/Pong.asm28375
-rw-r--r--projects/06/pong/Pong.hack27483
-rw-r--r--projects/06/pong/PongL.asm27490
-rw-r--r--projects/06/rect/Rect.asm35
-rw-r--r--projects/06/rect/Rect.hack25
-rw-r--r--projects/06/rect/RectL.asm32
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTest.asm250
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTest.cmp2
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTest.out2
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTest.tst25
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTest.vm31
-rw-r--r--projects/07/MemoryAccess/BasicTest/BasicTestVME.tst25
-rw-r--r--projects/07/MemoryAccess/BasicTest/delme.asm26
-rw-r--r--projects/07/MemoryAccess/BasicTest/delme.vm8
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTest.asm138
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTest.cmp2
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTest.out2
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTest.tst20
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTest.vm22
-rw-r--r--projects/07/MemoryAccess/PointerTest/PointerTestVME.tst20
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTest.asm86
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTest.cmp2
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTest.out2
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTest.tst17
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTest.vm17
-rw-r--r--projects/07/MemoryAccess/StaticTest/StaticTestVME.tst17
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm32
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp2
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.out2
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst17
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm9
-rw-r--r--projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst17
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.asm426
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.cmp4
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.out4
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.tst22
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTest.vm45
-rw-r--r--projects/07/StackArithmetic/StackTest/StackTestVME.tst22
-rwxr-xr-xprojects/07/VMTranslatorbin65152 -> 0 bytes
-rw-r--r--projects/07/VMTranslator.hibin1693 -> 0 bytes
-rw-r--r--projects/07/VMTranslator.hs88
-rw-r--r--projects/07/VMTranslator.obin77480 -> 0 bytes
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm421
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp2
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/FibonacciElement.out2
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst18
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst17
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/Main.vm30
-rw-r--r--projects/08/FunctionCalls/FibonacciElement/Sys.vm15
-rw-r--r--projects/08/FunctionCalls/NestedCall/NestedCall.cmp2
-rw-r--r--projects/08/FunctionCalls/NestedCall/NestedCall.html196
-rw-r--r--projects/08/FunctionCalls/NestedCall/NestedCall.tst65
-rw-r--r--projects/08/FunctionCalls/NestedCall/NestedCallStack.html306
-rw-r--r--projects/08/FunctionCalls/NestedCall/NestedCallVME.tst70
-rw-r--r--projects/08/FunctionCalls/NestedCall/Sys.vm63
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm138
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp2
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunction.out2
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst29
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm16
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunction1.asm137
-rw-r--r--projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst29
-rw-r--r--projects/08/FunctionCalls/StaticsTest/Class1.vm20
-rw-r--r--projects/08/FunctionCalls/StaticsTest/Class2.vm20
-rw-r--r--projects/08/FunctionCalls/StaticsTest/StaticsTest.asm586
-rw-r--r--projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp2
-rw-r--r--projects/08/FunctionCalls/StaticsTest/StaticsTest.out2
-rw-r--r--projects/08/FunctionCalls/StaticsTest/StaticsTest.tst17
-rw-r--r--projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst17
-rw-r--r--projects/08/FunctionCalls/StaticsTest/Sys.vm20
-rw-r--r--projects/08/ProgramFlow/BasicLoop/BasicLoop.asm133
-rw-r--r--projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp2
-rw-r--r--projects/08/ProgramFlow/BasicLoop/BasicLoop.out2
-rw-r--r--projects/08/ProgramFlow/BasicLoop/BasicLoop.tst20
-rw-r--r--projects/08/ProgramFlow/BasicLoop/BasicLoop.vm22
-rw-r--r--projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst20
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm234
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp2
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.out2
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst22
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm49
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries1.asm241
-rw-r--r--projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst22
-rwxr-xr-xprojects/08/VMTranslatorbin93880 -> 0 bytes
-rw-r--r--projects/08/VMTranslator.hibin2434 -> 0 bytes
-rw-r--r--projects/08/VMTranslator.obin118760 -> 0 bytes
-rw-r--r--projects/09/Average/Main.jack27
-rw-r--r--projects/09/BitmapEditor/BitmapEditor.html200
-rw-r--r--projects/09/BitmapEditor/BitmapEditor.iml10
-rw-r--r--projects/09/Fraction/Fraction.jack65
-rw-r--r--projects/09/Fraction/Main.jack16
-rw-r--r--projects/09/HelloWorld/HelloWorld.asm923
-rw-r--r--projects/09/HelloWorld/Main.jack14
-rw-r--r--projects/09/HelloWorld/Main.vm33
-rw-r--r--projects/09/Jack OS API.pdfbin108857 -> 0 bytes
-rw-r--r--projects/09/K/Board.vm1465
-rw-r--r--projects/09/K/K.txt25
-rw-r--r--projects/09/K/KGame.vm169
-rw-r--r--projects/09/K/Main.vm13
-rw-r--r--projects/09/List/List.jack46
-rw-r--r--projects/09/List/Main.jack17
-rw-r--r--projects/09/Square/Main.jack15
-rw-r--r--projects/09/Square/Main.vm11
-rw-r--r--projects/09/Square/Square.asm6346
-rw-r--r--projects/09/Square/Square.jack108
-rw-r--r--projects/09/Square/Square.vm304
-rw-r--r--projects/09/Square/SquareGame.jack79
-rw-r--r--projects/09/Square/SquareGame.vm179
-rw-r--r--projects/10/.gitignore1
-rw-r--r--projects/10/ArrayTest/Main.ast1
-rw-r--r--projects/10/ArrayTest/Main.jack38
-rw-r--r--projects/10/ArrayTest/Main.xml286
-rw-r--r--projects/10/ArrayTest/MainT.xml142
-rw-r--r--projects/10/ExpressionLessSquare/Main.ast1
-rw-r--r--projects/10/ExpressionLessSquare/Main.jack36
-rw-r--r--projects/10/ExpressionLessSquare/Main.xml205
-rw-r--r--projects/10/ExpressionLessSquare/MainT.xml109
-rw-r--r--projects/10/ExpressionLessSquare/Square.ast1
-rw-r--r--projects/10/ExpressionLessSquare/Square.jack99
-rw-r--r--projects/10/ExpressionLessSquare/Square.xml967
-rw-r--r--projects/10/ExpressionLessSquare/SquareGame.ast1
-rw-r--r--projects/10/ExpressionLessSquare/SquareGame.jack60
-rw-r--r--projects/10/ExpressionLessSquare/SquareGame.xml544
-rw-r--r--projects/10/ExpressionLessSquare/SquareGameT.xml268
-rw-r--r--projects/10/ExpressionLessSquare/SquareT.xml449
-rwxr-xr-xprojects/10/JackParserbin206568 -> 0 bytes
-rw-r--r--projects/10/JackParser.hibin9897 -> 0 bytes
-rw-r--r--projects/10/JackParser.hs312
-rw-r--r--projects/10/JackParser.obin299112 -> 0 bytes
-rw-r--r--projects/10/Square/Main.ast1
-rw-r--r--projects/10/Square/Main.jack36
-rw-r--r--projects/10/Square/Main.xml244
-rw-r--r--projects/10/Square/MainT.xml126
-rw-r--r--projects/10/Square/Square.ast1
-rw-r--r--projects/10/Square/Square.jack110
-rw-r--r--projects/10/Square/Square.xml1211
-rw-r--r--projects/10/Square/SquareGame.ast1
-rw-r--r--projects/10/Square/SquareGame.jack81
-rw-r--r--projects/10/Square/SquareGame.xml643
-rw-r--r--projects/10/Square/SquareGameT.xml315
-rw-r--r--projects/10/Square/SquareT.xml561
-rw-r--r--projects/10/jackspec.wiki3
-rw-r--r--projects/10/spec10
-rw-r--r--projects/10/spec1.pngbin224788 -> 0 bytes
-rw-r--r--projects/10/spec2.pngbin152598 -> 0 bytes
-rw-r--r--projects/10/test/Main.ast1
-rw-r--r--projects/10/test/Main.jack30
-rw-r--r--projects/11/Average/Main.jack29
-rw-r--r--projects/11/Average/Main.vm147
-rw-r--r--projects/11/ComplexArrays/Main.jack70
-rw-r--r--projects/11/ComplexArrays/Main.vm681
-rw-r--r--projects/11/ConvertToBin/Main.jack84
-rw-r--r--projects/11/ConvertToBin/Main.vm110
-rw-r--r--projects/11/ConvertToBin/setram.tst3
-rwxr-xr-xprojects/11/JackCompilerbin284520 -> 0 bytes
-rw-r--r--projects/11/JackCompiler.hibin10319 -> 0 bytes
-rw-r--r--projects/11/JackCompiler.obin409680 -> 0 bytes
-rw-r--r--projects/11/K/Board.jack305
-rw-r--r--projects/11/K/Board.vm1183
-rw-r--r--projects/11/K/K.txt25
-rw-r--r--projects/11/K/KGame.jack34
-rw-r--r--projects/11/K/KGame.vm74
-rw-r--r--projects/11/K/Main.jack9
-rw-r--r--projects/11/K/Main.vm11
-rw-r--r--projects/11/Pong/Ball.jack203
-rw-r--r--projects/11/Pong/Ball.vm427
-rw-r--r--projects/11/Pong/Bat.jack103
-rw-r--r--projects/11/Pong/Bat.vm204
-rw-r--r--projects/11/Pong/Main.jack20
-rw-r--r--projects/11/Pong/Main.vm13
-rw-r--r--projects/11/Pong/PongGame.jack137
-rw-r--r--projects/11/Pong/PongGame.vm309
-rw-r--r--projects/11/Seven/Main.jack17
-rw-r--r--projects/11/Seven/Main.vm10
-rw-r--r--projects/11/Square/Main.jack17
-rw-r--r--projects/11/Square/Main.vm11
-rw-r--r--projects/11/Square/Square.jack110
-rw-r--r--projects/11/Square/Square.vm298
-rw-r--r--projects/11/Square/SquareGame.jack81
-rw-r--r--projects/11/Square/SquareGame.vm168
-rw-r--r--projects/11/Test.jack7
-rw-r--r--projects/11/systemsub.txt59
-rw-r--r--projects/11/systemsub1.txt42
-rw-r--r--projects/12/ArrayTest/Array.jack26
-rw-r--r--projects/12/ArrayTest/Array.vm12
-rw-r--r--projects/12/ArrayTest/ArrayTest.cmp2
-rw-r--r--projects/12/ArrayTest/ArrayTest.out2
-rw-r--r--projects/12/ArrayTest/ArrayTest.tst15
-rw-r--r--projects/12/ArrayTest/Main.jack40
-rw-r--r--projects/12/ArrayTest/Main.vm131
-rw-r--r--projects/12/KeyboardTest/Keyboard.jack97
-rw-r--r--projects/12/KeyboardTest/Keyboard.vm115
-rw-r--r--projects/12/KeyboardTest/KeyboardTestOutput.gifbin12048 -> 0 bytes
-rw-r--r--projects/12/KeyboardTest/Main.jack93
-rw-r--r--projects/12/KeyboardTest/Main.vm949
-rw-r--r--projects/12/MathTest/Main.jack35
-rw-r--r--projects/12/MathTest/Main.vm162
-rw-r--r--projects/12/MathTest/Math.jack158
-rw-r--r--projects/12/MathTest/Math.vm472
-rw-r--r--projects/12/MathTest/MathTest.cmp2
-rw-r--r--projects/12/MathTest/MathTest.out2
-rw-r--r--projects/12/MathTest/MathTest.tst15
-rw-r--r--projects/12/MemoryTest/Main.jack42
-rw-r--r--projects/12/MemoryTest/Main.vm126
-rw-r--r--projects/12/MemoryTest/Memory.jack72
-rw-r--r--projects/12/MemoryTest/Memory.vm258
-rw-r--r--projects/12/MemoryTest/MemoryTest.cmp2
-rw-r--r--projects/12/MemoryTest/MemoryTest.out0
-rw-r--r--projects/12/MemoryTest/MemoryTest.tst15
-rw-r--r--projects/12/OutputTest/Main.jack42
-rw-r--r--projects/12/OutputTest/Main.vm254
-rw-r--r--projects/12/OutputTest/Output.jack281
-rw-r--r--projects/12/OutputTest/Output.vm1757
-rw-r--r--projects/12/OutputTest/OutputTestOutput.gifbin6184 -> 0 bytes
-rw-r--r--projects/12/ScreenTest/Main.jack36
-rw-r--r--projects/12/ScreenTest/Main.vm104
-rw-r--r--projects/12/ScreenTest/Math.jack158
-rw-r--r--projects/12/ScreenTest/Math.vm472
-rw-r--r--projects/12/ScreenTest/Screen.jack138
-rw-r--r--projects/12/ScreenTest/Screen.vm407
-rw-r--r--projects/12/ScreenTest/ScreenTestOutput.gifbin4563 -> 0 bytes
-rw-r--r--projects/12/StringTest/Main.jack83
-rw-r--r--projects/12/StringTest/Main.vm469
-rw-r--r--projects/12/StringTest/String.jack176
-rw-r--r--projects/12/StringTest/String.vm917
-rw-r--r--projects/12/StringTest/StringTestOutput.gifbin8126 -> 0 bytes
-rw-r--r--projects/12/SysTest/Main.jack31
-rw-r--r--projects/12/SysTest/Main.vm281
-rw-r--r--projects/12/SysTest/Sys.jack51
-rw-r--r--projects/12/SysTest/Sys.vm74
-rw-r--r--projects/13/more fun to go.txt9
-rw-r--r--projects/demo/Xor.cmp5
-rw-r--r--projects/demo/Xor.hdl25
-rw-r--r--projects/demo/Xor.out0
-rw-r--r--projects/demo/Xor.tst29
-rw-r--r--tools/.DS_Storebin8196 -> 0 bytes
-rw-r--r--tools/Assembler.bat27
-rwxr-xr-xtools/Assembler.sh32
-rw-r--r--tools/CPUEmulator.bat29
-rwxr-xr-xtools/CPUEmulator.sh33
-rw-r--r--tools/HardwareSimulator.bat30
-rwxr-xr-xtools/HardwareSimulator.sh34
-rw-r--r--tools/JackCompiler.bat26
-rwxr-xr-xtools/JackCompiler.sh35
-rw-r--r--tools/OS/Array.vm23
-rw-r--r--tools/OS/Keyboard.vm102
-rw-r--r--tools/OS/Math.vm408
-rw-r--r--tools/OS/Memory.vm279
-rw-r--r--tools/OS/Output.vm1852
-rw-r--r--tools/OS/Screen.vm806
-rw-r--r--tools/OS/String.vm393
-rw-r--r--tools/OS/Sys.vm84
-rw-r--r--tools/TextComparer.bat29
-rwxr-xr-xtools/TextComparer.sh36
-rw-r--r--tools/VMEmulator.bat29
-rwxr-xr-xtools/VMEmulator.sh33
-rw-r--r--tools/bin/classes/CPUEmulatorMain.classbin1084 -> 0 bytes
-rw-r--r--tools/bin/classes/HackAssemblerMain.classbin1098 -> 0 bytes
-rw-r--r--tools/bin/classes/HardwareSimulatorMain.classbin1182 -> 0 bytes
-rw-r--r--tools/bin/classes/TextComparer.classbin1739 -> 0 bytes
-rw-r--r--tools/bin/classes/VMEmulatorMain.classbin1073 -> 0 bytes
-rw-r--r--tools/bin/help/asmAbout.html96
-rw-r--r--tools/bin/help/asmUsage.html115
-rw-r--r--tools/bin/help/compiler.txt9
-rw-r--r--tools/bin/help/cpuAbout.html96
-rw-r--r--tools/bin/help/cpuUsage.html115
-rw-r--r--tools/bin/help/hwAbout.html96
-rw-r--r--tools/bin/help/hwUsage.html115
-rw-r--r--tools/bin/help/vmAbout.html110
-rw-r--r--tools/bin/help/vmUsage.html115
-rw-r--r--tools/bin/images/arrow2.gifbin1073 -> 0 bytes
-rw-r--r--tools/bin/images/calculator2.gifbin302 -> 0 bytes
-rw-r--r--tools/bin/images/cancel.gifbin1133 -> 0 bytes
-rw-r--r--tools/bin/images/chip.gifbin1078 -> 0 bytes
-rw-r--r--tools/bin/images/clock2.gifbin1138 -> 0 bytes
-rw-r--r--tools/bin/images/equal.gifbin1042 -> 0 bytes
-rw-r--r--tools/bin/images/find.gifbin1014 -> 0 bytes
-rw-r--r--tools/bin/images/hex.gifbin1422 -> 0 bytes
-rw-r--r--tools/bin/images/keyboard.gifbin1017 -> 0 bytes
-rw-r--r--tools/bin/images/ok.gifbin988 -> 0 bytes
-rw-r--r--tools/bin/images/ok2.gifbin920 -> 0 bytes
-rw-r--r--tools/bin/images/open.gifbin930 -> 0 bytes
-rw-r--r--tools/bin/images/open2.gifbin969 -> 0 bytes
-rw-r--r--tools/bin/images/opendoc.gifbin1094 -> 0 bytes
-rw-r--r--tools/bin/images/redflag.gifbin1100 -> 0 bytes
-rw-r--r--tools/bin/images/save.gifbin1257 -> 0 bytes
-rw-r--r--tools/bin/images/scroll.gifbin949 -> 0 bytes
-rw-r--r--tools/bin/images/smallcancel.gifbin946 -> 0 bytes
-rw-r--r--tools/bin/images/smallequal.gifbin898 -> 0 bytes
-rw-r--r--tools/bin/images/smallminus.gifbin863 -> 0 bytes
-rw-r--r--tools/bin/images/smallnew.gifbin1000 -> 0 bytes
-rw-r--r--tools/bin/images/smallok.gifbin925 -> 0 bytes
-rw-r--r--tools/bin/images/smallplus.gifbin873 -> 0 bytes
-rw-r--r--tools/bin/images/vcrfastforward.gifbin1122 -> 0 bytes
-rw-r--r--tools/bin/images/vcrforward.gifbin1021 -> 0 bytes
-rw-r--r--tools/bin/images/vcrrewind.gifbin1122 -> 0 bytes
-rw-r--r--tools/bin/images/vcrstop.gifbin972 -> 0 bytes
-rw-r--r--tools/bin/lib/AssemblerGUI.jarbin4470 -> 0 bytes
-rw-r--r--tools/bin/lib/Compilers.jarbin27094 -> 0 bytes
-rw-r--r--tools/bin/lib/Hack.jarbin59364 -> 0 bytes
-rw-r--r--tools/bin/lib/HackGUI.jarbin96666 -> 0 bytes
-rw-r--r--tools/bin/lib/Simulators.jarbin81810 -> 0 bytes
-rw-r--r--tools/bin/lib/SimulatorsGUI.jarbin68492 -> 0 bytes
-rw-r--r--tools/bin/lib/TranslatorsGUI.jarbin13643 -> 0 bytes
-rw-r--r--tools/bin/scripts/defaultCPU.txt3
-rw-r--r--tools/bin/scripts/defaultHW.txt4
-rw-r--r--tools/bin/scripts/defaultVM.txt3
-rw-r--r--tools/builtInChips/ALU.classbin1754 -> 0 bytes
-rw-r--r--tools/builtInChips/ALU.hdl55
-rw-r--r--tools/builtInChips/ARegister.classbin337 -> 0 bytes
-rw-r--r--tools/builtInChips/ARegister.hdl24
-rw-r--r--tools/builtInChips/Add16.classbin343 -> 0 bytes
-rw-r--r--tools/builtInChips/Add16.hdl18
-rw-r--r--tools/builtInChips/And.classbin341 -> 0 bytes
-rw-r--r--tools/builtInChips/And.hdl16
-rw-r--r--tools/builtInChips/And16.hdl17
-rw-r--r--tools/builtInChips/Bit.classbin416 -> 0 bytes
-rw-r--r--tools/builtInChips/Bit.hdl19
-rw-r--r--tools/builtInChips/DFF.classbin401 -> 0 bytes
-rw-r--r--tools/builtInChips/DFF.hdl18
-rw-r--r--tools/builtInChips/DMux.classbin365 -> 0 bytes
-rw-r--r--tools/builtInChips/DMux.hdl20
-rw-r--r--tools/builtInChips/DMux4Way.classbin408 -> 0 bytes
-rw-r--r--tools/builtInChips/DMux4Way.hdl22
-rw-r--r--tools/builtInChips/DMux8Way.classbin488 -> 0 bytes
-rw-r--r--tools/builtInChips/DMux8Way.hdl22
-rw-r--r--tools/builtInChips/DRegister.classbin339 -> 0 bytes
-rw-r--r--tools/builtInChips/DRegister.hdl24
-rw-r--r--tools/builtInChips/FullAdder.classbin380 -> 0 bytes
-rw-r--r--tools/builtInChips/FullAdder.hdl19
-rw-r--r--tools/builtInChips/HalfAdder.classbin360 -> 0 bytes
-rw-r--r--tools/builtInChips/HalfAdder.hdl18
-rw-r--r--tools/builtInChips/Inc16.classbin333 -> 0 bytes
-rw-r--r--tools/builtInChips/Inc16.hdl18
-rw-r--r--tools/builtInChips/Keyboard.classbin1709 -> 0 bytes
-rw-r--r--tools/builtInChips/Keyboard.hdl23
-rw-r--r--tools/builtInChips/Mux.classbin356 -> 0 bytes
-rw-r--r--tools/builtInChips/Mux.hdl16
-rw-r--r--tools/builtInChips/Mux16.hdl16
-rw-r--r--tools/builtInChips/Mux4Way16.classbin435 -> 0 bytes
-rw-r--r--tools/builtInChips/Mux4Way16.hdl21
-rw-r--r--tools/builtInChips/Mux8Way16.classbin527 -> 0 bytes
-rw-r--r--tools/builtInChips/Mux8Way16.hdl24
-rw-r--r--tools/builtInChips/Nand.classbin344 -> 0 bytes
-rw-r--r--tools/builtInChips/Nand.hdl16
-rw-r--r--tools/builtInChips/Not.classbin331 -> 0 bytes
-rw-r--r--tools/builtInChips/Not.hdl16
-rw-r--r--tools/builtInChips/Not16.classbin327 -> 0 bytes
-rw-r--r--tools/builtInChips/Not16.hdl16
-rw-r--r--tools/builtInChips/Or.classbin340 -> 0 bytes
-rw-r--r--tools/builtInChips/Or.hdl16
-rw-r--r--tools/builtInChips/Or16.hdl16
-rw-r--r--tools/builtInChips/Or8Way.classbin340 -> 0 bytes
-rw-r--r--tools/builtInChips/Or8Way.hdl16
-rw-r--r--tools/builtInChips/PC.classbin1899 -> 0 bytes
-rw-r--r--tools/builtInChips/PC.hdl22
-rw-r--r--tools/builtInChips/RAM.classbin1928 -> 0 bytes
-rw-r--r--tools/builtInChips/RAM16K.classbin390 -> 0 bytes
-rw-r--r--tools/builtInChips/RAM16K.hdl24
-rw-r--r--tools/builtInChips/RAM4K.classbin309 -> 0 bytes
-rw-r--r--tools/builtInChips/RAM4K.hdl24
-rw-r--r--tools/builtInChips/RAM512.classbin311 -> 0 bytes
-rw-r--r--tools/builtInChips/RAM512.hdl24
-rw-r--r--tools/builtInChips/RAM64.classbin308 -> 0 bytes
-rw-r--r--tools/builtInChips/RAM64.hdl24
-rw-r--r--tools/builtInChips/RAM8.classbin306 -> 0 bytes
-rw-r--r--tools/builtInChips/RAM8.hdl24
-rw-r--r--tools/builtInChips/ROM32K.classbin3469 -> 0 bytes
-rw-r--r--tools/builtInChips/ROM32K.hdl30
-rw-r--r--tools/builtInChips/Register.classbin423 -> 0 bytes
-rw-r--r--tools/builtInChips/Register.hdl19
-rw-r--r--tools/builtInChips/RegisterWithGUI.classbin1769 -> 0 bytes
-rw-r--r--tools/builtInChips/Screen.classbin1322 -> 0 bytes
-rw-r--r--tools/builtInChips/Screen.hdl35
-rw-r--r--tools/builtInChips/Xor.classbin341 -> 0 bytes
-rw-r--r--tools/builtInChips/Xor.hdl16
-rw-r--r--tools/builtInVMCode/Array.classbin436 -> 0 bytes
-rw-r--r--tools/builtInVMCode/JackOSClass.classbin1782 -> 0 bytes
-rw-r--r--tools/builtInVMCode/Keyboard.classbin1362 -> 0 bytes
-rw-r--r--tools/builtInVMCode/Math.classbin650 -> 0 bytes
-rw-r--r--tools/builtInVMCode/Memory.classbin788 -> 0 bytes
-rw-r--r--tools/builtInVMCode/Output.classbin4264 -> 0 bytes
-rw-r--r--tools/builtInVMCode/Screen.classbin1921 -> 0 bytes
-rw-r--r--tools/builtInVMCode/String.classbin1630 -> 0 bytes
-rw-r--r--tools/builtInVMCode/Sys.classbin1885 -> 0 bytes
579 files changed, 46 insertions, 137061 deletions
diff --git a/projects/06/Assembler.hs b/Assembler.hs
index fb69f07..ca79a48 100644
--- a/projects/06/Assembler.hs
+++ b/Assembler.hs
@@ -1,3 +1,6 @@
+-- Assembler for Hack Computer
+-- Coursework for Nand2Tetris
+-- Author: Yuchen Pei (me@ypei.me)
import Numeric (showIntAtBase)
import Data.Char (intToDigit)
import Data.Map (Map)
diff --git a/projects/11/JackCompiler.hs b/JackCompiler.hs
index bf3acfe..f651f62 100644
--- a/projects/11/JackCompiler.hs
+++ b/JackCompiler.hs
@@ -1,4 +1,4 @@
--- Jack Compiler, as the coursework of Project 11 of Nand2Tetris course.
+-- Jack Compiler, as the coursework of Project 11 of Nand2Tetris course (http://nand2tetris.org/).
-- Author: Yuchen Pei (me@ypei.me)
-- Date: 2018-01-15
{-# LANGUAGE FlexibleContexts #-}
@@ -15,7 +15,6 @@ import Control.Monad
import Data.Char
import Data.Map (Map)
import qualified Data.Map as Map
-import Debug.Trace
data JClass = JClass JIdentifier [JClassVarDec] [JSubroutineDec] deriving (Show, Eq)
data JClassVarDec = JClassVarDec JClassVarScope JTypeAndId deriving (Show, Eq)
diff --git a/projects/09/K/Board.jack b/K/Board.jack
index 91a8d98..d598093 100644
--- a/projects/09/K/Board.jack
+++ b/K/Board.jack
@@ -1,3 +1,9 @@
+/**
+- K: a 2048 clone written in Jack language
+- Coursework for Nand2Tetris (http://nand2tetris.org/)
+- Author: Yuchen Pei (me@ypei.me)
+- This file: the board model for the K game
+*/
class Board {
field Array grid;
field int nTurn, seed, status; // status: 0: begin game; 1: in game; 2: lose; 3: win;
diff --git a/K/K.md b/K/K.md
new file mode 100644
index 0000000..0130662
--- /dev/null
+++ b/K/K.md
@@ -0,0 +1,9 @@
+K is a clone of 2048. Instead of aiming for the 11th power of 2, the goal of this game is to reach the 11th letter in the alphabet, which is 'K'.
+Written in Jack, a minimal OOP language created by creators of the [Nand2Tetris course](http://nand2tetris.org).
+
+Controls:
+- Arrow keys to move the letters
+- R to restart
+- Q to quit
+
+Caveats. The pseudorandom number generator is far from industrial strength, so you may notice new letters are more likely to spawn in certain locations than others...
diff --git a/projects/09/K/KGame.jack b/K/KGame.jack
index 017b4e8..277afaf 100644
--- a/projects/09/K/KGame.jack
+++ b/K/KGame.jack
@@ -1,3 +1,9 @@
+/**
+- K: a 2048 clone written in Jack language
+- Coursework for Nand2Tetris (http://nand2tetris.org/)
+- Author: Yuchen Pei (me@ypei.me)
+- This file: the game I/O for the K game
+*/
class KGame{
field Board board;
diff --git a/projects/09/K/Main.jack b/K/Main.jack
index 7f86973..c1b6a79 100644
--- a/projects/09/K/Main.jack
+++ b/K/Main.jack
@@ -1,3 +1,9 @@
+/**
+- K: a 2048 clone written in Jack language
+- Coursework for Nand2Tetris (http://nand2tetris.org/)
+- Author: Yuchen Pei (me@ypei.me)
+- This file: the main file for the K game
+*/
class Main {
function void main() {
var KGame game;
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..be851dd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+My coursework for the [Nand2Tetris Course](http://nand2tetris.org/).
+Of these files my work is licensed under GPLv2+.
+
+File descriptions:
+- `asms`: The Hack assembly programs in [Project 4](http://nand2tetris.org/04.php).
+- `chips`: The hdl files implementing the Hack Computer in Project [1](http://nand2tetris.org/01.php), [2](http://nand2tetris.org/02.php), [3](http://nand2tetris.org/03.php), and [5](http://nand2tetris.org/05.php).
+- `jackos`: The jack files implementing the Jack OS in [Project 12](http://nand2tetris.org/12.php).
+- `K`: A 2048 clone written in the Jack language, to complete [Project 9](http://nand2tetris.org/09.php).
+- `Assembler.hs`: A Haskell implementation of the Hack Assembler, to complete [Project 6](http://nand2tetris.org/06.php).
+- `JackCompiler.hs`: A Haskell implementation of the JackCompiler, for Project [10](http://nand2tetris.org/10.php) and [11](http://nand2tetris.org/11.php).
+- `VMTranslator.hs`: A Haskell implementation of the VMTranslator for Project [7](http://nand2tetris.org/7.php) and [8](http://nand2tetris.org/8.php).
+
diff --git a/projects/08/VMTranslator.hs b/VMTranslator.hs
index d5a7075..9337ab2 100644
--- a/projects/08/VMTranslator.hs
+++ b/VMTranslator.hs
@@ -1,3 +1,6 @@
+--VMTranslator translating vm files to hack assembly language
+--Coursework for Nand2Tetris (http://nand2tetris.org/)
+--Author: Yuchen Pei (me@ypei.me)
--usage: ./VMTranslator path/to/dir/
--will produce path/to/dir/dir.asm from path/to/dir/*.vm
import Data.Char (toUpper)
diff --git a/projects/04/fill/Fill.asm b/asms/Fill.asm
index 16d63e2..16d63e2 100644
--- a/projects/04/fill/Fill.asm
+++ b/asms/Fill.asm
diff --git a/projects/04/mult/Mult.asm b/asms/Mult.asm
index 50bbba0..50bbba0 100644
--- a/projects/04/mult/Mult.asm
+++ b/asms/Mult.asm
diff --git a/chapter 02.pdf b/chapter 02.pdf
deleted file mode 100644
index c79565c..0000000
--- a/chapter 02.pdf
+++ /dev/null
Binary files differ
diff --git a/chapter 04.pdf b/chapter 04.pdf
deleted file mode 100644
index 4f53042..0000000
--- a/chapter 04.pdf
+++ /dev/null
Binary files differ
diff --git a/chapter 05.pdf b/chapter 05.pdf
deleted file mode 100644
index 1955369..0000000
--- a/chapter 05.pdf
+++ /dev/null
Binary files differ
diff --git a/chapter 06.pdf b/chapter 06.pdf
deleted file mode 100644
index e13deb2..0000000
--- a/chapter 06.pdf
+++ /dev/null
Binary files differ
diff --git a/projects/02/ALU.hdl b/chips/ALU.hdl
index 47697a0..47697a0 100644
--- a/projects/02/ALU.hdl
+++ b/chips/ALU.hdl
diff --git a/projects/02/Add16.hdl b/chips/Add16.hdl
index ea3cb80..ea3cb80 100644
--- a/projects/02/Add16.hdl
+++ b/chips/Add16.hdl
diff --git a/projects/01/And.hdl b/chips/And.hdl
index 754e54e..754e54e 100644
--- a/projects/01/And.hdl
+++ b/chips/And.hdl
diff --git a/projects/01/And16.hdl b/chips/And16.hdl
index 10c8603..10c8603 100644
--- a/projects/01/And16.hdl
+++ b/chips/And16.hdl
diff --git a/projects/01/And1With16.hdl b/chips/And1With16.hdl
index c6d412c..c6d412c 100644
--- a/projects/01/And1With16.hdl
+++ b/chips/And1With16.hdl
diff --git a/projects/03/a/Bit.hdl b/chips/Bit.hdl
index 52e0539..52e0539 100644
--- a/projects/03/a/Bit.hdl
+++ b/chips/Bit.hdl
diff --git a/projects/05/CPU.hdl b/chips/CPU.hdl
index aeeac04..aeeac04 100644
--- a/projects/05/CPU.hdl
+++ b/chips/CPU.hdl
diff --git a/projects/05/Computer.hdl b/chips/Computer.hdl
index fdda8e3..fdda8e3 100644
--- a/projects/05/Computer.hdl
+++ b/chips/Computer.hdl
diff --git a/projects/01/DMux.hdl b/chips/DMux.hdl
index b528313..b528313 100644
--- a/projects/01/DMux.hdl
+++ b/chips/DMux.hdl
diff --git a/projects/01/DMux4Way.hdl b/chips/DMux4Way.hdl
index 18b725d..18b725d 100644
--- a/projects/01/DMux4Way.hdl
+++ b/chips/DMux4Way.hdl
diff --git a/projects/01/DMux8Way.hdl b/chips/DMux8Way.hdl
index 6038fa6..6038fa6 100644
--- a/projects/01/DMux8Way.hdl
+++ b/chips/DMux8Way.hdl
diff --git a/projects/02/FullAdder.hdl b/chips/FullAdder.hdl
index 451499f..451499f 100644
--- a/projects/02/FullAdder.hdl
+++ b/chips/FullAdder.hdl
diff --git a/projects/02/HalfAdder.hdl b/chips/HalfAdder.hdl
index 0b40509..0b40509 100644
--- a/projects/02/HalfAdder.hdl
+++ b/chips/HalfAdder.hdl
diff --git a/projects/02/Inc16.hdl b/chips/Inc16.hdl
index 8142695..8142695 100644
--- a/projects/02/Inc16.hdl
+++ b/chips/Inc16.hdl
diff --git a/projects/05/Memory.hdl b/chips/Memory.hdl
index 6aeb8a0..6aeb8a0 100644
--- a/projects/05/Memory.hdl
+++ b/chips/Memory.hdl
diff --git a/projects/01/Mux.hdl b/chips/Mux.hdl
index aac2e36..aac2e36 100644
--- a/projects/01/Mux.hdl
+++ b/chips/Mux.hdl
diff --git a/projects/01/Mux16.hdl b/chips/Mux16.hdl
index ff09c6b..ff09c6b 100644
--- a/projects/01/Mux16.hdl
+++ b/chips/Mux16.hdl
diff --git a/projects/01/Mux4Way16.hdl b/chips/Mux4Way16.hdl
index a47dbae..a47dbae 100644
--- a/projects/01/Mux4Way16.hdl
+++ b/chips/Mux4Way16.hdl
diff --git a/projects/01/Mux8Way16.hdl b/chips/Mux8Way16.hdl
index 6c88945..6c88945 100644
--- a/projects/01/Mux8Way16.hdl
+++ b/chips/Mux8Way16.hdl
diff --git a/projects/01/Not.hdl b/chips/Not.hdl
index e8aac51..e8aac51 100644
--- a/projects/01/Not.hdl
+++ b/chips/Not.hdl
diff --git a/projects/01/Not16.hdl b/chips/Not16.hdl
index f24fdb0..f24fdb0 100644
--- a/projects/01/Not16.hdl
+++ b/chips/Not16.hdl
diff --git a/projects/01/Or.hdl b/chips/Or.hdl
index f539fbf..f539fbf 100644
--- a/projects/01/Or.hdl
+++ b/chips/Or.hdl
diff --git a/projects/01/Or16.hdl b/chips/Or16.hdl
index 4b46ec5..4b46ec5 100644
--- a/projects/01/Or16.hdl
+++ b/chips/Or16.hdl
diff --git a/projects/01/Or8Way.hdl b/chips/Or8Way.hdl
index 495972b..495972b 100644
--- a/projects/01/Or8Way.hdl
+++ b/chips/Or8Way.hdl
diff --git a/projects/03/a/PC.hdl b/chips/PC.hdl
index aba68d1..aba68d1 100644
--- a/projects/03/a/PC.hdl
+++ b/chips/PC.hdl
diff --git a/projects/03/b/RAM16K.hdl b/chips/RAM16K.hdl
index 9c6e89f..9c6e89f 100644
--- a/projects/03/b/RAM16K.hdl
+++ b/chips/RAM16K.hdl
diff --git a/projects/03/b/RAM4K.hdl b/chips/RAM4K.hdl
index cfc2e4f..cfc2e4f 100644
--- a/projects/03/b/RAM4K.hdl
+++ b/chips/RAM4K.hdl
diff --git a/projects/03/b/RAM512.hdl b/chips/RAM512.hdl
index 55f6ea0..55f6ea0 100644
--- a/projects/03/b/RAM512.hdl
+++ b/chips/RAM512.hdl
diff --git a/projects/03/a/RAM64.hdl b/chips/RAM64.hdl
index 269adb1..269adb1 100644
--- a/projects/03/a/RAM64.hdl
+++ b/chips/RAM64.hdl
diff --git a/projects/03/a/RAM8.hdl b/chips/RAM8.hdl
index 2ea13a1..2ea13a1 100644
--- a/projects/03/a/RAM8.hdl
+++ b/chips/RAM8.hdl
diff --git a/projects/03/a/Register.hdl b/chips/Register.hdl
index f4ec7ee..f4ec7ee 100644
--- a/projects/03/a/Register.hdl
+++ b/chips/Register.hdl
diff --git a/projects/01/Xor.hdl b/chips/Xor.hdl
index 5ec4579..5ec4579 100644
--- a/projects/01/Xor.hdl
+++ b/chips/Xor.hdl
diff --git a/projects/12/Array.jack b/jackos/Array.jack
index 343c25c..343c25c 100644
--- a/projects/12/Array.jack
+++ b/jackos/Array.jack
diff --git a/projects/12/Keyboard.jack b/jackos/Keyboard.jack
index a35704a..a35704a 100644
--- a/projects/12/Keyboard.jack
+++ b/jackos/Keyboard.jack
diff --git a/projects/12/Math.jack b/jackos/Math.jack
index 01bce8f..01bce8f 100644
--- a/projects/12/Math.jack
+++ b/jackos/Math.jack
diff --git a/projects/12/Memory.jack b/jackos/Memory.jack
index 54e04aa..54e04aa 100644
--- a/projects/12/Memory.jack
+++ b/jackos/Memory.jack
diff --git a/projects/12/Output.jack b/jackos/Output.jack
index 61b24de..61b24de 100644
--- a/projects/12/Output.jack
+++ b/jackos/Output.jack
diff --git a/projects/12/Screen.jack b/jackos/Screen.jack
index a370ab9..a370ab9 100644
--- a/projects/12/Screen.jack
+++ b/jackos/Screen.jack
diff --git a/projects/12/String.jack b/jackos/String.jack
index 3ef40b2..3ef40b2 100644
--- a/projects/12/String.jack
+++ b/jackos/String.jack
diff --git a/projects/12/Sys.jack b/jackos/Sys.jack
index 53c078c..53c078c 100644
--- a/projects/12/Sys.jack
+++ b/jackos/Sys.jack
diff --git a/lecture 00 introduction.pdf b/lecture 00 introduction.pdf
deleted file mode 100644
index fc3bbac..0000000
--- a/lecture 00 introduction.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 01 Boolean logic.pdf b/lecture 01 Boolean logic.pdf
deleted file mode 100644
index 5c008cc..0000000
--- a/lecture 01 Boolean logic.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 02 Boolean arithmetic.pdf b/lecture 02 Boolean arithmetic.pdf
deleted file mode 100644
index e3d36d4..0000000
--- a/lecture 02 Boolean arithmetic.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 03 sequential logic.pdf b/lecture 03 sequential logic.pdf
deleted file mode 100644
index cd62945..0000000
--- a/lecture 03 sequential logic.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 04 machine language.pdf b/lecture 04 machine language.pdf
deleted file mode 100644
index be12c90..0000000
--- a/lecture 04 machine language.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 05 computer architecture.pdf b/lecture 05 computer architecture.pdf
deleted file mode 100644
index 93de285..0000000
--- a/lecture 05 computer architecture.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 06 assembler.pdf b/lecture 06 assembler.pdf
deleted file mode 100644
index efd84f4..0000000
--- a/lecture 06 assembler.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 07 virtual machine I.pdf b/lecture 07 virtual machine I.pdf
deleted file mode 100644
index c3df8e3..0000000
--- a/lecture 07 virtual machine I.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 08 virtual machine II.pdf b/lecture 08 virtual machine II.pdf
deleted file mode 100644
index a2cd652..0000000
--- a/lecture 08 virtual machine II.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 09 high level language.pdf b/lecture 09 high level language.pdf
deleted file mode 100644
index d97e6f9..0000000
--- a/lecture 09 high level language.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 10 compiler I.pdf b/lecture 10 compiler I.pdf
deleted file mode 100644
index 3719280..0000000
--- a/lecture 10 compiler I.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 11 compiler II.pdf b/lecture 11 compiler II.pdf
deleted file mode 100644
index 4b4aa2b..0000000
--- a/lecture 11 compiler II.pdf
+++ /dev/null
Binary files differ
diff --git a/lecture 12 OS.pdf b/lecture 12 OS.pdf
deleted file mode 100644
index 24f4f87..0000000
--- a/lecture 12 OS.pdf
+++ /dev/null
Binary files differ
diff --git a/projects/00/file.txt b/projects/00/file.txt
deleted file mode 100644
index ff654e3..0000000
--- a/projects/00/file.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-The only purpose of this file is to practice submitting files
-in the Nand to Tetris course websites in Coursera.
-
-There is no need to modify the contents of this file.
-All you have to do is submit it as is, following the
-Project 0 guidelines in the website. \ No newline at end of file
diff --git a/projects/01/And.cmp b/projects/01/And.cmp
deleted file mode 100644
index 75e709a..0000000
--- a/projects/01/And.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 0 |
-| 1 | 0 | 0 |
-| 1 | 1 | 1 |
diff --git a/projects/01/And.out b/projects/01/And.out
deleted file mode 100644
index 8199ca5..0000000
--- a/projects/01/And.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 0 |
-| 1 | 0 | 0 |
-| 1 | 1 | 1 |
diff --git a/projects/01/And.tst b/projects/01/And.tst
deleted file mode 100644
index 7ace19d..0000000
--- a/projects/01/And.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/And.tst
-
-load And.hdl,
-output-file And.out,
-compare-to And.cmp,
-output-list a%B3.1.3 b%B3.1.3 out%B3.1.3;
-
-set a 0,
-set b 0,
-eval,
-output;
-
-set a 0,
-set b 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-eval,
-output;
-
-set a 1,
-set b 1,
-eval,
-output;
diff --git a/projects/01/And16.cmp b/projects/01/And16.cmp
deleted file mode 100644
index 32c8648..0000000
--- a/projects/01/And16.cmp
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0000000000000000 |
-| 1111111111111111 | 1111111111111111 | 1111111111111111 |
-| 1010101010101010 | 0101010101010101 | 0000000000000000 |
-| 0011110011000011 | 0000111111110000 | 0000110011000000 |
-| 0001001000110100 | 1001100001110110 | 0001000000110100 |
diff --git a/projects/01/And16.out b/projects/01/And16.out
deleted file mode 100644
index fb8dbfc..0000000
--- a/projects/01/And16.out
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0000000000000000 |
-| 1111111111111111 | 1111111111111111 | 1111111111111111 |
-| 1010101010101010 | 0101010101010101 | 0000000000000000 |
-| 0011110011000011 | 0000111111110000 | 0000110011000000 |
-| 0001001000110100 | 1001100001110110 | 0001000000110100 |
diff --git a/projects/01/And16.tst b/projects/01/And16.tst
deleted file mode 100644
index c8921e7..0000000
--- a/projects/01/And16.tst
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/And16.tst
-
-load And16.hdl,
-output-file And16.out,
-compare-to And16.cmp,
-output-list a%B1.16.1 b%B1.16.1 out%B1.16.1;
-
-set a %B0000000000000000,
-set b %B0000000000000000,
-eval,
-output;
-
-set a %B0000000000000000,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1111111111111111,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1010101010101010,
-set b %B0101010101010101,
-eval,
-output;
-
-set a %B0011110011000011,
-set b %B0000111111110000,
-eval,
-output;
-
-set a %B0001001000110100,
-set b %B1001100001110110,
-eval,
-output; \ No newline at end of file
diff --git a/projects/01/DMux.cmp b/projects/01/DMux.cmp
deleted file mode 100644
index 6982094..0000000
--- a/projects/01/DMux.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| in | sel | a | b |
-| 0 | 0 | 0 | 0 |
-| 0 | 1 | 0 | 0 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
diff --git a/projects/01/DMux.out b/projects/01/DMux.out
deleted file mode 100644
index 9a92ec0..0000000
--- a/projects/01/DMux.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| in | sel | a | b |
-| 0 | 0 | 0 | 0 |
-| 0 | 1 | 0 | 0 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
diff --git a/projects/01/DMux.tst b/projects/01/DMux.tst
deleted file mode 100644
index 4adbc43..0000000
--- a/projects/01/DMux.tst
+++ /dev/null
@@ -1,27 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/DMux.tst
-
-load DMux.hdl,
-output-file DMux.out,
-compare-to DMux.cmp,
-output-list in%B3.1.3 sel%B3.1.3 a%B3.1.3 b%B3.1.3;
-
-set in 0,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set in 1,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
diff --git a/projects/01/DMux4Way.cmp b/projects/01/DMux4Way.cmp
deleted file mode 100644
index eac35c4..0000000
--- a/projects/01/DMux4Way.cmp
+++ /dev/null
@@ -1,9 +0,0 @@
-| in | sel | a | b | c | d |
-| 0 | 00 | 0 | 0 | 0 | 0 |
-| 0 | 01 | 0 | 0 | 0 | 0 |
-| 0 | 10 | 0 | 0 | 0 | 0 |
-| 0 | 11 | 0 | 0 | 0 | 0 |
-| 1 | 00 | 1 | 0 | 0 | 0 |
-| 1 | 01 | 0 | 1 | 0 | 0 |
-| 1 | 10 | 0 | 0 | 1 | 0 |
-| 1 | 11 | 0 | 0 | 0 | 1 |
diff --git a/projects/01/DMux4Way.out b/projects/01/DMux4Way.out
deleted file mode 100644
index 9dd708f..0000000
--- a/projects/01/DMux4Way.out
+++ /dev/null
@@ -1,9 +0,0 @@
-| in | sel | a | b | c | d |
-| 0 | 00 | 0 | 0 | 0 | 0 |
-| 0 | 01 | 0 | 0 | 0 | 0 |
-| 0 | 10 | 0 | 0 | 0 | 0 |
-| 0 | 11 | 0 | 0 | 0 | 0 |
-| 1 | 00 | 1 | 0 | 0 | 0 |
-| 1 | 01 | 0 | 1 | 0 | 0 |
-| 1 | 10 | 0 | 0 | 1 | 0 |
-| 1 | 11 | 0 | 0 | 0 | 1 |
diff --git a/projects/01/DMux4Way.tst b/projects/01/DMux4Way.tst
deleted file mode 100644
index 6fbbb56..0000000
--- a/projects/01/DMux4Way.tst
+++ /dev/null
@@ -1,43 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/DMux4Way.tst
-
-load DMux4Way.hdl,
-output-file DMux4Way.out,
-compare-to DMux4Way.cmp,
-output-list in%B2.1.2 sel%B2.2.2 a%B2.1.2 b%B2.1.2 c%B2.1.2 d%B2.1.2;
-
-set in 0,
-set sel %B00,
-eval,
-output;
-
-set sel %B01,
-eval,
-output;
-
-set sel %B10,
-eval,
-output;
-
-set sel %B11,
-eval,
-output;
-
-set in 1,
-set sel %B00,
-eval,
-output;
-
-set sel %B01,
-eval,
-output;
-
-set sel %B10,
-eval,
-output;
-
-set sel %B11,
-eval,
-output;
diff --git a/projects/01/DMux8Way.cmp b/projects/01/DMux8Way.cmp
deleted file mode 100644
index 375d44a..0000000
--- a/projects/01/DMux8Way.cmp
+++ /dev/null
@@ -1,17 +0,0 @@
-| in | sel | a | b | c | d | e | f | g | h |
-| 0 | 000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 011 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 101 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 110 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 000 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 001 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 010 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 011 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
-| 1 | 100 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
-| 1 | 101 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
-| 1 | 110 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
-| 1 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
diff --git a/projects/01/DMux8Way.out b/projects/01/DMux8Way.out
deleted file mode 100644
index ebf9304..0000000
--- a/projects/01/DMux8Way.out
+++ /dev/null
@@ -1,17 +0,0 @@
-| in | sel | a | b | c | d | e | f | g | h |
-| 0 | 000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 011 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 101 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 110 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 0 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 000 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 001 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 010 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
-| 1 | 011 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
-| 1 | 100 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
-| 1 | 101 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
-| 1 | 110 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
-| 1 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
diff --git a/projects/01/DMux8Way.tst b/projects/01/DMux8Way.tst
deleted file mode 100644
index 56d827e..0000000
--- a/projects/01/DMux8Way.tst
+++ /dev/null
@@ -1,75 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/DMux8Way.tst
-
-load DMux8Way.hdl,
-output-file DMux8Way.out,
-compare-to DMux8Way.cmp,
-output-list in%B2.1.2 sel%B2.3.2 a%B2.1.2 b%B2.1.2 c%B2.1.2 d%B2.1.2 e%B2.1.2 f%B2.1.2 g%B2.1.2 h%B2.1.2;
-
-set in 0,
-set sel %B000,
-eval,
-output;
-
-set sel %B001,
-eval,
-output;
-
-set sel %B010,
-eval,
-output;
-
-set sel %B011,
-eval,
-output;
-
-set sel %B100,
-eval,
-output;
-
-set sel %B101,
-eval,
-output;
-
-set sel %B110,
-eval,
-output;
-
-set sel %B111,
-eval,
-output;
-
-set in 1,
-set sel %B000,
-eval,
-output;
-
-set sel %B001,
-eval,
-output;
-
-set sel %B010,
-eval,
-output;
-
-set sel %B011,
-eval,
-output;
-
-set sel %B100,
-eval,
-output;
-
-set sel %B101,
-eval,
-output;
-
-set sel %B110,
-eval,
-output;
-
-set sel %B111,
-eval,
-output;
diff --git a/projects/01/Mux.cmp b/projects/01/Mux.cmp
deleted file mode 100644
index 7a5cc5b..0000000
--- a/projects/01/Mux.cmp
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | sel | out |
-| 0 | 0 | 0 | 0 |
-| 0 | 0 | 1 | 0 |
-| 0 | 1 | 0 | 0 |
-| 0 | 1 | 1 | 1 |
-| 1 | 0 | 0 | 1 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
-| 1 | 1 | 1 | 1 |
diff --git a/projects/01/Mux.out b/projects/01/Mux.out
deleted file mode 100644
index e4b51c6..0000000
--- a/projects/01/Mux.out
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | sel | out |
-| 0 | 0 | 0 | 0 |
-| 0 | 0 | 1 | 0 |
-| 0 | 1 | 0 | 0 |
-| 0 | 1 | 1 | 1 |
-| 1 | 0 | 0 | 1 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
-| 1 | 1 | 1 | 1 |
diff --git a/projects/01/Mux.tst b/projects/01/Mux.tst
deleted file mode 100644
index 9b7afd9..0000000
--- a/projects/01/Mux.tst
+++ /dev/null
@@ -1,49 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Mux.tst
-
-load Mux.hdl,
-output-file Mux.out,
-compare-to Mux.cmp,
-output-list a%B3.1.3 b%B3.1.3 sel%B3.1.3 out%B3.1.3;
-
-set a 0,
-set b 0,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set a 0,
-set b 1,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set a 1,
-set b 1,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
diff --git a/projects/01/Mux16.cmp b/projects/01/Mux16.cmp
deleted file mode 100644
index 661ee67..0000000
--- a/projects/01/Mux16.cmp
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | sel | out |
-| 0000000000000000 | 0000000000000000 | 0 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 1 | 0000000000000000 |
-| 0000000000000000 | 0001001000110100 | 0 | 0000000000000000 |
-| 0000000000000000 | 0001001000110100 | 1 | 0001001000110100 |
-| 1001100001110110 | 0000000000000000 | 0 | 1001100001110110 |
-| 1001100001110110 | 0000000000000000 | 1 | 0000000000000000 |
-| 1010101010101010 | 0101010101010101 | 0 | 1010101010101010 |
-| 1010101010101010 | 0101010101010101 | 1 | 0101010101010101 |
diff --git a/projects/01/Mux16.out b/projects/01/Mux16.out
deleted file mode 100644
index d2e472e..0000000
--- a/projects/01/Mux16.out
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | sel | out |
-| 0000000000000000 | 0000000000000000 | 0 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 1 | 0000000000000000 |
-| 0000000000000000 | 0001001000110100 | 0 | 0000000000000000 |
-| 0000000000000000 | 0001001000110100 | 1 | 0001001000110100 |
-| 1001100001110110 | 0000000000000000 | 0 | 1001100001110110 |
-| 1001100001110110 | 0000000000000000 | 1 | 0000000000000000 |
-| 1010101010101010 | 0101010101010101 | 0 | 1010101010101010 |
-| 1010101010101010 | 0101010101010101 | 1 | 0101010101010101 |
diff --git a/projects/01/Mux16.tst b/projects/01/Mux16.tst
deleted file mode 100644
index cf34155..0000000
--- a/projects/01/Mux16.tst
+++ /dev/null
@@ -1,49 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Mux16.tst
-
-load Mux16.hdl,
-output-file Mux16.out,
-compare-to Mux16.cmp,
-output-list a%B1.16.1 b%B1.16.1 sel%D2.1.2 out%B1.16.1;
-
-set a 0,
-set b 0,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set a %B0000000000000000,
-set b %B0001001000110100,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set a %B1001100001110110,
-set b %B0000000000000000,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set a %B1010101010101010,
-set b %B0101010101010101,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output; \ No newline at end of file
diff --git a/projects/01/Mux4Way16.cmp b/projects/01/Mux4Way16.cmp
deleted file mode 100644
index 8704e79..0000000
--- a/projects/01/Mux4Way16.cmp
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | c | d | sel | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 00 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 01 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 10 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 11 | 0000000000000000 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 00 | 0001001000110100 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 01 | 1001100001110110 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 10 | 1010101010101010 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 11 | 0101010101010101 |
diff --git a/projects/01/Mux4Way16.out b/projects/01/Mux4Way16.out
deleted file mode 100644
index 659176d..0000000
--- a/projects/01/Mux4Way16.out
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | c | d | sel | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 00 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 01 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 10 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 11 | 0000000000000000 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 00 | 0001001000110100 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 01 | 1001100001110110 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 10 | 1010101010101010 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 11 | 0101010101010101 |
diff --git a/projects/01/Mux4Way16.tst b/projects/01/Mux4Way16.tst
deleted file mode 100644
index 3f4efa3..0000000
--- a/projects/01/Mux4Way16.tst
+++ /dev/null
@@ -1,49 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Mux4Way16.tst
-
-load Mux4Way16.hdl,
-output-file Mux4Way16.out,
-compare-to Mux4Way16.cmp,
-output-list a%B1.16.1 b%B1.16.1 c%B1.16.1 d%B1.16.1 sel%B2.2.2 out%B1.16.1;
-
-set a 0,
-set b 0,
-set c 0,
-set d 0,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set sel 2,
-eval,
-output;
-
-set sel 3,
-eval,
-output;
-
-set a %B0001001000110100,
-set b %B1001100001110110,
-set c %B1010101010101010,
-set d %B0101010101010101,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set sel 2,
-eval,
-output;
-
-set sel 3,
-eval,
-output;
diff --git a/projects/01/Mux8Way16.cmp b/projects/01/Mux8Way16.cmp
deleted file mode 100644
index 1484e0a..0000000
--- a/projects/01/Mux8Way16.cmp
+++ /dev/null
@@ -1,17 +0,0 @@
-| a | b | c | d | e | f | g | h | sel | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 000 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 001 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 010 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 011 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 100 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 101 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 110 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 111 | 0000000000000000 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 000 | 0001001000110100 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 001 | 0010001101000101 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 010 | 0011010001010110 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 011 | 0100010101100111 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 100 | 0101011001111000 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 101 | 0110011110001001 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 110 | 0111100010011010 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 111 | 1000100110101011 |
diff --git a/projects/01/Mux8Way16.out b/projects/01/Mux8Way16.out
deleted file mode 100644
index 11ff518..0000000
--- a/projects/01/Mux8Way16.out
+++ /dev/null
@@ -1,17 +0,0 @@
-| a | b | c | d | e | f | g | h | sel | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 000 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 001 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 010 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 011 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 100 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 101 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 110 | 0000000000000000 |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 111 | 0000000000000000 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 000 | 0001001000110100 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 001 | 0010001101000101 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 010 | 0011010001010110 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 011 | 0100010101100111 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 100 | 0101011001111000 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 101 | 0110011110001001 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 110 | 0111100010011010 |
-| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 111 | 1000100110101011 |
diff --git a/projects/01/Mux8Way16.tst b/projects/01/Mux8Way16.tst
deleted file mode 100644
index 59bb41c..0000000
--- a/projects/01/Mux8Way16.tst
+++ /dev/null
@@ -1,89 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Mux8Way16.tst
-
-load Mux8Way16.hdl,
-output-file Mux8Way16.out,
-compare-to Mux8Way16.cmp,
-output-list a%B1.16.1 b%B1.16.1 c%B1.16.1 d%B1.16.1 e%B1.16.1 f%B1.16.1 g%B1.16.1 h%B1.16.1 sel%B2.3.2 out%B1.16.1;
-
-set a 0,
-set b 0,
-set c 0,
-set d 0,
-set e 0,
-set f 0,
-set g 0,
-set h 0,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set sel 2,
-eval,
-output;
-
-set sel 3,
-eval,
-output;
-
-set sel 4,
-eval,
-output;
-
-set sel 5,
-eval,
-output;
-
-set sel 6,
-eval,
-output;
-
-set sel 7,
-eval,
-output;
-
-set a %B0001001000110100,
-set b %B0010001101000101,
-set c %B0011010001010110,
-set d %B0100010101100111,
-set e %B0101011001111000,
-set f %B0110011110001001,
-set g %B0111100010011010,
-set h %B1000100110101011,
-set sel 0,
-eval,
-output;
-
-set sel 1,
-eval,
-output;
-
-set sel 2,
-eval,
-output;
-
-set sel 3,
-eval,
-output;
-
-set sel 4,
-eval,
-output;
-
-set sel 5,
-eval,
-output;
-
-set sel 6,
-eval,
-output;
-
-set sel 7,
-eval,
-output;
diff --git a/projects/01/Not.cmp b/projects/01/Not.cmp
deleted file mode 100644
index e8c1191..0000000
--- a/projects/01/Not.cmp
+++ /dev/null
@@ -1,3 +0,0 @@
-| in | out |
-| 0 | 1 |
-| 1 | 0 |
diff --git a/projects/01/Not.out b/projects/01/Not.out
deleted file mode 100644
index 7b64092..0000000
--- a/projects/01/Not.out
+++ /dev/null
@@ -1,3 +0,0 @@
-| in | out |
-| 0 | 1 |
-| 1 | 0 |
diff --git a/projects/01/Not.tst b/projects/01/Not.tst
deleted file mode 100644
index 1e3bbe7..0000000
--- a/projects/01/Not.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Not.tst
-
-load Not.hdl,
-output-file Not.out,
-compare-to Not.cmp,
-output-list in%B3.1.3 out%B3.1.3;
-
-set in 0,
-eval,
-output;
-
-set in 1,
-eval,
-output;
diff --git a/projects/01/Not16.cmp b/projects/01/Not16.cmp
deleted file mode 100644
index 68a5512..0000000
--- a/projects/01/Not16.cmp
+++ /dev/null
@@ -1,6 +0,0 @@
-| in | out |
-| 0000000000000000 | 1111111111111111 |
-| 1111111111111111 | 0000000000000000 |
-| 1010101010101010 | 0101010101010101 |
-| 0011110011000011 | 1100001100111100 |
-| 0001001000110100 | 1110110111001011 |
diff --git a/projects/01/Not16.out b/projects/01/Not16.out
deleted file mode 100644
index ae2ad1d..0000000
--- a/projects/01/Not16.out
+++ /dev/null
@@ -1,6 +0,0 @@
-| in | out |
-| 0000000000000000 | 1111111111111111 |
-| 1111111111111111 | 0000000000000000 |
-| 1010101010101010 | 0101010101010101 |
-| 0011110011000011 | 1100001100111100 |
-| 0001001000110100 | 1110110111001011 |
diff --git a/projects/01/Not16.tst b/projects/01/Not16.tst
deleted file mode 100644
index e7e2c3b..0000000
--- a/projects/01/Not16.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Not16.tst
-
-load Not16.hdl,
-output-file Not16.out,
-compare-to Not16.cmp,
-output-list in%B1.16.1 out%B1.16.1;
-
-set in %B0000000000000000,
-eval,
-output;
-
-set in %B1111111111111111,
-eval,
-output;
-
-set in %B1010101010101010,
-eval,
-output;
-
-set in %B0011110011000011,
-eval,
-output;
-
-set in %B0001001000110100,
-eval,
-output; \ No newline at end of file
diff --git a/projects/01/Or.cmp b/projects/01/Or.cmp
deleted file mode 100644
index dab924c..0000000
--- a/projects/01/Or.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 1 |
-| 1 | 0 | 1 |
-| 1 | 1 | 1 |
diff --git a/projects/01/Or.out b/projects/01/Or.out
deleted file mode 100644
index 8010688..0000000
--- a/projects/01/Or.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 1 |
-| 1 | 0 | 1 |
-| 1 | 1 | 1 |
diff --git a/projects/01/Or.tst b/projects/01/Or.tst
deleted file mode 100644
index 948b6b3..0000000
--- a/projects/01/Or.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Or.tst
-
-load Or.hdl,
-output-file Or.out,
-compare-to Or.cmp,
-output-list a%B3.1.3 b%B3.1.3 out%B3.1.3;
-
-set a 0,
-set b 0,
-eval,
-output;
-
-set a 0,
-set b 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-eval,
-output;
-
-set a 1,
-set b 1,
-eval,
-output;
diff --git a/projects/01/Or16.cmp b/projects/01/Or16.cmp
deleted file mode 100644
index e2c3a30..0000000
--- a/projects/01/Or16.cmp
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1111111111111111 |
-| 1111111111111111 | 1111111111111111 | 1111111111111111 |
-| 1010101010101010 | 0101010101010101 | 1111111111111111 |
-| 0011110011000011 | 0000111111110000 | 0011111111110011 |
-| 0001001000110100 | 1001100001110110 | 1001101001110110 |
diff --git a/projects/01/Or16.out b/projects/01/Or16.out
deleted file mode 100644
index 8664afe..0000000
--- a/projects/01/Or16.out
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1111111111111111 |
-| 1111111111111111 | 1111111111111111 | 1111111111111111 |
-| 1010101010101010 | 0101010101010101 | 1111111111111111 |
-| 0011110011000011 | 0000111111110000 | 0011111111110011 |
-| 0001001000110100 | 1001100001110110 | 1001101001110110 |
diff --git a/projects/01/Or16.tst b/projects/01/Or16.tst
deleted file mode 100644
index ea7b944..0000000
--- a/projects/01/Or16.tst
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Or16.tst
-
-load Or16.hdl,
-output-file Or16.out,
-compare-to Or16.cmp,
-output-list a%B1.16.1 b%B1.16.1 out%B1.16.1;
-
-set a %B0000000000000000,
-set b %B0000000000000000,
-eval,
-output;
-
-set a %B0000000000000000,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1111111111111111,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1010101010101010,
-set b %B0101010101010101,
-eval,
-output;
-
-set a %B0011110011000011,
-set b %B0000111111110000,
-eval,
-output;
-
-set a %B0001001000110100,
-set b %B1001100001110110,
-eval,
-output; \ No newline at end of file
diff --git a/projects/01/Or8Way.cmp b/projects/01/Or8Way.cmp
deleted file mode 100644
index 3f9fd54..0000000
--- a/projects/01/Or8Way.cmp
+++ /dev/null
@@ -1,6 +0,0 @@
-| in | out |
-| 00000000 | 0 |
-| 11111111 | 1 |
-| 00010000 | 1 |
-| 00000001 | 1 |
-| 00100110 | 1 |
diff --git a/projects/01/Or8Way.out b/projects/01/Or8Way.out
deleted file mode 100644
index b9f8d99..0000000
--- a/projects/01/Or8Way.out
+++ /dev/null
@@ -1,6 +0,0 @@
-| in | out |
-| 00000000 | 0 |
-| 11111111 | 1 |
-| 00010000 | 1 |
-| 00000001 | 1 |
-| 00100110 | 1 |
diff --git a/projects/01/Or8Way.tst b/projects/01/Or8Way.tst
deleted file mode 100644
index e6fbba7..0000000
--- a/projects/01/Or8Way.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Or8Way.tst
-
-load Or8Way.hdl,
-output-file Or8Way.out,
-compare-to Or8Way.cmp,
-output-list in%B2.8.2 out%B2.1.2;
-
-set in %B00000000,
-eval,
-output;
-
-set in %B11111111,
-eval,
-output;
-
-set in %B00010000,
-eval,
-output;
-
-set in %B00000001,
-eval,
-output;
-
-set in %B00100110,
-eval,
-output; \ No newline at end of file
diff --git a/projects/01/Xor.cmp b/projects/01/Xor.cmp
deleted file mode 100644
index a1e07b2..0000000
--- a/projects/01/Xor.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 1 |
-| 1 | 0 | 1 |
-| 1 | 1 | 0 |
diff --git a/projects/01/Xor.out b/projects/01/Xor.out
deleted file mode 100644
index 73a8d0c..0000000
--- a/projects/01/Xor.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 1 |
-| 1 | 0 | 1 |
-| 1 | 1 | 0 |
diff --git a/projects/01/Xor.tst b/projects/01/Xor.tst
deleted file mode 100644
index 658cbe5..0000000
--- a/projects/01/Xor.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Xor.tst
-
-load Xor.hdl,
-output-file Xor.out,
-compare-to Xor.cmp,
-output-list a%B3.1.3 b%B3.1.3 out%B3.1.3;
-
-set a 0,
-set b 0,
-eval,
-output;
-
-set a 0,
-set b 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-eval,
-output;
-
-set a 1,
-set b 1,
-eval,
-output;
diff --git a/projects/02/ALU-nostat.cmp b/projects/02/ALU-nostat.cmp
deleted file mode 100644
index 976ab78..0000000
--- a/projects/02/ALU-nostat.cmp
+++ /dev/null
@@ -1,37 +0,0 @@
-| x | y |zx |nx |zy |ny | f |no | out |
-| 0000000000000000 | 1111111111111111 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 1 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 1 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 0 | 1111111111111110 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 1 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 1 | 0 | 1 | 1111111111111111 |
-| 0101101110100000 | 0001111011010010 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 0 | 0 | 0101101110100000 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 0 | 0 | 0001111011010010 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 0 | 1 | 1010010001011111 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 0 | 1 | 1110000100101101 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 1 | 1 | 1010010001100000 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 1 | 1 | 1110000100101110 |
-| 0101101110100000 | 0001111011010010 | 0 | 1 | 1 | 1 | 1 | 1 | 0101101110100001 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 1 | 1 | 1 | 0001111011010011 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 1 | 0 | 0101101110011111 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 1 | 0 | 0001111011010001 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 0 | 0 | 1 | 0 | 0111101001110010 |
-| 0101101110100000 | 0001111011010010 | 0 | 1 | 0 | 0 | 1 | 1 | 0011110011001110 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 0 | 1 | 1 | 1 | 1100001100110010 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 0 | 0 | 0 | 0 | 0001101010000000 |
-| 0101101110100000 | 0001111011010010 | 0 | 1 | 0 | 1 | 0 | 1 | 0101111111110010 |
diff --git a/projects/02/ALU-nostat.tst b/projects/02/ALU-nostat.tst
deleted file mode 100644
index fa3e448..0000000
--- a/projects/02/ALU-nostat.tst
+++ /dev/null
@@ -1,353 +0,0 @@
-// This file is part of the materials accompanying the book
-// "The Elements of Computing Systems" by Nisan and Schocken,
-// MIT Press. Book site: www.idc.ac.il/tecs
-// File name: projects/02/ALU-nostat.tst
-
-// ALU-nostat.tst provides a partial test of the ALU chip.
-// It IS NOT a replacement for ALU.tst.
-
-// ALU-nostat.tst tests only the computation part of the ALU.
-// The 'zr' and 'ng' status outputs are ignored.
-
-// This test lets you concentrate on getting the ALU computation right without the
-// additional task of handling the status outputs.
-
-// Once your ALU passes ALU-nostat.tst you need to test it with ALU.tst.
-// This way, any comparison failures during ALU.tst will be caused by errors in
-// the handling of the 'zr' and 'ng' status outputs.
-
-load ALU.hdl,
-output-file ALU-nostat.out,
-compare-to ALU-nostat.cmp,
-output-list x%B1.16.1 y%B1.16.1 zx%B1.1.1 nx%B1.1.1 zy%B1.1.1
- ny%B1.1.1 f%B1.1.1 no%B1.1.1 out%B1.16.1;
-
-set x %B0000000000000000,
-set y %B1111111111111111,
-
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set x %B101101110100000,
-set y %B001111011010010,
-
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
diff --git a/projects/02/ALU.cmp b/projects/02/ALU.cmp
deleted file mode 100644
index 2ec3a55..0000000
--- a/projects/02/ALU.cmp
+++ /dev/null
@@ -1,37 +0,0 @@
-| x | y |zx |nx |zy |ny | f |no | out |zr |ng |
-| 0000000000000000 | 1111111111111111 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 0 | 1111111111111110 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000010001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 0 | 0000000000000011 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111101110 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 1 | 1111111111111100 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 1 | 1111111111101111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 1 | 1111111111111101 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000010010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 0 | 0000000000010000 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 0 | 0000000000000010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 1 | 0 | 0000000000010100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000001110 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111110010 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 1 | 0 | 1 | 0000000000010011 | 0 | 0 |
diff --git a/projects/02/ALU.out b/projects/02/ALU.out
deleted file mode 100644
index 2424a73..0000000
--- a/projects/02/ALU.out
+++ /dev/null
@@ -1,37 +0,0 @@
-| x | y |zx |nx |zy |ny | f |no | out |zr |ng |
-| 0000000000000000 | 1111111111111111 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 0 | 1111111111111110 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000010001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 0 | 0000000000000011 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111101110 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 1 | 1111111111111100 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 1 | 1111111111101111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 1 | 1111111111111101 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000010010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 0 | 0000000000010000 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 0 | 0000000000000010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 1 | 0 | 0000000000010100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000001110 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111110010 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 1 | 0 | 1 | 0000000000010011 | 0 | 0 |
diff --git a/projects/02/ALU.tst b/projects/02/ALU.tst
deleted file mode 100644
index 9e665b0..0000000
--- a/projects/02/ALU.tst
+++ /dev/null
@@ -1,377 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/ALU.tst
-
-load ALU.hdl,
-output-file ALU.out,
-compare-to ALU.cmp,
-output-list x%B1.16.1 y%B1.16.1 zx%B1.1.1 nx%B1.1.1 zy%B1.1.1
- ny%B1.1.1 f%B1.1.1 no%B1.1.1 out%B1.16.1 zr%B1.1.1
- ng%B1.1.1;
-
-set x %B0000000000000000, // x = 0
-set y %B1111111111111111; // y = -1
-
-// Compute 0
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute 1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute !x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute !y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute -x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x + 1
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y + 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x - 1
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute y - 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x + y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x - y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y - x
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x & y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute x | y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set x %B000000000010001, // x = 17
-set y %B000000000000011; // y = 3
-
-// Compute 0
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute 1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute !x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute !y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute -x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x + 1
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y + 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x - 1
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute y - 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x + y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x - y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y - x
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x & y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute x | y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
diff --git a/projects/02/Add16.cmp b/projects/02/Add16.cmp
deleted file mode 100644
index 76d069c..0000000
--- a/projects/02/Add16.cmp
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1111111111111111 |
-| 1111111111111111 | 1111111111111111 | 1111111111111110 |
-| 1010101010101010 | 0101010101010101 | 1111111111111111 |
-| 0011110011000011 | 0000111111110000 | 0100110010110011 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 |
diff --git a/projects/02/Add16.out b/projects/02/Add16.out
deleted file mode 100644
index 20f9c65..0000000
--- a/projects/02/Add16.out
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1111111111111111 |
-| 1111111111111111 | 1111111111111111 | 1111111111111110 |
-| 1010101010101010 | 0101010101010101 | 1111111111111111 |
-| 0011110011000011 | 0000111111110000 | 0100110010110011 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 |
diff --git a/projects/02/Add16.tst b/projects/02/Add16.tst
deleted file mode 100644
index 85e1be1..0000000
--- a/projects/02/Add16.tst
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/Add16.tst
-
-load Add16.hdl,
-output-file Add16.out,
-compare-to Add16.cmp,
-output-list a%B1.16.1 b%B1.16.1 out%B1.16.1;
-
-set a %B0000000000000000,
-set b %B0000000000000000,
-eval,
-output;
-
-set a %B0000000000000000,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1111111111111111,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1010101010101010,
-set b %B0101010101010101,
-eval,
-output;
-
-set a %B0011110011000011,
-set b %B0000111111110000,
-eval,
-output;
-
-set a %B0001001000110100,
-set b %B1001100001110110,
-eval,
-output;
diff --git a/projects/02/FullAdder.cmp b/projects/02/FullAdder.cmp
deleted file mode 100644
index 84551aa..0000000
--- a/projects/02/FullAdder.cmp
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | c | sum | carry |
-| 0 | 0 | 0 | 0 | 0 |
-| 0 | 0 | 1 | 1 | 0 |
-| 0 | 1 | 0 | 1 | 0 |
-| 0 | 1 | 1 | 0 | 1 |
-| 1 | 0 | 0 | 1 | 0 |
-| 1 | 0 | 1 | 0 | 1 |
-| 1 | 1 | 0 | 0 | 1 |
-| 1 | 1 | 1 | 1 | 1 |
diff --git a/projects/02/FullAdder.out b/projects/02/FullAdder.out
deleted file mode 100644
index 610181f..0000000
--- a/projects/02/FullAdder.out
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | c | sum | carry |
-| 0 | 0 | 0 | 0 | 0 |
-| 0 | 0 | 1 | 1 | 0 |
-| 0 | 1 | 0 | 1 | 0 |
-| 0 | 1 | 1 | 0 | 1 |
-| 1 | 0 | 0 | 1 | 0 |
-| 1 | 0 | 1 | 0 | 1 |
-| 1 | 1 | 0 | 0 | 1 |
-| 1 | 1 | 1 | 1 | 1 |
diff --git a/projects/02/FullAdder.tst b/projects/02/FullAdder.tst
deleted file mode 100644
index 5125cee..0000000
--- a/projects/02/FullAdder.tst
+++ /dev/null
@@ -1,47 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/FullAdder.tst
-
-load FullAdder.hdl,
-output-file FullAdder.out,
-compare-to FullAdder.cmp,
-output-list a%B3.1.3 b%B3.1.3 c%B3.1.3 sum%B3.1.3 carry%B3.1.3;
-
-set a 0,
-set b 0,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
-
-set b 1,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
-
-set b 1,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
diff --git a/projects/02/HalfAdder.cmp b/projects/02/HalfAdder.cmp
deleted file mode 100644
index 911c770..0000000
--- a/projects/02/HalfAdder.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | sum | carry |
-| 0 | 0 | 0 | 0 |
-| 0 | 1 | 1 | 0 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
diff --git a/projects/02/HalfAdder.out b/projects/02/HalfAdder.out
deleted file mode 100644
index 612c8e3..0000000
--- a/projects/02/HalfAdder.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | sum | carry |
-| 0 | 0 | 0 | 0 |
-| 0 | 1 | 1 | 0 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
diff --git a/projects/02/HalfAdder.tst b/projects/02/HalfAdder.tst
deleted file mode 100644
index 069b8ea..0000000
--- a/projects/02/HalfAdder.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/HalfAdder.tst
-
-load HalfAdder.hdl,
-output-file HalfAdder.out,
-compare-to HalfAdder.cmp,
-output-list a%B3.1.3 b%B3.1.3 sum%B3.1.3 carry%B3.1.3;
-
-set a 0,
-set b 0,
-eval,
-output;
-
-set a 0,
-set b 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-eval,
-output;
-
-set a 1,
-set b 1,
-eval,
-output;
diff --git a/projects/02/Inc16.cmp b/projects/02/Inc16.cmp
deleted file mode 100644
index 451f563..0000000
--- a/projects/02/Inc16.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| in | out |
-| 0000000000000000 | 0000000000000001 |
-| 1111111111111111 | 0000000000000000 |
-| 0000000000000101 | 0000000000000110 |
-| 1111111111111011 | 1111111111111100 |
diff --git a/projects/02/Inc16.out b/projects/02/Inc16.out
deleted file mode 100644
index 78de1fe..0000000
--- a/projects/02/Inc16.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| in | out |
-| 0000000000000000 | 0000000000000001 |
-| 1111111111111111 | 0000000000000000 |
-| 0000000000000101 | 0000000000000110 |
-| 1111111111111011 | 1111111111111100 |
diff --git a/projects/02/Inc16.tst b/projects/02/Inc16.tst
deleted file mode 100644
index 8537d86..0000000
--- a/projects/02/Inc16.tst
+++ /dev/null
@@ -1,25 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/Inc16.tst
-
-load Inc16.hdl,
-output-file Inc16.out,
-compare-to Inc16.cmp,
-output-list in%B1.16.1 out%B1.16.1;
-
-set in %B0000000000000000, // in = 0
-eval,
-output;
-
-set in %B1111111111111111, // in = -1
-eval,
-output;
-
-set in %B0000000000000101, // in = 5
-eval,
-output;
-
-set in %B1111111111111011, // in = -5
-eval,
-output;
diff --git a/projects/02/Test.hdl b/projects/02/Test.hdl
deleted file mode 100644
index 4b12157..0000000
--- a/projects/02/Test.hdl
+++ /dev/null
@@ -1,8 +0,0 @@
-CHIP Test{
- IN
- x[16], y;
- OUT
- out[16];
- PARTS:
- Mux (a=x, b=true, out=out);
-}
diff --git a/projects/03/a/Bit.cmp b/projects/03/a/Bit.cmp
deleted file mode 100644
index e900ec7..0000000
--- a/projects/03/a/Bit.cmp
+++ /dev/null
@@ -1,215 +0,0 @@
-| time | in |load | out |
-| 0+ | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 |
-| 2 | 0 | 1 | 0 |
-| 2+ | 1 | 0 | 0 |
-| 3 | 1 | 0 | 0 |
-| 3+ | 1 | 1 | 0 |
-| 4 | 1 | 1 | 1 |
-| 4+ | 0 | 0 | 1 |
-| 5 | 0 | 0 | 1 |
-| 5+ | 1 | 0 | 1 |
-| 6 | 1 | 0 | 1 |
-| 6+ | 0 | 1 | 1 |
-| 7 | 0 | 1 | 0 |
-| 7+ | 1 | 1 | 0 |
-| 8 | 1 | 1 | 1 |
-| 8+ | 0 | 0 | 1 |
-| 9 | 0 | 0 | 1 |
-| 9+ | 0 | 0 | 1 |
-| 10 | 0 | 0 | 1 |
-| 10+ | 0 | 0 | 1 |
-| 11 | 0 | 0 | 1 |
-| 11+ | 0 | 0 | 1 |
-| 12 | 0 | 0 | 1 |
-| 12+ | 0 | 0 | 1 |
-| 13 | 0 | 0 | 1 |
-| 13+ | 0 | 0 | 1 |
-| 14 | 0 | 0 | 1 |
-| 14+ | 0 | 0 | 1 |
-| 15 | 0 | 0 | 1 |
-| 15+ | 0 | 0 | 1 |
-| 16 | 0 | 0 | 1 |
-| 16+ | 0 | 0 | 1 |
-| 17 | 0 | 0 | 1 |
-| 17+ | 0 | 0 | 1 |
-| 18 | 0 | 0 | 1 |
-| 18+ | 0 | 0 | 1 |
-| 19 | 0 | 0 | 1 |
-| 19+ | 0 | 0 | 1 |
-| 20 | 0 | 0 | 1 |
-| 20+ | 0 | 0 | 1 |
-| 21 | 0 | 0 | 1 |
-| 21+ | 0 | 0 | 1 |
-| 22 | 0 | 0 | 1 |
-| 22+ | 0 | 0 | 1 |
-| 23 | 0 | 0 | 1 |
-| 23+ | 0 | 0 | 1 |
-| 24 | 0 | 0 | 1 |
-| 24+ | 0 | 0 | 1 |
-| 25 | 0 | 0 | 1 |
-| 25+ | 0 | 0 | 1 |
-| 26 | 0 | 0 | 1 |
-| 26+ | 0 | 0 | 1 |
-| 27 | 0 | 0 | 1 |
-| 27+ | 0 | 0 | 1 |
-| 28 | 0 | 0 | 1 |
-| 28+ | 0 | 0 | 1 |
-| 29 | 0 | 0 | 1 |
-| 29+ | 0 | 0 | 1 |
-| 30 | 0 | 0 | 1 |
-| 30+ | 0 | 0 | 1 |
-| 31 | 0 | 0 | 1 |
-| 31+ | 0 | 0 | 1 |
-| 32 | 0 | 0 | 1 |
-| 32+ | 0 | 0 | 1 |
-| 33 | 0 | 0 | 1 |
-| 33+ | 0 | 0 | 1 |
-| 34 | 0 | 0 | 1 |
-| 34+ | 0 | 0 | 1 |
-| 35 | 0 | 0 | 1 |
-| 35+ | 0 | 0 | 1 |
-| 36 | 0 | 0 | 1 |
-| 36+ | 0 | 0 | 1 |
-| 37 | 0 | 0 | 1 |
-| 37+ | 0 | 0 | 1 |
-| 38 | 0 | 0 | 1 |
-| 38+ | 0 | 0 | 1 |
-| 39 | 0 | 0 | 1 |
-| 39+ | 0 | 0 | 1 |
-| 40 | 0 | 0 | 1 |
-| 40+ | 0 | 0 | 1 |
-| 41 | 0 | 0 | 1 |
-| 41+ | 0 | 0 | 1 |
-| 42 | 0 | 0 | 1 |
-| 42+ | 0 | 0 | 1 |
-| 43 | 0 | 0 | 1 |
-| 43+ | 0 | 0 | 1 |
-| 44 | 0 | 0 | 1 |
-| 44+ | 0 | 0 | 1 |
-| 45 | 0 | 0 | 1 |
-| 45+ | 0 | 0 | 1 |
-| 46 | 0 | 0 | 1 |
-| 46+ | 0 | 0 | 1 |
-| 47 | 0 | 0 | 1 |
-| 47+ | 0 | 0 | 1 |
-| 48 | 0 | 0 | 1 |
-| 48+ | 0 | 0 | 1 |
-| 49 | 0 | 0 | 1 |
-| 49+ | 0 | 0 | 1 |
-| 50 | 0 | 0 | 1 |
-| 50+ | 0 | 0 | 1 |
-| 51 | 0 | 0 | 1 |
-| 51+ | 0 | 0 | 1 |
-| 52 | 0 | 0 | 1 |
-| 52+ | 0 | 0 | 1 |
-| 53 | 0 | 0 | 1 |
-| 53+ | 0 | 0 | 1 |
-| 54 | 0 | 0 | 1 |
-| 54+ | 0 | 0 | 1 |
-| 55 | 0 | 0 | 1 |
-| 55+ | 0 | 0 | 1 |
-| 56 | 0 | 0 | 1 |
-| 56+ | 0 | 0 | 1 |
-| 57 | 0 | 0 | 1 |
-| 57+ | 0 | 1 | 1 |
-| 58 | 0 | 1 | 0 |
-| 58+ | 1 | 0 | 0 |
-| 59 | 1 | 0 | 0 |
-| 59+ | 1 | 0 | 0 |
-| 60 | 1 | 0 | 0 |
-| 60+ | 1 | 0 | 0 |
-| 61 | 1 | 0 | 0 |
-| 61+ | 1 | 0 | 0 |
-| 62 | 1 | 0 | 0 |
-| 62+ | 1 | 0 | 0 |
-| 63 | 1 | 0 | 0 |
-| 63+ | 1 | 0 | 0 |
-| 64 | 1 | 0 | 0 |
-| 64+ | 1 | 0 | 0 |
-| 65 | 1 | 0 | 0 |
-| 65+ | 1 | 0 | 0 |
-| 66 | 1 | 0 | 0 |
-| 66+ | 1 | 0 | 0 |
-| 67 | 1 | 0 | 0 |
-| 67+ | 1 | 0 | 0 |
-| 68 | 1 | 0 | 0 |
-| 68+ | 1 | 0 | 0 |
-| 69 | 1 | 0 | 0 |
-| 69+ | 1 | 0 | 0 |
-| 70 | 1 | 0 | 0 |
-| 70+ | 1 | 0 | 0 |
-| 71 | 1 | 0 | 0 |
-| 71+ | 1 | 0 | 0 |
-| 72 | 1 | 0 | 0 |
-| 72+ | 1 | 0 | 0 |
-| 73 | 1 | 0 | 0 |
-| 73+ | 1 | 0 | 0 |
-| 74 | 1 | 0 | 0 |
-| 74+ | 1 | 0 | 0 |
-| 75 | 1 | 0 | 0 |
-| 75+ | 1 | 0 | 0 |
-| 76 | 1 | 0 | 0 |
-| 76+ | 1 | 0 | 0 |
-| 77 | 1 | 0 | 0 |
-| 77+ | 1 | 0 | 0 |
-| 78 | 1 | 0 | 0 |
-| 78+ | 1 | 0 | 0 |
-| 79 | 1 | 0 | 0 |
-| 79+ | 1 | 0 | 0 |
-| 80 | 1 | 0 | 0 |
-| 80+ | 1 | 0 | 0 |
-| 81 | 1 | 0 | 0 |
-| 81+ | 1 | 0 | 0 |
-| 82 | 1 | 0 | 0 |
-| 82+ | 1 | 0 | 0 |
-| 83 | 1 | 0 | 0 |
-| 83+ | 1 | 0 | 0 |
-| 84 | 1 | 0 | 0 |
-| 84+ | 1 | 0 | 0 |
-| 85 | 1 | 0 | 0 |
-| 85+ | 1 | 0 | 0 |
-| 86 | 1 | 0 | 0 |
-| 86+ | 1 | 0 | 0 |
-| 87 | 1 | 0 | 0 |
-| 87+ | 1 | 0 | 0 |
-| 88 | 1 | 0 | 0 |
-| 88+ | 1 | 0 | 0 |
-| 89 | 1 | 0 | 0 |
-| 89+ | 1 | 0 | 0 |
-| 90 | 1 | 0 | 0 |
-| 90+ | 1 | 0 | 0 |
-| 91 | 1 | 0 | 0 |
-| 91+ | 1 | 0 | 0 |
-| 92 | 1 | 0 | 0 |
-| 92+ | 1 | 0 | 0 |
-| 93 | 1 | 0 | 0 |
-| 93+ | 1 | 0 | 0 |
-| 94 | 1 | 0 | 0 |
-| 94+ | 1 | 0 | 0 |
-| 95 | 1 | 0 | 0 |
-| 95+ | 1 | 0 | 0 |
-| 96 | 1 | 0 | 0 |
-| 96+ | 1 | 0 | 0 |
-| 97 | 1 | 0 | 0 |
-| 97+ | 1 | 0 | 0 |
-| 98 | 1 | 0 | 0 |
-| 98+ | 1 | 0 | 0 |
-| 99 | 1 | 0 | 0 |
-| 99+ | 1 | 0 | 0 |
-| 100 | 1 | 0 | 0 |
-| 100+ | 1 | 0 | 0 |
-| 101 | 1 | 0 | 0 |
-| 101+ | 1 | 0 | 0 |
-| 102 | 1 | 0 | 0 |
-| 102+ | 1 | 0 | 0 |
-| 103 | 1 | 0 | 0 |
-| 103+ | 1 | 0 | 0 |
-| 104 | 1 | 0 | 0 |
-| 104+ | 1 | 0 | 0 |
-| 105 | 1 | 0 | 0 |
-| 105+ | 1 | 0 | 0 |
-| 106 | 1 | 0 | 0 |
-| 106+ | 1 | 0 | 0 |
-| 107 | 1 | 0 | 0 |
diff --git a/projects/03/a/Bit.out b/projects/03/a/Bit.out
deleted file mode 100644
index 165c66d..0000000
--- a/projects/03/a/Bit.out
+++ /dev/null
@@ -1,215 +0,0 @@
-| time | in |load | out |
-| 0+ | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 |
-| 2 | 0 | 1 | 0 |
-| 2+ | 1 | 0 | 0 |
-| 3 | 1 | 0 | 0 |
-| 3+ | 1 | 1 | 0 |
-| 4 | 1 | 1 | 1 |
-| 4+ | 0 | 0 | 1 |
-| 5 | 0 | 0 | 1 |
-| 5+ | 1 | 0 | 1 |
-| 6 | 1 | 0 | 1 |
-| 6+ | 0 | 1 | 1 |
-| 7 | 0 | 1 | 0 |
-| 7+ | 1 | 1 | 0 |
-| 8 | 1 | 1 | 1 |
-| 8+ | 0 | 0 | 1 |
-| 9 | 0 | 0 | 1 |
-| 9+ | 0 | 0 | 1 |
-| 10 | 0 | 0 | 1 |
-| 10+ | 0 | 0 | 1 |
-| 11 | 0 | 0 | 1 |
-| 11+ | 0 | 0 | 1 |
-| 12 | 0 | 0 | 1 |
-| 12+ | 0 | 0 | 1 |
-| 13 | 0 | 0 | 1 |
-| 13+ | 0 | 0 | 1 |
-| 14 | 0 | 0 | 1 |
-| 14+ | 0 | 0 | 1 |
-| 15 | 0 | 0 | 1 |
-| 15+ | 0 | 0 | 1 |
-| 16 | 0 | 0 | 1 |
-| 16+ | 0 | 0 | 1 |
-| 17 | 0 | 0 | 1 |
-| 17+ | 0 | 0 | 1 |
-| 18 | 0 | 0 | 1 |
-| 18+ | 0 | 0 | 1 |
-| 19 | 0 | 0 | 1 |
-| 19+ | 0 | 0 | 1 |
-| 20 | 0 | 0 | 1 |
-| 20+ | 0 | 0 | 1 |
-| 21 | 0 | 0 | 1 |
-| 21+ | 0 | 0 | 1 |
-| 22 | 0 | 0 | 1 |
-| 22+ | 0 | 0 | 1 |
-| 23 | 0 | 0 | 1 |
-| 23+ | 0 | 0 | 1 |
-| 24 | 0 | 0 | 1 |
-| 24+ | 0 | 0 | 1 |
-| 25 | 0 | 0 | 1 |
-| 25+ | 0 | 0 | 1 |
-| 26 | 0 | 0 | 1 |
-| 26+ | 0 | 0 | 1 |
-| 27 | 0 | 0 | 1 |
-| 27+ | 0 | 0 | 1 |
-| 28 | 0 | 0 | 1 |
-| 28+ | 0 | 0 | 1 |
-| 29 | 0 | 0 | 1 |
-| 29+ | 0 | 0 | 1 |
-| 30 | 0 | 0 | 1 |
-| 30+ | 0 | 0 | 1 |
-| 31 | 0 | 0 | 1 |
-| 31+ | 0 | 0 | 1 |
-| 32 | 0 | 0 | 1 |
-| 32+ | 0 | 0 | 1 |
-| 33 | 0 | 0 | 1 |
-| 33+ | 0 | 0 | 1 |
-| 34 | 0 | 0 | 1 |
-| 34+ | 0 | 0 | 1 |
-| 35 | 0 | 0 | 1 |
-| 35+ | 0 | 0 | 1 |
-| 36 | 0 | 0 | 1 |
-| 36+ | 0 | 0 | 1 |
-| 37 | 0 | 0 | 1 |
-| 37+ | 0 | 0 | 1 |
-| 38 | 0 | 0 | 1 |
-| 38+ | 0 | 0 | 1 |
-| 39 | 0 | 0 | 1 |
-| 39+ | 0 | 0 | 1 |
-| 40 | 0 | 0 | 1 |
-| 40+ | 0 | 0 | 1 |
-| 41 | 0 | 0 | 1 |
-| 41+ | 0 | 0 | 1 |
-| 42 | 0 | 0 | 1 |
-| 42+ | 0 | 0 | 1 |
-| 43 | 0 | 0 | 1 |
-| 43+ | 0 | 0 | 1 |
-| 44 | 0 | 0 | 1 |
-| 44+ | 0 | 0 | 1 |
-| 45 | 0 | 0 | 1 |
-| 45+ | 0 | 0 | 1 |
-| 46 | 0 | 0 | 1 |
-| 46+ | 0 | 0 | 1 |
-| 47 | 0 | 0 | 1 |
-| 47+ | 0 | 0 | 1 |
-| 48 | 0 | 0 | 1 |
-| 48+ | 0 | 0 | 1 |
-| 49 | 0 | 0 | 1 |
-| 49+ | 0 | 0 | 1 |
-| 50 | 0 | 0 | 1 |
-| 50+ | 0 | 0 | 1 |
-| 51 | 0 | 0 | 1 |
-| 51+ | 0 | 0 | 1 |
-| 52 | 0 | 0 | 1 |
-| 52+ | 0 | 0 | 1 |
-| 53 | 0 | 0 | 1 |
-| 53+ | 0 | 0 | 1 |
-| 54 | 0 | 0 | 1 |
-| 54+ | 0 | 0 | 1 |
-| 55 | 0 | 0 | 1 |
-| 55+ | 0 | 0 | 1 |
-| 56 | 0 | 0 | 1 |
-| 56+ | 0 | 0 | 1 |
-| 57 | 0 | 0 | 1 |
-| 57+ | 0 | 1 | 1 |
-| 58 | 0 | 1 | 0 |
-| 58+ | 1 | 0 | 0 |
-| 59 | 1 | 0 | 0 |
-| 59+ | 1 | 0 | 0 |
-| 60 | 1 | 0 | 0 |
-| 60+ | 1 | 0 | 0 |
-| 61 | 1 | 0 | 0 |
-| 61+ | 1 | 0 | 0 |
-| 62 | 1 | 0 | 0 |
-| 62+ | 1 | 0 | 0 |
-| 63 | 1 | 0 | 0 |
-| 63+ | 1 | 0 | 0 |
-| 64 | 1 | 0 | 0 |
-| 64+ | 1 | 0 | 0 |
-| 65 | 1 | 0 | 0 |
-| 65+ | 1 | 0 | 0 |
-| 66 | 1 | 0 | 0 |
-| 66+ | 1 | 0 | 0 |
-| 67 | 1 | 0 | 0 |
-| 67+ | 1 | 0 | 0 |
-| 68 | 1 | 0 | 0 |
-| 68+ | 1 | 0 | 0 |
-| 69 | 1 | 0 | 0 |
-| 69+ | 1 | 0 | 0 |
-| 70 | 1 | 0 | 0 |
-| 70+ | 1 | 0 | 0 |
-| 71 | 1 | 0 | 0 |
-| 71+ | 1 | 0 | 0 |
-| 72 | 1 | 0 | 0 |
-| 72+ | 1 | 0 | 0 |
-| 73 | 1 | 0 | 0 |
-| 73+ | 1 | 0 | 0 |
-| 74 | 1 | 0 | 0 |
-| 74+ | 1 | 0 | 0 |
-| 75 | 1 | 0 | 0 |
-| 75+ | 1 | 0 | 0 |
-| 76 | 1 | 0 | 0 |
-| 76+ | 1 | 0 | 0 |
-| 77 | 1 | 0 | 0 |
-| 77+ | 1 | 0 | 0 |
-| 78 | 1 | 0 | 0 |
-| 78+ | 1 | 0 | 0 |
-| 79 | 1 | 0 | 0 |
-| 79+ | 1 | 0 | 0 |
-| 80 | 1 | 0 | 0 |
-| 80+ | 1 | 0 | 0 |
-| 81 | 1 | 0 | 0 |
-| 81+ | 1 | 0 | 0 |
-| 82 | 1 | 0 | 0 |
-| 82+ | 1 | 0 | 0 |
-| 83 | 1 | 0 | 0 |
-| 83+ | 1 | 0 | 0 |
-| 84 | 1 | 0 | 0 |
-| 84+ | 1 | 0 | 0 |
-| 85 | 1 | 0 | 0 |
-| 85+ | 1 | 0 | 0 |
-| 86 | 1 | 0 | 0 |
-| 86+ | 1 | 0 | 0 |
-| 87 | 1 | 0 | 0 |
-| 87+ | 1 | 0 | 0 |
-| 88 | 1 | 0 | 0 |
-| 88+ | 1 | 0 | 0 |
-| 89 | 1 | 0 | 0 |
-| 89+ | 1 | 0 | 0 |
-| 90 | 1 | 0 | 0 |
-| 90+ | 1 | 0 | 0 |
-| 91 | 1 | 0 | 0 |
-| 91+ | 1 | 0 | 0 |
-| 92 | 1 | 0 | 0 |
-| 92+ | 1 | 0 | 0 |
-| 93 | 1 | 0 | 0 |
-| 93+ | 1 | 0 | 0 |
-| 94 | 1 | 0 | 0 |
-| 94+ | 1 | 0 | 0 |
-| 95 | 1 | 0 | 0 |
-| 95+ | 1 | 0 | 0 |
-| 96 | 1 | 0 | 0 |
-| 96+ | 1 | 0 | 0 |
-| 97 | 1 | 0 | 0 |
-| 97+ | 1 | 0 | 0 |
-| 98 | 1 | 0 | 0 |
-| 98+ | 1 | 0 | 0 |
-| 99 | 1 | 0 | 0 |
-| 99+ | 1 | 0 | 0 |
-| 100 | 1 | 0 | 0 |
-| 100+ | 1 | 0 | 0 |
-| 101 | 1 | 0 | 0 |
-| 101+ | 1 | 0 | 0 |
-| 102 | 1 | 0 | 0 |
-| 102+ | 1 | 0 | 0 |
-| 103 | 1 | 0 | 0 |
-| 103+ | 1 | 0 | 0 |
-| 104 | 1 | 0 | 0 |
-| 104+ | 1 | 0 | 0 |
-| 105 | 1 | 0 | 0 |
-| 105+ | 1 | 0 | 0 |
-| 106 | 1 | 0 | 0 |
-| 106+ | 1 | 0 | 0 |
-| 107 | 1 | 0 | 0 |
diff --git a/projects/03/a/Bit.tst b/projects/03/a/Bit.tst
deleted file mode 100644
index c6bf523..0000000
--- a/projects/03/a/Bit.tst
+++ /dev/null
@@ -1,865 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/a/Bit.tst
-
-load Bit.hdl,
-output-file Bit.out,
-compare-to Bit.cmp,
-output-list time%S1.4.1 in%B2.1.2 load%B2.1.2 out%B2.1.2;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 1,
-set load 0,
-tick,
-output;
-
-tock,
-output;
diff --git a/projects/03/a/PC.cmp b/projects/03/a/PC.cmp
deleted file mode 100644
index 6a050d9..0000000
--- a/projects/03/a/PC.cmp
+++ /dev/null
@@ -1,31 +0,0 @@
-| time | in |reset|load | inc | out |
-| 0+ | 0 | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 0 | 0 | 1 | 0 |
-| 2 | 0 | 0 | 0 | 1 | 1 |
-| 2+ | -32123 | 0 | 0 | 1 | 1 |
-| 3 | -32123 | 0 | 0 | 1 | 2 |
-| 3+ | -32123 | 0 | 1 | 1 | 2 |
-| 4 | -32123 | 0 | 1 | 1 | -32123 |
-| 4+ | -32123 | 0 | 0 | 1 | -32123 |
-| 5 | -32123 | 0 | 0 | 1 | -32122 |
-| 5+ | -32123 | 0 | 0 | 1 | -32122 |
-| 6 | -32123 | 0 | 0 | 1 | -32121 |
-| 6+ | 12345 | 0 | 1 | 0 | -32121 |
-| 7 | 12345 | 0 | 1 | 0 | 12345 |
-| 7+ | 12345 | 1 | 1 | 0 | 12345 |
-| 8 | 12345 | 1 | 1 | 0 | 0 |
-| 8+ | 12345 | 0 | 1 | 1 | 0 |
-| 9 | 12345 | 0 | 1 | 1 | 12345 |
-| 9+ | 12345 | 1 | 1 | 1 | 12345 |
-| 10 | 12345 | 1 | 1 | 1 | 0 |
-| 10+ | 12345 | 0 | 0 | 1 | 0 |
-| 11 | 12345 | 0 | 0 | 1 | 1 |
-| 11+ | 12345 | 1 | 0 | 1 | 1 |
-| 12 | 12345 | 1 | 0 | 1 | 0 |
-| 12+ | 0 | 0 | 1 | 1 | 0 |
-| 13 | 0 | 0 | 1 | 1 | 0 |
-| 13+ | 0 | 0 | 0 | 1 | 0 |
-| 14 | 0 | 0 | 0 | 1 | 1 |
-| 14+ | 22222 | 1 | 0 | 0 | 1 |
-| 15 | 22222 | 1 | 0 | 0 | 0 |
diff --git a/projects/03/a/PC.out b/projects/03/a/PC.out
deleted file mode 100644
index 5eca76b..0000000
--- a/projects/03/a/PC.out
+++ /dev/null
@@ -1,31 +0,0 @@
-| time | in |reset|load | inc | out |
-| 0+ | 0 | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 0 | 0 | 1 | 0 |
-| 2 | 0 | 0 | 0 | 1 | 1 |
-| 2+ | -32123 | 0 | 0 | 1 | 1 |
-| 3 | -32123 | 0 | 0 | 1 | 2 |
-| 3+ | -32123 | 0 | 1 | 1 | 2 |
-| 4 | -32123 | 0 | 1 | 1 | -32123 |
-| 4+ | -32123 | 0 | 0 | 1 | -32123 |
-| 5 | -32123 | 0 | 0 | 1 | -32122 |
-| 5+ | -32123 | 0 | 0 | 1 | -32122 |
-| 6 | -32123 | 0 | 0 | 1 | -32121 |
-| 6+ | 12345 | 0 | 1 | 0 | -32121 |
-| 7 | 12345 | 0 | 1 | 0 | 12345 |
-| 7+ | 12345 | 1 | 1 | 0 | 12345 |
-| 8 | 12345 | 1 | 1 | 0 | 0 |
-| 8+ | 12345 | 0 | 1 | 1 | 0 |
-| 9 | 12345 | 0 | 1 | 1 | 12345 |
-| 9+ | 12345 | 1 | 1 | 1 | 12345 |
-| 10 | 12345 | 1 | 1 | 1 | 0 |
-| 10+ | 12345 | 0 | 0 | 1 | 0 |
-| 11 | 12345 | 0 | 0 | 1 | 1 |
-| 11+ | 12345 | 1 | 0 | 1 | 1 |
-| 12 | 12345 | 1 | 0 | 1 | 0 |
-| 12+ | 0 | 0 | 1 | 1 | 0 |
-| 13 | 0 | 0 | 1 | 1 | 0 |
-| 13+ | 0 | 0 | 0 | 1 | 0 |
-| 14 | 0 | 0 | 0 | 1 | 1 |
-| 14+ | 22222 | 1 | 0 | 0 | 1 |
-| 15 | 22222 | 1 | 0 | 0 | 0 |
diff --git a/projects/03/a/PC.tst b/projects/03/a/PC.tst
deleted file mode 100644
index 7f4f3cd..0000000
--- a/projects/03/a/PC.tst
+++ /dev/null
@@ -1,125 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/a/PC.tst
-
-load PC.hdl,
-output-file PC.out,
-compare-to PC.cmp,
-output-list time%S1.4.1 in%D1.6.1 reset%B2.1.2 load%B2.1.2 inc%B2.1.2 out%D1.6.1;
-
-set in 0,
-set reset 0,
-set load 0,
-set inc 0,
-tick,
-output;
-
-tock,
-output;
-
-set inc 1,
-tick,
-output;
-
-tock,
-output;
-
-set in -32123,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-tick,
-output;
-
-tock,
-output;
-
-set in 12345,
-set load 1,
-set inc 0,
-tick,
-output;
-
-tock,
-output;
-
-set reset 1,
-tick,
-output;
-
-tock,
-output;
-
-set reset 0,
-set inc 1,
-tick,
-output;
-
-tock,
-output;
-
-set reset 1,
-tick,
-output;
-
-tock,
-output;
-
-set reset 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set reset 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set reset 0,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set load 0,
-set inc 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 22222,
-set reset 1,
-set inc 0,
-tick,
-output;
-
-tock,
-output;
diff --git a/projects/03/a/RAM64.cmp b/projects/03/a/RAM64.cmp
deleted file mode 100644
index fdb7745..0000000
--- a/projects/03/a/RAM64.cmp
+++ /dev/null
@@ -1,320 +0,0 @@
-| time | in |load |address| out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 1313 | 0 | 0 | 0 |
-| 3 | 1313 | 0 | 0 | 0 |
-| 3+ | 1313 | 1 | 13 | 0 |
-| 4 | 1313 | 1 | 13 | 1313 |
-| 4+ | 1313 | 0 | 0 | 0 |
-| 5 | 1313 | 0 | 0 | 0 |
-| 5+ | 4747 | 0 | 47 | 0 |
-| 6 | 4747 | 0 | 47 | 0 |
-| 6+ | 4747 | 1 | 47 | 0 |
-| 7 | 4747 | 1 | 47 | 4747 |
-| 7+ | 4747 | 0 | 47 | 4747 |
-| 8 | 4747 | 0 | 47 | 4747 |
-| 8 | 4747 | 0 | 13 | 1313 |
-| 8+ | 6363 | 0 | 13 | 1313 |
-| 9 | 6363 | 0 | 13 | 1313 |
-| 9+ | 6363 | 1 | 63 | 0 |
-| 10 | 6363 | 1 | 63 | 6363 |
-| 10+ | 6363 | 0 | 63 | 6363 |
-| 11 | 6363 | 0 | 63 | 6363 |
-| 11 | 6363 | 0 | 47 | 4747 |
-| 11 | 6363 | 0 | 63 | 6363 |
-| 11+ | 6363 | 0 | 40 | 0 |
-| 12 | 6363 | 0 | 40 | 0 |
-| 12 | 6363 | 0 | 41 | 0 |
-| 12 | 6363 | 0 | 42 | 0 |
-| 12 | 6363 | 0 | 43 | 0 |
-| 12 | 6363 | 0 | 44 | 0 |
-| 12 | 6363 | 0 | 45 | 0 |
-| 12 | 6363 | 0 | 46 | 0 |
-| 12 | 6363 | 0 | 47 | 4747 |
-| 12+ | 21845 | 1 | 40 | 0 |
-| 13 | 21845 | 1 | 40 | 21845 |
-| 13+ | 21845 | 1 | 41 | 0 |
-| 14 | 21845 | 1 | 41 | 21845 |
-| 14+ | 21845 | 1 | 42 | 0 |
-| 15 | 21845 | 1 | 42 | 21845 |
-| 15+ | 21845 | 1 | 43 | 0 |
-| 16 | 21845 | 1 | 43 | 21845 |
-| 16+ | 21845 | 1 | 44 | 0 |
-| 17 | 21845 | 1 | 44 | 21845 |
-| 17+ | 21845 | 1 | 45 | 0 |
-| 18 | 21845 | 1 | 45 | 21845 |
-| 18+ | 21845 | 1 | 46 | 0 |
-| 19 | 21845 | 1 | 46 | 21845 |
-| 19+ | 21845 | 1 | 47 | 4747 |
-| 20 | 21845 | 1 | 47 | 21845 |
-| 20+ | 21845 | 0 | 40 | 21845 |
-| 21 | 21845 | 0 | 40 | 21845 |
-| 21 | 21845 | 0 | 41 | 21845 |
-| 21 | 21845 | 0 | 42 | 21845 |
-| 21 | 21845 | 0 | 43 | 21845 |
-| 21 | 21845 | 0 | 44 | 21845 |
-| 21 | 21845 | 0 | 45 | 21845 |
-| 21 | 21845 | 0 | 46 | 21845 |
-| 21 | 21845 | 0 | 47 | 21845 |
-| 21+ | -21846 | 1 | 40 | 21845 |
-| 22 | -21846 | 1 | 40 | -21846 |
-| 22+ | -21846 | 0 | 40 | -21846 |
-| 23 | -21846 | 0 | 40 | -21846 |
-| 23 | -21846 | 0 | 41 | 21845 |
-| 23 | -21846 | 0 | 42 | 21845 |
-| 23 | -21846 | 0 | 43 | 21845 |
-| 23 | -21846 | 0 | 44 | 21845 |
-| 23 | -21846 | 0 | 45 | 21845 |
-| 23 | -21846 | 0 | 46 | 21845 |
-| 23 | -21846 | 0 | 47 | 21845 |
-| 23+ | 21845 | 1 | 40 | -21846 |
-| 24 | 21845 | 1 | 40 | 21845 |
-| 24+ | -21846 | 1 | 41 | 21845 |
-| 25 | -21846 | 1 | 41 | -21846 |
-| 25+ | -21846 | 0 | 40 | 21845 |
-| 26 | -21846 | 0 | 40 | 21845 |
-| 26 | -21846 | 0 | 41 | -21846 |
-| 26 | -21846 | 0 | 42 | 21845 |
-| 26 | -21846 | 0 | 43 | 21845 |
-| 26 | -21846 | 0 | 44 | 21845 |
-| 26 | -21846 | 0 | 45 | 21845 |
-| 26 | -21846 | 0 | 46 | 21845 |
-| 26 | -21846 | 0 | 47 | 21845 |
-| 26+ | 21845 | 1 | 41 | -21846 |
-| 27 | 21845 | 1 | 41 | 21845 |
-| 27+ | -21846 | 1 | 42 | 21845 |
-| 28 | -21846 | 1 | 42 | -21846 |
-| 28+ | -21846 | 0 | 40 | 21845 |
-| 29 | -21846 | 0 | 40 | 21845 |
-| 29 | -21846 | 0 | 41 | 21845 |
-| 29 | -21846 | 0 | 42 | -21846 |
-| 29 | -21846 | 0 | 43 | 21845 |
-| 29 | -21846 | 0 | 44 | 21845 |
-| 29 | -21846 | 0 | 45 | 21845 |
-| 29 | -21846 | 0 | 46 | 21845 |
-| 29 | -21846 | 0 | 47 | 21845 |
-| 29+ | 21845 | 1 | 42 | -21846 |
-| 30 | 21845 | 1 | 42 | 21845 |
-| 30+ | -21846 | 1 | 43 | 21845 |
-| 31 | -21846 | 1 | 43 | -21846 |
-| 31+ | -21846 | 0 | 40 | 21845 |
-| 32 | -21846 | 0 | 40 | 21845 |
-| 32 | -21846 | 0 | 41 | 21845 |
-| 32 | -21846 | 0 | 42 | 21845 |
-| 32 | -21846 | 0 | 43 | -21846 |
-| 32 | -21846 | 0 | 44 | 21845 |
-| 32 | -21846 | 0 | 45 | 21845 |
-| 32 | -21846 | 0 | 46 | 21845 |
-| 32 | -21846 | 0 | 47 | 21845 |
-| 32+ | 21845 | 1 | 43 | -21846 |
-| 33 | 21845 | 1 | 43 | 21845 |
-| 33+ | -21846 | 1 | 44 | 21845 |
-| 34 | -21846 | 1 | 44 | -21846 |
-| 34+ | -21846 | 0 | 40 | 21845 |
-| 35 | -21846 | 0 | 40 | 21845 |
-| 35 | -21846 | 0 | 41 | 21845 |
-| 35 | -21846 | 0 | 42 | 21845 |
-| 35 | -21846 | 0 | 43 | 21845 |
-| 35 | -21846 | 0 | 44 | -21846 |
-| 35 | -21846 | 0 | 45 | 21845 |
-| 35 | -21846 | 0 | 46 | 21845 |
-| 35 | -21846 | 0 | 47 | 21845 |
-| 35+ | 21845 | 1 | 44 | -21846 |
-| 36 | 21845 | 1 | 44 | 21845 |
-| 36+ | -21846 | 1 | 45 | 21845 |
-| 37 | -21846 | 1 | 45 | -21846 |
-| 37+ | -21846 | 0 | 40 | 21845 |
-| 38 | -21846 | 0 | 40 | 21845 |
-| 38 | -21846 | 0 | 41 | 21845 |
-| 38 | -21846 | 0 | 42 | 21845 |
-| 38 | -21846 | 0 | 43 | 21845 |
-| 38 | -21846 | 0 | 44 | 21845 |
-| 38 | -21846 | 0 | 45 | -21846 |
-| 38 | -21846 | 0 | 46 | 21845 |
-| 38 | -21846 | 0 | 47 | 21845 |
-| 38+ | 21845 | 1 | 45 | -21846 |
-| 39 | 21845 | 1 | 45 | 21845 |
-| 39+ | -21846 | 1 | 46 | 21845 |
-| 40 | -21846 | 1 | 46 | -21846 |
-| 40+ | -21846 | 0 | 40 | 21845 |
-| 41 | -21846 | 0 | 40 | 21845 |
-| 41 | -21846 | 0 | 41 | 21845 |
-| 41 | -21846 | 0 | 42 | 21845 |
-| 41 | -21846 | 0 | 43 | 21845 |
-| 41 | -21846 | 0 | 44 | 21845 |
-| 41 | -21846 | 0 | 45 | 21845 |
-| 41 | -21846 | 0 | 46 | -21846 |
-| 41 | -21846 | 0 | 47 | 21845 |
-| 41+ | 21845 | 1 | 46 | -21846 |
-| 42 | 21845 | 1 | 46 | 21845 |
-| 42+ | -21846 | 1 | 47 | 21845 |
-| 43 | -21846 | 1 | 47 | -21846 |
-| 43+ | -21846 | 0 | 40 | 21845 |
-| 44 | -21846 | 0 | 40 | 21845 |
-| 44 | -21846 | 0 | 41 | 21845 |
-| 44 | -21846 | 0 | 42 | 21845 |
-| 44 | -21846 | 0 | 43 | 21845 |
-| 44 | -21846 | 0 | 44 | 21845 |
-| 44 | -21846 | 0 | 45 | 21845 |
-| 44 | -21846 | 0 | 46 | 21845 |
-| 44 | -21846 | 0 | 47 | -21846 |
-| 44+ | 21845 | 1 | 47 | -21846 |
-| 45 | 21845 | 1 | 47 | 21845 |
-| 45+ | 21845 | 0 | 40 | 21845 |
-| 46 | 21845 | 0 | 40 | 21845 |
-| 46 | 21845 | 0 | 41 | 21845 |
-| 46 | 21845 | 0 | 42 | 21845 |
-| 46 | 21845 | 0 | 43 | 21845 |
-| 46 | 21845 | 0 | 44 | 21845 |
-| 46 | 21845 | 0 | 45 | 21845 |
-| 46 | 21845 | 0 | 46 | 21845 |
-| 46 | 21845 | 0 | 47 | 21845 |
-| 46+ | 21845 | 0 | 5 | 0 |
-| 47 | 21845 | 0 | 5 | 0 |
-| 47 | 21845 | 0 | 13 | 1313 |
-| 47 | 21845 | 0 | 21 | 0 |
-| 47 | 21845 | 0 | 29 | 0 |
-| 47 | 21845 | 0 | 37 | 0 |
-| 47 | 21845 | 0 | 45 | 21845 |
-| 47 | 21845 | 0 | 53 | 0 |
-| 47 | 21845 | 0 | 61 | 0 |
-| 47+ | 21845 | 1 | 5 | 0 |
-| 48 | 21845 | 1 | 5 | 21845 |
-| 48+ | 21845 | 1 | 13 | 1313 |
-| 49 | 21845 | 1 | 13 | 21845 |
-| 49+ | 21845 | 1 | 21 | 0 |
-| 50 | 21845 | 1 | 21 | 21845 |
-| 50+ | 21845 | 1 | 29 | 0 |
-| 51 | 21845 | 1 | 29 | 21845 |
-| 51+ | 21845 | 1 | 37 | 0 |
-| 52 | 21845 | 1 | 37 | 21845 |
-| 52+ | 21845 | 1 | 45 | 21845 |
-| 53 | 21845 | 1 | 45 | 21845 |
-| 53+ | 21845 | 1 | 53 | 0 |
-| 54 | 21845 | 1 | 53 | 21845 |
-| 54+ | 21845 | 1 | 61 | 0 |
-| 55 | 21845 | 1 | 61 | 21845 |
-| 55+ | 21845 | 0 | 5 | 21845 |
-| 56 | 21845 | 0 | 5 | 21845 |
-| 56 | 21845 | 0 | 13 | 21845 |
-| 56 | 21845 | 0 | 21 | 21845 |
-| 56 | 21845 | 0 | 29 | 21845 |
-| 56 | 21845 | 0 | 37 | 21845 |
-| 56 | 21845 | 0 | 45 | 21845 |
-| 56 | 21845 | 0 | 53 | 21845 |
-| 56 | 21845 | 0 | 61 | 21845 |
-| 56+ | -21846 | 1 | 5 | 21845 |
-| 57 | -21846 | 1 | 5 | -21846 |
-| 57+ | -21846 | 0 | 5 | -21846 |
-| 58 | -21846 | 0 | 5 | -21846 |
-| 58 | -21846 | 0 | 13 | 21845 |
-| 58 | -21846 | 0 | 21 | 21845 |
-| 58 | -21846 | 0 | 29 | 21845 |
-| 58 | -21846 | 0 | 37 | 21845 |
-| 58 | -21846 | 0 | 45 | 21845 |
-| 58 | -21846 | 0 | 53 | 21845 |
-| 58 | -21846 | 0 | 61 | 21845 |
-| 58+ | 21845 | 1 | 5 | -21846 |
-| 59 | 21845 | 1 | 5 | 21845 |
-| 59+ | -21846 | 1 | 13 | 21845 |
-| 60 | -21846 | 1 | 13 | -21846 |
-| 60+ | -21846 | 0 | 5 | 21845 |
-| 61 | -21846 | 0 | 5 | 21845 |
-| 61 | -21846 | 0 | 13 | -21846 |
-| 61 | -21846 | 0 | 21 | 21845 |
-| 61 | -21846 | 0 | 29 | 21845 |
-| 61 | -21846 | 0 | 37 | 21845 |
-| 61 | -21846 | 0 | 45 | 21845 |
-| 61 | -21846 | 0 | 53 | 21845 |
-| 61 | -21846 | 0 | 61 | 21845 |
-| 61+ | 21845 | 1 | 13 | -21846 |
-| 62 | 21845 | 1 | 13 | 21845 |
-| 62+ | -21846 | 1 | 21 | 21845 |
-| 63 | -21846 | 1 | 21 | -21846 |
-| 63+ | -21846 | 0 | 5 | 21845 |
-| 64 | -21846 | 0 | 5 | 21845 |
-| 64 | -21846 | 0 | 13 | 21845 |
-| 64 | -21846 | 0 | 21 | -21846 |
-| 64 | -21846 | 0 | 29 | 21845 |
-| 64 | -21846 | 0 | 37 | 21845 |
-| 64 | -21846 | 0 | 45 | 21845 |
-| 64 | -21846 | 0 | 53 | 21845 |
-| 64 | -21846 | 0 | 61 | 21845 |
-| 64+ | 21845 | 1 | 21 | -21846 |
-| 65 | 21845 | 1 | 21 | 21845 |
-| 65+ | -21846 | 1 | 29 | 21845 |
-| 66 | -21846 | 1 | 29 | -21846 |
-| 66+ | -21846 | 0 | 5 | 21845 |
-| 67 | -21846 | 0 | 5 | 21845 |
-| 67 | -21846 | 0 | 13 | 21845 |
-| 67 | -21846 | 0 | 21 | 21845 |
-| 67 | -21846 | 0 | 29 | -21846 |
-| 67 | -21846 | 0 | 37 | 21845 |
-| 67 | -21846 | 0 | 45 | 21845 |
-| 67 | -21846 | 0 | 53 | 21845 |
-| 67 | -21846 | 0 | 61 | 21845 |
-| 67+ | 21845 | 1 | 29 | -21846 |
-| 68 | 21845 | 1 | 29 | 21845 |
-| 68+ | -21846 | 1 | 37 | 21845 |
-| 69 | -21846 | 1 | 37 | -21846 |
-| 69+ | -21846 | 0 | 5 | 21845 |
-| 70 | -21846 | 0 | 5 | 21845 |
-| 70 | -21846 | 0 | 13 | 21845 |
-| 70 | -21846 | 0 | 21 | 21845 |
-| 70 | -21846 | 0 | 29 | 21845 |
-| 70 | -21846 | 0 | 37 | -21846 |
-| 70 | -21846 | 0 | 45 | 21845 |
-| 70 | -21846 | 0 | 53 | 21845 |
-| 70 | -21846 | 0 | 61 | 21845 |
-| 70+ | 21845 | 1 | 37 | -21846 |
-| 71 | 21845 | 1 | 37 | 21845 |
-| 71+ | -21846 | 1 | 45 | 21845 |
-| 72 | -21846 | 1 | 45 | -21846 |
-| 72+ | -21846 | 0 | 5 | 21845 |
-| 73 | -21846 | 0 | 5 | 21845 |
-| 73 | -21846 | 0 | 13 | 21845 |
-| 73 | -21846 | 0 | 21 | 21845 |
-| 73 | -21846 | 0 | 29 | 21845 |
-| 73 | -21846 | 0 | 37 | 21845 |
-| 73 | -21846 | 0 | 45 | -21846 |
-| 73 | -21846 | 0 | 53 | 21845 |
-| 73 | -21846 | 0 | 61 | 21845 |
-| 73+ | 21845 | 1 | 45 | -21846 |
-| 74 | 21845 | 1 | 45 | 21845 |
-| 74+ | -21846 | 1 | 53 | 21845 |
-| 75 | -21846 | 1 | 53 | -21846 |
-| 75+ | -21846 | 0 | 5 | 21845 |
-| 76 | -21846 | 0 | 5 | 21845 |
-| 76 | -21846 | 0 | 13 | 21845 |
-| 76 | -21846 | 0 | 21 | 21845 |
-| 76 | -21846 | 0 | 29 | 21845 |
-| 76 | -21846 | 0 | 37 | 21845 |
-| 76 | -21846 | 0 | 45 | 21845 |
-| 76 | -21846 | 0 | 53 | -21846 |
-| 76 | -21846 | 0 | 61 | 21845 |
-| 76+ | 21845 | 1 | 53 | -21846 |
-| 77 | 21845 | 1 | 53 | 21845 |
-| 77+ | -21846 | 1 | 61 | 21845 |
-| 78 | -21846 | 1 | 61 | -21846 |
-| 78+ | -21846 | 0 | 5 | 21845 |
-| 79 | -21846 | 0 | 5 | 21845 |
-| 79 | -21846 | 0 | 13 | 21845 |
-| 79 | -21846 | 0 | 21 | 21845 |
-| 79 | -21846 | 0 | 29 | 21845 |
-| 79 | -21846 | 0 | 37 | 21845 |
-| 79 | -21846 | 0 | 45 | 21845 |
-| 79 | -21846 | 0 | 53 | 21845 |
-| 79 | -21846 | 0 | 61 | -21846 |
-| 79+ | 21845 | 1 | 61 | -21846 |
-| 80 | 21845 | 1 | 61 | 21845 |
-| 80+ | 21845 | 0 | 5 | 21845 |
-| 81 | 21845 | 0 | 5 | 21845 |
-| 81 | 21845 | 0 | 13 | 21845 |
-| 81 | 21845 | 0 | 21 | 21845 |
-| 81 | 21845 | 0 | 29 | 21845 |
-| 81 | 21845 | 0 | 37 | 21845 |
-| 81 | 21845 | 0 | 45 | 21845 |
-| 81 | 21845 | 0 | 53 | 21845 |
-| 81 | 21845 | 0 | 61 | 21845 |
diff --git a/projects/03/a/RAM64.out b/projects/03/a/RAM64.out
deleted file mode 100644
index 554ce39..0000000
--- a/projects/03/a/RAM64.out
+++ /dev/null
@@ -1,320 +0,0 @@
-| time | in |load |address| out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 1313 | 0 | 0 | 0 |
-| 3 | 1313 | 0 | 0 | 0 |
-| 3+ | 1313 | 1 | 13 | 0 |
-| 4 | 1313 | 1 | 13 | 1313 |
-| 4+ | 1313 | 0 | 0 | 0 |
-| 5 | 1313 | 0 | 0 | 0 |
-| 5+ | 4747 | 0 | 47 | 0 |
-| 6 | 4747 | 0 | 47 | 0 |
-| 6+ | 4747 | 1 | 47 | 0 |
-| 7 | 4747 | 1 | 47 | 4747 |
-| 7+ | 4747 | 0 | 47 | 4747 |
-| 8 | 4747 | 0 | 47 | 4747 |
-| 8 | 4747 | 0 | 13 | 1313 |
-| 8+ | 6363 | 0 | 13 | 1313 |
-| 9 | 6363 | 0 | 13 | 1313 |
-| 9+ | 6363 | 1 | 63 | 0 |
-| 10 | 6363 | 1 | 63 | 6363 |
-| 10+ | 6363 | 0 | 63 | 6363 |
-| 11 | 6363 | 0 | 63 | 6363 |
-| 11 | 6363 | 0 | 47 | 4747 |
-| 11 | 6363 | 0 | 63 | 6363 |
-| 11+ | 6363 | 0 | 40 | 0 |
-| 12 | 6363 | 0 | 40 | 0 |
-| 12 | 6363 | 0 | 41 | 0 |
-| 12 | 6363 | 0 | 42 | 0 |
-| 12 | 6363 | 0 | 43 | 0 |
-| 12 | 6363 | 0 | 44 | 0 |
-| 12 | 6363 | 0 | 45 | 0 |
-| 12 | 6363 | 0 | 46 | 0 |
-| 12 | 6363 | 0 | 47 | 4747 |
-| 12+ | 21845 | 1 | 40 | 0 |
-| 13 | 21845 | 1 | 40 | 21845 |
-| 13+ | 21845 | 1 | 41 | 0 |
-| 14 | 21845 | 1 | 41 | 21845 |
-| 14+ | 21845 | 1 | 42 | 0 |
-| 15 | 21845 | 1 | 42 | 21845 |
-| 15+ | 21845 | 1 | 43 | 0 |
-| 16 | 21845 | 1 | 43 | 21845 |
-| 16+ | 21845 | 1 | 44 | 0 |
-| 17 | 21845 | 1 | 44 | 21845 |
-| 17+ | 21845 | 1 | 45 | 0 |
-| 18 | 21845 | 1 | 45 | 21845 |
-| 18+ | 21845 | 1 | 46 | 0 |
-| 19 | 21845 | 1 | 46 | 21845 |
-| 19+ | 21845 | 1 | 47 | 4747 |
-| 20 | 21845 | 1 | 47 | 21845 |
-| 20+ | 21845 | 0 | 40 | 21845 |
-| 21 | 21845 | 0 | 40 | 21845 |
-| 21 | 21845 | 0 | 41 | 21845 |
-| 21 | 21845 | 0 | 42 | 21845 |
-| 21 | 21845 | 0 | 43 | 21845 |
-| 21 | 21845 | 0 | 44 | 21845 |
-| 21 | 21845 | 0 | 45 | 21845 |
-| 21 | 21845 | 0 | 46 | 21845 |
-| 21 | 21845 | 0 | 47 | 21845 |
-| 21+ | -21846 | 1 | 40 | 21845 |
-| 22 | -21846 | 1 | 40 | -21846 |
-| 22+ | -21846 | 0 | 40 | -21846 |
-| 23 | -21846 | 0 | 40 | -21846 |
-| 23 | -21846 | 0 | 41 | 21845 |
-| 23 | -21846 | 0 | 42 | 21845 |
-| 23 | -21846 | 0 | 43 | 21845 |
-| 23 | -21846 | 0 | 44 | 21845 |
-| 23 | -21846 | 0 | 45 | 21845 |
-| 23 | -21846 | 0 | 46 | 21845 |
-| 23 | -21846 | 0 | 47 | 21845 |
-| 23+ | 21845 | 1 | 40 | -21846 |
-| 24 | 21845 | 1 | 40 | 21845 |
-| 24+ | -21846 | 1 | 41 | 21845 |
-| 25 | -21846 | 1 | 41 | -21846 |
-| 25+ | -21846 | 0 | 40 | 21845 |
-| 26 | -21846 | 0 | 40 | 21845 |
-| 26 | -21846 | 0 | 41 | -21846 |
-| 26 | -21846 | 0 | 42 | 21845 |
-| 26 | -21846 | 0 | 43 | 21845 |
-| 26 | -21846 | 0 | 44 | 21845 |
-| 26 | -21846 | 0 | 45 | 21845 |
-| 26 | -21846 | 0 | 46 | 21845 |
-| 26 | -21846 | 0 | 47 | 21845 |
-| 26+ | 21845 | 1 | 41 | -21846 |
-| 27 | 21845 | 1 | 41 | 21845 |
-| 27+ | -21846 | 1 | 42 | 21845 |
-| 28 | -21846 | 1 | 42 | -21846 |
-| 28+ | -21846 | 0 | 40 | 21845 |
-| 29 | -21846 | 0 | 40 | 21845 |
-| 29 | -21846 | 0 | 41 | 21845 |
-| 29 | -21846 | 0 | 42 | -21846 |
-| 29 | -21846 | 0 | 43 | 21845 |
-| 29 | -21846 | 0 | 44 | 21845 |
-| 29 | -21846 | 0 | 45 | 21845 |
-| 29 | -21846 | 0 | 46 | 21845 |
-| 29 | -21846 | 0 | 47 | 21845 |
-| 29+ | 21845 | 1 | 42 | -21846 |
-| 30 | 21845 | 1 | 42 | 21845 |
-| 30+ | -21846 | 1 | 43 | 21845 |
-| 31 | -21846 | 1 | 43 | -21846 |
-| 31+ | -21846 | 0 | 40 | 21845 |
-| 32 | -21846 | 0 | 40 | 21845 |
-| 32 | -21846 | 0 | 41 | 21845 |
-| 32 | -21846 | 0 | 42 | 21845 |
-| 32 | -21846 | 0 | 43 | -21846 |
-| 32 | -21846 | 0 | 44 | 21845 |
-| 32 | -21846 | 0 | 45 | 21845 |
-| 32 | -21846 | 0 | 46 | 21845 |
-| 32 | -21846 | 0 | 47 | 21845 |
-| 32+ | 21845 | 1 | 43 | -21846 |
-| 33 | 21845 | 1 | 43 | 21845 |
-| 33+ | -21846 | 1 | 44 | 21845 |
-| 34 | -21846 | 1 | 44 | -21846 |
-| 34+ | -21846 | 0 | 40 | 21845 |
-| 35 | -21846 | 0 | 40 | 21845 |
-| 35 | -21846 | 0 | 41 | 21845 |
-| 35 | -21846 | 0 | 42 | 21845 |
-| 35 | -21846 | 0 | 43 | 21845 |
-| 35 | -21846 | 0 | 44 | -21846 |
-| 35 | -21846 | 0 | 45 | 21845 |
-| 35 | -21846 | 0 | 46 | 21845 |
-| 35 | -21846 | 0 | 47 | 21845 |
-| 35+ | 21845 | 1 | 44 | -21846 |
-| 36 | 21845 | 1 | 44 | 21845 |
-| 36+ | -21846 | 1 | 45 | 21845 |
-| 37 | -21846 | 1 | 45 | -21846 |
-| 37+ | -21846 | 0 | 40 | 21845 |
-| 38 | -21846 | 0 | 40 | 21845 |
-| 38 | -21846 | 0 | 41 | 21845 |
-| 38 | -21846 | 0 | 42 | 21845 |
-| 38 | -21846 | 0 | 43 | 21845 |
-| 38 | -21846 | 0 | 44 | 21845 |
-| 38 | -21846 | 0 | 45 | -21846 |
-| 38 | -21846 | 0 | 46 | 21845 |
-| 38 | -21846 | 0 | 47 | 21845 |
-| 38+ | 21845 | 1 | 45 | -21846 |
-| 39 | 21845 | 1 | 45 | 21845 |
-| 39+ | -21846 | 1 | 46 | 21845 |
-| 40 | -21846 | 1 | 46 | -21846 |
-| 40+ | -21846 | 0 | 40 | 21845 |
-| 41 | -21846 | 0 | 40 | 21845 |
-| 41 | -21846 | 0 | 41 | 21845 |
-| 41 | -21846 | 0 | 42 | 21845 |
-| 41 | -21846 | 0 | 43 | 21845 |
-| 41 | -21846 | 0 | 44 | 21845 |
-| 41 | -21846 | 0 | 45 | 21845 |
-| 41 | -21846 | 0 | 46 | -21846 |
-| 41 | -21846 | 0 | 47 | 21845 |
-| 41+ | 21845 | 1 | 46 | -21846 |
-| 42 | 21845 | 1 | 46 | 21845 |
-| 42+ | -21846 | 1 | 47 | 21845 |
-| 43 | -21846 | 1 | 47 | -21846 |
-| 43+ | -21846 | 0 | 40 | 21845 |
-| 44 | -21846 | 0 | 40 | 21845 |
-| 44 | -21846 | 0 | 41 | 21845 |
-| 44 | -21846 | 0 | 42 | 21845 |
-| 44 | -21846 | 0 | 43 | 21845 |
-| 44 | -21846 | 0 | 44 | 21845 |
-| 44 | -21846 | 0 | 45 | 21845 |
-| 44 | -21846 | 0 | 46 | 21845 |
-| 44 | -21846 | 0 | 47 | -21846 |
-| 44+ | 21845 | 1 | 47 | -21846 |
-| 45 | 21845 | 1 | 47 | 21845 |
-| 45+ | 21845 | 0 | 40 | 21845 |
-| 46 | 21845 | 0 | 40 | 21845 |
-| 46 | 21845 | 0 | 41 | 21845 |
-| 46 | 21845 | 0 | 42 | 21845 |
-| 46 | 21845 | 0 | 43 | 21845 |
-| 46 | 21845 | 0 | 44 | 21845 |
-| 46 | 21845 | 0 | 45 | 21845 |
-| 46 | 21845 | 0 | 46 | 21845 |
-| 46 | 21845 | 0 | 47 | 21845 |
-| 46+ | 21845 | 0 | 5 | 0 |
-| 47 | 21845 | 0 | 5 | 0 |
-| 47 | 21845 | 0 | 13 | 1313 |
-| 47 | 21845 | 0 | 21 | 0 |
-| 47 | 21845 | 0 | 29 | 0 |
-| 47 | 21845 | 0 | 37 | 0 |
-| 47 | 21845 | 0 | 45 | 21845 |
-| 47 | 21845 | 0 | 53 | 0 |
-| 47 | 21845 | 0 | 61 | 0 |
-| 47+ | 21845 | 1 | 5 | 0 |
-| 48 | 21845 | 1 | 5 | 21845 |
-| 48+ | 21845 | 1 | 13 | 1313 |
-| 49 | 21845 | 1 | 13 | 21845 |
-| 49+ | 21845 | 1 | 21 | 0 |
-| 50 | 21845 | 1 | 21 | 21845 |
-| 50+ | 21845 | 1 | 29 | 0 |
-| 51 | 21845 | 1 | 29 | 21845 |
-| 51+ | 21845 | 1 | 37 | 0 |
-| 52 | 21845 | 1 | 37 | 21845 |
-| 52+ | 21845 | 1 | 45 | 21845 |
-| 53 | 21845 | 1 | 45 | 21845 |
-| 53+ | 21845 | 1 | 53 | 0 |
-| 54 | 21845 | 1 | 53 | 21845 |
-| 54+ | 21845 | 1 | 61 | 0 |
-| 55 | 21845 | 1 | 61 | 21845 |
-| 55+ | 21845 | 0 | 5 | 21845 |
-| 56 | 21845 | 0 | 5 | 21845 |
-| 56 | 21845 | 0 | 13 | 21845 |
-| 56 | 21845 | 0 | 21 | 21845 |
-| 56 | 21845 | 0 | 29 | 21845 |
-| 56 | 21845 | 0 | 37 | 21845 |
-| 56 | 21845 | 0 | 45 | 21845 |
-| 56 | 21845 | 0 | 53 | 21845 |
-| 56 | 21845 | 0 | 61 | 21845 |
-| 56+ | -21846 | 1 | 5 | 21845 |
-| 57 | -21846 | 1 | 5 | -21846 |
-| 57+ | -21846 | 0 | 5 | -21846 |
-| 58 | -21846 | 0 | 5 | -21846 |
-| 58 | -21846 | 0 | 13 | 21845 |
-| 58 | -21846 | 0 | 21 | 21845 |
-| 58 | -21846 | 0 | 29 | 21845 |
-| 58 | -21846 | 0 | 37 | 21845 |
-| 58 | -21846 | 0 | 45 | 21845 |
-| 58 | -21846 | 0 | 53 | 21845 |
-| 58 | -21846 | 0 | 61 | 21845 |
-| 58+ | 21845 | 1 | 5 | -21846 |
-| 59 | 21845 | 1 | 5 | 21845 |
-| 59+ | -21846 | 1 | 13 | 21845 |
-| 60 | -21846 | 1 | 13 | -21846 |
-| 60+ | -21846 | 0 | 5 | 21845 |
-| 61 | -21846 | 0 | 5 | 21845 |
-| 61 | -21846 | 0 | 13 | -21846 |
-| 61 | -21846 | 0 | 21 | 21845 |
-| 61 | -21846 | 0 | 29 | 21845 |
-| 61 | -21846 | 0 | 37 | 21845 |
-| 61 | -21846 | 0 | 45 | 21845 |
-| 61 | -21846 | 0 | 53 | 21845 |
-| 61 | -21846 | 0 | 61 | 21845 |
-| 61+ | 21845 | 1 | 13 | -21846 |
-| 62 | 21845 | 1 | 13 | 21845 |
-| 62+ | -21846 | 1 | 21 | 21845 |
-| 63 | -21846 | 1 | 21 | -21846 |
-| 63+ | -21846 | 0 | 5 | 21845 |
-| 64 | -21846 | 0 | 5 | 21845 |
-| 64 | -21846 | 0 | 13 | 21845 |
-| 64 | -21846 | 0 | 21 | -21846 |
-| 64 | -21846 | 0 | 29 | 21845 |
-| 64 | -21846 | 0 | 37 | 21845 |
-| 64 | -21846 | 0 | 45 | 21845 |
-| 64 | -21846 | 0 | 53 | 21845 |
-| 64 | -21846 | 0 | 61 | 21845 |
-| 64+ | 21845 | 1 | 21 | -21846 |
-| 65 | 21845 | 1 | 21 | 21845 |
-| 65+ | -21846 | 1 | 29 | 21845 |
-| 66 | -21846 | 1 | 29 | -21846 |
-| 66+ | -21846 | 0 | 5 | 21845 |
-| 67 | -21846 | 0 | 5 | 21845 |
-| 67 | -21846 | 0 | 13 | 21845 |
-| 67 | -21846 | 0 | 21 | 21845 |
-| 67 | -21846 | 0 | 29 | -21846 |
-| 67 | -21846 | 0 | 37 | 21845 |
-| 67 | -21846 | 0 | 45 | 21845 |
-| 67 | -21846 | 0 | 53 | 21845 |
-| 67 | -21846 | 0 | 61 | 21845 |
-| 67+ | 21845 | 1 | 29 | -21846 |
-| 68 | 21845 | 1 | 29 | 21845 |
-| 68+ | -21846 | 1 | 37 | 21845 |
-| 69 | -21846 | 1 | 37 | -21846 |
-| 69+ | -21846 | 0 | 5 | 21845 |
-| 70 | -21846 | 0 | 5 | 21845 |
-| 70 | -21846 | 0 | 13 | 21845 |
-| 70 | -21846 | 0 | 21 | 21845 |
-| 70 | -21846 | 0 | 29 | 21845 |
-| 70 | -21846 | 0 | 37 | -21846 |
-| 70 | -21846 | 0 | 45 | 21845 |
-| 70 | -21846 | 0 | 53 | 21845 |
-| 70 | -21846 | 0 | 61 | 21845 |
-| 70+ | 21845 | 1 | 37 | -21846 |
-| 71 | 21845 | 1 | 37 | 21845 |
-| 71+ | -21846 | 1 | 45 | 21845 |
-| 72 | -21846 | 1 | 45 | -21846 |
-| 72+ | -21846 | 0 | 5 | 21845 |
-| 73 | -21846 | 0 | 5 | 21845 |
-| 73 | -21846 | 0 | 13 | 21845 |
-| 73 | -21846 | 0 | 21 | 21845 |
-| 73 | -21846 | 0 | 29 | 21845 |
-| 73 | -21846 | 0 | 37 | 21845 |
-| 73 | -21846 | 0 | 45 | -21846 |
-| 73 | -21846 | 0 | 53 | 21845 |
-| 73 | -21846 | 0 | 61 | 21845 |
-| 73+ | 21845 | 1 | 45 | -21846 |
-| 74 | 21845 | 1 | 45 | 21845 |
-| 74+ | -21846 | 1 | 53 | 21845 |
-| 75 | -21846 | 1 | 53 | -21846 |
-| 75+ | -21846 | 0 | 5 | 21845 |
-| 76 | -21846 | 0 | 5 | 21845 |
-| 76 | -21846 | 0 | 13 | 21845 |
-| 76 | -21846 | 0 | 21 | 21845 |
-| 76 | -21846 | 0 | 29 | 21845 |
-| 76 | -21846 | 0 | 37 | 21845 |
-| 76 | -21846 | 0 | 45 | 21845 |
-| 76 | -21846 | 0 | 53 | -21846 |
-| 76 | -21846 | 0 | 61 | 21845 |
-| 76+ | 21845 | 1 | 53 | -21846 |
-| 77 | 21845 | 1 | 53 | 21845 |
-| 77+ | -21846 | 1 | 61 | 21845 |
-| 78 | -21846 | 1 | 61 | -21846 |
-| 78+ | -21846 | 0 | 5 | 21845 |
-| 79 | -21846 | 0 | 5 | 21845 |
-| 79 | -21846 | 0 | 13 | 21845 |
-| 79 | -21846 | 0 | 21 | 21845 |
-| 79 | -21846 | 0 | 29 | 21845 |
-| 79 | -21846 | 0 | 37 | 21845 |
-| 79 | -21846 | 0 | 45 | 21845 |
-| 79 | -21846 | 0 | 53 | 21845 |
-| 79 | -21846 | 0 | 61 | -21846 |
-| 79+ | 21845 | 1 | 61 | -21846 |
-| 80 | 21845 | 1 | 61 | 21845 |
-| 80+ | 21845 | 0 | 5 | 21845 |
-| 81 | 21845 | 0 | 5 | 21845 |
-| 81 | 21845 | 0 | 13 | 21845 |
-| 81 | 21845 | 0 | 21 | 21845 |
-| 81 | 21845 | 0 | 29 | 21845 |
-| 81 | 21845 | 0 | 37 | 21845 |
-| 81 | 21845 | 0 | 45 | 21845 |
-| 81 | 21845 | 0 | 53 | 21845 |
-| 81 | 21845 | 0 | 61 | 21845 |
diff --git a/projects/03/a/RAM64.tst b/projects/03/a/RAM64.tst
deleted file mode 100644
index e1a1409..0000000
--- a/projects/03/a/RAM64.tst
+++ /dev/null
@@ -1,1026 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/a/RAM64.tst
-
-load RAM64.hdl,
-output-file RAM64.out,
-compare-to RAM64.cmp,
-output-list time%S1.4.1 in%D1.6.1 load%B2.1.2 address%D2.3.2 out%D1.6.1;
-
-set in 0,
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set in 1313,
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 13,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set in 4747,
-set address 47,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 13,
-eval,
-output;
-
-set in 6363,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 63,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 47,
-eval,
-output;
-
-set address 63,
-eval,
-output;
-
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-tick,
-output,
-tock,
-output;
-set address %B101010,
-tick,
-output,
-tock,
-output;
-set address %B101011,
-tick,
-output,
-tock,
-output;
-set address %B101100,
-tick,
-output,
-tock,
-output;
-set address %B101101,
-tick,
-output,
-tock,
-output;
-set address %B101110,
-tick,
-output,
-tock,
-output;
-set address %B101111,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101000,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101000,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101001,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101001,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101011,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101011,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101100,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101100,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101110,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101110,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101111,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-set load 1,
-set address %B101111,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B101000,
-tick,
-output;
-tock,
-output;
-set address %B101001,
-eval,
-output;
-set address %B101010,
-eval,
-output;
-set address %B101011,
-eval,
-output;
-set address %B101100,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B101110,
-eval,
-output;
-set address %B101111,
-eval,
-output;
-
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-tick,
-output,
-tock,
-output;
-set address %B010101,
-tick,
-output,
-tock,
-output;
-set address %B011101,
-tick,
-output,
-tock,
-output;
-set address %B100101,
-tick,
-output,
-tock,
-output;
-set address %B101101,
-tick,
-output,
-tock,
-output;
-set address %B110101,
-tick,
-output,
-tock,
-output;
-set address %B111101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B000101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B000101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B001101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B001101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B011101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B011101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B100101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B100101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B101101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B110101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B110101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B111101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
-
-set load 1,
-set address %B111101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B000101,
-tick,
-output;
-tock,
-output;
-set address %B001101,
-eval,
-output;
-set address %B010101,
-eval,
-output;
-set address %B011101,
-eval,
-output;
-set address %B100101,
-eval,
-output;
-set address %B101101,
-eval,
-output;
-set address %B110101,
-eval,
-output;
-set address %B111101,
-eval,
-output;
diff --git a/projects/03/a/RAM8.cmp b/projects/03/a/RAM8.cmp
deleted file mode 100644
index 536c6ef..0000000
--- a/projects/03/a/RAM8.cmp
+++ /dev/null
@@ -1,173 +0,0 @@
-| time | in |load |address| out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 11111 | 0 | 0 | 0 |
-| 3 | 11111 | 0 | 0 | 0 |
-| 3+ | 11111 | 1 | 1 | 0 |
-| 4 | 11111 | 1 | 1 | 11111 |
-| 4+ | 11111 | 0 | 0 | 0 |
-| 5 | 11111 | 0 | 0 | 0 |
-| 5+ | 3333 | 0 | 3 | 0 |
-| 6 | 3333 | 0 | 3 | 0 |
-| 6+ | 3333 | 1 | 3 | 0 |
-| 7 | 3333 | 1 | 3 | 3333 |
-| 7+ | 3333 | 0 | 3 | 3333 |
-| 8 | 3333 | 0 | 3 | 3333 |
-| 8 | 3333 | 0 | 1 | 11111 |
-| 8+ | 7777 | 0 | 1 | 11111 |
-| 9 | 7777 | 0 | 1 | 11111 |
-| 9+ | 7777 | 1 | 7 | 0 |
-| 10 | 7777 | 1 | 7 | 7777 |
-| 10+ | 7777 | 0 | 7 | 7777 |
-| 11 | 7777 | 0 | 7 | 7777 |
-| 11 | 7777 | 0 | 3 | 3333 |
-| 11 | 7777 | 0 | 7 | 7777 |
-| 11+ | 7777 | 0 | 0 | 0 |
-| 12 | 7777 | 0 | 0 | 0 |
-| 12 | 7777 | 0 | 1 | 11111 |
-| 12 | 7777 | 0 | 2 | 0 |
-| 12 | 7777 | 0 | 3 | 3333 |
-| 12 | 7777 | 0 | 4 | 0 |
-| 12 | 7777 | 0 | 5 | 0 |
-| 12 | 7777 | 0 | 6 | 0 |
-| 12 | 7777 | 0 | 7 | 7777 |
-| 12+ | 21845 | 1 | 0 | 0 |
-| 13 | 21845 | 1 | 0 | 21845 |
-| 13+ | 21845 | 1 | 1 | 11111 |
-| 14 | 21845 | 1 | 1 | 21845 |
-| 14+ | 21845 | 1 | 2 | 0 |
-| 15 | 21845 | 1 | 2 | 21845 |
-| 15+ | 21845 | 1 | 3 | 3333 |
-| 16 | 21845 | 1 | 3 | 21845 |
-| 16+ | 21845 | 1 | 4 | 0 |
-| 17 | 21845 | 1 | 4 | 21845 |
-| 17+ | 21845 | 1 | 5 | 0 |
-| 18 | 21845 | 1 | 5 | 21845 |
-| 18+ | 21845 | 1 | 6 | 0 |
-| 19 | 21845 | 1 | 6 | 21845 |
-| 19+ | 21845 | 1 | 7 | 7777 |
-| 20 | 21845 | 1 | 7 | 21845 |
-| 20+ | 21845 | 0 | 0 | 21845 |
-| 21 | 21845 | 0 | 0 | 21845 |
-| 21 | 21845 | 0 | 1 | 21845 |
-| 21 | 21845 | 0 | 2 | 21845 |
-| 21 | 21845 | 0 | 3 | 21845 |
-| 21 | 21845 | 0 | 4 | 21845 |
-| 21 | 21845 | 0 | 5 | 21845 |
-| 21 | 21845 | 0 | 6 | 21845 |
-| 21 | 21845 | 0 | 7 | 21845 |
-| 21+ | -21846 | 1 | 0 | 21845 |
-| 22 | -21846 | 1 | 0 | -21846 |
-| 22+ | -21846 | 0 | 0 | -21846 |
-| 23 | -21846 | 0 | 0 | -21846 |
-| 23 | -21846 | 0 | 1 | 21845 |
-| 23 | -21846 | 0 | 2 | 21845 |
-| 23 | -21846 | 0 | 3 | 21845 |
-| 23 | -21846 | 0 | 4 | 21845 |
-| 23 | -21846 | 0 | 5 | 21845 |
-| 23 | -21846 | 0 | 6 | 21845 |
-| 23 | -21846 | 0 | 7 | 21845 |
-| 23+ | 21845 | 1 | 0 | -21846 |
-| 24 | 21845 | 1 | 0 | 21845 |
-| 24+ | -21846 | 1 | 1 | 21845 |
-| 25 | -21846 | 1 | 1 | -21846 |
-| 25+ | -21846 | 0 | 0 | 21845 |
-| 26 | -21846 | 0 | 0 | 21845 |
-| 26 | -21846 | 0 | 1 | -21846 |
-| 26 | -21846 | 0 | 2 | 21845 |
-| 26 | -21846 | 0 | 3 | 21845 |
-| 26 | -21846 | 0 | 4 | 21845 |
-| 26 | -21846 | 0 | 5 | 21845 |
-| 26 | -21846 | 0 | 6 | 21845 |
-| 26 | -21846 | 0 | 7 | 21845 |
-| 26+ | 21845 | 1 | 1 | -21846 |
-| 27 | 21845 | 1 | 1 | 21845 |
-| 27+ | -21846 | 1 | 2 | 21845 |
-| 28 | -21846 | 1 | 2 | -21846 |
-| 28+ | -21846 | 0 | 0 | 21845 |
-| 29 | -21846 | 0 | 0 | 21845 |
-| 29 | -21846 | 0 | 1 | 21845 |
-| 29 | -21846 | 0 | 2 | -21846 |
-| 29 | -21846 | 0 | 3 | 21845 |
-| 29 | -21846 | 0 | 4 | 21845 |
-| 29 | -21846 | 0 | 5 | 21845 |
-| 29 | -21846 | 0 | 6 | 21845 |
-| 29 | -21846 | 0 | 7 | 21845 |
-| 29+ | 21845 | 1 | 2 | -21846 |
-| 30 | 21845 | 1 | 2 | 21845 |
-| 30+ | -21846 | 1 | 3 | 21845 |
-| 31 | -21846 | 1 | 3 | -21846 |
-| 31+ | -21846 | 0 | 0 | 21845 |
-| 32 | -21846 | 0 | 0 | 21845 |
-| 32 | -21846 | 0 | 1 | 21845 |
-| 32 | -21846 | 0 | 2 | 21845 |
-| 32 | -21846 | 0 | 3 | -21846 |
-| 32 | -21846 | 0 | 4 | 21845 |
-| 32 | -21846 | 0 | 5 | 21845 |
-| 32 | -21846 | 0 | 6 | 21845 |
-| 32 | -21846 | 0 | 7 | 21845 |
-| 32+ | 21845 | 1 | 3 | -21846 |
-| 33 | 21845 | 1 | 3 | 21845 |
-| 33+ | -21846 | 1 | 4 | 21845 |
-| 34 | -21846 | 1 | 4 | -21846 |
-| 34+ | -21846 | 0 | 0 | 21845 |
-| 35 | -21846 | 0 | 0 | 21845 |
-| 35 | -21846 | 0 | 1 | 21845 |
-| 35 | -21846 | 0 | 2 | 21845 |
-| 35 | -21846 | 0 | 3 | 21845 |
-| 35 | -21846 | 0 | 4 | -21846 |
-| 35 | -21846 | 0 | 5 | 21845 |
-| 35 | -21846 | 0 | 6 | 21845 |
-| 35 | -21846 | 0 | 7 | 21845 |
-| 35+ | 21845 | 1 | 4 | -21846 |
-| 36 | 21845 | 1 | 4 | 21845 |
-| 36+ | -21846 | 1 | 5 | 21845 |
-| 37 | -21846 | 1 | 5 | -21846 |
-| 37+ | -21846 | 0 | 0 | 21845 |
-| 38 | -21846 | 0 | 0 | 21845 |
-| 38 | -21846 | 0 | 1 | 21845 |
-| 38 | -21846 | 0 | 2 | 21845 |
-| 38 | -21846 | 0 | 3 | 21845 |
-| 38 | -21846 | 0 | 4 | 21845 |
-| 38 | -21846 | 0 | 5 | -21846 |
-| 38 | -21846 | 0 | 6 | 21845 |
-| 38 | -21846 | 0 | 7 | 21845 |
-| 38+ | 21845 | 1 | 5 | -21846 |
-| 39 | 21845 | 1 | 5 | 21845 |
-| 39+ | -21846 | 1 | 6 | 21845 |
-| 40 | -21846 | 1 | 6 | -21846 |
-| 40+ | -21846 | 0 | 0 | 21845 |
-| 41 | -21846 | 0 | 0 | 21845 |
-| 41 | -21846 | 0 | 1 | 21845 |
-| 41 | -21846 | 0 | 2 | 21845 |
-| 41 | -21846 | 0 | 3 | 21845 |
-| 41 | -21846 | 0 | 4 | 21845 |
-| 41 | -21846 | 0 | 5 | 21845 |
-| 41 | -21846 | 0 | 6 | -21846 |
-| 41 | -21846 | 0 | 7 | 21845 |
-| 41+ | 21845 | 1 | 6 | -21846 |
-| 42 | 21845 | 1 | 6 | 21845 |
-| 42+ | -21846 | 1 | 7 | 21845 |
-| 43 | -21846 | 1 | 7 | -21846 |
-| 43+ | -21846 | 0 | 0 | 21845 |
-| 44 | -21846 | 0 | 0 | 21845 |
-| 44 | -21846 | 0 | 1 | 21845 |
-| 44 | -21846 | 0 | 2 | 21845 |
-| 44 | -21846 | 0 | 3 | 21845 |
-| 44 | -21846 | 0 | 4 | 21845 |
-| 44 | -21846 | 0 | 5 | 21845 |
-| 44 | -21846 | 0 | 6 | 21845 |
-| 44 | -21846 | 0 | 7 | -21846 |
-| 44+ | 21845 | 1 | 7 | -21846 |
-| 45 | 21845 | 1 | 7 | 21845 |
-| 45+ | 21845 | 0 | 0 | 21845 |
-| 46 | 21845 | 0 | 0 | 21845 |
-| 46 | 21845 | 0 | 1 | 21845 |
-| 46 | 21845 | 0 | 2 | 21845 |
-| 46 | 21845 | 0 | 3 | 21845 |
-| 46 | 21845 | 0 | 4 | 21845 |
-| 46 | 21845 | 0 | 5 | 21845 |
-| 46 | 21845 | 0 | 6 | 21845 |
-| 46 | 21845 | 0 | 7 | 21845 |
diff --git a/projects/03/a/RAM8.out b/projects/03/a/RAM8.out
deleted file mode 100644
index 9499c03..0000000
--- a/projects/03/a/RAM8.out
+++ /dev/null
@@ -1,8 +0,0 @@
-| time | in |load |address| out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 11111 | 0 | 0 | 0 |
-| 3 | 11111 | 0 | 0 | 0 |
-| 3+ | 11111 | 1 | 1 | 0 |
diff --git a/projects/03/a/RAM8.tst b/projects/03/a/RAM8.tst
deleted file mode 100644
index 9b6069c..0000000
--- a/projects/03/a/RAM8.tst
+++ /dev/null
@@ -1,560 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/a/RAM8.tst
-
-load RAM8.hdl,
-output-file RAM8.out,
-compare-to RAM8.cmp,
-output-list time%S1.4.1 in%D1.6.1 load%B2.1.2 address%D3.1.3 out%D1.6.1;
-
-set in 0,
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set in 11111,
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set in 3333,
-set address 3,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 1,
-eval,
-output;
-
-set in 7777,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 7,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 3,
-eval,
-output;
-
-set address 7,
-eval,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-tick,
-output,
-tock,
-output;
-set address 2,
-tick,
-output,
-tock,
-output;
-set address 3,
-tick,
-output,
-tock,
-output;
-set address 4,
-tick,
-output,
-tock,
-output;
-set address 5,
-tick,
-output,
-tock,
-output;
-set address 6,
-tick,
-output,
-tock,
-output;
-set address 7,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 0,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 0,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 1,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 1,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 2,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 2,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 3,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 3,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 4,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 4,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 5,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 5,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 6,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 6,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address 7,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
-set load 1,
-set address 7,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-set address 1,
-eval,
-output;
-set address 2,
-eval,
-output;
-set address 3,
-eval,
-output;
-set address 4,
-eval,
-output;
-set address 5,
-eval,
-output;
-set address 6,
-eval,
-output;
-set address 7,
-eval,
-output;
-
diff --git a/projects/03/a/Register.cmp b/projects/03/a/Register.cmp
deleted file mode 100644
index a899f27..0000000
--- a/projects/03/a/Register.cmp
+++ /dev/null
@@ -1,149 +0,0 @@
-| time | in |load | out |
-| 0+ | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 |
-| 2 | 0 | 1 | 0 |
-| 2+ | -32123 | 0 | 0 |
-| 3 | -32123 | 0 | 0 |
-| 3+ | 11111 | 0 | 0 |
-| 4 | 11111 | 0 | 0 |
-| 4+ | -32123 | 1 | 0 |
-| 5 | -32123 | 1 | -32123 |
-| 5+ | -32123 | 1 | -32123 |
-| 6 | -32123 | 1 | -32123 |
-| 6+ | -32123 | 0 | -32123 |
-| 7 | -32123 | 0 | -32123 |
-| 7+ | 12345 | 1 | -32123 |
-| 8 | 12345 | 1 | 12345 |
-| 8+ | 0 | 0 | 12345 |
-| 9 | 0 | 0 | 12345 |
-| 9+ | 0 | 1 | 12345 |
-| 10 | 0 | 1 | 0 |
-| 10+ | 1 | 0 | 0 |
-| 11 | 1 | 0 | 0 |
-| 11+ | 1 | 1 | 0 |
-| 12 | 1 | 1 | 1 |
-| 12+ | 2 | 0 | 1 |
-| 13 | 2 | 0 | 1 |
-| 13+ | 2 | 1 | 1 |
-| 14 | 2 | 1 | 2 |
-| 14+ | 4 | 0 | 2 |
-| 15 | 4 | 0 | 2 |
-| 15+ | 4 | 1 | 2 |
-| 16 | 4 | 1 | 4 |
-| 16+ | 8 | 0 | 4 |
-| 17 | 8 | 0 | 4 |
-| 17+ | 8 | 1 | 4 |
-| 18 | 8 | 1 | 8 |
-| 18+ | 16 | 0 | 8 |
-| 19 | 16 | 0 | 8 |
-| 19+ | 16 | 1 | 8 |
-| 20 | 16 | 1 | 16 |
-| 20+ | 32 | 0 | 16 |
-| 21 | 32 | 0 | 16 |
-| 21+ | 32 | 1 | 16 |
-| 22 | 32 | 1 | 32 |
-| 22+ | 64 | 0 | 32 |
-| 23 | 64 | 0 | 32 |
-| 23+ | 64 | 1 | 32 |
-| 24 | 64 | 1 | 64 |
-| 24+ | 128 | 0 | 64 |
-| 25 | 128 | 0 | 64 |
-| 25+ | 128 | 1 | 64 |
-| 26 | 128 | 1 | 128 |
-| 26+ | 256 | 0 | 128 |
-| 27 | 256 | 0 | 128 |
-| 27+ | 256 | 1 | 128 |
-| 28 | 256 | 1 | 256 |
-| 28+ | 512 | 0 | 256 |
-| 29 | 512 | 0 | 256 |
-| 29+ | 512 | 1 | 256 |
-| 30 | 512 | 1 | 512 |
-| 30+ | 1024 | 0 | 512 |
-| 31 | 1024 | 0 | 512 |
-| 31+ | 1024 | 1 | 512 |
-| 32 | 1024 | 1 | 1024 |
-| 32+ | 2048 | 0 | 1024 |
-| 33 | 2048 | 0 | 1024 |
-| 33+ | 2048 | 1 | 1024 |
-| 34 | 2048 | 1 | 2048 |
-| 34+ | 4096 | 0 | 2048 |
-| 35 | 4096 | 0 | 2048 |
-| 35+ | 4096 | 1 | 2048 |
-| 36 | 4096 | 1 | 4096 |
-| 36+ | 8192 | 0 | 4096 |
-| 37 | 8192 | 0 | 4096 |
-| 37+ | 8192 | 1 | 4096 |
-| 38 | 8192 | 1 | 8192 |
-| 38+ | 16384 | 0 | 8192 |
-| 39 | 16384 | 0 | 8192 |
-| 39+ | 16384 | 1 | 8192 |
-| 40 | 16384 | 1 | 16384 |
-| 40+ | -32768 | 0 | 16384 |
-| 41 | -32768 | 0 | 16384 |
-| 41+ | -32768 | 1 | 16384 |
-| 42 | -32768 | 1 | -32768 |
-| 42+ | -2 | 0 | -32768 |
-| 43 | -2 | 0 | -32768 |
-| 43+ | -2 | 1 | -32768 |
-| 44 | -2 | 1 | -2 |
-| 44+ | -3 | 0 | -2 |
-| 45 | -3 | 0 | -2 |
-| 45+ | -3 | 1 | -2 |
-| 46 | -3 | 1 | -3 |
-| 46+ | -5 | 0 | -3 |
-| 47 | -5 | 0 | -3 |
-| 47+ | -5 | 1 | -3 |
-| 48 | -5 | 1 | -5 |
-| 48+ | -9 | 0 | -5 |
-| 49 | -9 | 0 | -5 |
-| 49+ | -9 | 1 | -5 |
-| 50 | -9 | 1 | -9 |
-| 50+ | -17 | 0 | -9 |
-| 51 | -17 | 0 | -9 |
-| 51+ | -17 | 1 | -9 |
-| 52 | -17 | 1 | -17 |
-| 52+ | -33 | 0 | -17 |
-| 53 | -33 | 0 | -17 |
-| 53+ | -33 | 1 | -17 |
-| 54 | -33 | 1 | -33 |
-| 54+ | -65 | 0 | -33 |
-| 55 | -65 | 0 | -33 |
-| 55+ | -65 | 1 | -33 |
-| 56 | -65 | 1 | -65 |
-| 56+ | -129 | 0 | -65 |
-| 57 | -129 | 0 | -65 |
-| 57+ | -129 | 1 | -65 |
-| 58 | -129 | 1 | -129 |
-| 58+ | -257 | 0 | -129 |
-| 59 | -257 | 0 | -129 |
-| 59+ | -257 | 1 | -129 |
-| 60 | -257 | 1 | -257 |
-| 60+ | -513 | 0 | -257 |
-| 61 | -513 | 0 | -257 |
-| 61+ | -513 | 1 | -257 |
-| 62 | -513 | 1 | -513 |
-| 62+ | -1025 | 0 | -513 |
-| 63 | -1025 | 0 | -513 |
-| 63+ | -1025 | 1 | -513 |
-| 64 | -1025 | 1 | -1025 |
-| 64+ | -2049 | 0 | -1025 |
-| 65 | -2049 | 0 | -1025 |
-| 65+ | -2049 | 1 | -1025 |
-| 66 | -2049 | 1 | -2049 |
-| 66+ | -4097 | 0 | -2049 |
-| 67 | -4097 | 0 | -2049 |
-| 67+ | -4097 | 1 | -2049 |
-| 68 | -4097 | 1 | -4097 |
-| 68+ | -8193 | 0 | -4097 |
-| 69 | -8193 | 0 | -4097 |
-| 69+ | -8193 | 1 | -4097 |
-| 70 | -8193 | 1 | -8193 |
-| 70+ | -16385 | 0 | -8193 |
-| 71 | -16385 | 0 | -8193 |
-| 71+ | -16385 | 1 | -8193 |
-| 72 | -16385 | 1 | -16385 |
-| 72+ | 32767 | 0 | -16385 |
-| 73 | 32767 | 0 | -16385 |
-| 73+ | 32767 | 1 | -16385 |
-| 74 | 32767 | 1 | 32767 |
diff --git a/projects/03/a/Register.out b/projects/03/a/Register.out
deleted file mode 100644
index 2719604..0000000
--- a/projects/03/a/Register.out
+++ /dev/null
@@ -1,149 +0,0 @@
-| time | in |load | out |
-| 0+ | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 |
-| 2 | 0 | 1 | 0 |
-| 2+ | -32123 | 0 | 0 |
-| 3 | -32123 | 0 | 0 |
-| 3+ | 11111 | 0 | 0 |
-| 4 | 11111 | 0 | 0 |
-| 4+ | -32123 | 1 | 0 |
-| 5 | -32123 | 1 | -32123 |
-| 5+ | -32123 | 1 | -32123 |
-| 6 | -32123 | 1 | -32123 |
-| 6+ | -32123 | 0 | -32123 |
-| 7 | -32123 | 0 | -32123 |
-| 7+ | 12345 | 1 | -32123 |
-| 8 | 12345 | 1 | 12345 |
-| 8+ | 0 | 0 | 12345 |
-| 9 | 0 | 0 | 12345 |
-| 9+ | 0 | 1 | 12345 |
-| 10 | 0 | 1 | 0 |
-| 10+ | 1 | 0 | 0 |
-| 11 | 1 | 0 | 0 |
-| 11+ | 1 | 1 | 0 |
-| 12 | 1 | 1 | 1 |
-| 12+ | 2 | 0 | 1 |
-| 13 | 2 | 0 | 1 |
-| 13+ | 2 | 1 | 1 |
-| 14 | 2 | 1 | 2 |
-| 14+ | 4 | 0 | 2 |
-| 15 | 4 | 0 | 2 |
-| 15+ | 4 | 1 | 2 |
-| 16 | 4 | 1 | 4 |
-| 16+ | 8 | 0 | 4 |
-| 17 | 8 | 0 | 4 |
-| 17+ | 8 | 1 | 4 |
-| 18 | 8 | 1 | 8 |
-| 18+ | 16 | 0 | 8 |
-| 19 | 16 | 0 | 8 |
-| 19+ | 16 | 1 | 8 |
-| 20 | 16 | 1 | 16 |
-| 20+ | 32 | 0 | 16 |
-| 21 | 32 | 0 | 16 |
-| 21+ | 32 | 1 | 16 |
-| 22 | 32 | 1 | 32 |
-| 22+ | 64 | 0 | 32 |
-| 23 | 64 | 0 | 32 |
-| 23+ | 64 | 1 | 32 |
-| 24 | 64 | 1 | 64 |
-| 24+ | 128 | 0 | 64 |
-| 25 | 128 | 0 | 64 |
-| 25+ | 128 | 1 | 64 |
-| 26 | 128 | 1 | 128 |
-| 26+ | 256 | 0 | 128 |
-| 27 | 256 | 0 | 128 |
-| 27+ | 256 | 1 | 128 |
-| 28 | 256 | 1 | 256 |
-| 28+ | 512 | 0 | 256 |
-| 29 | 512 | 0 | 256 |
-| 29+ | 512 | 1 | 256 |
-| 30 | 512 | 1 | 512 |
-| 30+ | 1024 | 0 | 512 |
-| 31 | 1024 | 0 | 512 |
-| 31+ | 1024 | 1 | 512 |
-| 32 | 1024 | 1 | 1024 |
-| 32+ | 2048 | 0 | 1024 |
-| 33 | 2048 | 0 | 1024 |
-| 33+ | 2048 | 1 | 1024 |
-| 34 | 2048 | 1 | 2048 |
-| 34+ | 4096 | 0 | 2048 |
-| 35 | 4096 | 0 | 2048 |
-| 35+ | 4096 | 1 | 2048 |
-| 36 | 4096 | 1 | 4096 |
-| 36+ | 8192 | 0 | 4096 |
-| 37 | 8192 | 0 | 4096 |
-| 37+ | 8192 | 1 | 4096 |
-| 38 | 8192 | 1 | 8192 |
-| 38+ | 16384 | 0 | 8192 |
-| 39 | 16384 | 0 | 8192 |
-| 39+ | 16384 | 1 | 8192 |
-| 40 | 16384 | 1 | 16384 |
-| 40+ | -32768 | 0 | 16384 |
-| 41 | -32768 | 0 | 16384 |
-| 41+ | -32768 | 1 | 16384 |
-| 42 | -32768 | 1 | -32768 |
-| 42+ | -2 | 0 | -32768 |
-| 43 | -2 | 0 | -32768 |
-| 43+ | -2 | 1 | -32768 |
-| 44 | -2 | 1 | -2 |
-| 44+ | -3 | 0 | -2 |
-| 45 | -3 | 0 | -2 |
-| 45+ | -3 | 1 | -2 |
-| 46 | -3 | 1 | -3 |
-| 46+ | -5 | 0 | -3 |
-| 47 | -5 | 0 | -3 |
-| 47+ | -5 | 1 | -3 |
-| 48 | -5 | 1 | -5 |
-| 48+ | -9 | 0 | -5 |
-| 49 | -9 | 0 | -5 |
-| 49+ | -9 | 1 | -5 |
-| 50 | -9 | 1 | -9 |
-| 50+ | -17 | 0 | -9 |
-| 51 | -17 | 0 | -9 |
-| 51+ | -17 | 1 | -9 |
-| 52 | -17 | 1 | -17 |
-| 52+ | -33 | 0 | -17 |
-| 53 | -33 | 0 | -17 |
-| 53+ | -33 | 1 | -17 |
-| 54 | -33 | 1 | -33 |
-| 54+ | -65 | 0 | -33 |
-| 55 | -65 | 0 | -33 |
-| 55+ | -65 | 1 | -33 |
-| 56 | -65 | 1 | -65 |
-| 56+ | -129 | 0 | -65 |
-| 57 | -129 | 0 | -65 |
-| 57+ | -129 | 1 | -65 |
-| 58 | -129 | 1 | -129 |
-| 58+ | -257 | 0 | -129 |
-| 59 | -257 | 0 | -129 |
-| 59+ | -257 | 1 | -129 |
-| 60 | -257 | 1 | -257 |
-| 60+ | -513 | 0 | -257 |
-| 61 | -513 | 0 | -257 |
-| 61+ | -513 | 1 | -257 |
-| 62 | -513 | 1 | -513 |
-| 62+ | -1025 | 0 | -513 |
-| 63 | -1025 | 0 | -513 |
-| 63+ | -1025 | 1 | -513 |
-| 64 | -1025 | 1 | -1025 |
-| 64+ | -2049 | 0 | -1025 |
-| 65 | -2049 | 0 | -1025 |
-| 65+ | -2049 | 1 | -1025 |
-| 66 | -2049 | 1 | -2049 |
-| 66+ | -4097 | 0 | -2049 |
-| 67 | -4097 | 0 | -2049 |
-| 67+ | -4097 | 1 | -2049 |
-| 68 | -4097 | 1 | -4097 |
-| 68+ | -8193 | 0 | -4097 |
-| 69 | -8193 | 0 | -4097 |
-| 69+ | -8193 | 1 | -4097 |
-| 70 | -8193 | 1 | -8193 |
-| 70+ | -16385 | 0 | -8193 |
-| 71 | -16385 | 0 | -8193 |
-| 71+ | -16385 | 1 | -8193 |
-| 72 | -16385 | 1 | -16385 |
-| 72+ | 32767 | 0 | -16385 |
-| 73 | 32767 | 0 | -16385 |
-| 73+ | 32767 | 1 | -16385 |
-| 74 | 32767 | 1 | 32767 |
diff --git a/projects/03/a/Register.tst b/projects/03/a/Register.tst
deleted file mode 100644
index aeec166..0000000
--- a/projects/03/a/Register.tst
+++ /dev/null
@@ -1,569 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/a/Register.tst
-
-load Register.hdl,
-output-file Register.out,
-compare-to Register.cmp,
-output-list time%S1.4.1 in%D1.6.1 load%B2.1.2 out%D1.6.1;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in -32123,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 11111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in -32123,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in -32123,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in -32123,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 12345,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set in 0,
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000000000001,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000000000010,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000000000100,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000000001000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000000010000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000000100000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000001000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000010000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000000100000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000001000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000010000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0000100000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0001000000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0010000000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0100000000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1000000000000000,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111111111110,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111111111101,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111111111011,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111111110111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111111101111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111111011111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111110111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111101111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111111011111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111110111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111101111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1111011111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1110111111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1101111111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B1011111111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
-
-set in %B0111111111111111,
-set load 0,
-tick,
-output;
-
-tock,
-output;
-
-set load 1,
-tick,
-output;
-
-tock,
-output;
diff --git a/projects/03/b/RAM16K.cmp b/projects/03/b/RAM16K.cmp
deleted file mode 100644
index a1ad9db..0000000
--- a/projects/03/b/RAM16K.cmp
+++ /dev/null
@@ -1,320 +0,0 @@
-| time | in |load | address | out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 4321 | 0 | 0 | 0 |
-| 3 | 4321 | 0 | 0 | 0 |
-| 3+ | 4321 | 1 | 4321 | 0 |
-| 4 | 4321 | 1 | 4321 | 4321 |
-| 4+ | 4321 | 0 | 0 | 0 |
-| 5 | 4321 | 0 | 0 | 0 |
-| 5+ | 12345 | 0 | 12345 | 0 |
-| 6 | 12345 | 0 | 12345 | 0 |
-| 6+ | 12345 | 1 | 12345 | 0 |
-| 7 | 12345 | 1 | 12345 | 12345 |
-| 7+ | 12345 | 0 | 12345 | 12345 |
-| 8 | 12345 | 0 | 12345 | 12345 |
-| 8 | 12345 | 0 | 4321 | 4321 |
-| 8+ | 16383 | 0 | 4321 | 4321 |
-| 9 | 16383 | 0 | 4321 | 4321 |
-| 9+ | 16383 | 1 | 16383 | 0 |
-| 10 | 16383 | 1 | 16383 | 16383 |
-| 10+ | 16383 | 0 | 16383 | 16383 |
-| 11 | 16383 | 0 | 16383 | 16383 |
-| 11 | 16383 | 0 | 12345 | 12345 |
-| 11 | 16383 | 0 | 16383 | 16383 |
-| 11+ | 16383 | 0 | 10920 | 0 |
-| 12 | 16383 | 0 | 10920 | 0 |
-| 12 | 16383 | 0 | 10921 | 0 |
-| 12 | 16383 | 0 | 10922 | 0 |
-| 12 | 16383 | 0 | 10923 | 0 |
-| 12 | 16383 | 0 | 10924 | 0 |
-| 12 | 16383 | 0 | 10925 | 0 |
-| 12 | 16383 | 0 | 10926 | 0 |
-| 12 | 16383 | 0 | 10927 | 0 |
-| 12+ | 21845 | 1 | 10920 | 0 |
-| 13 | 21845 | 1 | 10920 | 21845 |
-| 13+ | 21845 | 1 | 10921 | 0 |
-| 14 | 21845 | 1 | 10921 | 21845 |
-| 14+ | 21845 | 1 | 10922 | 0 |
-| 15 | 21845 | 1 | 10922 | 21845 |
-| 15+ | 21845 | 1 | 10923 | 0 |
-| 16 | 21845 | 1 | 10923 | 21845 |
-| 16+ | 21845 | 1 | 10924 | 0 |
-| 17 | 21845 | 1 | 10924 | 21845 |
-| 17+ | 21845 | 1 | 10925 | 0 |
-| 18 | 21845 | 1 | 10925 | 21845 |
-| 18+ | 21845 | 1 | 10926 | 0 |
-| 19 | 21845 | 1 | 10926 | 21845 |
-| 19+ | 21845 | 1 | 10927 | 0 |
-| 20 | 21845 | 1 | 10927 | 21845 |
-| 20+ | 21845 | 0 | 10920 | 21845 |
-| 21 | 21845 | 0 | 10920 | 21845 |
-| 21 | 21845 | 0 | 10921 | 21845 |
-| 21 | 21845 | 0 | 10922 | 21845 |
-| 21 | 21845 | 0 | 10923 | 21845 |
-| 21 | 21845 | 0 | 10924 | 21845 |
-| 21 | 21845 | 0 | 10925 | 21845 |
-| 21 | 21845 | 0 | 10926 | 21845 |
-| 21 | 21845 | 0 | 10927 | 21845 |
-| 21+ | -21846 | 1 | 10920 | 21845 |
-| 22 | -21846 | 1 | 10920 | -21846 |
-| 22+ | -21846 | 0 | 10920 | -21846 |
-| 23 | -21846 | 0 | 10920 | -21846 |
-| 23 | -21846 | 0 | 10921 | 21845 |
-| 23 | -21846 | 0 | 10922 | 21845 |
-| 23 | -21846 | 0 | 10923 | 21845 |
-| 23 | -21846 | 0 | 10924 | 21845 |
-| 23 | -21846 | 0 | 10925 | 21845 |
-| 23 | -21846 | 0 | 10926 | 21845 |
-| 23 | -21846 | 0 | 10927 | 21845 |
-| 23+ | 21845 | 1 | 10920 | -21846 |
-| 24 | 21845 | 1 | 10920 | 21845 |
-| 24+ | -21846 | 1 | 10921 | 21845 |
-| 25 | -21846 | 1 | 10921 | -21846 |
-| 25+ | -21846 | 0 | 10920 | 21845 |
-| 26 | -21846 | 0 | 10920 | 21845 |
-| 26 | -21846 | 0 | 10921 | -21846 |
-| 26 | -21846 | 0 | 10922 | 21845 |
-| 26 | -21846 | 0 | 10923 | 21845 |
-| 26 | -21846 | 0 | 10924 | 21845 |
-| 26 | -21846 | 0 | 10925 | 21845 |
-| 26 | -21846 | 0 | 10926 | 21845 |
-| 26 | -21846 | 0 | 10927 | 21845 |
-| 26+ | 21845 | 1 | 10921 | -21846 |
-| 27 | 21845 | 1 | 10921 | 21845 |
-| 27+ | -21846 | 1 | 10922 | 21845 |
-| 28 | -21846 | 1 | 10922 | -21846 |
-| 28+ | -21846 | 0 | 10920 | 21845 |
-| 29 | -21846 | 0 | 10920 | 21845 |
-| 29 | -21846 | 0 | 10921 | 21845 |
-| 29 | -21846 | 0 | 10922 | -21846 |
-| 29 | -21846 | 0 | 10923 | 21845 |
-| 29 | -21846 | 0 | 10924 | 21845 |
-| 29 | -21846 | 0 | 10925 | 21845 |
-| 29 | -21846 | 0 | 10926 | 21845 |
-| 29 | -21846 | 0 | 10927 | 21845 |
-| 29+ | 21845 | 1 | 10922 | -21846 |
-| 30 | 21845 | 1 | 10922 | 21845 |
-| 30+ | -21846 | 1 | 10923 | 21845 |
-| 31 | -21846 | 1 | 10923 | -21846 |
-| 31+ | -21846 | 0 | 10920 | 21845 |
-| 32 | -21846 | 0 | 10920 | 21845 |
-| 32 | -21846 | 0 | 10921 | 21845 |
-| 32 | -21846 | 0 | 10922 | 21845 |
-| 32 | -21846 | 0 | 10923 | -21846 |
-| 32 | -21846 | 0 | 10924 | 21845 |
-| 32 | -21846 | 0 | 10925 | 21845 |
-| 32 | -21846 | 0 | 10926 | 21845 |
-| 32 | -21846 | 0 | 10927 | 21845 |
-| 32+ | 21845 | 1 | 10923 | -21846 |
-| 33 | 21845 | 1 | 10923 | 21845 |
-| 33+ | -21846 | 1 | 10924 | 21845 |
-| 34 | -21846 | 1 | 10924 | -21846 |
-| 34+ | -21846 | 0 | 10920 | 21845 |
-| 35 | -21846 | 0 | 10920 | 21845 |
-| 35 | -21846 | 0 | 10921 | 21845 |
-| 35 | -21846 | 0 | 10922 | 21845 |
-| 35 | -21846 | 0 | 10923 | 21845 |
-| 35 | -21846 | 0 | 10924 | -21846 |
-| 35 | -21846 | 0 | 10925 | 21845 |
-| 35 | -21846 | 0 | 10926 | 21845 |
-| 35 | -21846 | 0 | 10927 | 21845 |
-| 35+ | 21845 | 1 | 10924 | -21846 |
-| 36 | 21845 | 1 | 10924 | 21845 |
-| 36+ | -21846 | 1 | 10925 | 21845 |
-| 37 | -21846 | 1 | 10925 | -21846 |
-| 37+ | -21846 | 0 | 10920 | 21845 |
-| 38 | -21846 | 0 | 10920 | 21845 |
-| 38 | -21846 | 0 | 10921 | 21845 |
-| 38 | -21846 | 0 | 10922 | 21845 |
-| 38 | -21846 | 0 | 10923 | 21845 |
-| 38 | -21846 | 0 | 10924 | 21845 |
-| 38 | -21846 | 0 | 10925 | -21846 |
-| 38 | -21846 | 0 | 10926 | 21845 |
-| 38 | -21846 | 0 | 10927 | 21845 |
-| 38+ | 21845 | 1 | 10925 | -21846 |
-| 39 | 21845 | 1 | 10925 | 21845 |
-| 39+ | -21846 | 1 | 10926 | 21845 |
-| 40 | -21846 | 1 | 10926 | -21846 |
-| 40+ | -21846 | 0 | 10920 | 21845 |
-| 41 | -21846 | 0 | 10920 | 21845 |
-| 41 | -21846 | 0 | 10921 | 21845 |
-| 41 | -21846 | 0 | 10922 | 21845 |
-| 41 | -21846 | 0 | 10923 | 21845 |
-| 41 | -21846 | 0 | 10924 | 21845 |
-| 41 | -21846 | 0 | 10925 | 21845 |
-| 41 | -21846 | 0 | 10926 | -21846 |
-| 41 | -21846 | 0 | 10927 | 21845 |
-| 41+ | 21845 | 1 | 10926 | -21846 |
-| 42 | 21845 | 1 | 10926 | 21845 |
-| 42+ | -21846 | 1 | 10927 | 21845 |
-| 43 | -21846 | 1 | 10927 | -21846 |
-| 43+ | -21846 | 0 | 10920 | 21845 |
-| 44 | -21846 | 0 | 10920 | 21845 |
-| 44 | -21846 | 0 | 10921 | 21845 |
-| 44 | -21846 | 0 | 10922 | 21845 |
-| 44 | -21846 | 0 | 10923 | 21845 |
-| 44 | -21846 | 0 | 10924 | 21845 |
-| 44 | -21846 | 0 | 10925 | 21845 |
-| 44 | -21846 | 0 | 10926 | 21845 |
-| 44 | -21846 | 0 | 10927 | -21846 |
-| 44+ | 21845 | 1 | 10927 | -21846 |
-| 45 | 21845 | 1 | 10927 | 21845 |
-| 45+ | 21845 | 0 | 10920 | 21845 |
-| 46 | 21845 | 0 | 10920 | 21845 |
-| 46 | 21845 | 0 | 10921 | 21845 |
-| 46 | 21845 | 0 | 10922 | 21845 |
-| 46 | 21845 | 0 | 10923 | 21845 |
-| 46 | 21845 | 0 | 10924 | 21845 |
-| 46 | 21845 | 0 | 10925 | 21845 |
-| 46 | 21845 | 0 | 10926 | 21845 |
-| 46 | 21845 | 0 | 10927 | 21845 |
-| 46+ | 21845 | 0 | 1365 | 0 |
-| 47 | 21845 | 0 | 1365 | 0 |
-| 47 | 21845 | 0 | 3413 | 0 |
-| 47 | 21845 | 0 | 5461 | 0 |
-| 47 | 21845 | 0 | 7509 | 0 |
-| 47 | 21845 | 0 | 9557 | 0 |
-| 47 | 21845 | 0 | 11605 | 0 |
-| 47 | 21845 | 0 | 13653 | 0 |
-| 47 | 21845 | 0 | 15701 | 0 |
-| 47+ | 21845 | 1 | 1365 | 0 |
-| 48 | 21845 | 1 | 1365 | 21845 |
-| 48+ | 21845 | 1 | 3413 | 0 |
-| 49 | 21845 | 1 | 3413 | 21845 |
-| 49+ | 21845 | 1 | 5461 | 0 |
-| 50 | 21845 | 1 | 5461 | 21845 |
-| 50+ | 21845 | 1 | 7509 | 0 |
-| 51 | 21845 | 1 | 7509 | 21845 |
-| 51+ | 21845 | 1 | 9557 | 0 |
-| 52 | 21845 | 1 | 9557 | 21845 |
-| 52+ | 21845 | 1 | 11605 | 0 |
-| 53 | 21845 | 1 | 11605 | 21845 |
-| 53+ | 21845 | 1 | 13653 | 0 |
-| 54 | 21845 | 1 | 13653 | 21845 |
-| 54+ | 21845 | 1 | 15701 | 0 |
-| 55 | 21845 | 1 | 15701 | 21845 |
-| 55+ | 21845 | 0 | 1365 | 21845 |
-| 56 | 21845 | 0 | 1365 | 21845 |
-| 56 | 21845 | 0 | 3413 | 21845 |
-| 56 | 21845 | 0 | 5461 | 21845 |
-| 56 | 21845 | 0 | 7509 | 21845 |
-| 56 | 21845 | 0 | 9557 | 21845 |
-| 56 | 21845 | 0 | 11605 | 21845 |
-| 56 | 21845 | 0 | 13653 | 21845 |
-| 56 | 21845 | 0 | 15701 | 21845 |
-| 56+ | -21846 | 1 | 1365 | 21845 |
-| 57 | -21846 | 1 | 1365 | -21846 |
-| 57+ | -21846 | 0 | 1365 | -21846 |
-| 58 | -21846 | 0 | 1365 | -21846 |
-| 58 | -21846 | 0 | 3413 | 21845 |
-| 58 | -21846 | 0 | 5461 | 21845 |
-| 58 | -21846 | 0 | 7509 | 21845 |
-| 58 | -21846 | 0 | 9557 | 21845 |
-| 58 | -21846 | 0 | 11605 | 21845 |
-| 58 | -21846 | 0 | 13653 | 21845 |
-| 58 | -21846 | 0 | 15701 | 21845 |
-| 58+ | 21845 | 1 | 1365 | -21846 |
-| 59 | 21845 | 1 | 1365 | 21845 |
-| 59+ | -21846 | 1 | 3413 | 21845 |
-| 60 | -21846 | 1 | 3413 | -21846 |
-| 60+ | -21846 | 0 | 1365 | 21845 |
-| 61 | -21846 | 0 | 1365 | 21845 |
-| 61 | -21846 | 0 | 3413 | -21846 |
-| 61 | -21846 | 0 | 5461 | 21845 |
-| 61 | -21846 | 0 | 7509 | 21845 |
-| 61 | -21846 | 0 | 9557 | 21845 |
-| 61 | -21846 | 0 | 11605 | 21845 |
-| 61 | -21846 | 0 | 13653 | 21845 |
-| 61 | -21846 | 0 | 15701 | 21845 |
-| 61+ | 21845 | 1 | 3413 | -21846 |
-| 62 | 21845 | 1 | 3413 | 21845 |
-| 62+ | -21846 | 1 | 5461 | 21845 |
-| 63 | -21846 | 1 | 5461 | -21846 |
-| 63+ | -21846 | 0 | 1365 | 21845 |
-| 64 | -21846 | 0 | 1365 | 21845 |
-| 64 | -21846 | 0 | 3413 | 21845 |
-| 64 | -21846 | 0 | 5461 | -21846 |
-| 64 | -21846 | 0 | 7509 | 21845 |
-| 64 | -21846 | 0 | 9557 | 21845 |
-| 64 | -21846 | 0 | 11605 | 21845 |
-| 64 | -21846 | 0 | 13653 | 21845 |
-| 64 | -21846 | 0 | 15701 | 21845 |
-| 64+ | 21845 | 1 | 5461 | -21846 |
-| 65 | 21845 | 1 | 5461 | 21845 |
-| 65+ | -21846 | 1 | 7509 | 21845 |
-| 66 | -21846 | 1 | 7509 | -21846 |
-| 66+ | -21846 | 0 | 1365 | 21845 |
-| 67 | -21846 | 0 | 1365 | 21845 |
-| 67 | -21846 | 0 | 3413 | 21845 |
-| 67 | -21846 | 0 | 5461 | 21845 |
-| 67 | -21846 | 0 | 7509 | -21846 |
-| 67 | -21846 | 0 | 9557 | 21845 |
-| 67 | -21846 | 0 | 11605 | 21845 |
-| 67 | -21846 | 0 | 13653 | 21845 |
-| 67 | -21846 | 0 | 15701 | 21845 |
-| 67+ | 21845 | 1 | 7509 | -21846 |
-| 68 | 21845 | 1 | 7509 | 21845 |
-| 68+ | -21846 | 1 | 9557 | 21845 |
-| 69 | -21846 | 1 | 9557 | -21846 |
-| 69+ | -21846 | 0 | 1365 | 21845 |
-| 70 | -21846 | 0 | 1365 | 21845 |
-| 70 | -21846 | 0 | 3413 | 21845 |
-| 70 | -21846 | 0 | 5461 | 21845 |
-| 70 | -21846 | 0 | 7509 | 21845 |
-| 70 | -21846 | 0 | 9557 | -21846 |
-| 70 | -21846 | 0 | 11605 | 21845 |
-| 70 | -21846 | 0 | 13653 | 21845 |
-| 70 | -21846 | 0 | 15701 | 21845 |
-| 70+ | 21845 | 1 | 9557 | -21846 |
-| 71 | 21845 | 1 | 9557 | 21845 |
-| 71+ | -21846 | 1 | 11605 | 21845 |
-| 72 | -21846 | 1 | 11605 | -21846 |
-| 72+ | -21846 | 0 | 1365 | 21845 |
-| 73 | -21846 | 0 | 1365 | 21845 |
-| 73 | -21846 | 0 | 3413 | 21845 |
-| 73 | -21846 | 0 | 5461 | 21845 |
-| 73 | -21846 | 0 | 7509 | 21845 |
-| 73 | -21846 | 0 | 9557 | 21845 |
-| 73 | -21846 | 0 | 11605 | -21846 |
-| 73 | -21846 | 0 | 13653 | 21845 |
-| 73 | -21846 | 0 | 15701 | 21845 |
-| 73+ | 21845 | 1 | 11605 | -21846 |
-| 74 | 21845 | 1 | 11605 | 21845 |
-| 74+ | -21846 | 1 | 13653 | 21845 |
-| 75 | -21846 | 1 | 13653 | -21846 |
-| 75+ | -21846 | 0 | 1365 | 21845 |
-| 76 | -21846 | 0 | 1365 | 21845 |
-| 76 | -21846 | 0 | 3413 | 21845 |
-| 76 | -21846 | 0 | 5461 | 21845 |
-| 76 | -21846 | 0 | 7509 | 21845 |
-| 76 | -21846 | 0 | 9557 | 21845 |
-| 76 | -21846 | 0 | 11605 | 21845 |
-| 76 | -21846 | 0 | 13653 | -21846 |
-| 76 | -21846 | 0 | 15701 | 21845 |
-| 76+ | 21845 | 1 | 13653 | -21846 |
-| 77 | 21845 | 1 | 13653 | 21845 |
-| 77+ | -21846 | 1 | 15701 | 21845 |
-| 78 | -21846 | 1 | 15701 | -21846 |
-| 78+ | -21846 | 0 | 1365 | 21845 |
-| 79 | -21846 | 0 | 1365 | 21845 |
-| 79 | -21846 | 0 | 3413 | 21845 |
-| 79 | -21846 | 0 | 5461 | 21845 |
-| 79 | -21846 | 0 | 7509 | 21845 |
-| 79 | -21846 | 0 | 9557 | 21845 |
-| 79 | -21846 | 0 | 11605 | 21845 |
-| 79 | -21846 | 0 | 13653 | 21845 |
-| 79 | -21846 | 0 | 15701 | -21846 |
-| 79+ | 21845 | 1 | 15701 | -21846 |
-| 80 | 21845 | 1 | 15701 | 21845 |
-| 80+ | 21845 | 0 | 1365 | 21845 |
-| 81 | 21845 | 0 | 1365 | 21845 |
-| 81 | 21845 | 0 | 3413 | 21845 |
-| 81 | 21845 | 0 | 5461 | 21845 |
-| 81 | 21845 | 0 | 7509 | 21845 |
-| 81 | 21845 | 0 | 9557 | 21845 |
-| 81 | 21845 | 0 | 11605 | 21845 |
-| 81 | 21845 | 0 | 13653 | 21845 |
-| 81 | 21845 | 0 | 15701 | 21845 |
diff --git a/projects/03/b/RAM16K.out b/projects/03/b/RAM16K.out
deleted file mode 100644
index 2caabe9..0000000
--- a/projects/03/b/RAM16K.out
+++ /dev/null
@@ -1,320 +0,0 @@
-| time | in |load | address | out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 4321 | 0 | 0 | 0 |
-| 3 | 4321 | 0 | 0 | 0 |
-| 3+ | 4321 | 1 | 4321 | 0 |
-| 4 | 4321 | 1 | 4321 | 4321 |
-| 4+ | 4321 | 0 | 0 | 0 |
-| 5 | 4321 | 0 | 0 | 0 |
-| 5+ | 12345 | 0 | 12345 | 0 |
-| 6 | 12345 | 0 | 12345 | 0 |
-| 6+ | 12345 | 1 | 12345 | 0 |
-| 7 | 12345 | 1 | 12345 | 12345 |
-| 7+ | 12345 | 0 | 12345 | 12345 |
-| 8 | 12345 | 0 | 12345 | 12345 |
-| 8 | 12345 | 0 | 4321 | 4321 |
-| 8+ | 16383 | 0 | 4321 | 4321 |
-| 9 | 16383 | 0 | 4321 | 4321 |
-| 9+ | 16383 | 1 | 16383 | 0 |
-| 10 | 16383 | 1 | 16383 | 16383 |
-| 10+ | 16383 | 0 | 16383 | 16383 |
-| 11 | 16383 | 0 | 16383 | 16383 |
-| 11 | 16383 | 0 | 12345 | 12345 |
-| 11 | 16383 | 0 | 16383 | 16383 |
-| 11+ | 16383 | 0 | 10920 | 0 |
-| 12 | 16383 | 0 | 10920 | 0 |
-| 12 | 16383 | 0 | 10921 | 0 |
-| 12 | 16383 | 0 | 10922 | 0 |
-| 12 | 16383 | 0 | 10923 | 0 |
-| 12 | 16383 | 0 | 10924 | 0 |
-| 12 | 16383 | 0 | 10925 | 0 |
-| 12 | 16383 | 0 | 10926 | 0 |
-| 12 | 16383 | 0 | 10927 | 0 |
-| 12+ | 21845 | 1 | 10920 | 0 |
-| 13 | 21845 | 1 | 10920 | 21845 |
-| 13+ | 21845 | 1 | 10921 | 0 |
-| 14 | 21845 | 1 | 10921 | 21845 |
-| 14+ | 21845 | 1 | 10922 | 0 |
-| 15 | 21845 | 1 | 10922 | 21845 |
-| 15+ | 21845 | 1 | 10923 | 0 |
-| 16 | 21845 | 1 | 10923 | 21845 |
-| 16+ | 21845 | 1 | 10924 | 0 |
-| 17 | 21845 | 1 | 10924 | 21845 |
-| 17+ | 21845 | 1 | 10925 | 0 |
-| 18 | 21845 | 1 | 10925 | 21845 |
-| 18+ | 21845 | 1 | 10926 | 0 |
-| 19 | 21845 | 1 | 10926 | 21845 |
-| 19+ | 21845 | 1 | 10927 | 0 |
-| 20 | 21845 | 1 | 10927 | 21845 |
-| 20+ | 21845 | 0 | 10920 | 21845 |
-| 21 | 21845 | 0 | 10920 | 21845 |
-| 21 | 21845 | 0 | 10921 | 21845 |
-| 21 | 21845 | 0 | 10922 | 21845 |
-| 21 | 21845 | 0 | 10923 | 21845 |
-| 21 | 21845 | 0 | 10924 | 21845 |
-| 21 | 21845 | 0 | 10925 | 21845 |
-| 21 | 21845 | 0 | 10926 | 21845 |
-| 21 | 21845 | 0 | 10927 | 21845 |
-| 21+ | -21846 | 1 | 10920 | 21845 |
-| 22 | -21846 | 1 | 10920 | -21846 |
-| 22+ | -21846 | 0 | 10920 | -21846 |
-| 23 | -21846 | 0 | 10920 | -21846 |
-| 23 | -21846 | 0 | 10921 | 21845 |
-| 23 | -21846 | 0 | 10922 | 21845 |
-| 23 | -21846 | 0 | 10923 | 21845 |
-| 23 | -21846 | 0 | 10924 | 21845 |
-| 23 | -21846 | 0 | 10925 | 21845 |
-| 23 | -21846 | 0 | 10926 | 21845 |
-| 23 | -21846 | 0 | 10927 | 21845 |
-| 23+ | 21845 | 1 | 10920 | -21846 |
-| 24 | 21845 | 1 | 10920 | 21845 |
-| 24+ | -21846 | 1 | 10921 | 21845 |
-| 25 | -21846 | 1 | 10921 | -21846 |
-| 25+ | -21846 | 0 | 10920 | 21845 |
-| 26 | -21846 | 0 | 10920 | 21845 |
-| 26 | -21846 | 0 | 10921 | -21846 |
-| 26 | -21846 | 0 | 10922 | 21845 |
-| 26 | -21846 | 0 | 10923 | 21845 |
-| 26 | -21846 | 0 | 10924 | 21845 |
-| 26 | -21846 | 0 | 10925 | 21845 |
-| 26 | -21846 | 0 | 10926 | 21845 |
-| 26 | -21846 | 0 | 10927 | 21845 |
-| 26+ | 21845 | 1 | 10921 | -21846 |
-| 27 | 21845 | 1 | 10921 | 21845 |
-| 27+ | -21846 | 1 | 10922 | 21845 |
-| 28 | -21846 | 1 | 10922 | -21846 |
-| 28+ | -21846 | 0 | 10920 | 21845 |
-| 29 | -21846 | 0 | 10920 | 21845 |
-| 29 | -21846 | 0 | 10921 | 21845 |
-| 29 | -21846 | 0 | 10922 | -21846 |
-| 29 | -21846 | 0 | 10923 | 21845 |
-| 29 | -21846 | 0 | 10924 | 21845 |
-| 29 | -21846 | 0 | 10925 | 21845 |
-| 29 | -21846 | 0 | 10926 | 21845 |
-| 29 | -21846 | 0 | 10927 | 21845 |
-| 29+ | 21845 | 1 | 10922 | -21846 |
-| 30 | 21845 | 1 | 10922 | 21845 |
-| 30+ | -21846 | 1 | 10923 | 21845 |
-| 31 | -21846 | 1 | 10923 | -21846 |
-| 31+ | -21846 | 0 | 10920 | 21845 |
-| 32 | -21846 | 0 | 10920 | 21845 |
-| 32 | -21846 | 0 | 10921 | 21845 |
-| 32 | -21846 | 0 | 10922 | 21845 |
-| 32 | -21846 | 0 | 10923 | -21846 |
-| 32 | -21846 | 0 | 10924 | 21845 |
-| 32 | -21846 | 0 | 10925 | 21845 |
-| 32 | -21846 | 0 | 10926 | 21845 |
-| 32 | -21846 | 0 | 10927 | 21845 |
-| 32+ | 21845 | 1 | 10923 | -21846 |
-| 33 | 21845 | 1 | 10923 | 21845 |
-| 33+ | -21846 | 1 | 10924 | 21845 |
-| 34 | -21846 | 1 | 10924 | -21846 |
-| 34+ | -21846 | 0 | 10920 | 21845 |
-| 35 | -21846 | 0 | 10920 | 21845 |
-| 35 | -21846 | 0 | 10921 | 21845 |
-| 35 | -21846 | 0 | 10922 | 21845 |
-| 35 | -21846 | 0 | 10923 | 21845 |
-| 35 | -21846 | 0 | 10924 | -21846 |
-| 35 | -21846 | 0 | 10925 | 21845 |
-| 35 | -21846 | 0 | 10926 | 21845 |
-| 35 | -21846 | 0 | 10927 | 21845 |
-| 35+ | 21845 | 1 | 10924 | -21846 |
-| 36 | 21845 | 1 | 10924 | 21845 |
-| 36+ | -21846 | 1 | 10925 | 21845 |
-| 37 | -21846 | 1 | 10925 | -21846 |
-| 37+ | -21846 | 0 | 10920 | 21845 |
-| 38 | -21846 | 0 | 10920 | 21845 |
-| 38 | -21846 | 0 | 10921 | 21845 |
-| 38 | -21846 | 0 | 10922 | 21845 |
-| 38 | -21846 | 0 | 10923 | 21845 |
-| 38 | -21846 | 0 | 10924 | 21845 |
-| 38 | -21846 | 0 | 10925 | -21846 |
-| 38 | -21846 | 0 | 10926 | 21845 |
-| 38 | -21846 | 0 | 10927 | 21845 |
-| 38+ | 21845 | 1 | 10925 | -21846 |
-| 39 | 21845 | 1 | 10925 | 21845 |
-| 39+ | -21846 | 1 | 10926 | 21845 |
-| 40 | -21846 | 1 | 10926 | -21846 |
-| 40+ | -21846 | 0 | 10920 | 21845 |
-| 41 | -21846 | 0 | 10920 | 21845 |
-| 41 | -21846 | 0 | 10921 | 21845 |
-| 41 | -21846 | 0 | 10922 | 21845 |
-| 41 | -21846 | 0 | 10923 | 21845 |
-| 41 | -21846 | 0 | 10924 | 21845 |
-| 41 | -21846 | 0 | 10925 | 21845 |
-| 41 | -21846 | 0 | 10926 | -21846 |
-| 41 | -21846 | 0 | 10927 | 21845 |
-| 41+ | 21845 | 1 | 10926 | -21846 |
-| 42 | 21845 | 1 | 10926 | 21845 |
-| 42+ | -21846 | 1 | 10927 | 21845 |
-| 43 | -21846 | 1 | 10927 | -21846 |
-| 43+ | -21846 | 0 | 10920 | 21845 |
-| 44 | -21846 | 0 | 10920 | 21845 |
-| 44 | -21846 | 0 | 10921 | 21845 |
-| 44 | -21846 | 0 | 10922 | 21845 |
-| 44 | -21846 | 0 | 10923 | 21845 |
-| 44 | -21846 | 0 | 10924 | 21845 |
-| 44 | -21846 | 0 | 10925 | 21845 |
-| 44 | -21846 | 0 | 10926 | 21845 |
-| 44 | -21846 | 0 | 10927 | -21846 |
-| 44+ | 21845 | 1 | 10927 | -21846 |
-| 45 | 21845 | 1 | 10927 | 21845 |
-| 45+ | 21845 | 0 | 10920 | 21845 |
-| 46 | 21845 | 0 | 10920 | 21845 |
-| 46 | 21845 | 0 | 10921 | 21845 |
-| 46 | 21845 | 0 | 10922 | 21845 |
-| 46 | 21845 | 0 | 10923 | 21845 |
-| 46 | 21845 | 0 | 10924 | 21845 |
-| 46 | 21845 | 0 | 10925 | 21845 |
-| 46 | 21845 | 0 | 10926 | 21845 |
-| 46 | 21845 | 0 | 10927 | 21845 |
-| 46+ | 21845 | 0 | 1365 | 0 |
-| 47 | 21845 | 0 | 1365 | 0 |
-| 47 | 21845 | 0 | 3413 | 0 |
-| 47 | 21845 | 0 | 5461 | 0 |
-| 47 | 21845 | 0 | 7509 | 0 |
-| 47 | 21845 | 0 | 9557 | 0 |
-| 47 | 21845 | 0 | 11605 | 0 |
-| 47 | 21845 | 0 | 13653 | 0 |
-| 47 | 21845 | 0 | 15701 | 0 |
-| 47+ | 21845 | 1 | 1365 | 0 |
-| 48 | 21845 | 1 | 1365 | 21845 |
-| 48+ | 21845 | 1 | 3413 | 0 |
-| 49 | 21845 | 1 | 3413 | 21845 |
-| 49+ | 21845 | 1 | 5461 | 0 |
-| 50 | 21845 | 1 | 5461 | 21845 |
-| 50+ | 21845 | 1 | 7509 | 0 |
-| 51 | 21845 | 1 | 7509 | 21845 |
-| 51+ | 21845 | 1 | 9557 | 0 |
-| 52 | 21845 | 1 | 9557 | 21845 |
-| 52+ | 21845 | 1 | 11605 | 0 |
-| 53 | 21845 | 1 | 11605 | 21845 |
-| 53+ | 21845 | 1 | 13653 | 0 |
-| 54 | 21845 | 1 | 13653 | 21845 |
-| 54+ | 21845 | 1 | 15701 | 0 |
-| 55 | 21845 | 1 | 15701 | 21845 |
-| 55+ | 21845 | 0 | 1365 | 21845 |
-| 56 | 21845 | 0 | 1365 | 21845 |
-| 56 | 21845 | 0 | 3413 | 21845 |
-| 56 | 21845 | 0 | 5461 | 21845 |
-| 56 | 21845 | 0 | 7509 | 21845 |
-| 56 | 21845 | 0 | 9557 | 21845 |
-| 56 | 21845 | 0 | 11605 | 21845 |
-| 56 | 21845 | 0 | 13653 | 21845 |
-| 56 | 21845 | 0 | 15701 | 21845 |
-| 56+ | -21846 | 1 | 1365 | 21845 |
-| 57 | -21846 | 1 | 1365 | -21846 |
-| 57+ | -21846 | 0 | 1365 | -21846 |
-| 58 | -21846 | 0 | 1365 | -21846 |
-| 58 | -21846 | 0 | 3413 | 21845 |
-| 58 | -21846 | 0 | 5461 | 21845 |
-| 58 | -21846 | 0 | 7509 | 21845 |
-| 58 | -21846 | 0 | 9557 | 21845 |
-| 58 | -21846 | 0 | 11605 | 21845 |
-| 58 | -21846 | 0 | 13653 | 21845 |
-| 58 | -21846 | 0 | 15701 | 21845 |
-| 58+ | 21845 | 1 | 1365 | -21846 |
-| 59 | 21845 | 1 | 1365 | 21845 |
-| 59+ | -21846 | 1 | 3413 | 21845 |
-| 60 | -21846 | 1 | 3413 | -21846 |
-| 60+ | -21846 | 0 | 1365 | 21845 |
-| 61 | -21846 | 0 | 1365 | 21845 |
-| 61 | -21846 | 0 | 3413 | -21846 |
-| 61 | -21846 | 0 | 5461 | 21845 |
-| 61 | -21846 | 0 | 7509 | 21845 |
-| 61 | -21846 | 0 | 9557 | 21845 |
-| 61 | -21846 | 0 | 11605 | 21845 |
-| 61 | -21846 | 0 | 13653 | 21845 |
-| 61 | -21846 | 0 | 15701 | 21845 |
-| 61+ | 21845 | 1 | 3413 | -21846 |
-| 62 | 21845 | 1 | 3413 | 21845 |
-| 62+ | -21846 | 1 | 5461 | 21845 |
-| 63 | -21846 | 1 | 5461 | -21846 |
-| 63+ | -21846 | 0 | 1365 | 21845 |
-| 64 | -21846 | 0 | 1365 | 21845 |
-| 64 | -21846 | 0 | 3413 | 21845 |
-| 64 | -21846 | 0 | 5461 | -21846 |
-| 64 | -21846 | 0 | 7509 | 21845 |
-| 64 | -21846 | 0 | 9557 | 21845 |
-| 64 | -21846 | 0 | 11605 | 21845 |
-| 64 | -21846 | 0 | 13653 | 21845 |
-| 64 | -21846 | 0 | 15701 | 21845 |
-| 64+ | 21845 | 1 | 5461 | -21846 |
-| 65 | 21845 | 1 | 5461 | 21845 |
-| 65+ | -21846 | 1 | 7509 | 21845 |
-| 66 | -21846 | 1 | 7509 | -21846 |
-| 66+ | -21846 | 0 | 1365 | 21845 |
-| 67 | -21846 | 0 | 1365 | 21845 |
-| 67 | -21846 | 0 | 3413 | 21845 |
-| 67 | -21846 | 0 | 5461 | 21845 |
-| 67 | -21846 | 0 | 7509 | -21846 |
-| 67 | -21846 | 0 | 9557 | 21845 |
-| 67 | -21846 | 0 | 11605 | 21845 |
-| 67 | -21846 | 0 | 13653 | 21845 |
-| 67 | -21846 | 0 | 15701 | 21845 |
-| 67+ | 21845 | 1 | 7509 | -21846 |
-| 68 | 21845 | 1 | 7509 | 21845 |
-| 68+ | -21846 | 1 | 9557 | 21845 |
-| 69 | -21846 | 1 | 9557 | -21846 |
-| 69+ | -21846 | 0 | 1365 | 21845 |
-| 70 | -21846 | 0 | 1365 | 21845 |
-| 70 | -21846 | 0 | 3413 | 21845 |
-| 70 | -21846 | 0 | 5461 | 21845 |
-| 70 | -21846 | 0 | 7509 | 21845 |
-| 70 | -21846 | 0 | 9557 | -21846 |
-| 70 | -21846 | 0 | 11605 | 21845 |
-| 70 | -21846 | 0 | 13653 | 21845 |
-| 70 | -21846 | 0 | 15701 | 21845 |
-| 70+ | 21845 | 1 | 9557 | -21846 |
-| 71 | 21845 | 1 | 9557 | 21845 |
-| 71+ | -21846 | 1 | 11605 | 21845 |
-| 72 | -21846 | 1 | 11605 | -21846 |
-| 72+ | -21846 | 0 | 1365 | 21845 |
-| 73 | -21846 | 0 | 1365 | 21845 |
-| 73 | -21846 | 0 | 3413 | 21845 |
-| 73 | -21846 | 0 | 5461 | 21845 |
-| 73 | -21846 | 0 | 7509 | 21845 |
-| 73 | -21846 | 0 | 9557 | 21845 |
-| 73 | -21846 | 0 | 11605 | -21846 |
-| 73 | -21846 | 0 | 13653 | 21845 |
-| 73 | -21846 | 0 | 15701 | 21845 |
-| 73+ | 21845 | 1 | 11605 | -21846 |
-| 74 | 21845 | 1 | 11605 | 21845 |
-| 74+ | -21846 | 1 | 13653 | 21845 |
-| 75 | -21846 | 1 | 13653 | -21846 |
-| 75+ | -21846 | 0 | 1365 | 21845 |
-| 76 | -21846 | 0 | 1365 | 21845 |
-| 76 | -21846 | 0 | 3413 | 21845 |
-| 76 | -21846 | 0 | 5461 | 21845 |
-| 76 | -21846 | 0 | 7509 | 21845 |
-| 76 | -21846 | 0 | 9557 | 21845 |
-| 76 | -21846 | 0 | 11605 | 21845 |
-| 76 | -21846 | 0 | 13653 | -21846 |
-| 76 | -21846 | 0 | 15701 | 21845 |
-| 76+ | 21845 | 1 | 13653 | -21846 |
-| 77 | 21845 | 1 | 13653 | 21845 |
-| 77+ | -21846 | 1 | 15701 | 21845 |
-| 78 | -21846 | 1 | 15701 | -21846 |
-| 78+ | -21846 | 0 | 1365 | 21845 |
-| 79 | -21846 | 0 | 1365 | 21845 |
-| 79 | -21846 | 0 | 3413 | 21845 |
-| 79 | -21846 | 0 | 5461 | 21845 |
-| 79 | -21846 | 0 | 7509 | 21845 |
-| 79 | -21846 | 0 | 9557 | 21845 |
-| 79 | -21846 | 0 | 11605 | 21845 |
-| 79 | -21846 | 0 | 13653 | 21845 |
-| 79 | -21846 | 0 | 15701 | -21846 |
-| 79+ | 21845 | 1 | 15701 | -21846 |
-| 80 | 21845 | 1 | 15701 | 21845 |
-| 80+ | 21845 | 0 | 1365 | 21845 |
-| 81 | 21845 | 0 | 1365 | 21845 |
-| 81 | 21845 | 0 | 3413 | 21845 |
-| 81 | 21845 | 0 | 5461 | 21845 |
-| 81 | 21845 | 0 | 7509 | 21845 |
-| 81 | 21845 | 0 | 9557 | 21845 |
-| 81 | 21845 | 0 | 11605 | 21845 |
-| 81 | 21845 | 0 | 13653 | 21845 |
-| 81 | 21845 | 0 | 15701 | 21845 |
diff --git a/projects/03/b/RAM16K.tst b/projects/03/b/RAM16K.tst
deleted file mode 100644
index e556ad4..0000000
--- a/projects/03/b/RAM16K.tst
+++ /dev/null
@@ -1,1026 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/b/RAM16K.tst
-
-load RAM16K.hdl,
-output-file RAM16K.out,
-compare-to RAM16K.cmp,
-output-list time%S1.4.1 in%D1.6.1 load%B2.1.2 address%D2.5.2 out%D1.6.1;
-
-set in 0,
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set in 4321,
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 4321,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set in 12345,
-set address 12345,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 4321,
-eval,
-output;
-
-set in 16383,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 16383,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 12345,
-eval,
-output;
-
-set address 16383,
-eval,
-output;
-
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-tick,
-output,
-tock,
-output;
-set address %B10101010101010,
-tick,
-output,
-tock,
-output;
-set address %B10101010101011,
-tick,
-output,
-tock,
-output;
-set address %B10101010101100,
-tick,
-output,
-tock,
-output;
-set address %B10101010101101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101110,
-tick,
-output,
-tock,
-output;
-set address %B10101010101111,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101000,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101000,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101001,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101001,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101011,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101011,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101100,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101100,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101110,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101110,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10101010101111,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-set load 1,
-set address %B10101010101111,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B10101010101000,
-tick,
-output;
-tock,
-output;
-set address %B10101010101001,
-eval,
-output;
-set address %B10101010101010,
-eval,
-output;
-set address %B10101010101011,
-eval,
-output;
-set address %B10101010101100,
-eval,
-output;
-set address %B10101010101101,
-eval,
-output;
-set address %B10101010101110,
-eval,
-output;
-set address %B10101010101111,
-eval,
-output;
-
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-tick,
-output,
-tock,
-output;
-set address %B01010101010101,
-tick,
-output,
-tock,
-output;
-set address %B01110101010101,
-tick,
-output,
-tock,
-output;
-set address %B10010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10110101010101,
-tick,
-output,
-tock,
-output;
-set address %B11010101010101,
-tick,
-output,
-tock,
-output;
-set address %B11110101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B00010101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B00010101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B00110101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B00110101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B01010101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B01010101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B01110101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B01110101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10010101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B10010101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B10110101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B10110101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B11010101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B11010101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B11110101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
-
-set load 1,
-set address %B11110101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B00010101010101,
-tick,
-output;
-tock,
-output;
-set address %B00110101010101,
-eval,
-output;
-set address %B01010101010101,
-eval,
-output;
-set address %B01110101010101,
-eval,
-output;
-set address %B10010101010101,
-eval,
-output;
-set address %B10110101010101,
-eval,
-output;
-set address %B11010101010101,
-eval,
-output;
-set address %B11110101010101,
-eval,
-output;
diff --git a/projects/03/b/RAM4K.cmp b/projects/03/b/RAM4K.cmp
deleted file mode 100644
index a614796..0000000
--- a/projects/03/b/RAM4K.cmp
+++ /dev/null
@@ -1,320 +0,0 @@
-| time | in |load |address | out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 1111 | 0 | 0 | 0 |
-| 3 | 1111 | 0 | 0 | 0 |
-| 3+ | 1111 | 1 | 1111 | 0 |
-| 4 | 1111 | 1 | 1111 | 1111 |
-| 4+ | 1111 | 0 | 0 | 0 |
-| 5 | 1111 | 0 | 0 | 0 |
-| 5+ | 3513 | 0 | 3513 | 0 |
-| 6 | 3513 | 0 | 3513 | 0 |
-| 6+ | 3513 | 1 | 3513 | 0 |
-| 7 | 3513 | 1 | 3513 | 3513 |
-| 7+ | 3513 | 0 | 3513 | 3513 |
-| 8 | 3513 | 0 | 3513 | 3513 |
-| 8 | 3513 | 0 | 1111 | 1111 |
-| 8+ | 4095 | 0 | 1111 | 1111 |
-| 9 | 4095 | 0 | 1111 | 1111 |
-| 9+ | 4095 | 1 | 4095 | 0 |
-| 10 | 4095 | 1 | 4095 | 4095 |
-| 10+ | 4095 | 0 | 4095 | 4095 |
-| 11 | 4095 | 0 | 4095 | 4095 |
-| 11 | 4095 | 0 | 3513 | 3513 |
-| 11 | 4095 | 0 | 4095 | 4095 |
-| 11+ | 4095 | 0 | 2728 | 0 |
-| 12 | 4095 | 0 | 2728 | 0 |
-| 12 | 4095 | 0 | 2729 | 0 |
-| 12 | 4095 | 0 | 2730 | 0 |
-| 12 | 4095 | 0 | 2731 | 0 |
-| 12 | 4095 | 0 | 2732 | 0 |
-| 12 | 4095 | 0 | 2733 | 0 |
-| 12 | 4095 | 0 | 2734 | 0 |
-| 12 | 4095 | 0 | 2735 | 0 |
-| 12+ | 21845 | 1 | 2728 | 0 |
-| 13 | 21845 | 1 | 2728 | 21845 |
-| 13+ | 21845 | 1 | 2729 | 0 |
-| 14 | 21845 | 1 | 2729 | 21845 |
-| 14+ | 21845 | 1 | 2730 | 0 |
-| 15 | 21845 | 1 | 2730 | 21845 |
-| 15+ | 21845 | 1 | 2731 | 0 |
-| 16 | 21845 | 1 | 2731 | 21845 |
-| 16+ | 21845 | 1 | 2732 | 0 |
-| 17 | 21845 | 1 | 2732 | 21845 |
-| 17+ | 21845 | 1 | 2733 | 0 |
-| 18 | 21845 | 1 | 2733 | 21845 |
-| 18+ | 21845 | 1 | 2734 | 0 |
-| 19 | 21845 | 1 | 2734 | 21845 |
-| 19+ | 21845 | 1 | 2735 | 0 |
-| 20 | 21845 | 1 | 2735 | 21845 |
-| 20+ | 21845 | 0 | 2728 | 21845 |
-| 21 | 21845 | 0 | 2728 | 21845 |
-| 21 | 21845 | 0 | 2729 | 21845 |
-| 21 | 21845 | 0 | 2730 | 21845 |
-| 21 | 21845 | 0 | 2731 | 21845 |
-| 21 | 21845 | 0 | 2732 | 21845 |
-| 21 | 21845 | 0 | 2733 | 21845 |
-| 21 | 21845 | 0 | 2734 | 21845 |
-| 21 | 21845 | 0 | 2735 | 21845 |
-| 21+ | -21846 | 1 | 2728 | 21845 |
-| 22 | -21846 | 1 | 2728 | -21846 |
-| 22+ | -21846 | 0 | 2728 | -21846 |
-| 23 | -21846 | 0 | 2728 | -21846 |
-| 23 | -21846 | 0 | 2729 | 21845 |
-| 23 | -21846 | 0 | 2730 | 21845 |
-| 23 | -21846 | 0 | 2731 | 21845 |
-| 23 | -21846 | 0 | 2732 | 21845 |
-| 23 | -21846 | 0 | 2733 | 21845 |
-| 23 | -21846 | 0 | 2734 | 21845 |
-| 23 | -21846 | 0 | 2735 | 21845 |
-| 23+ | 21845 | 1 | 2728 | -21846 |
-| 24 | 21845 | 1 | 2728 | 21845 |
-| 24+ | -21846 | 1 | 2729 | 21845 |
-| 25 | -21846 | 1 | 2729 | -21846 |
-| 25+ | -21846 | 0 | 2728 | 21845 |
-| 26 | -21846 | 0 | 2728 | 21845 |
-| 26 | -21846 | 0 | 2729 | -21846 |
-| 26 | -21846 | 0 | 2730 | 21845 |
-| 26 | -21846 | 0 | 2731 | 21845 |
-| 26 | -21846 | 0 | 2732 | 21845 |
-| 26 | -21846 | 0 | 2733 | 21845 |
-| 26 | -21846 | 0 | 2734 | 21845 |
-| 26 | -21846 | 0 | 2735 | 21845 |
-| 26+ | 21845 | 1 | 2729 | -21846 |
-| 27 | 21845 | 1 | 2729 | 21845 |
-| 27+ | -21846 | 1 | 2730 | 21845 |
-| 28 | -21846 | 1 | 2730 | -21846 |
-| 28+ | -21846 | 0 | 2728 | 21845 |
-| 29 | -21846 | 0 | 2728 | 21845 |
-| 29 | -21846 | 0 | 2729 | 21845 |
-| 29 | -21846 | 0 | 2730 | -21846 |
-| 29 | -21846 | 0 | 2731 | 21845 |
-| 29 | -21846 | 0 | 2732 | 21845 |
-| 29 | -21846 | 0 | 2733 | 21845 |
-| 29 | -21846 | 0 | 2734 | 21845 |
-| 29 | -21846 | 0 | 2735 | 21845 |
-| 29+ | 21845 | 1 | 2730 | -21846 |
-| 30 | 21845 | 1 | 2730 | 21845 |
-| 30+ | -21846 | 1 | 2731 | 21845 |
-| 31 | -21846 | 1 | 2731 | -21846 |
-| 31+ | -21846 | 0 | 2728 | 21845 |
-| 32 | -21846 | 0 | 2728 | 21845 |
-| 32 | -21846 | 0 | 2729 | 21845 |
-| 32 | -21846 | 0 | 2730 | 21845 |
-| 32 | -21846 | 0 | 2731 | -21846 |
-| 32 | -21846 | 0 | 2732 | 21845 |
-| 32 | -21846 | 0 | 2733 | 21845 |
-| 32 | -21846 | 0 | 2734 | 21845 |
-| 32 | -21846 | 0 | 2735 | 21845 |
-| 32+ | 21845 | 1 | 2731 | -21846 |
-| 33 | 21845 | 1 | 2731 | 21845 |
-| 33+ | -21846 | 1 | 2732 | 21845 |
-| 34 | -21846 | 1 | 2732 | -21846 |
-| 34+ | -21846 | 0 | 2728 | 21845 |
-| 35 | -21846 | 0 | 2728 | 21845 |
-| 35 | -21846 | 0 | 2729 | 21845 |
-| 35 | -21846 | 0 | 2730 | 21845 |
-| 35 | -21846 | 0 | 2731 | 21845 |
-| 35 | -21846 | 0 | 2732 | -21846 |
-| 35 | -21846 | 0 | 2733 | 21845 |
-| 35 | -21846 | 0 | 2734 | 21845 |
-| 35 | -21846 | 0 | 2735 | 21845 |
-| 35+ | 21845 | 1 | 2732 | -21846 |
-| 36 | 21845 | 1 | 2732 | 21845 |
-| 36+ | -21846 | 1 | 2733 | 21845 |
-| 37 | -21846 | 1 | 2733 | -21846 |
-| 37+ | -21846 | 0 | 2728 | 21845 |
-| 38 | -21846 | 0 | 2728 | 21845 |
-| 38 | -21846 | 0 | 2729 | 21845 |
-| 38 | -21846 | 0 | 2730 | 21845 |
-| 38 | -21846 | 0 | 2731 | 21845 |
-| 38 | -21846 | 0 | 2732 | 21845 |
-| 38 | -21846 | 0 | 2733 | -21846 |
-| 38 | -21846 | 0 | 2734 | 21845 |
-| 38 | -21846 | 0 | 2735 | 21845 |
-| 38+ | 21845 | 1 | 2733 | -21846 |
-| 39 | 21845 | 1 | 2733 | 21845 |
-| 39+ | -21846 | 1 | 2734 | 21845 |
-| 40 | -21846 | 1 | 2734 | -21846 |
-| 40+ | -21846 | 0 | 2728 | 21845 |
-| 41 | -21846 | 0 | 2728 | 21845 |
-| 41 | -21846 | 0 | 2729 | 21845 |
-| 41 | -21846 | 0 | 2730 | 21845 |
-| 41 | -21846 | 0 | 2731 | 21845 |
-| 41 | -21846 | 0 | 2732 | 21845 |
-| 41 | -21846 | 0 | 2733 | 21845 |
-| 41 | -21846 | 0 | 2734 | -21846 |
-| 41 | -21846 | 0 | 2735 | 21845 |
-| 41+ | 21845 | 1 | 2734 | -21846 |
-| 42 | 21845 | 1 | 2734 | 21845 |
-| 42+ | -21846 | 1 | 2735 | 21845 |
-| 43 | -21846 | 1 | 2735 | -21846 |
-| 43+ | -21846 | 0 | 2728 | 21845 |
-| 44 | -21846 | 0 | 2728 | 21845 |
-| 44 | -21846 | 0 | 2729 | 21845 |
-| 44 | -21846 | 0 | 2730 | 21845 |
-| 44 | -21846 | 0 | 2731 | 21845 |
-| 44 | -21846 | 0 | 2732 | 21845 |
-| 44 | -21846 | 0 | 2733 | 21845 |
-| 44 | -21846 | 0 | 2734 | 21845 |
-| 44 | -21846 | 0 | 2735 | -21846 |
-| 44+ | 21845 | 1 | 2735 | -21846 |
-| 45 | 21845 | 1 | 2735 | 21845 |
-| 45+ | 21845 | 0 | 2728 | 21845 |
-| 46 | 21845 | 0 | 2728 | 21845 |
-| 46 | 21845 | 0 | 2729 | 21845 |
-| 46 | 21845 | 0 | 2730 | 21845 |
-| 46 | 21845 | 0 | 2731 | 21845 |
-| 46 | 21845 | 0 | 2732 | 21845 |
-| 46 | 21845 | 0 | 2733 | 21845 |
-| 46 | 21845 | 0 | 2734 | 21845 |
-| 46 | 21845 | 0 | 2735 | 21845 |
-| 46+ | 21845 | 0 | 341 | 0 |
-| 47 | 21845 | 0 | 341 | 0 |
-| 47 | 21845 | 0 | 853 | 0 |
-| 47 | 21845 | 0 | 1365 | 0 |
-| 47 | 21845 | 0 | 1877 | 0 |
-| 47 | 21845 | 0 | 2389 | 0 |
-| 47 | 21845 | 0 | 2901 | 0 |
-| 47 | 21845 | 0 | 3413 | 0 |
-| 47 | 21845 | 0 | 3925 | 0 |
-| 47+ | 21845 | 1 | 341 | 0 |
-| 48 | 21845 | 1 | 341 | 21845 |
-| 48+ | 21845 | 1 | 853 | 0 |
-| 49 | 21845 | 1 | 853 | 21845 |
-| 49+ | 21845 | 1 | 1365 | 0 |
-| 50 | 21845 | 1 | 1365 | 21845 |
-| 50+ | 21845 | 1 | 1877 | 0 |
-| 51 | 21845 | 1 | 1877 | 21845 |
-| 51+ | 21845 | 1 | 2389 | 0 |
-| 52 | 21845 | 1 | 2389 | 21845 |
-| 52+ | 21845 | 1 | 2901 | 0 |
-| 53 | 21845 | 1 | 2901 | 21845 |
-| 53+ | 21845 | 1 | 3413 | 0 |
-| 54 | 21845 | 1 | 3413 | 21845 |
-| 54+ | 21845 | 1 | 3925 | 0 |
-| 55 | 21845 | 1 | 3925 | 21845 |
-| 55+ | 21845 | 0 | 341 | 21845 |
-| 56 | 21845 | 0 | 341 | 21845 |
-| 56 | 21845 | 0 | 853 | 21845 |
-| 56 | 21845 | 0 | 1365 | 21845 |
-| 56 | 21845 | 0 | 1877 | 21845 |
-| 56 | 21845 | 0 | 2389 | 21845 |
-| 56 | 21845 | 0 | 2901 | 21845 |
-| 56 | 21845 | 0 | 3413 | 21845 |
-| 56 | 21845 | 0 | 3925 | 21845 |
-| 56+ | -21846 | 1 | 341 | 21845 |
-| 57 | -21846 | 1 | 341 | -21846 |
-| 57+ | -21846 | 0 | 341 | -21846 |
-| 58 | -21846 | 0 | 341 | -21846 |
-| 58 | -21846 | 0 | 853 | 21845 |
-| 58 | -21846 | 0 | 1365 | 21845 |
-| 58 | -21846 | 0 | 1877 | 21845 |
-| 58 | -21846 | 0 | 2389 | 21845 |
-| 58 | -21846 | 0 | 2901 | 21845 |
-| 58 | -21846 | 0 | 3413 | 21845 |
-| 58 | -21846 | 0 | 3925 | 21845 |
-| 58+ | 21845 | 1 | 341 | -21846 |
-| 59 | 21845 | 1 | 341 | 21845 |
-| 59+ | -21846 | 1 | 853 | 21845 |
-| 60 | -21846 | 1 | 853 | -21846 |
-| 60+ | -21846 | 0 | 341 | 21845 |
-| 61 | -21846 | 0 | 341 | 21845 |
-| 61 | -21846 | 0 | 853 | -21846 |
-| 61 | -21846 | 0 | 1365 | 21845 |
-| 61 | -21846 | 0 | 1877 | 21845 |
-| 61 | -21846 | 0 | 2389 | 21845 |
-| 61 | -21846 | 0 | 2901 | 21845 |
-| 61 | -21846 | 0 | 3413 | 21845 |
-| 61 | -21846 | 0 | 3925 | 21845 |
-| 61+ | 21845 | 1 | 853 | -21846 |
-| 62 | 21845 | 1 | 853 | 21845 |
-| 62+ | -21846 | 1 | 1365 | 21845 |
-| 63 | -21846 | 1 | 1365 | -21846 |
-| 63+ | -21846 | 0 | 341 | 21845 |
-| 64 | -21846 | 0 | 341 | 21845 |
-| 64 | -21846 | 0 | 853 | 21845 |
-| 64 | -21846 | 0 | 1365 | -21846 |
-| 64 | -21846 | 0 | 1877 | 21845 |
-| 64 | -21846 | 0 | 2389 | 21845 |
-| 64 | -21846 | 0 | 2901 | 21845 |
-| 64 | -21846 | 0 | 3413 | 21845 |
-| 64 | -21846 | 0 | 3925 | 21845 |
-| 64+ | 21845 | 1 | 1365 | -21846 |
-| 65 | 21845 | 1 | 1365 | 21845 |
-| 65+ | -21846 | 1 | 1877 | 21845 |
-| 66 | -21846 | 1 | 1877 | -21846 |
-| 66+ | -21846 | 0 | 341 | 21845 |
-| 67 | -21846 | 0 | 341 | 21845 |
-| 67 | -21846 | 0 | 853 | 21845 |
-| 67 | -21846 | 0 | 1365 | 21845 |
-| 67 | -21846 | 0 | 1877 | -21846 |
-| 67 | -21846 | 0 | 2389 | 21845 |
-| 67 | -21846 | 0 | 2901 | 21845 |
-| 67 | -21846 | 0 | 3413 | 21845 |
-| 67 | -21846 | 0 | 3925 | 21845 |
-| 67+ | 21845 | 1 | 1877 | -21846 |
-| 68 | 21845 | 1 | 1877 | 21845 |
-| 68+ | -21846 | 1 | 2389 | 21845 |
-| 69 | -21846 | 1 | 2389 | -21846 |
-| 69+ | -21846 | 0 | 341 | 21845 |
-| 70 | -21846 | 0 | 341 | 21845 |
-| 70 | -21846 | 0 | 853 | 21845 |
-| 70 | -21846 | 0 | 1365 | 21845 |
-| 70 | -21846 | 0 | 1877 | 21845 |
-| 70 | -21846 | 0 | 2389 | -21846 |
-| 70 | -21846 | 0 | 2901 | 21845 |
-| 70 | -21846 | 0 | 3413 | 21845 |
-| 70 | -21846 | 0 | 3925 | 21845 |
-| 70+ | 21845 | 1 | 2389 | -21846 |
-| 71 | 21845 | 1 | 2389 | 21845 |
-| 71+ | -21846 | 1 | 2901 | 21845 |
-| 72 | -21846 | 1 | 2901 | -21846 |
-| 72+ | -21846 | 0 | 341 | 21845 |
-| 73 | -21846 | 0 | 341 | 21845 |
-| 73 | -21846 | 0 | 853 | 21845 |
-| 73 | -21846 | 0 | 1365 | 21845 |
-| 73 | -21846 | 0 | 1877 | 21845 |
-| 73 | -21846 | 0 | 2389 | 21845 |
-| 73 | -21846 | 0 | 2901 | -21846 |
-| 73 | -21846 | 0 | 3413 | 21845 |
-| 73 | -21846 | 0 | 3925 | 21845 |
-| 73+ | 21845 | 1 | 2901 | -21846 |
-| 74 | 21845 | 1 | 2901 | 21845 |
-| 74+ | -21846 | 1 | 3413 | 21845 |
-| 75 | -21846 | 1 | 3413 | -21846 |
-| 75+ | -21846 | 0 | 341 | 21845 |
-| 76 | -21846 | 0 | 341 | 21845 |
-| 76 | -21846 | 0 | 853 | 21845 |
-| 76 | -21846 | 0 | 1365 | 21845 |
-| 76 | -21846 | 0 | 1877 | 21845 |
-| 76 | -21846 | 0 | 2389 | 21845 |
-| 76 | -21846 | 0 | 2901 | 21845 |
-| 76 | -21846 | 0 | 3413 | -21846 |
-| 76 | -21846 | 0 | 3925 | 21845 |
-| 76+ | 21845 | 1 | 3413 | -21846 |
-| 77 | 21845 | 1 | 3413 | 21845 |
-| 77+ | -21846 | 1 | 3925 | 21845 |
-| 78 | -21846 | 1 | 3925 | -21846 |
-| 78+ | -21846 | 0 | 341 | 21845 |
-| 79 | -21846 | 0 | 341 | 21845 |
-| 79 | -21846 | 0 | 853 | 21845 |
-| 79 | -21846 | 0 | 1365 | 21845 |
-| 79 | -21846 | 0 | 1877 | 21845 |
-| 79 | -21846 | 0 | 2389 | 21845 |
-| 79 | -21846 | 0 | 2901 | 21845 |
-| 79 | -21846 | 0 | 3413 | 21845 |
-| 79 | -21846 | 0 | 3925 | -21846 |
-| 79+ | 21845 | 1 | 3925 | -21846 |
-| 80 | 21845 | 1 | 3925 | 21845 |
-| 80+ | 21845 | 0 | 341 | 21845 |
-| 81 | 21845 | 0 | 341 | 21845 |
-| 81 | 21845 | 0 | 853 | 21845 |
-| 81 | 21845 | 0 | 1365 | 21845 |
-| 81 | 21845 | 0 | 1877 | 21845 |
-| 81 | 21845 | 0 | 2389 | 21845 |
-| 81 | 21845 | 0 | 2901 | 21845 |
-| 81 | 21845 | 0 | 3413 | 21845 |
-| 81 | 21845 | 0 | 3925 | 21845 |
diff --git a/projects/03/b/RAM4K.tst b/projects/03/b/RAM4K.tst
deleted file mode 100644
index 7a5aa12..0000000
--- a/projects/03/b/RAM4K.tst
+++ /dev/null
@@ -1,1026 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/b/RAM4K.tst
-
-load RAM4K.hdl,
-output-file RAM4K.out,
-compare-to RAM4K.cmp,
-output-list time%S1.4.1 in%D1.6.1 load%B2.1.2 address%D2.4.2 out%D1.6.1;
-
-set in 0,
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set in 1111,
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 1111,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set in 3513,
-set address 3513,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 1111,
-eval,
-output;
-
-set in 4095,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 4095,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 3513,
-eval,
-output;
-
-set address 4095,
-eval,
-output;
-
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-tick,
-output,
-tock,
-output;
-set address %B101010101010,
-tick,
-output,
-tock,
-output;
-set address %B101010101011,
-tick,
-output,
-tock,
-output;
-set address %B101010101100,
-tick,
-output,
-tock,
-output;
-set address %B101010101101,
-tick,
-output,
-tock,
-output;
-set address %B101010101110,
-tick,
-output,
-tock,
-output;
-set address %B101010101111,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101000,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101000,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101001,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101001,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101011,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101011,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101100,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101100,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101110,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101110,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101010101111,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-set load 1,
-set address %B101010101111,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B101010101000,
-tick,
-output;
-tock,
-output;
-set address %B101010101001,
-eval,
-output;
-set address %B101010101010,
-eval,
-output;
-set address %B101010101011,
-eval,
-output;
-set address %B101010101100,
-eval,
-output;
-set address %B101010101101,
-eval,
-output;
-set address %B101010101110,
-eval,
-output;
-set address %B101010101111,
-eval,
-output;
-
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101010101,
-tick,
-output,
-tock,
-output;
-set address %B011101010101,
-tick,
-output,
-tock,
-output;
-set address %B100101010101,
-tick,
-output,
-tock,
-output;
-set address %B101101010101,
-tick,
-output,
-tock,
-output;
-set address %B110101010101,
-tick,
-output,
-tock,
-output;
-set address %B111101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B000101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B000101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B001101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B001101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B010101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B011101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B011101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B100101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B100101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B101101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B110101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B110101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B111101010101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
-
-set load 1,
-set address %B111101010101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B000101010101,
-tick,
-output;
-tock,
-output;
-set address %B001101010101,
-eval,
-output;
-set address %B010101010101,
-eval,
-output;
-set address %B011101010101,
-eval,
-output;
-set address %B100101010101,
-eval,
-output;
-set address %B101101010101,
-eval,
-output;
-set address %B110101010101,
-eval,
-output;
-set address %B111101010101,
-eval,
-output;
diff --git a/projects/03/b/RAM512.cmp b/projects/03/b/RAM512.cmp
deleted file mode 100644
index 6f756ca..0000000
--- a/projects/03/b/RAM512.cmp
+++ /dev/null
@@ -1,320 +0,0 @@
-| time | in |load |address| out |
-| 0+ | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 1+ | 0 | 1 | 0 | 0 |
-| 2 | 0 | 1 | 0 | 0 |
-| 2+ | 13099 | 0 | 0 | 0 |
-| 3 | 13099 | 0 | 0 | 0 |
-| 3+ | 13099 | 1 | 130 | 0 |
-| 4 | 13099 | 1 | 130 | 13099 |
-| 4+ | 13099 | 0 | 0 | 0 |
-| 5 | 13099 | 0 | 0 | 0 |
-| 5+ | 4729 | 0 | 472 | 0 |
-| 6 | 4729 | 0 | 472 | 0 |
-| 6+ | 4729 | 1 | 472 | 0 |
-| 7 | 4729 | 1 | 472 | 4729 |
-| 7+ | 4729 | 0 | 472 | 4729 |
-| 8 | 4729 | 0 | 472 | 4729 |
-| 8 | 4729 | 0 | 130 | 13099 |
-| 8+ | 5119 | 0 | 130 | 13099 |
-| 9 | 5119 | 0 | 130 | 13099 |
-| 9+ | 5119 | 1 | 511 | 0 |
-| 10 | 5119 | 1 | 511 | 5119 |
-| 10+ | 5119 | 0 | 511 | 5119 |
-| 11 | 5119 | 0 | 511 | 5119 |
-| 11 | 5119 | 0 | 472 | 4729 |
-| 11 | 5119 | 0 | 511 | 5119 |
-| 11+ | 5119 | 0 | 168 | 0 |
-| 12 | 5119 | 0 | 168 | 0 |
-| 12 | 5119 | 0 | 169 | 0 |
-| 12 | 5119 | 0 | 170 | 0 |
-| 12 | 5119 | 0 | 171 | 0 |
-| 12 | 5119 | 0 | 172 | 0 |
-| 12 | 5119 | 0 | 173 | 0 |
-| 12 | 5119 | 0 | 174 | 0 |
-| 12 | 5119 | 0 | 175 | 0 |
-| 12+ | 21845 | 1 | 168 | 0 |
-| 13 | 21845 | 1 | 168 | 21845 |
-| 13+ | 21845 | 1 | 169 | 0 |
-| 14 | 21845 | 1 | 169 | 21845 |
-| 14+ | 21845 | 1 | 170 | 0 |
-| 15 | 21845 | 1 | 170 | 21845 |
-| 15+ | 21845 | 1 | 171 | 0 |
-| 16 | 21845 | 1 | 171 | 21845 |
-| 16+ | 21845 | 1 | 172 | 0 |
-| 17 | 21845 | 1 | 172 | 21845 |
-| 17+ | 21845 | 1 | 173 | 0 |
-| 18 | 21845 | 1 | 173 | 21845 |
-| 18+ | 21845 | 1 | 174 | 0 |
-| 19 | 21845 | 1 | 174 | 21845 |
-| 19+ | 21845 | 1 | 175 | 0 |
-| 20 | 21845 | 1 | 175 | 21845 |
-| 20+ | 21845 | 0 | 168 | 21845 |
-| 21 | 21845 | 0 | 168 | 21845 |
-| 21 | 21845 | 0 | 169 | 21845 |
-| 21 | 21845 | 0 | 170 | 21845 |
-| 21 | 21845 | 0 | 171 | 21845 |
-| 21 | 21845 | 0 | 172 | 21845 |
-| 21 | 21845 | 0 | 173 | 21845 |
-| 21 | 21845 | 0 | 174 | 21845 |
-| 21 | 21845 | 0 | 175 | 21845 |
-| 21+ | -21846 | 1 | 168 | 21845 |
-| 22 | -21846 | 1 | 168 | -21846 |
-| 22+ | -21846 | 0 | 168 | -21846 |
-| 23 | -21846 | 0 | 168 | -21846 |
-| 23 | -21846 | 0 | 169 | 21845 |
-| 23 | -21846 | 0 | 170 | 21845 |
-| 23 | -21846 | 0 | 171 | 21845 |
-| 23 | -21846 | 0 | 172 | 21845 |
-| 23 | -21846 | 0 | 173 | 21845 |
-| 23 | -21846 | 0 | 174 | 21845 |
-| 23 | -21846 | 0 | 175 | 21845 |
-| 23+ | 21845 | 1 | 168 | -21846 |
-| 24 | 21845 | 1 | 168 | 21845 |
-| 24+ | -21846 | 1 | 169 | 21845 |
-| 25 | -21846 | 1 | 169 | -21846 |
-| 25+ | -21846 | 0 | 168 | 21845 |
-| 26 | -21846 | 0 | 168 | 21845 |
-| 26 | -21846 | 0 | 169 | -21846 |
-| 26 | -21846 | 0 | 170 | 21845 |
-| 26 | -21846 | 0 | 171 | 21845 |
-| 26 | -21846 | 0 | 172 | 21845 |
-| 26 | -21846 | 0 | 173 | 21845 |
-| 26 | -21846 | 0 | 174 | 21845 |
-| 26 | -21846 | 0 | 175 | 21845 |
-| 26+ | 21845 | 1 | 169 | -21846 |
-| 27 | 21845 | 1 | 169 | 21845 |
-| 27+ | -21846 | 1 | 170 | 21845 |
-| 28 | -21846 | 1 | 170 | -21846 |
-| 28+ | -21846 | 0 | 168 | 21845 |
-| 29 | -21846 | 0 | 168 | 21845 |
-| 29 | -21846 | 0 | 169 | 21845 |
-| 29 | -21846 | 0 | 170 | -21846 |
-| 29 | -21846 | 0 | 171 | 21845 |
-| 29 | -21846 | 0 | 172 | 21845 |
-| 29 | -21846 | 0 | 173 | 21845 |
-| 29 | -21846 | 0 | 174 | 21845 |
-| 29 | -21846 | 0 | 175 | 21845 |
-| 29+ | 21845 | 1 | 170 | -21846 |
-| 30 | 21845 | 1 | 170 | 21845 |
-| 30+ | -21846 | 1 | 171 | 21845 |
-| 31 | -21846 | 1 | 171 | -21846 |
-| 31+ | -21846 | 0 | 168 | 21845 |
-| 32 | -21846 | 0 | 168 | 21845 |
-| 32 | -21846 | 0 | 169 | 21845 |
-| 32 | -21846 | 0 | 170 | 21845 |
-| 32 | -21846 | 0 | 171 | -21846 |
-| 32 | -21846 | 0 | 172 | 21845 |
-| 32 | -21846 | 0 | 173 | 21845 |
-| 32 | -21846 | 0 | 174 | 21845 |
-| 32 | -21846 | 0 | 175 | 21845 |
-| 32+ | 21845 | 1 | 171 | -21846 |
-| 33 | 21845 | 1 | 171 | 21845 |
-| 33+ | -21846 | 1 | 172 | 21845 |
-| 34 | -21846 | 1 | 172 | -21846 |
-| 34+ | -21846 | 0 | 168 | 21845 |
-| 35 | -21846 | 0 | 168 | 21845 |
-| 35 | -21846 | 0 | 169 | 21845 |
-| 35 | -21846 | 0 | 170 | 21845 |
-| 35 | -21846 | 0 | 171 | 21845 |
-| 35 | -21846 | 0 | 172 | -21846 |
-| 35 | -21846 | 0 | 173 | 21845 |
-| 35 | -21846 | 0 | 174 | 21845 |
-| 35 | -21846 | 0 | 175 | 21845 |
-| 35+ | 21845 | 1 | 172 | -21846 |
-| 36 | 21845 | 1 | 172 | 21845 |
-| 36+ | -21846 | 1 | 173 | 21845 |
-| 37 | -21846 | 1 | 173 | -21846 |
-| 37+ | -21846 | 0 | 168 | 21845 |
-| 38 | -21846 | 0 | 168 | 21845 |
-| 38 | -21846 | 0 | 169 | 21845 |
-| 38 | -21846 | 0 | 170 | 21845 |
-| 38 | -21846 | 0 | 171 | 21845 |
-| 38 | -21846 | 0 | 172 | 21845 |
-| 38 | -21846 | 0 | 173 | -21846 |
-| 38 | -21846 | 0 | 174 | 21845 |
-| 38 | -21846 | 0 | 175 | 21845 |
-| 38+ | 21845 | 1 | 173 | -21846 |
-| 39 | 21845 | 1 | 173 | 21845 |
-| 39+ | -21846 | 1 | 174 | 21845 |
-| 40 | -21846 | 1 | 174 | -21846 |
-| 40+ | -21846 | 0 | 168 | 21845 |
-| 41 | -21846 | 0 | 168 | 21845 |
-| 41 | -21846 | 0 | 169 | 21845 |
-| 41 | -21846 | 0 | 170 | 21845 |
-| 41 | -21846 | 0 | 171 | 21845 |
-| 41 | -21846 | 0 | 172 | 21845 |
-| 41 | -21846 | 0 | 173 | 21845 |
-| 41 | -21846 | 0 | 174 | -21846 |
-| 41 | -21846 | 0 | 175 | 21845 |
-| 41+ | 21845 | 1 | 174 | -21846 |
-| 42 | 21845 | 1 | 174 | 21845 |
-| 42+ | -21846 | 1 | 175 | 21845 |
-| 43 | -21846 | 1 | 175 | -21846 |
-| 43+ | -21846 | 0 | 168 | 21845 |
-| 44 | -21846 | 0 | 168 | 21845 |
-| 44 | -21846 | 0 | 169 | 21845 |
-| 44 | -21846 | 0 | 170 | 21845 |
-| 44 | -21846 | 0 | 171 | 21845 |
-| 44 | -21846 | 0 | 172 | 21845 |
-| 44 | -21846 | 0 | 173 | 21845 |
-| 44 | -21846 | 0 | 174 | 21845 |
-| 44 | -21846 | 0 | 175 | -21846 |
-| 44+ | 21845 | 1 | 175 | -21846 |
-| 45 | 21845 | 1 | 175 | 21845 |
-| 45+ | 21845 | 0 | 168 | 21845 |
-| 46 | 21845 | 0 | 168 | 21845 |
-| 46 | 21845 | 0 | 169 | 21845 |
-| 46 | 21845 | 0 | 170 | 21845 |
-| 46 | 21845 | 0 | 171 | 21845 |
-| 46 | 21845 | 0 | 172 | 21845 |
-| 46 | 21845 | 0 | 173 | 21845 |
-| 46 | 21845 | 0 | 174 | 21845 |
-| 46 | 21845 | 0 | 175 | 21845 |
-| 46+ | 21845 | 0 | 42 | 0 |
-| 47 | 21845 | 0 | 42 | 0 |
-| 47 | 21845 | 0 | 106 | 0 |
-| 47 | 21845 | 0 | 170 | 21845 |
-| 47 | 21845 | 0 | 234 | 0 |
-| 47 | 21845 | 0 | 298 | 0 |
-| 47 | 21845 | 0 | 362 | 0 |
-| 47 | 21845 | 0 | 426 | 0 |
-| 47 | 21845 | 0 | 490 | 0 |
-| 47+ | 21845 | 1 | 42 | 0 |
-| 48 | 21845 | 1 | 42 | 21845 |
-| 48+ | 21845 | 1 | 106 | 0 |
-| 49 | 21845 | 1 | 106 | 21845 |
-| 49+ | 21845 | 1 | 170 | 21845 |
-| 50 | 21845 | 1 | 170 | 21845 |
-| 50+ | 21845 | 1 | 234 | 0 |
-| 51 | 21845 | 1 | 234 | 21845 |
-| 51+ | 21845 | 1 | 298 | 0 |
-| 52 | 21845 | 1 | 298 | 21845 |
-| 52+ | 21845 | 1 | 362 | 0 |
-| 53 | 21845 | 1 | 362 | 21845 |
-| 53+ | 21845 | 1 | 426 | 0 |
-| 54 | 21845 | 1 | 426 | 21845 |
-| 54+ | 21845 | 1 | 490 | 0 |
-| 55 | 21845 | 1 | 490 | 21845 |
-| 55+ | 21845 | 0 | 42 | 21845 |
-| 56 | 21845 | 0 | 42 | 21845 |
-| 56 | 21845 | 0 | 106 | 21845 |
-| 56 | 21845 | 0 | 170 | 21845 |
-| 56 | 21845 | 0 | 234 | 21845 |
-| 56 | 21845 | 0 | 298 | 21845 |
-| 56 | 21845 | 0 | 362 | 21845 |
-| 56 | 21845 | 0 | 426 | 21845 |
-| 56 | 21845 | 0 | 490 | 21845 |
-| 56+ | -21846 | 1 | 42 | 21845 |
-| 57 | -21846 | 1 | 42 | -21846 |
-| 57+ | -21846 | 0 | 42 | -21846 |
-| 58 | -21846 | 0 | 42 | -21846 |
-| 58 | -21846 | 0 | 106 | 21845 |
-| 58 | -21846 | 0 | 170 | 21845 |
-| 58 | -21846 | 0 | 234 | 21845 |
-| 58 | -21846 | 0 | 298 | 21845 |
-| 58 | -21846 | 0 | 362 | 21845 |
-| 58 | -21846 | 0 | 426 | 21845 |
-| 58 | -21846 | 0 | 490 | 21845 |
-| 58+ | 21845 | 1 | 42 | -21846 |
-| 59 | 21845 | 1 | 42 | 21845 |
-| 59+ | -21846 | 1 | 106 | 21845 |
-| 60 | -21846 | 1 | 106 | -21846 |
-| 60+ | -21846 | 0 | 42 | 21845 |
-| 61 | -21846 | 0 | 42 | 21845 |
-| 61 | -21846 | 0 | 106 | -21846 |
-| 61 | -21846 | 0 | 170 | 21845 |
-| 61 | -21846 | 0 | 234 | 21845 |
-| 61 | -21846 | 0 | 298 | 21845 |
-| 61 | -21846 | 0 | 362 | 21845 |
-| 61 | -21846 | 0 | 426 | 21845 |
-| 61 | -21846 | 0 | 490 | 21845 |
-| 61+ | 21845 | 1 | 106 | -21846 |
-| 62 | 21845 | 1 | 106 | 21845 |
-| 62+ | -21846 | 1 | 170 | 21845 |
-| 63 | -21846 | 1 | 170 | -21846 |
-| 63+ | -21846 | 0 | 42 | 21845 |
-| 64 | -21846 | 0 | 42 | 21845 |
-| 64 | -21846 | 0 | 106 | 21845 |
-| 64 | -21846 | 0 | 170 | -21846 |
-| 64 | -21846 | 0 | 234 | 21845 |
-| 64 | -21846 | 0 | 298 | 21845 |
-| 64 | -21846 | 0 | 362 | 21845 |
-| 64 | -21846 | 0 | 426 | 21845 |
-| 64 | -21846 | 0 | 490 | 21845 |
-| 64+ | 21845 | 1 | 170 | -21846 |
-| 65 | 21845 | 1 | 170 | 21845 |
-| 65+ | -21846 | 1 | 234 | 21845 |
-| 66 | -21846 | 1 | 234 | -21846 |
-| 66+ | -21846 | 0 | 42 | 21845 |
-| 67 | -21846 | 0 | 42 | 21845 |
-| 67 | -21846 | 0 | 106 | 21845 |
-| 67 | -21846 | 0 | 170 | 21845 |
-| 67 | -21846 | 0 | 234 | -21846 |
-| 67 | -21846 | 0 | 298 | 21845 |
-| 67 | -21846 | 0 | 362 | 21845 |
-| 67 | -21846 | 0 | 426 | 21845 |
-| 67 | -21846 | 0 | 490 | 21845 |
-| 67+ | 21845 | 1 | 234 | -21846 |
-| 68 | 21845 | 1 | 234 | 21845 |
-| 68+ | -21846 | 1 | 298 | 21845 |
-| 69 | -21846 | 1 | 298 | -21846 |
-| 69+ | -21846 | 0 | 42 | 21845 |
-| 70 | -21846 | 0 | 42 | 21845 |
-| 70 | -21846 | 0 | 106 | 21845 |
-| 70 | -21846 | 0 | 170 | 21845 |
-| 70 | -21846 | 0 | 234 | 21845 |
-| 70 | -21846 | 0 | 298 | -21846 |
-| 70 | -21846 | 0 | 362 | 21845 |
-| 70 | -21846 | 0 | 426 | 21845 |
-| 70 | -21846 | 0 | 490 | 21845 |
-| 70+ | 21845 | 1 | 298 | -21846 |
-| 71 | 21845 | 1 | 298 | 21845 |
-| 71+ | -21846 | 1 | 362 | 21845 |
-| 72 | -21846 | 1 | 362 | -21846 |
-| 72+ | -21846 | 0 | 42 | 21845 |
-| 73 | -21846 | 0 | 42 | 21845 |
-| 73 | -21846 | 0 | 106 | 21845 |
-| 73 | -21846 | 0 | 170 | 21845 |
-| 73 | -21846 | 0 | 234 | 21845 |
-| 73 | -21846 | 0 | 298 | 21845 |
-| 73 | -21846 | 0 | 362 | -21846 |
-| 73 | -21846 | 0 | 426 | 21845 |
-| 73 | -21846 | 0 | 490 | 21845 |
-| 73+ | 21845 | 1 | 362 | -21846 |
-| 74 | 21845 | 1 | 362 | 21845 |
-| 74+ | -21846 | 1 | 426 | 21845 |
-| 75 | -21846 | 1 | 426 | -21846 |
-| 75+ | -21846 | 0 | 42 | 21845 |
-| 76 | -21846 | 0 | 42 | 21845 |
-| 76 | -21846 | 0 | 106 | 21845 |
-| 76 | -21846 | 0 | 170 | 21845 |
-| 76 | -21846 | 0 | 234 | 21845 |
-| 76 | -21846 | 0 | 298 | 21845 |
-| 76 | -21846 | 0 | 362 | 21845 |
-| 76 | -21846 | 0 | 426 | -21846 |
-| 76 | -21846 | 0 | 490 | 21845 |
-| 76+ | 21845 | 1 | 426 | -21846 |
-| 77 | 21845 | 1 | 426 | 21845 |
-| 77+ | -21846 | 1 | 490 | 21845 |
-| 78 | -21846 | 1 | 490 | -21846 |
-| 78+ | -21846 | 0 | 42 | 21845 |
-| 79 | -21846 | 0 | 42 | 21845 |
-| 79 | -21846 | 0 | 106 | 21845 |
-| 79 | -21846 | 0 | 170 | 21845 |
-| 79 | -21846 | 0 | 234 | 21845 |
-| 79 | -21846 | 0 | 298 | 21845 |
-| 79 | -21846 | 0 | 362 | 21845 |
-| 79 | -21846 | 0 | 426 | 21845 |
-| 79 | -21846 | 0 | 490 | -21846 |
-| 79+ | 21845 | 1 | 490 | -21846 |
-| 80 | 21845 | 1 | 490 | 21845 |
-| 80+ | 21845 | 0 | 42 | 21845 |
-| 81 | 21845 | 0 | 42 | 21845 |
-| 81 | 21845 | 0 | 106 | 21845 |
-| 81 | 21845 | 0 | 170 | 21845 |
-| 81 | 21845 | 0 | 234 | 21845 |
-| 81 | 21845 | 0 | 298 | 21845 |
-| 81 | 21845 | 0 | 362 | 21845 |
-| 81 | 21845 | 0 | 426 | 21845 |
-| 81 | 21845 | 0 | 490 | 21845 |
diff --git a/projects/03/b/RAM512.tst b/projects/03/b/RAM512.tst
deleted file mode 100644
index 4ec6fc2..0000000
--- a/projects/03/b/RAM512.tst
+++ /dev/null
@@ -1,1027 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/03/b/RAM512.tst
-
-load RAM512.hdl,
-output-file RAM512.out,
-compare-to RAM512.cmp,
-output-list time%S1.4.1 in%D1.6.1 load%B2.1.2 address%D2.3.2 out%D1.6.1;
-
-set in 0,
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set in 13099,
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 130,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set in 4729,
-set address 472,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 130,
-eval,
-output;
-
-set in 5119,
-tick,
-output;
-tock,
-output;
-
-set load 1,
-set address 511,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 472,
-eval,
-output;
-
-set address 511,
-eval,
-output;
-
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-tick,
-output,
-tock,
-output;
-set address %B010101010,
-tick,
-output,
-tock,
-output;
-set address %B010101011,
-tick,
-output,
-tock,
-output;
-set address %B010101100,
-tick,
-output,
-tock,
-output;
-set address %B010101101,
-tick,
-output,
-tock,
-output;
-set address %B010101110,
-tick,
-output,
-tock,
-output;
-set address %B010101111,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101000,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101000,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101001,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101001,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101011,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101011,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101100,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101100,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101101,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101101,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101110,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101110,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101111,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-set load 1,
-set address %B010101111,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B010101000,
-tick,
-output;
-tock,
-output;
-set address %B010101001,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B010101011,
-eval,
-output;
-set address %B010101100,
-eval,
-output;
-set address %B010101101,
-eval,
-output;
-set address %B010101110,
-eval,
-output;
-set address %B010101111,
-eval,
-output;
-
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set in %B0101010101010101,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-tick,
-output,
-tock,
-output;
-set address %B010101010,
-tick,
-output,
-tock,
-output;
-set address %B011101010,
-tick,
-output,
-tock,
-output;
-set address %B100101010,
-tick,
-output,
-tock,
-output;
-set address %B101101010,
-tick,
-output,
-tock,
-output;
-set address %B110101010,
-tick,
-output,
-tock,
-output;
-set address %B111101010,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B000101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B000101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B001101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B001101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B010101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B010101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B011101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B011101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B100101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B100101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B101101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B101101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B110101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B110101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-set address %B111101010,
-set in %B1010101010101010,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
-set load 1,
-set address %B111101010,
-set in %B0101010101010101,
-tick,
-output,
-tock,
-output;
-
-set load 0,
-set address %B000101010,
-tick,
-output;
-tock,
-output;
-set address %B001101010,
-eval,
-output;
-set address %B010101010,
-eval,
-output;
-set address %B011101010,
-eval,
-output;
-set address %B100101010,
-eval,
-output;
-set address %B101101010,
-eval,
-output;
-set address %B110101010,
-eval,
-output;
-set address %B111101010,
-eval,
-output;
-
diff --git a/projects/04/fill/Fill.tst b/projects/04/fill/Fill.tst
deleted file mode 100644
index e8bb385..0000000
--- a/projects/04/fill/Fill.tst
+++ /dev/null
@@ -1,11 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/04/fill/Fill.tst
-
-load Fill.asm;
-echo "Make sure that 'No Animation' is selected. Then, select the keyboard, press any key for some time, and inspect the screen.";
-
-repeat {
- ticktock;
-}
diff --git a/projects/04/fill/FillAutomatic.cmp b/projects/04/fill/FillAutomatic.cmp
deleted file mode 100644
index a71db27..0000000
--- a/projects/04/fill/FillAutomatic.cmp
+++ /dev/null
@@ -1,4 +0,0 @@
-|RAM[16384]|RAM[17648]|RAM[18349]|RAM[19444]|RAM[20771]|RAM[21031]|RAM[22596]|RAM[23754]|RAM[24575]|
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
diff --git a/projects/04/fill/FillAutomatic.out b/projects/04/fill/FillAutomatic.out
deleted file mode 100644
index a71db27..0000000
--- a/projects/04/fill/FillAutomatic.out
+++ /dev/null
@@ -1,4 +0,0 @@
-|RAM[16384]|RAM[17648]|RAM[18349]|RAM[19444]|RAM[20771]|RAM[21031]|RAM[22596]|RAM[23754]|RAM[24575]|
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
-| -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
diff --git a/projects/04/fill/FillAutomatic.tst b/projects/04/fill/FillAutomatic.tst
deleted file mode 100644
index fbc29a0..0000000
--- a/projects/04/fill/FillAutomatic.tst
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/04/fill/FillAutomatic
-
-// This script can be used to test the Fill program automatically,
-// rather than interactively. Specifically, the script sets the keyboard
-// memory map (RAM[24576]) to 0, 1, and then again to 0. This simulates the
-// acts of leaving the keyboard untouched, pressing some key, and then releasing
-// the key. After each on of these simulated events, the script outputs the values
-// of some selected registers from the screen memory map (RAM[16384]-RAM[24576]).
-// This is done in order to test that these registers are set to 000...0 or 111....1,
-// as mandated by how the Fill program should react to the keyboard events.
-
-load Fill.asm,
-output-file FillAutomatic.out,
-compare-to FillAutomatic.cmp,
-output-list RAM[16384]%D2.6.2 RAM[17648]%D2.6.2 RAM[18349]%D2.6.2 RAM[19444]%D2.6.2 RAM[20771]%D2.6.2 RAM[21031]%D2.6.2 RAM[22596]%D2.6.2 RAM[23754]%D2.6.2 RAM[24575]%D2.6.2;
-
-set RAM[24576] 0, // the keyboard is untouched
-repeat 1000000 {
- ticktock;
-}
-output; // test that the screen is white
-
-set RAM[24576] 1, // a keyboard key is pressed
-repeat 1000000 {
- ticktock;
-}
-output; // test that the screen is black
-
-set RAM[24576] 0, // they keyboard in untouched
-repeat 1000000 {
- ticktock;
-}
-output; // test that the screen is white
-
diff --git a/projects/04/mult/Mult.cmp b/projects/04/mult/Mult.cmp
deleted file mode 100644
index 296b5fb..0000000
--- a/projects/04/mult/Mult.cmp
+++ /dev/null
@@ -1,7 +0,0 @@
-| RAM[0] | RAM[1] | RAM[2] |
-| 0 | 0 | 0 |
-| 1 | 0 | 0 |
-| 0 | 2 | 0 |
-| 3 | 1 | 3 |
-| 2 | 4 | 8 |
-| 6 | 7 | 42 | \ No newline at end of file
diff --git a/projects/04/mult/Mult.out b/projects/04/mult/Mult.out
deleted file mode 100644
index e31b5df..0000000
--- a/projects/04/mult/Mult.out
+++ /dev/null
@@ -1,7 +0,0 @@
-| RAM[0] | RAM[1] | RAM[2] |
-| 0 | 0 | 0 |
-| 1 | 0 | 0 |
-| 0 | 2 | 0 |
-| 3 | 1 | 3 |
-| 2 | 4 | 8 |
-| 6 | 7 | 42 |
diff --git a/projects/04/mult/Mult.tst b/projects/04/mult/Mult.tst
deleted file mode 100644
index 9bf4fa8..0000000
--- a/projects/04/mult/Mult.tst
+++ /dev/null
@@ -1,74 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/04/mult/Mult.tst
-
-load Mult.asm,
-output-file Mult.out,
-compare-to Mult.cmp,
-output-list RAM[0]%D2.6.2 RAM[1]%D2.6.2 RAM[2]%D2.6.2;
-
-set RAM[0] 0, // Set test arguments
-set RAM[1] 0,
-set RAM[2] -1; // Test that program initialized product to 0
-repeat 20 {
- ticktock;
-}
-set RAM[0] 0, // Restore arguments in case program used them as loop counter
-set RAM[1] 0,
-output;
-
-set PC 0,
-set RAM[0] 1, // Set test arguments
-set RAM[1] 0,
-set RAM[2] -1; // Ensure that program initialized product to 0
-repeat 50 {
- ticktock;
-}
-set RAM[0] 1, // Restore arguments in case program used them as loop counter
-set RAM[1] 0,
-output;
-
-set PC 0,
-set RAM[0] 0, // Set test arguments
-set RAM[1] 2,
-set RAM[2] -1; // Ensure that program initialized product to 0
-repeat 80 {
- ticktock;
-}
-set RAM[0] 0, // Restore arguments in case program used them as loop counter
-set RAM[1] 2,
-output;
-
-set PC 0,
-set RAM[0] 3, // Set test arguments
-set RAM[1] 1,
-set RAM[2] -1; // Ensure that program initialized product to 0
-repeat 120 {
- ticktock;
-}
-set RAM[0] 3, // Restore arguments in case program used them as loop counter
-set RAM[1] 1,
-output;
-
-set PC 0,
-set RAM[0] 2, // Set test arguments
-set RAM[1] 4,
-set RAM[2] -1; // Ensure that program initialized product to 0
-repeat 150 {
- ticktock;
-}
-set RAM[0] 2, // Restore arguments in case program used them as loop counter
-set RAM[1] 4,
-output;
-
-set PC 0,
-set RAM[0] 6, // Set test arguments
-set RAM[1] 7,
-set RAM[2] -1; // Ensure that program initialized product to 0
-repeat 210 {
- ticktock;
-}
-set RAM[0] 6, // Restore arguments in case program used them as loop counter
-set RAM[1] 7,
-output;
diff --git a/projects/05/Add.hack b/projects/05/Add.hack
deleted file mode 100644
index fe5969d..0000000
--- a/projects/05/Add.hack
+++ /dev/null
@@ -1,6 +0,0 @@
-0000000000000010
-1110110000010000
-0000000000000011
-1110000010010000
-0000000000000000
-1110001100001000
diff --git a/projects/05/CPU-external.cmp b/projects/05/CPU-external.cmp
deleted file mode 100644
index 58f43bd..0000000
--- a/projects/05/CPU-external.cmp
+++ /dev/null
@@ -1,93 +0,0 @@
-|time| inM | instruction |reset| outM |writeM |addre| pc |
-|0+ | 0|0011000000111001| 0 |*******| 0 | 0| 0|
-|1 | 0|0011000000111001| 0 |*******| 0 |12345| 1|
-|1+ | 0|1110110000010000| 0 |*******| 0 |12345| 1|
-|2 | 0|1110110000010000| 0 |*******| 0 |12345| 2|
-|2+ | 0|0101101110100000| 0 |*******| 0 |12345| 2|
-|3 | 0|0101101110100000| 0 |*******| 0 |23456| 3|
-|3+ | 0|1110000111010000| 0 |*******| 0 |23456| 3|
-|4 | 0|1110000111010000| 0 |*******| 0 |23456| 4|
-|4+ | 0|0000001111101000| 0 |*******| 0 |23456| 4|
-|5 | 0|0000001111101000| 0 |*******| 0 | 1000| 5|
-|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5|
-|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6|
-|6+ | 0|0000001111101001| 0 |*******| 0 | 1000| 6|
-|7 | 0|0000001111101001| 0 |*******| 0 | 1001| 7|
-|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7|
-|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8|
-|8+ | 0|0000001111101000| 0 |*******| 0 | 1001| 8|
-|9 | 0|0000001111101000| 0 |*******| 0 | 1000| 9|
-|9+ | 11111|1111010011010000| 0 |*******| 0 | 1000| 9|
-|10 | 11111|1111010011010000| 0 |*******| 0 | 1000| 10|
-|10+ | 11111|0000000000001110| 0 |*******| 0 | 1000| 10|
-|11 | 11111|0000000000001110| 0 |*******| 0 | 14| 11|
-|11+ | 11111|1110001100000100| 0 |*******| 0 | 14| 11|
-|12 | 11111|1110001100000100| 0 |*******| 0 | 14| 14|
-|12+ | 11111|0000001111100111| 0 |*******| 0 | 14| 14|
-|13 | 11111|0000001111100111| 0 |*******| 0 | 999| 15|
-|13+ | 11111|1110110111100000| 0 |*******| 0 | 999| 15|
-|14 | 11111|1110110111100000| 0 |*******| 0 | 1000| 16|
-|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16|
-|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17|
-|15+ | 11111|0000000000010101| 0 |*******| 0 | 1000| 17|
-|16 | 11111|0000000000010101| 0 |*******| 0 | 21| 18|
-|16+ | 11111|1110011111000010| 0 |*******| 0 | 21| 18|
-|17 | 11111|1110011111000010| 0 |*******| 0 | 21| 21|
-|17+ | 11111|0000000000000010| 0 |*******| 0 | 21| 21|
-|18 | 11111|0000000000000010| 0 |*******| 0 | 2| 22|
-|18+ | 11111|1110000010010000| 0 |*******| 0 | 2| 22|
-|19 | 11111|1110000010010000| 0 |*******| 0 | 2| 23|
-|19+ | 11111|0000001111101000| 0 |*******| 0 | 2| 23|
-|20 | 11111|0000001111101000| 0 |*******| 0 | 1000| 24|
-|20+ | 11111|1110111010010000| 0 |*******| 0 | 1000| 24|
-|21 | 11111|1110111010010000| 0 |*******| 0 | 1000| 25|
-|21+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 25|
-|22 | 11111|1110001100000001| 0 |*******| 0 | 1000| 26|
-|22+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 26|
-|23 | 11111|1110001100000010| 0 |*******| 0 | 1000| 27|
-|23+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 27|
-|24 | 11111|1110001100000011| 0 |*******| 0 | 1000| 28|
-|24+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 28|
-|25 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000|
-|25+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000|
-|26 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000|
-|26+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000|
-|27 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000|
-|27+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000|
-|28 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000|
-|28+ | 11111|1110101010010000| 0 |*******| 0 | 1000| 1000|
-|29 | 11111|1110101010010000| 0 |*******| 0 | 1000| 1001|
-|29+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001|
-|30 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1002|
-|30+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1002|
-|31 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000|
-|31+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000|
-|32 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000|
-|32+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000|
-|33 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001|
-|33+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001|
-|34 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1002|
-|34+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1002|
-|35 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000|
-|35+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000|
-|36 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000|
-|36+ | 11111|1110111111010000| 0 |*******| 0 | 1000| 1000|
-|37 | 11111|1110111111010000| 0 |*******| 0 | 1000| 1001|
-|37+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001|
-|38 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1000|
-|38+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000|
-|39 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1001|
-|39+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1001|
-|40 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000|
-|40+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000|
-|41 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001|
-|41+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001|
-|42 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000|
-|42+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000|
-|43 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1001|
-|43+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1001|
-|44 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000|
-|44+ | 11111|1110001100000111| 1 |*******| 0 | 1000| 1000|
-|45 | 11111|1110001100000111| 1 |*******| 0 | 1000| 0|
-|45+ | 11111|0111111111111111| 0 |*******| 0 | 1000| 0|
-|46 | 11111|0111111111111111| 0 |*******| 0 |32767| 1|
diff --git a/projects/05/CPU-external.tst b/projects/05/CPU-external.tst
deleted file mode 100644
index 5aa0295..0000000
--- a/projects/05/CPU-external.tst
+++ /dev/null
@@ -1,150 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/CPU-external.tst
-
-load CPU.hdl,
-output-file CPU-external.out,
-compare-to CPU-external.cmp,
-output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0;
-
-
-set instruction %B0011000000111001, // @12345
-tick, output, tock, output;
-
-set instruction %B1110110000010000, // D=A
-tick, output, tock, output;
-
-set instruction %B0101101110100000, // @23456
-tick, output, tock, output;
-
-set instruction %B1110000111010000, // D=A-D
-tick, output, tock, output;
-
-set instruction %B0000001111101000, // @1000
-tick, output, tock, output;
-
-set instruction %B1110001100001000, // M=D
-tick, output, tock, output;
-
-set instruction %B0000001111101001, // @1001
-tick, output, tock, output;
-
-set instruction %B1110001110011000, // MD=D-1
-tick, output, tock, output;
-
-set instruction %B0000001111101000, // @1000
-tick, output, tock, output;
-
-set instruction %B1111010011010000, // D=D-M
-set inM 11111,
-tick, output, tock, output;
-
-set instruction %B0000000000001110, // @14
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;jlt
-tick, output, tock, output;
-
-set instruction %B0000001111100111, // @999
-tick, output, tock, output;
-
-set instruction %B1110110111100000, // A=A+1
-tick, output, tock, output;
-
-set instruction %B1110001100001000, // M=D
-tick, output, tock, output;
-
-set instruction %B0000000000010101, // @21
-tick, output, tock, output;
-
-set instruction %B1110011111000010, // D+1;jeq
-tick, output, tock, output;
-
-set instruction %B0000000000000010, // @2
-tick, output, tock, output;
-
-set instruction %B1110000010010000, // D=D+A
-tick, output, tock, output;
-
-set instruction %B0000001111101000, // @1000
-tick, output, tock, output;
-
-set instruction %B1110111010010000, // D=-1
-tick, output, tock, output;
-
-set instruction %B1110001100000001, // D;JGT
-tick, output, tock, output;
-
-set instruction %B1110001100000010, // D;JEQ
-tick, output, tock, output;
-
-set instruction %B1110001100000011, // D;JGE
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;JLT
-tick, output, tock, output;
-
-set instruction %B1110001100000101, // D;JNE
-tick, output, tock, output;
-
-set instruction %B1110001100000110, // D;JLE
-tick, output, tock, output;
-
-set instruction %B1110001100000111, // D;JMP
-tick, output, tock, output;
-
-set instruction %B1110101010010000, // D=0
-tick, output, tock, output;
-
-set instruction %B1110001100000001, // D;JGT
-tick, output, tock, output;
-
-set instruction %B1110001100000010, // D;JEQ
-tick, output, tock, output;
-
-set instruction %B1110001100000011, // D;JGE
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;JLT
-tick, output, tock, output;
-
-set instruction %B1110001100000101, // D;JNE
-tick, output, tock, output;
-
-set instruction %B1110001100000110, // D;JLE
-tick, output, tock, output;
-
-set instruction %B1110001100000111, // D;JMP
-tick, output, tock, output;
-
-set instruction %B1110111111010000, // D=1
-tick, output, tock, output;
-
-set instruction %B1110001100000001, // D;JGT
-tick, output, tock, output;
-
-set instruction %B1110001100000010, // D;JEQ
-tick, output, tock, output;
-
-set instruction %B1110001100000011, // D;JGE
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;JLT
-tick, output, tock, output;
-
-set instruction %B1110001100000101, // D;JNE
-tick, output, tock, output;
-
-set instruction %B1110001100000110, // D;JLE
-tick, output, tock, output;
-
-set instruction %B1110001100000111, // D;JMP
-tick, output, tock, output;
-
-set reset 1;
-tick, output, tock, output;
-
-set instruction %B0111111111111111, // @32767
-set reset 0;
-tick, output, tock, output;
diff --git a/projects/05/CPU.cmp b/projects/05/CPU.cmp
deleted file mode 100644
index 345674c..0000000
--- a/projects/05/CPU.cmp
+++ /dev/null
@@ -1,93 +0,0 @@
-|time| inM | instruction |reset| outM |writeM |addre| pc |DRegiste|
-|0+ | 0|0011000000111001| 0 |*******| 0 | 0| 0| 0 |
-|1 | 0|0011000000111001| 0 |*******| 0 |12345| 1| 0 |
-|1+ | 0|1110110000010000| 0 |*******| 0 |12345| 1| 12345 |
-|2 | 0|1110110000010000| 0 |*******| 0 |12345| 2| 12345 |
-|2+ | 0|0101101110100000| 0 |*******| 0 |12345| 2| 12345 |
-|3 | 0|0101101110100000| 0 |*******| 0 |23456| 3| 12345 |
-|3+ | 0|1110000111010000| 0 |*******| 0 |23456| 3| 11111 |
-|4 | 0|1110000111010000| 0 |*******| 0 |23456| 4| 11111 |
-|4+ | 0|0000001111101000| 0 |*******| 0 |23456| 4| 11111 |
-|5 | 0|0000001111101000| 0 |*******| 0 | 1000| 5| 11111 |
-|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| 11111 |
-|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| 11111 |
-|6+ | 0|0000001111101001| 0 |*******| 0 | 1000| 6| 11111 |
-|7 | 0|0000001111101001| 0 |*******| 0 | 1001| 7| 11111 |
-|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| 11110 |
-|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| 11110 |
-|8+ | 0|0000001111101000| 0 |*******| 0 | 1001| 8| 11110 |
-|9 | 0|0000001111101000| 0 |*******| 0 | 1000| 9| 11110 |
-|9+ | 11111|1111010011010000| 0 |*******| 0 | 1000| 9| -1 |
-|10 | 11111|1111010011010000| 0 |*******| 0 | 1000| 10| -1 |
-|10+ | 11111|0000000000001110| 0 |*******| 0 | 1000| 10| -1 |
-|11 | 11111|0000000000001110| 0 |*******| 0 | 14| 11| -1 |
-|11+ | 11111|1110001100000100| 0 |*******| 0 | 14| 11| -1 |
-|12 | 11111|1110001100000100| 0 |*******| 0 | 14| 14| -1 |
-|12+ | 11111|0000001111100111| 0 |*******| 0 | 14| 14| -1 |
-|13 | 11111|0000001111100111| 0 |*******| 0 | 999| 15| -1 |
-|13+ | 11111|1110110111100000| 0 |*******| 0 | 999| 15| -1 |
-|14 | 11111|1110110111100000| 0 |*******| 0 | 1000| 16| -1 |
-|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| -1 |
-|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| -1 |
-|15+ | 11111|0000000000010101| 0 |*******| 0 | 1000| 17| -1 |
-|16 | 11111|0000000000010101| 0 |*******| 0 | 21| 18| -1 |
-|16+ | 11111|1110011111000010| 0 |*******| 0 | 21| 18| -1 |
-|17 | 11111|1110011111000010| 0 |*******| 0 | 21| 21| -1 |
-|17+ | 11111|0000000000000010| 0 |*******| 0 | 21| 21| -1 |
-|18 | 11111|0000000000000010| 0 |*******| 0 | 2| 22| -1 |
-|18+ | 11111|1110000010010000| 0 |*******| 0 | 2| 22| 1 |
-|19 | 11111|1110000010010000| 0 |*******| 0 | 2| 23| 1 |
-|19+ | 11111|0000001111101000| 0 |*******| 0 | 2| 23| 1 |
-|20 | 11111|0000001111101000| 0 |*******| 0 | 1000| 24| 1 |
-|20+ | 11111|1110111010010000| 0 |*******| 0 | 1000| 24| -1 |
-|21 | 11111|1110111010010000| 0 |*******| 0 | 1000| 25| -1 |
-|21+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 25| -1 |
-|22 | 11111|1110001100000001| 0 |*******| 0 | 1000| 26| -1 |
-|22+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 26| -1 |
-|23 | 11111|1110001100000010| 0 |*******| 0 | 1000| 27| -1 |
-|23+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 27| -1 |
-|24 | 11111|1110001100000011| 0 |*******| 0 | 1000| 28| -1 |
-|24+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 28| -1 |
-|25 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| -1 |
-|25+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| -1 |
-|26 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| -1 |
-|26+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| -1 |
-|27 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| -1 |
-|27+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| -1 |
-|28 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| -1 |
-|28+ | 11111|1110101010010000| 0 |*******| 0 | 1000| 1000| 0 |
-|29 | 11111|1110101010010000| 0 |*******| 0 | 1000| 1001| 0 |
-|29+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| 0 |
-|30 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1002| 0 |
-|30+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1002| 0 |
-|31 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| 0 |
-|31+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| 0 |
-|32 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| 0 |
-|32+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| 0 |
-|33 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| 0 |
-|33+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| 0 |
-|34 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1002| 0 |
-|34+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1002| 0 |
-|35 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| 0 |
-|35+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| 0 |
-|36 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| 0 |
-|36+ | 11111|1110111111010000| 0 |*******| 0 | 1000| 1000| 1 |
-|37 | 11111|1110111111010000| 0 |*******| 0 | 1000| 1001| 1 |
-|37+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| 1 |
-|38 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1000| 1 |
-|38+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| 1 |
-|39 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1001| 1 |
-|39+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1001| 1 |
-|40 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| 1 |
-|40+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| 1 |
-|41 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| 1 |
-|41+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| 1 |
-|42 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| 1 |
-|42+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| 1 |
-|43 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1001| 1 |
-|43+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1001| 1 |
-|44 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| 1 |
-|44+ | 11111|1110001100000111| 1 |*******| 0 | 1000| 1000| 1 |
-|45 | 11111|1110001100000111| 1 |*******| 0 | 1000| 0| 1 |
-|45+ | 11111|0111111111111111| 0 |*******| 0 | 1000| 0| 1 |
-|46 | 11111|0111111111111111| 0 |*******| 0 |32767| 1| 1 |
diff --git a/projects/05/CPU.out b/projects/05/CPU.out
deleted file mode 100644
index 95f17b5..0000000
--- a/projects/05/CPU.out
+++ /dev/null
@@ -1,93 +0,0 @@
-|time| inM | instruction |reset| outM |writeM |addre| pc |DRegiste|
-|0+ | 0|0011000000111001| 0 | 0| 0 | 0| 0| 0 |
-|1 | 0|0011000000111001| 0 | 0| 0 |12345| 1| 0 |
-|1+ | 0|1110110000010000| 0 | 12345| 0 |12345| 1| 12345 |
-|2 | 0|1110110000010000| 0 | 12345| 0 |12345| 2| 12345 |
-|2+ | 0|0101101110100000| 0 | -1| 0 |12345| 2| 12345 |
-|3 | 0|0101101110100000| 0 | -1| 0 |23456| 3| 12345 |
-|3+ | 0|1110000111010000| 0 | 11111| 0 |23456| 3| 11111 |
-|4 | 0|1110000111010000| 0 | 12345| 0 |23456| 4| 11111 |
-|4+ | 0|0000001111101000| 0 | -11111| 0 |23456| 4| 11111 |
-|5 | 0|0000001111101000| 0 | -11111| 0 | 1000| 5| 11111 |
-|5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| 11111 |
-|6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| 11111 |
-|6+ | 0|0000001111101001| 0 | -11111| 0 | 1000| 6| 11111 |
-|7 | 0|0000001111101001| 0 | -11111| 0 | 1001| 7| 11111 |
-|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| 11110 |
-|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| 11110 |
-|8+ | 0|0000001111101000| 0 | -11110| 0 | 1001| 8| 11110 |
-|9 | 0|0000001111101000| 0 | -11110| 0 | 1000| 9| 11110 |
-|9+ | 11111|1111010011010000| 0 | -1| 0 | 1000| 9| -1 |
-|10 | 11111|1111010011010000| 0 | -11112| 0 | 1000| 10| -1 |
-|10+ | 11111|0000000000001110| 0 | 1000| 0 | 1000| 10| -1 |
-|11 | 11111|0000000000001110| 0 | 14| 0 | 14| 11| -1 |
-|11+ | 11111|1110001100000100| 0 | -1| 0 | 14| 11| -1 |
-|12 | 11111|1110001100000100| 0 | -1| 0 | 14| 14| -1 |
-|12+ | 11111|0000001111100111| 0 | 1| 0 | 14| 14| -1 |
-|13 | 11111|0000001111100111| 0 | 1| 0 | 999| 15| -1 |
-|13+ | 11111|1110110111100000| 0 | 1000| 0 | 999| 15| -1 |
-|14 | 11111|1110110111100000| 0 | 1001| 0 | 1000| 16| -1 |
-|14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| -1 |
-|15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| -1 |
-|15+ | 11111|0000000000010101| 0 | 1000| 0 | 1000| 17| -1 |
-|16 | 11111|0000000000010101| 0 | 21| 0 | 21| 18| -1 |
-|16+ | 11111|1110011111000010| 0 | 0| 0 | 21| 18| -1 |
-|17 | 11111|1110011111000010| 0 | 0| 0 | 21| 21| -1 |
-|17+ | 11111|0000000000000010| 0 | 21| 0 | 21| 21| -1 |
-|18 | 11111|0000000000000010| 0 | 2| 0 | 2| 22| -1 |
-|18+ | 11111|1110000010010000| 0 | 1| 0 | 2| 22| 1 |
-|19 | 11111|1110000010010000| 0 | 3| 0 | 2| 23| 1 |
-|19+ | 11111|0000001111101000| 0 | -1| 0 | 2| 23| 1 |
-|20 | 11111|0000001111101000| 0 | -1| 0 | 1000| 24| 1 |
-|20+ | 11111|1110111010010000| 0 | -1| 0 | 1000| 24| -1 |
-|21 | 11111|1110111010010000| 0 | -1| 0 | 1000| 25| -1 |
-|21+ | 11111|1110001100000001| 0 | -1| 0 | 1000| 25| -1 |
-|22 | 11111|1110001100000001| 0 | -1| 0 | 1000| 26| -1 |
-|22+ | 11111|1110001100000010| 0 | -1| 0 | 1000| 26| -1 |
-|23 | 11111|1110001100000010| 0 | -1| 0 | 1000| 27| -1 |
-|23+ | 11111|1110001100000011| 0 | -1| 0 | 1000| 27| -1 |
-|24 | 11111|1110001100000011| 0 | -1| 0 | 1000| 28| -1 |
-|24+ | 11111|1110001100000100| 0 | -1| 0 | 1000| 28| -1 |
-|25 | 11111|1110001100000100| 0 | -1| 0 | 1000| 1000| -1 |
-|25+ | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| -1 |
-|26 | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| -1 |
-|26+ | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| -1 |
-|27 | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| -1 |
-|27+ | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| -1 |
-|28 | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| -1 |
-|28+ | 11111|1110101010010000| 0 | 0| 0 | 1000| 1000| 0 |
-|29 | 11111|1110101010010000| 0 | 0| 0 | 1000| 1001| 0 |
-|29+ | 11111|1110001100000001| 0 | 0| 0 | 1000| 1001| 0 |
-|30 | 11111|1110001100000001| 0 | 0| 0 | 1000| 1002| 0 |
-|30+ | 11111|1110001100000010| 0 | 0| 0 | 1000| 1002| 0 |
-|31 | 11111|1110001100000010| 0 | 0| 0 | 1000| 1000| 0 |
-|31+ | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| 0 |
-|32 | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| 0 |
-|32+ | 11111|1110001100000100| 0 | 0| 0 | 1000| 1000| 0 |
-|33 | 11111|1110001100000100| 0 | 0| 0 | 1000| 1001| 0 |
-|33+ | 11111|1110001100000101| 0 | 0| 0 | 1000| 1001| 0 |
-|34 | 11111|1110001100000101| 0 | 0| 0 | 1000| 1002| 0 |
-|34+ | 11111|1110001100000110| 0 | 0| 0 | 1000| 1002| 0 |
-|35 | 11111|1110001100000110| 0 | 0| 0 | 1000| 1000| 0 |
-|35+ | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| 0 |
-|36 | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| 0 |
-|36+ | 11111|1110111111010000| 0 | 1| 0 | 1000| 1000| 1 |
-|37 | 11111|1110111111010000| 0 | 1| 0 | 1000| 1001| 1 |
-|37+ | 11111|1110001100000001| 0 | 1| 0 | 1000| 1001| 1 |
-|38 | 11111|1110001100000001| 0 | 1| 0 | 1000| 1000| 1 |
-|38+ | 11111|1110001100000010| 0 | 1| 0 | 1000| 1000| 1 |
-|39 | 11111|1110001100000010| 0 | 1| 0 | 1000| 1001| 1 |
-|39+ | 11111|1110001100000011| 0 | 1| 0 | 1000| 1001| 1 |
-|40 | 11111|1110001100000011| 0 | 1| 0 | 1000| 1000| 1 |
-|40+ | 11111|1110001100000100| 0 | 1| 0 | 1000| 1000| 1 |
-|41 | 11111|1110001100000100| 0 | 1| 0 | 1000| 1001| 1 |
-|41+ | 11111|1110001100000101| 0 | 1| 0 | 1000| 1001| 1 |
-|42 | 11111|1110001100000101| 0 | 1| 0 | 1000| 1000| 1 |
-|42+ | 11111|1110001100000110| 0 | 1| 0 | 1000| 1000| 1 |
-|43 | 11111|1110001100000110| 0 | 1| 0 | 1000| 1001| 1 |
-|43+ | 11111|1110001100000111| 0 | 1| 0 | 1000| 1001| 1 |
-|44 | 11111|1110001100000111| 0 | 1| 0 | 1000| 1000| 1 |
-|44+ | 11111|1110001100000111| 1 | 1| 0 | 1000| 1000| 1 |
-|45 | 11111|1110001100000111| 1 | 1| 0 | 1000| 0| 1 |
-|45+ | 11111|0111111111111111| 0 | 1| 0 | 1000| 0| 1 |
-|46 | 11111|0111111111111111| 0 | 1| 0 |32767| 1| 1 |
diff --git a/projects/05/CPU.tst b/projects/05/CPU.tst
deleted file mode 100644
index 98eee1c..0000000
--- a/projects/05/CPU.tst
+++ /dev/null
@@ -1,150 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/CPU.tst
-
-load CPU.hdl,
-output-file CPU.out,
-compare-to CPU.cmp,
-output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0 DRegister[]%D1.6.1;
-
-
-set instruction %B0011000000111001, // @12345
-tick, output, tock, output;
-
-set instruction %B1110110000010000, // D=A
-tick, output, tock, output;
-
-set instruction %B0101101110100000, // @23456
-tick, output, tock, output;
-
-set instruction %B1110000111010000, // D=A-D
-tick, output, tock, output;
-
-set instruction %B0000001111101000, // @1000
-tick, output, tock, output;
-
-set instruction %B1110001100001000, // M=D
-tick, output, tock, output;
-
-set instruction %B0000001111101001, // @1001
-tick, output, tock, output;
-
-set instruction %B1110001110011000, // MD=D-1
-tick, output, tock, output;
-
-set instruction %B0000001111101000, // @1000
-tick, output, tock, output;
-
-set instruction %B1111010011010000, // D=D-M
-set inM 11111,
-tick, output, tock, output;
-
-set instruction %B0000000000001110, // @14
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;jlt
-tick, output, tock, output;
-
-set instruction %B0000001111100111, // @999
-tick, output, tock, output;
-
-set instruction %B1110110111100000, // A=A+1
-tick, output, tock, output;
-
-set instruction %B1110001100001000, // M=D
-tick, output, tock, output;
-
-set instruction %B0000000000010101, // @21
-tick, output, tock, output;
-
-set instruction %B1110011111000010, // D+1;jeq
-tick, output, tock, output;
-
-set instruction %B0000000000000010, // @2
-tick, output, tock, output;
-
-set instruction %B1110000010010000, // D=D+A
-tick, output, tock, output;
-
-set instruction %B0000001111101000, // @1000
-tick, output, tock, output;
-
-set instruction %B1110111010010000, // D=-1
-tick, output, tock, output;
-
-set instruction %B1110001100000001, // D;JGT
-tick, output, tock, output;
-
-set instruction %B1110001100000010, // D;JEQ
-tick, output, tock, output;
-
-set instruction %B1110001100000011, // D;JGE
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;JLT
-tick, output, tock, output;
-
-set instruction %B1110001100000101, // D;JNE
-tick, output, tock, output;
-
-set instruction %B1110001100000110, // D;JLE
-tick, output, tock, output;
-
-set instruction %B1110001100000111, // D;JMP
-tick, output, tock, output;
-
-set instruction %B1110101010010000, // D=0
-tick, output, tock, output;
-
-set instruction %B1110001100000001, // D;JGT
-tick, output, tock, output;
-
-set instruction %B1110001100000010, // D;JEQ
-tick, output, tock, output;
-
-set instruction %B1110001100000011, // D;JGE
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;JLT
-tick, output, tock, output;
-
-set instruction %B1110001100000101, // D;JNE
-tick, output, tock, output;
-
-set instruction %B1110001100000110, // D;JLE
-tick, output, tock, output;
-
-set instruction %B1110001100000111, // D;JMP
-tick, output, tock, output;
-
-set instruction %B1110111111010000, // D=1
-tick, output, tock, output;
-
-set instruction %B1110001100000001, // D;JGT
-tick, output, tock, output;
-
-set instruction %B1110001100000010, // D;JEQ
-tick, output, tock, output;
-
-set instruction %B1110001100000011, // D;JGE
-tick, output, tock, output;
-
-set instruction %B1110001100000100, // D;JLT
-tick, output, tock, output;
-
-set instruction %B1110001100000101, // D;JNE
-tick, output, tock, output;
-
-set instruction %B1110001100000110, // D;JLE
-tick, output, tock, output;
-
-set instruction %B1110001100000111, // D;JMP
-tick, output, tock, output;
-
-set reset 1;
-tick, output, tock, output;
-
-set instruction %B0111111111111111, // @32767
-set reset 0;
-tick, output, tock, output;
diff --git a/projects/05/ComputerAdd-external.cmp b/projects/05/ComputerAdd-external.cmp
deleted file mode 100644
index a3a8eaf..0000000
--- a/projects/05/ComputerAdd-external.cmp
+++ /dev/null
@@ -1,15 +0,0 @@
-| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0 | 0 |
-| 1 | 0 | 0 | 0 | 0 |
-| 2 | 0 | 0 | 0 | 0 |
-| 3 | 0 | 0 | 0 | 0 |
-| 4 | 0 | 0 | 0 | 0 |
-| 5 | 0 | 0 | 0 | 0 |
-| 6 | 0 | 5 | 0 | 0 |
-| 7 | 1 | 0 | 0 | 0 |
-| 8 | 0 | 0 | 0 | 0 |
-| 9 | 0 | 0 | 0 | 0 |
-| 10 | 0 | 0 | 0 | 0 |
-| 11 | 0 | 0 | 0 | 0 |
-| 12 | 0 | 0 | 0 | 0 |
-| 13 | 0 | 5 | 0 | 0 |
diff --git a/projects/05/ComputerAdd-external.tst b/projects/05/ComputerAdd-external.tst
deleted file mode 100644
index 09cc1a7..0000000
--- a/projects/05/ComputerAdd-external.tst
+++ /dev/null
@@ -1,32 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/ComputerAdd-external.tst
-
-load Computer.hdl,
-output-file ComputerAdd-external.out,
-compare-to ComputerAdd-external.cmp,
-output-list time%S1.4.1 reset%B2.1.2 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
-
-// Load a program written in the Hack machine language.
-// The program adds the two constants 2 and 3 and writes the result in RAM[0].
-ROM32K load Add.hack,
-output;
-
-// First run (at the beginning PC=0)
-repeat 6 {
- tick, tock, output;
-}
-
-// Reset the PC
-set reset 1,
-set RAM16K[0] 0,
-tick, tock, output;
-
-
-// Second run, to check that the PC was reset correctly.
-set reset 0,
-
-repeat 6 {
- tick, tock, output;
-}
diff --git a/projects/05/ComputerAdd.cmp b/projects/05/ComputerAdd.cmp
deleted file mode 100644
index f295464..0000000
--- a/projects/05/ComputerAdd.cmp
+++ /dev/null
@@ -1,15 +0,0 @@
-| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0 | 0| 0 | 0 | 0 |
-| 1 | 0 | 2 | 0 | 1| 0 | 0 | 0 |
-| 2 | 0 | 2 | 2 | 2| 0 | 0 | 0 |
-| 3 | 0 | 3 | 2 | 3| 0 | 0 | 0 |
-| 4 | 0 | 3 | 5 | 4| 0 | 0 | 0 |
-| 5 | 0 | 0 | 5 | 5| 0 | 0 | 0 |
-| 6 | 0 | 0 | 5 | 6| 5 | 0 | 0 |
-| 7 | 1 | 0 | 5 | 0| 0 | 0 | 0 |
-| 8 | 0 | 2 | 5 | 1| 0 | 0 | 0 |
-| 9 | 0 | 2 | 2 | 2| 0 | 0 | 0 |
-| 10 | 0 | 3 | 2 | 3| 0 | 0 | 0 |
-| 11 | 0 | 3 | 5 | 4| 0 | 0 | 0 |
-| 12 | 0 | 0 | 5 | 5| 0 | 0 | 0 |
-| 13 | 0 | 0 | 5 | 6| 5 | 0 | 0 |
diff --git a/projects/05/ComputerAdd.out b/projects/05/ComputerAdd.out
deleted file mode 100644
index 5748770..0000000
--- a/projects/05/ComputerAdd.out
+++ /dev/null
@@ -1,15 +0,0 @@
-| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0 | 0| 0 | 0 | 0 |
-| 1 | 0 | 2 | 0 | 1| 0 | 0 | 0 |
-| 2 | 0 | 2 | 2 | 2| 0 | 0 | 0 |
-| 3 | 0 | 3 | 2 | 3| 0 | 0 | 0 |
-| 4 | 0 | 3 | 5 | 4| 0 | 0 | 0 |
-| 5 | 0 | 0 | 5 | 5| 0 | 0 | 0 |
-| 6 | 0 | 0 | 5 | 6| 5 | 0 | 0 |
-| 7 | 1 | 0 | 5 | 0| 0 | 0 | 0 |
-| 8 | 0 | 2 | 5 | 1| 0 | 0 | 0 |
-| 9 | 0 | 2 | 2 | 2| 0 | 0 | 0 |
-| 10 | 0 | 3 | 2 | 3| 0 | 0 | 0 |
-| 11 | 0 | 3 | 5 | 4| 0 | 0 | 0 |
-| 12 | 0 | 0 | 5 | 5| 0 | 0 | 0 |
-| 13 | 0 | 0 | 5 | 6| 5 | 0 | 0 |
diff --git a/projects/05/ComputerAdd.tst b/projects/05/ComputerAdd.tst
deleted file mode 100644
index 27f4411..0000000
--- a/projects/05/ComputerAdd.tst
+++ /dev/null
@@ -1,32 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/ComputerAdd.tst
-
-load Computer.hdl,
-output-file ComputerAdd.out,
-compare-to ComputerAdd.cmp,
-output-list time%S1.4.1 reset%B2.1.2 ARegister[0]%D1.7.1 DRegister[0]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
-
-// Load a program written in the Hack machine language.
-// The program adds the two constants 2 and 3 and writes the result in RAM[0].
-ROM32K load Add.hack,
-output;
-
-// First run (at the beginning PC=0)
-repeat 6 {
- tick, tock, output;
-}
-
-// Reset the PC
-set reset 1,
-set RAM16K[0] 0,
-tick, tock, output;
-
-
-// Second run, to check that the PC was reset correctly.
-set reset 0,
-
-repeat 6 {
- tick, tock, output;
-}
diff --git a/projects/05/ComputerMax-external.cmp b/projects/05/ComputerMax-external.cmp
deleted file mode 100644
index f864733..0000000
--- a/projects/05/ComputerMax-external.cmp
+++ /dev/null
@@ -1,28 +0,0 @@
-| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 3 | 5 | 0 |
-| 1 | 0 | 3 | 5 | 0 |
-| 2 | 0 | 3 | 5 | 0 |
-| 3 | 0 | 3 | 5 | 0 |
-| 4 | 0 | 3 | 5 | 0 |
-| 5 | 0 | 3 | 5 | 0 |
-| 6 | 0 | 3 | 5 | 0 |
-| 7 | 0 | 3 | 5 | 0 |
-| 8 | 0 | 3 | 5 | 0 |
-| 9 | 0 | 3 | 5 | 0 |
-| 10 | 0 | 3 | 5 | 0 |
-| 11 | 0 | 3 | 5 | 0 |
-| 12 | 0 | 3 | 5 | 5 |
-| 13 | 0 | 3 | 5 | 5 |
-| 14 | 0 | 3 | 5 | 5 |
-| 15 | 1 | 3 | 5 | 5 |
-| 15 | 0 | 23456 | 12345 | 5 |
-| 16 | 0 | 23456 | 12345 | 5 |
-| 17 | 0 | 23456 | 12345 | 5 |
-| 18 | 0 | 23456 | 12345 | 5 |
-| 19 | 0 | 23456 | 12345 | 5 |
-| 20 | 0 | 23456 | 12345 | 5 |
-| 21 | 0 | 23456 | 12345 | 5 |
-| 22 | 0 | 23456 | 12345 | 5 |
-| 23 | 0 | 23456 | 12345 | 5 |
-| 24 | 0 | 23456 | 12345 | 5 |
-| 25 | 0 | 23456 | 12345 | 23456 |
diff --git a/projects/05/ComputerMax-external.tst b/projects/05/ComputerMax-external.tst
deleted file mode 100644
index 52b6bef..0000000
--- a/projects/05/ComputerMax-external.tst
+++ /dev/null
@@ -1,38 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/ComputerMax-external.tst
-
-load Computer.hdl,
-output-file ComputerMax-external.out,
-compare-to ComputerMax-external.cmp,
-output-list time%S1.4.1 reset%B2.1.2 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
-
-// Load a program written in the Hack machine language.
-// The program computes the maximum of RAM[0] and RAM[1]
-// and writes the result in RAM[2].
-ROM32K load Max.hack,
-
-// first run: compute max(3,5)
-set RAM16K[0] 3,
-set RAM16K[1] 5,
-output;
-
-repeat 14 {
- tick, tock, output;
-}
-
-// reset the PC
-set reset 1,
-tick, tock, output;
-
-// second run: compute max(23456,12345)
-set reset 0,
-set RAM16K[0] 23456,
-set RAM16K[1] 12345,
-output;
-
-// The run on these inputs needs less cycles (different branching)
-repeat 10 {
- tick, tock, output;
-}
diff --git a/projects/05/ComputerMax.cmp b/projects/05/ComputerMax.cmp
deleted file mode 100644
index 42276cd..0000000
--- a/projects/05/ComputerMax.cmp
+++ /dev/null
@@ -1,28 +0,0 @@
-| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0 | 0| 3 | 5 | 0 |
-| 1 | 0 | 0 | 0 | 1| 3 | 5 | 0 |
-| 2 | 0 | 0 | 3 | 2| 3 | 5 | 0 |
-| 3 | 0 | 1 | 3 | 3| 3 | 5 | 0 |
-| 4 | 0 | 1 | -2 | 4| 3 | 5 | 0 |
-| 5 | 0 | 10 | -2 | 5| 3 | 5 | 0 |
-| 6 | 0 | 10 | -2 | 6| 3 | 5 | 0 |
-| 7 | 0 | 1 | -2 | 7| 3 | 5 | 0 |
-| 8 | 0 | 1 | 5 | 8| 3 | 5 | 0 |
-| 9 | 0 | 12 | 5 | 9| 3 | 5 | 0 |
-| 10 | 0 | 12 | 5 | 12| 3 | 5 | 0 |
-| 11 | 0 | 2 | 5 | 13| 3 | 5 | 0 |
-| 12 | 0 | 2 | 5 | 14| 3 | 5 | 5 |
-| 13 | 0 | 14 | 5 | 15| 3 | 5 | 5 |
-| 14 | 0 | 14 | 5 | 14| 3 | 5 | 5 |
-| 15 | 1 | 14 | 5 | 0| 3 | 5 | 5 |
-| 15 | 0 | 14 | 5 | 0| 23456 | 12345 | 5 |
-| 16 | 0 | 0 | 5 | 1| 23456 | 12345 | 5 |
-| 17 | 0 | 0 | 23456 | 2| 23456 | 12345 | 5 |
-| 18 | 0 | 1 | 23456 | 3| 23456 | 12345 | 5 |
-| 19 | 0 | 1 | 11111 | 4| 23456 | 12345 | 5 |
-| 20 | 0 | 10 | 11111 | 5| 23456 | 12345 | 5 |
-| 21 | 0 | 10 | 11111 | 10| 23456 | 12345 | 5 |
-| 22 | 0 | 0 | 11111 | 11| 23456 | 12345 | 5 |
-| 23 | 0 | 0 | 23456 | 12| 23456 | 12345 | 5 |
-| 24 | 0 | 2 | 23456 | 13| 23456 | 12345 | 5 |
-| 25 | 0 | 2 | 23456 | 14| 23456 | 12345 | 23456 |
diff --git a/projects/05/ComputerMax.out b/projects/05/ComputerMax.out
deleted file mode 100644
index 698d5a1..0000000
--- a/projects/05/ComputerMax.out
+++ /dev/null
@@ -1,28 +0,0 @@
-| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0 | 0| 3 | 5 | 0 |
-| 1 | 0 | 0 | 0 | 1| 3 | 5 | 0 |
-| 2 | 0 | 0 | 3 | 2| 3 | 5 | 0 |
-| 3 | 0 | 1 | 3 | 3| 3 | 5 | 0 |
-| 4 | 0 | 1 | -2 | 4| 3 | 5 | 0 |
-| 5 | 0 | 10 | -2 | 5| 3 | 5 | 0 |
-| 6 | 0 | 10 | -2 | 6| 3 | 5 | 0 |
-| 7 | 0 | 1 | -2 | 7| 3 | 5 | 0 |
-| 8 | 0 | 1 | 5 | 8| 3 | 5 | 0 |
-| 9 | 0 | 12 | 5 | 9| 3 | 5 | 0 |
-| 10 | 0 | 12 | 5 | 12| 3 | 5 | 0 |
-| 11 | 0 | 2 | 5 | 13| 3 | 5 | 0 |
-| 12 | 0 | 2 | 5 | 14| 3 | 5 | 5 |
-| 13 | 0 | 14 | 5 | 15| 3 | 5 | 5 |
-| 14 | 0 | 14 | 5 | 14| 3 | 5 | 5 |
-| 15 | 1 | 14 | 5 | 0| 3 | 5 | 5 |
-| 15 | 0 | 14 | 5 | 0| 23456 | 12345 | 5 |
-| 16 | 0 | 0 | 5 | 1| 23456 | 12345 | 5 |
-| 17 | 0 | 0 | 23456 | 2| 23456 | 12345 | 5 |
-| 18 | 0 | 1 | 23456 | 3| 23456 | 12345 | 5 |
-| 19 | 0 | 1 | 11111 | 4| 23456 | 12345 | 5 |
-| 20 | 0 | 10 | 11111 | 5| 23456 | 12345 | 5 |
-| 21 | 0 | 10 | 11111 | 10| 23456 | 12345 | 5 |
-| 22 | 0 | 0 | 11111 | 11| 23456 | 12345 | 5 |
-| 23 | 0 | 0 | 23456 | 12| 23456 | 12345 | 5 |
-| 24 | 0 | 2 | 23456 | 13| 23456 | 12345 | 5 |
-| 25 | 0 | 2 | 23456 | 14| 23456 | 12345 | 23456 |
diff --git a/projects/05/ComputerMax.tst b/projects/05/ComputerMax.tst
deleted file mode 100644
index e090754..0000000
--- a/projects/05/ComputerMax.tst
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/ComputerMax.tst
-
-load Computer.hdl,
-output-file ComputerMax.out,
-compare-to ComputerMax.cmp,
-output-list time%S1.4.1 reset%B2.1.2 ARegister[]%D1.7.1 DRegister[]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
-
-// Load a program written in the Hack machine language.
-// The program computes the maximum of RAM[0] and RAM[1]
-// and writes the result in RAM[2].
-
-ROM32K load Max.hack,
-
-// first run: compute max(3,5)
-set RAM16K[0] 3,
-set RAM16K[1] 5,
-output;
-
-repeat 14 {
- tick, tock, output;
-}
-
-// reset the PC
-set reset 1,
-tick, tock, output;
-
-// second run: compute max(23456,12345)
-set reset 0,
-set RAM16K[0] 23456,
-set RAM16K[1] 12345,
-output;
-
-// The run on these inputs needs less cycles (different branching)
-repeat 10 {
- tick, tock, output;
-}
diff --git a/projects/05/ComputerRect-external.cmp b/projects/05/ComputerRect-external.cmp
deleted file mode 100644
index f276922..0000000
--- a/projects/05/ComputerRect-external.cmp
+++ /dev/null
@@ -1,65 +0,0 @@
-| time |
-| 0 |
-| 1 |
-| 2 |
-| 3 |
-| 4 |
-| 5 |
-| 6 |
-| 7 |
-| 8 |
-| 9 |
-| 10 |
-| 11 |
-| 12 |
-| 13 |
-| 14 |
-| 15 |
-| 16 |
-| 17 |
-| 18 |
-| 19 |
-| 20 |
-| 21 |
-| 22 |
-| 23 |
-| 24 |
-| 25 |
-| 26 |
-| 27 |
-| 28 |
-| 29 |
-| 30 |
-| 31 |
-| 32 |
-| 33 |
-| 34 |
-| 35 |
-| 36 |
-| 37 |
-| 38 |
-| 39 |
-| 40 |
-| 41 |
-| 42 |
-| 43 |
-| 44 |
-| 45 |
-| 46 |
-| 47 |
-| 48 |
-| 49 |
-| 50 |
-| 51 |
-| 52 |
-| 53 |
-| 54 |
-| 55 |
-| 56 |
-| 57 |
-| 58 |
-| 59 |
-| 60 |
-| 61 |
-| 62 |
-| 63 |
diff --git a/projects/05/ComputerRect-external.tst b/projects/05/ComputerRect-external.tst
deleted file mode 100644
index f9102f7..0000000
--- a/projects/05/ComputerRect-external.tst
+++ /dev/null
@@ -1,26 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/ComputerRect-external.tst
-
-load Computer.hdl,
-output-file ComputerRect-external.out,
-compare-to ComputerRect-external.cmp,
-output-list time%S1.4.1;
-
-// Load a program written in the Hack machine language.
-// The program draws a rectangle of width 16 pixels and
-// length RAM[0] at the top left of the screen.
-ROM32K load Rect.hack,
-
-echo "Before you run this script, select the 'Screen' option from the 'View' menu";
-
-echo "A small rectangle should be drawn at the top left of the screen (the 'Screen' option of the 'View' menu should be selected.)";
-
-// draw a rectangle 16 pixels wide and 4 pixels long
-set RAM16K[0] 4,
-output;
-
-repeat 63 {
- tick, tock, output;
-}
diff --git a/projects/05/ComputerRect.cmp b/projects/05/ComputerRect.cmp
deleted file mode 100644
index a6b5cc9..0000000
--- a/projects/05/ComputerRect.cmp
+++ /dev/null
@@ -1,65 +0,0 @@
-| time |ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0| 4 | 0 | 0 |
-| 1 | 0 | 0 | 1| 4 | 0 | 0 |
-| 2 | 0 | 4 | 2| 4 | 0 | 0 |
-| 3 | 23 | 4 | 3| 4 | 0 | 0 |
-| 4 | 23 | 4 | 4| 4 | 0 | 0 |
-| 5 | 16 | 4 | 5| 4 | 0 | 0 |
-| 6 | 16 | 4 | 6| 4 | 0 | 0 |
-| 7 | 16384 | 4 | 7| 4 | 0 | 0 |
-| 8 | 16384 | 16384 | 8| 4 | 0 | 0 |
-| 9 | 17 | 16384 | 9| 4 | 0 | 0 |
-| 10 | 17 | 16384 | 10| 4 | 0 | 0 |
-| 11 | 17 | 16384 | 11| 4 | 0 | 0 |
-| 12 | 16384 | 16384 | 12| 4 | 0 | 0 |
-| 13 | 16384 | 16384 | 13| 4 | 0 | 0 |
-| 14 | 17 | 16384 | 14| 4 | 0 | 0 |
-| 15 | 17 | 16384 | 15| 4 | 0 | 0 |
-| 16 | 32 | 16384 | 16| 4 | 0 | 0 |
-| 17 | 32 | 16416 | 17| 4 | 0 | 0 |
-| 18 | 17 | 16416 | 18| 4 | 0 | 0 |
-| 19 | 17 | 16416 | 19| 4 | 0 | 0 |
-| 20 | 16 | 16416 | 20| 4 | 0 | 0 |
-| 21 | 16 | 3 | 21| 4 | 0 | 0 |
-| 22 | 10 | 3 | 22| 4 | 0 | 0 |
-| 23 | 10 | 3 | 10| 4 | 0 | 0 |
-| 24 | 17 | 3 | 11| 4 | 0 | 0 |
-| 25 | 16416 | 3 | 12| 4 | 0 | 0 |
-| 26 | 16416 | 3 | 13| 4 | 0 | 0 |
-| 27 | 17 | 3 | 14| 4 | 0 | 0 |
-| 28 | 17 | 16416 | 15| 4 | 0 | 0 |
-| 29 | 32 | 16416 | 16| 4 | 0 | 0 |
-| 30 | 32 | 16448 | 17| 4 | 0 | 0 |
-| 31 | 17 | 16448 | 18| 4 | 0 | 0 |
-| 32 | 17 | 16448 | 19| 4 | 0 | 0 |
-| 33 | 16 | 16448 | 20| 4 | 0 | 0 |
-| 34 | 16 | 2 | 21| 4 | 0 | 0 |
-| 35 | 10 | 2 | 22| 4 | 0 | 0 |
-| 36 | 10 | 2 | 10| 4 | 0 | 0 |
-| 37 | 17 | 2 | 11| 4 | 0 | 0 |
-| 38 | 16448 | 2 | 12| 4 | 0 | 0 |
-| 39 | 16448 | 2 | 13| 4 | 0 | 0 |
-| 40 | 17 | 2 | 14| 4 | 0 | 0 |
-| 41 | 17 | 16448 | 15| 4 | 0 | 0 |
-| 42 | 32 | 16448 | 16| 4 | 0 | 0 |
-| 43 | 32 | 16480 | 17| 4 | 0 | 0 |
-| 44 | 17 | 16480 | 18| 4 | 0 | 0 |
-| 45 | 17 | 16480 | 19| 4 | 0 | 0 |
-| 46 | 16 | 16480 | 20| 4 | 0 | 0 |
-| 47 | 16 | 1 | 21| 4 | 0 | 0 |
-| 48 | 10 | 1 | 22| 4 | 0 | 0 |
-| 49 | 10 | 1 | 10| 4 | 0 | 0 |
-| 50 | 17 | 1 | 11| 4 | 0 | 0 |
-| 51 | 16480 | 1 | 12| 4 | 0 | 0 |
-| 52 | 16480 | 1 | 13| 4 | 0 | 0 |
-| 53 | 17 | 1 | 14| 4 | 0 | 0 |
-| 54 | 17 | 16480 | 15| 4 | 0 | 0 |
-| 55 | 32 | 16480 | 16| 4 | 0 | 0 |
-| 56 | 32 | 16512 | 17| 4 | 0 | 0 |
-| 57 | 17 | 16512 | 18| 4 | 0 | 0 |
-| 58 | 17 | 16512 | 19| 4 | 0 | 0 |
-| 59 | 16 | 16512 | 20| 4 | 0 | 0 |
-| 60 | 16 | 0 | 21| 4 | 0 | 0 |
-| 61 | 10 | 0 | 22| 4 | 0 | 0 |
-| 62 | 10 | 0 | 23| 4 | 0 | 0 |
-| 63 | 23 | 0 | 24| 4 | 0 | 0 |
diff --git a/projects/05/ComputerRect.out b/projects/05/ComputerRect.out
deleted file mode 100644
index a6b3965..0000000
--- a/projects/05/ComputerRect.out
+++ /dev/null
@@ -1,65 +0,0 @@
-| time |ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
-| 0 | 0 | 0 | 0| 4 | 0 | 0 |
-| 1 | 0 | 0 | 1| 4 | 0 | 0 |
-| 2 | 0 | 4 | 2| 4 | 0 | 0 |
-| 3 | 23 | 4 | 3| 4 | 0 | 0 |
-| 4 | 23 | 4 | 4| 4 | 0 | 0 |
-| 5 | 16 | 4 | 5| 4 | 0 | 0 |
-| 6 | 16 | 4 | 6| 4 | 0 | 0 |
-| 7 | 16384 | 4 | 7| 4 | 0 | 0 |
-| 8 | 16384 | 16384 | 8| 4 | 0 | 0 |
-| 9 | 17 | 16384 | 9| 4 | 0 | 0 |
-| 10 | 17 | 16384 | 10| 4 | 0 | 0 |
-| 11 | 17 | 16384 | 11| 4 | 0 | 0 |
-| 12 | 16384 | 16384 | 12| 4 | 0 | 0 |
-| 13 | 16384 | 16384 | 13| 4 | 0 | 0 |
-| 14 | 17 | 16384 | 14| 4 | 0 | 0 |
-| 15 | 17 | 16384 | 15| 4 | 0 | 0 |
-| 16 | 32 | 16384 | 16| 4 | 0 | 0 |
-| 17 | 32 | 16416 | 17| 4 | 0 | 0 |
-| 18 | 17 | 16416 | 18| 4 | 0 | 0 |
-| 19 | 17 | 16416 | 19| 4 | 0 | 0 |
-| 20 | 16 | 16416 | 20| 4 | 0 | 0 |
-| 21 | 16 | 3 | 21| 4 | 0 | 0 |
-| 22 | 10 | 3 | 22| 4 | 0 | 0 |
-| 23 | 10 | 3 | 10| 4 | 0 | 0 |
-| 24 | 17 | 3 | 11| 4 | 0 | 0 |
-| 25 | 16416 | 3 | 12| 4 | 0 | 0 |
-| 26 | 16416 | 3 | 13| 4 | 0 | 0 |
-| 27 | 17 | 3 | 14| 4 | 0 | 0 |
-| 28 | 17 | 16416 | 15| 4 | 0 | 0 |
-| 29 | 32 | 16416 | 16| 4 | 0 | 0 |
-| 30 | 32 | 16448 | 17| 4 | 0 | 0 |
-| 31 | 17 | 16448 | 18| 4 | 0 | 0 |
-| 32 | 17 | 16448 | 19| 4 | 0 | 0 |
-| 33 | 16 | 16448 | 20| 4 | 0 | 0 |
-| 34 | 16 | 2 | 21| 4 | 0 | 0 |
-| 35 | 10 | 2 | 22| 4 | 0 | 0 |
-| 36 | 10 | 2 | 10| 4 | 0 | 0 |
-| 37 | 17 | 2 | 11| 4 | 0 | 0 |
-| 38 | 16448 | 2 | 12| 4 | 0 | 0 |
-| 39 | 16448 | 2 | 13| 4 | 0 | 0 |
-| 40 | 17 | 2 | 14| 4 | 0 | 0 |
-| 41 | 17 | 16448 | 15| 4 | 0 | 0 |
-| 42 | 32 | 16448 | 16| 4 | 0 | 0 |
-| 43 | 32 | 16480 | 17| 4 | 0 | 0 |
-| 44 | 17 | 16480 | 18| 4 | 0 | 0 |
-| 45 | 17 | 16480 | 19| 4 | 0 | 0 |
-| 46 | 16 | 16480 | 20| 4 | 0 | 0 |
-| 47 | 16 | 1 | 21| 4 | 0 | 0 |
-| 48 | 10 | 1 | 22| 4 | 0 | 0 |
-| 49 | 10 | 1 | 10| 4 | 0 | 0 |
-| 50 | 17 | 1 | 11| 4 | 0 | 0 |
-| 51 | 16480 | 1 | 12| 4 | 0 | 0 |
-| 52 | 16480 | 1 | 13| 4 | 0 | 0 |
-| 53 | 17 | 1 | 14| 4 | 0 | 0 |
-| 54 | 17 | 16480 | 15| 4 | 0 | 0 |
-| 55 | 32 | 16480 | 16| 4 | 0 | 0 |
-| 56 | 32 | 16512 | 17| 4 | 0 | 0 |
-| 57 | 17 | 16512 | 18| 4 | 0 | 0 |
-| 58 | 17 | 16512 | 19| 4 | 0 | 0 |
-| 59 | 16 | 16512 | 20| 4 | 0 | 0 |
-| 60 | 16 | 0 | 21| 4 | 0 | 0 |
-| 61 | 10 | 0 | 22| 4 | 0 | 0 |
-| 62 | 10 | 0 | 23| 4 | 0 | 0 |
-| 63 | 23 | 0 | 24| 4 | 0 | 0 |
diff --git a/projects/05/ComputerRect.tst b/projects/05/ComputerRect.tst
deleted file mode 100644
index b1e2126..0000000
--- a/projects/05/ComputerRect.tst
+++ /dev/null
@@ -1,26 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/ComputerRect.tst
-
-load Computer.hdl,
-output-file ComputerRect.out,
-compare-to ComputerRect.cmp,
-output-list time%S1.4.1 ARegister[]%D1.7.1 DRegister[]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
-
-// Load a program written in the Hack machine language.
-// The program draws a rectangle of width 16 pixels and
-// length RAM[0] at the top left of the screen.
-ROM32K load Rect.hack,
-
-echo "Before you run this script, select the 'Screen' option from the 'View' menu";
-
-echo "A small rectangle should be drawn at the top left of the screen (the 'Screen' option of the 'View' menu should be selected.)";
-
-// Draws a rectangle 16 pixels wide and 4 pixels long
-set RAM16K[0] 4,
-output;
-
-repeat 63 {
- tick, tock, output;
-}
diff --git a/projects/05/Max.hack b/projects/05/Max.hack
deleted file mode 100644
index 2e04a8d..0000000
--- a/projects/05/Max.hack
+++ /dev/null
@@ -1,16 +0,0 @@
-0000000000000000
-1111110000010000
-0000000000000001
-1111010011010000
-0000000000001010
-1110001100000001
-0000000000000001
-1111110000010000
-0000000000001100
-1110101010000111
-0000000000000000
-1111110000010000
-0000000000000010
-1110001100001000
-0000000000001110
-1110101010000111
diff --git a/projects/05/Memory.cmp b/projects/05/Memory.cmp
deleted file mode 100644
index 613d171..0000000
--- a/projects/05/Memory.cmp
+++ /dev/null
@@ -1,54 +0,0 @@
-| in |load | address | out |
-| -1 | 1 | 000000000000000 | 0 |
-| -1 | 1 | 000000000000000 | -1 |
-| 9999 | 0 | 000000000000000 | -1 |
-| 9999 | 0 | 000000000000000 | -1 |
-| 9999 | 0 | 010000000000000 | 0 |
-| 9999 | 0 | 100000000000000 | 0 |
-| 2222 | 1 | 010000000000000 | 0 |
-| 2222 | 1 | 010000000000000 | 2222 |
-| 9999 | 0 | 010000000000000 | 2222 |
-| 9999 | 0 | 010000000000000 | 2222 |
-| 9999 | 0 | 000000000000000 | -1 |
-| 9999 | 0 | 100000000000000 | 0 |
-| 9999 | 0 | 000000000000001 | 0 |
-| 9999 | 0 | 000000000000010 | 0 |
-| 9999 | 0 | 000000000000100 | 0 |
-| 9999 | 0 | 000000000001000 | 0 |
-| 9999 | 0 | 000000000010000 | 0 |
-| 9999 | 0 | 000000000100000 | 0 |
-| 9999 | 0 | 000000001000000 | 0 |
-| 9999 | 0 | 000000010000000 | 0 |
-| 9999 | 0 | 000000100000000 | 0 |
-| 9999 | 0 | 000001000000000 | 0 |
-| 9999 | 0 | 000010000000000 | 0 |
-| 9999 | 0 | 000100000000000 | 0 |
-| 9999 | 0 | 001000000000000 | 0 |
-| 9999 | 0 | 010000000000000 | 2222 |
-| 1234 | 1 | 001001000110100 | 0 |
-| 1234 | 1 | 001001000110100 | 1234 |
-| 1234 | 0 | 010001000110100 | 0 |
-| 1234 | 0 | 110001000110100 | 0 |
-| 2345 | 1 | 010001101000101 | 0 |
-| 2345 | 1 | 010001101000101 | 2345 |
-| 2345 | 0 | 000001101000101 | 0 |
-| 2345 | 0 | 100001101000101 | 0 |
-| 2345 | 0 | 110000000000000 | 75 |
-| -1 | 1 | 100111111001111 | -1 |
-| -1 | 1 | 101000001001111 | -1 |
-| -1 | 1 | 000111111001111 | 0 |
-| -1 | 1 | 010111111001111 | 0 |
-| -1 | 0 | 100111111001110 | 0 |
-| -1 | 0 | 100111111001101 | 0 |
-| -1 | 0 | 100111111001011 | 0 |
-| -1 | 0 | 100111111000111 | 0 |
-| -1 | 0 | 100111111011111 | 0 |
-| -1 | 0 | 100111111101111 | 0 |
-| -1 | 0 | 100111110001111 | 0 |
-| -1 | 0 | 100111101001111 | 0 |
-| -1 | 0 | 100111011001111 | 0 |
-| -1 | 0 | 100110111001111 | 0 |
-| -1 | 0 | 100101111001111 | 0 |
-| -1 | 0 | 100011111001111 | 0 |
-| -1 | 0 | 101111111001111 | 0 |
-| -1 | 0 | 110000000000000 | 89 |
diff --git a/projects/05/Memory.out b/projects/05/Memory.out
deleted file mode 100644
index 1dbf7ed..0000000
--- a/projects/05/Memory.out
+++ /dev/null
@@ -1,54 +0,0 @@
-| in |load | address | out |
-| -1 | 1 | 000000000000000 | 0 |
-| -1 | 1 | 000000000000000 | -1 |
-| 9999 | 0 | 000000000000000 | -1 |
-| 9999 | 0 | 000000000000000 | -1 |
-| 9999 | 0 | 010000000000000 | 0 |
-| 9999 | 0 | 100000000000000 | 0 |
-| 2222 | 1 | 010000000000000 | 0 |
-| 2222 | 1 | 010000000000000 | 2222 |
-| 9999 | 0 | 010000000000000 | 2222 |
-| 9999 | 0 | 010000000000000 | 2222 |
-| 9999 | 0 | 000000000000000 | -1 |
-| 9999 | 0 | 100000000000000 | 0 |
-| 9999 | 0 | 000000000000001 | 0 |
-| 9999 | 0 | 000000000000010 | 0 |
-| 9999 | 0 | 000000000000100 | 0 |
-| 9999 | 0 | 000000000001000 | 0 |
-| 9999 | 0 | 000000000010000 | 0 |
-| 9999 | 0 | 000000000100000 | 0 |
-| 9999 | 0 | 000000001000000 | 0 |
-| 9999 | 0 | 000000010000000 | 0 |
-| 9999 | 0 | 000000100000000 | 0 |
-| 9999 | 0 | 000001000000000 | 0 |
-| 9999 | 0 | 000010000000000 | 0 |
-| 9999 | 0 | 000100000000000 | 0 |
-| 9999 | 0 | 001000000000000 | 0 |
-| 9999 | 0 | 010000000000000 | 2222 |
-| 1234 | 1 | 001001000110100 | 0 |
-| 1234 | 1 | 001001000110100 | 1234 |
-| 1234 | 0 | 010001000110100 | 0 |
-| 1234 | 0 | 110001000110100 | 0 |
-| 2345 | 1 | 010001101000101 | 0 |
-| 2345 | 1 | 010001101000101 | 2345 |
-| 2345 | 0 | 000001101000101 | 0 |
-| 2345 | 0 | 100001101000101 | 0 |
-| 2345 | 0 | 110000000000000 | 75 |
-| -1 | 1 | 100111111001111 | -1 |
-| -1 | 1 | 101000001001111 | -1 |
-| -1 | 1 | 000111111001111 | 0 |
-| -1 | 1 | 010111111001111 | 0 |
-| -1 | 0 | 100111111001110 | 0 |
-| -1 | 0 | 100111111001101 | 0 |
-| -1 | 0 | 100111111001011 | 0 |
-| -1 | 0 | 100111111000111 | 0 |
-| -1 | 0 | 100111111011111 | 0 |
-| -1 | 0 | 100111111101111 | 0 |
-| -1 | 0 | 100111110001111 | 0 |
-| -1 | 0 | 100111101001111 | 0 |
-| -1 | 0 | 100111011001111 | 0 |
-| -1 | 0 | 100110111001111 | 0 |
-| -1 | 0 | 100101111001111 | 0 |
-| -1 | 0 | 100011111001111 | 0 |
-| -1 | 0 | 101111111001111 | 0 |
-| -1 | 0 | 110000000000000 | 89 |
diff --git a/projects/05/Memory.tst b/projects/05/Memory.tst
deleted file mode 100644
index f712a48..0000000
--- a/projects/05/Memory.tst
+++ /dev/null
@@ -1,163 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/05/Memory.tst
-
-load Memory.hdl,
-output-file Memory.out,
-compare-to Memory.cmp,
-output-list in%D1.6.1 load%B2.1.2 address%B1.15.1 out%D1.6.1;
-
-echo "Before you run this script, select the 'Screen' option from the 'View' menu";
-
-set in -1, // Set RAM[0] = -1
-set load 1,
-set address 0,
-tick,
-output;
-tock,
-output;
-
-set in 9999, // RAM[0] holds value
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address %X2000, // Did not also write to upper RAM or Screen
-eval,
-output;
-set address %X4000,
-eval,
-output;
-
-set in 2222, // Set RAM[2000] = 2222
-set load 1,
-set address %X2000,
-tick,
-output;
-tock,
-output;
-
-set in 9999, // RAM[2000] holds value
-set load 0,
-tick,
-output;
-tock,
-output;
-
-set address 0, // Did not also write to lower RAM or Screen
-eval,
-output;
-set address %X4000,
-eval,
-output;
-
-set load 0, // Low order address bits connected
-set address %X0001, eval, output;
-set address %X0002, eval, output;
-set address %X0004, eval, output;
-set address %X0008, eval, output;
-set address %X0010, eval, output;
-set address %X0020, eval, output;
-set address %X0040, eval, output;
-set address %X0080, eval, output;
-set address %X0100, eval, output;
-set address %X0200, eval, output;
-set address %X0400, eval, output;
-set address %X0800, eval, output;
-set address %X1000, eval, output;
-set address %X2000, eval, output;
-
-set address %X1234, // RAM[1234] = 1234
-set in 1234,
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %X2234, // Did not also write to upper RAM or Screen
-eval, output;
-set address %X6234,
-eval, output;
-
-set address %X2345, // RAM[2345] = 2345
-set in 2345,
-set load 1,
-tick,
-output;
-tock,
-output;
-
-set load 0,
-set address %X0345, // Did not also write to lower RAM or Screen
-eval, output;
-set address %X4345,
-eval, output;
-
-// Keyboard test
-
-set address 24576,
-echo "Click the Keyboard icon and hold down the 'K' key (uppercase) until you see the next message (it should appear shortly after that) ...",
-// It's important to keep holding the key down since if the system is busy,
-// the memory will zero itself before being outputted.
-
-while out <> 75 {
- eval,
-}
-
-clear-echo,
-output;
-
-// Screen test
-
-set load 1,
-set in -1,
-set address %X4FCF,
-tick,
-tock,
-output,
-
-set address %X504F,
-tick,
-tock,
-output;
-
-set address %X0FCF, // Did not also write to lower or upper RAM
-eval,
-output;
-set address %X2FCF,
-eval,
-output;
-
-set load 0, // Low order address bits connected
-set address %X4FCE, eval, output;
-set address %X4FCD, eval, output;
-set address %X4FCB, eval, output;
-set address %X4FC7, eval, output;
-set address %X4FDF, eval, output;
-set address %X4FEF, eval, output;
-set address %X4F8F, eval, output;
-set address %X4F4F, eval, output;
-set address %X4ECF, eval, output;
-set address %X4DCF, eval, output;
-set address %X4BCF, eval, output;
-set address %X47CF, eval, output;
-set address %X5FCF, eval, output;
-
-
-set load 0,
-set address 24576,
-echo "Make sure you see ONLY two horizontal lines in the middle of the screen. Hold down 'Y' (uppercase) until you see the next message ...",
-// It's important to keep holding the key down since if the system is busy,
-// the memory will zero itself before being outputted.
-
-while out <> 89 {
- eval,
-}
-
-clear-echo,
-output;
diff --git a/projects/05/Rect.hack b/projects/05/Rect.hack
deleted file mode 100644
index ee017ab..0000000
--- a/projects/05/Rect.hack
+++ /dev/null
@@ -1,25 +0,0 @@
-0000000000000000
-1111110000010000
-0000000000010111
-1110001100000110
-0000000000010000
-1110001100001000
-0100000000000000
-1110110000010000
-0000000000010001
-1110001100001000
-0000000000010001
-1111110000100000
-1110111010001000
-0000000000010001
-1111110000010000
-0000000000100000
-1110000010010000
-0000000000010001
-1110001100001000
-0000000000010000
-1111110010011000
-0000000000001010
-1110001100000001
-0000000000010111
-1110101010000111
diff --git a/projects/06/Assembler b/projects/06/Assembler
deleted file mode 100755
index d58b556..0000000
--- a/projects/06/Assembler
+++ /dev/null
Binary files differ
diff --git a/projects/06/Assembler.hi b/projects/06/Assembler.hi
deleted file mode 100644
index f6ecd68..0000000
--- a/projects/06/Assembler.hi
+++ /dev/null
Binary files differ
diff --git a/projects/06/Assembler.o b/projects/06/Assembler.o
deleted file mode 100644
index a46b314..0000000
--- a/projects/06/Assembler.o
+++ /dev/null
Binary files differ
diff --git a/projects/06/add/Add.asm b/projects/06/add/Add.asm
deleted file mode 100644
index 3d4ec46..0000000
--- a/projects/06/add/Add.asm
+++ /dev/null
@@ -1,13 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/add/Add.asm
-
-// Computes R0 = 2 + 3 (R0 refers to RAM[0])
-
-@2
-D=A
-@3
-D=D+A
-@0
-M=D
diff --git a/projects/06/add/Add.hack b/projects/06/add/Add.hack
deleted file mode 100644
index 8297cbb..0000000
--- a/projects/06/add/Add.hack
+++ /dev/null
@@ -1,6 +0,0 @@
-0000000000000010
-1110110000010000
-0000000000000011
-1110000010010000
-0000000000000000
-1110001100001000
diff --git a/projects/06/max/Max.asm b/projects/06/max/Max.asm
deleted file mode 100644
index b62c138..0000000
--- a/projects/06/max/Max.asm
+++ /dev/null
@@ -1,26 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/max/Max.asm
-
-// Computes R2 = max(R0, R1) (R0,R1,R2 refer to RAM[0],RAM[1],RAM[2])
-
- @R0
- D=M // D = first number
- @R1
- D=D-M // D = first number - second number
- @OUTPUT_FIRST
- D;JGT // if D>0 (first is greater) goto output_first
- @R1
- D=M // D = second number
- @OUTPUT_D
- 0;JMP // goto output_d
-(OUTPUT_FIRST)
- @R0
- D=M // D = first number
-(OUTPUT_D)
- @R2
- M=D // M[2] = D (greatest number)
-(INFINITE_LOOP)
- @INFINITE_LOOP
- 0;JMP // infinite loop
diff --git a/projects/06/max/Max.hack b/projects/06/max/Max.hack
deleted file mode 100644
index ab8a440..0000000
--- a/projects/06/max/Max.hack
+++ /dev/null
@@ -1,16 +0,0 @@
-0000000000000000
-1111110000010000
-0000000000000001
-1111010011010000
-0000000000001010
-1110001100000001
-0000000000000001
-1111110000010000
-0000000000001100
-1110101010000111
-0000000000000000
-1111110000010000
-0000000000000010
-1110001100001000
-0000000000001110
-1110101010000111
diff --git a/projects/06/max/MaxL.asm b/projects/06/max/MaxL.asm
deleted file mode 100644
index fc3ccbf..0000000
--- a/projects/06/max/MaxL.asm
+++ /dev/null
@@ -1,23 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/max/MaxL.asm
-
-// Symbol-less version of the Max.asm program.
-
-@0
-D=M
-@1
-D=D-M
-@10
-D;JGT
-@1
-D=M
-@12
-0;JMP
-@0
-D=M
-@2
-M=D
-@14
-0;JMP
diff --git a/projects/06/pong/Pong.asm b/projects/06/pong/Pong.asm
deleted file mode 100644
index 79691f0..0000000
--- a/projects/06/pong/Pong.asm
+++ /dev/null
@@ -1,28375 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/pong/Pong.asm
-
-// The Pong game program was originally written in the high-level Jack language.
-// The Jack code was then translated by the Jack compiler into VM code.
-// The VM code was then translated by the VM translator into the Hack
-// assembly code shown here.
-
-@256
-D=A
-@SP
-M=D
-@133
-0;JMP
-@R15
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-D=M-D
-M=0
-@END_EQ
-D;JNE
-@SP
-A=M-1
-M=-1
-(END_EQ)
-@R15
-A=M
-0;JMP
-@R15
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-D=M-D
-M=0
-@END_GT
-D;JLE
-@SP
-A=M-1
-M=-1
-(END_GT)
-@R15
-A=M
-0;JMP
-@R15
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-D=M-D
-M=0
-@END_LT
-D;JGE
-@SP
-A=M-1
-M=-1
-(END_LT)
-@R15
-A=M
-0;JMP
-@5
-D=A
-@LCL
-A=M-D
-D=M
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-D=A
-@SP
-M=D+1
-@LCL
-D=M
-@R14
-AM=D-1
-D=M
-@THAT
-M=D
-@R14
-AM=M-1
-D=M
-@THIS
-M=D
-@R14
-AM=M-1
-D=M
-@ARG
-M=D
-@R14
-AM=M-1
-D=M
-@LCL
-M=D
-@R13
-A=M
-0;JMP
-@SP
-A=M
-M=D
-@LCL
-D=M
-@SP
-AM=M+1
-M=D
-@ARG
-D=M
-@SP
-AM=M+1
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-M=D
-@THAT
-D=M
-@SP
-AM=M+1
-M=D
-@4
-D=A
-@R13
-D=D+M
-@SP
-D=M-D
-@ARG
-M=D
-@SP
-MD=M+1
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-@0
-D=A
-@R13
-M=D
-@sys.init
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL0
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL0)
-(ball.new)
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.alloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL1
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL1)
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@10
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@THIS
-D=M
-@11
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@12
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@THIS
-D=M
-@13
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@THIS
-D=M
-@14
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.show
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL2
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL2)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(ball.dispose)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.dealloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL3
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL3)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ball.show)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL4
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL4)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.draw
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL5
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL5)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ball.hide)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL6
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL6)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.draw
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL7
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL7)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ball.draw)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL8
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL8)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ball.getleft)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(ball.getright)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@54
-0;JMP
-(ball.setdestination)
-@3
-D=A
-(LOOP_ball.setdestination)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_ball.setdestination
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL9
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL9)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL10
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL10)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT0
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT0)
-@THIS
-D=M
-@7
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.setdestination$if_true0
-D;JNE
-@ball.setdestination$if_false0
-0;JMP
-(ball.setdestination$if_true0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT1
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT1)
-@THIS
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT2
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT2)
-@THIS
-D=M
-@9
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ball.setdestination$if_end0
-0;JMP
-(ball.setdestination$if_false0)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT3
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT3)
-@THIS
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT4
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT4)
-@THIS
-D=M
-@9
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(ball.setdestination$if_end0)
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL11
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL11)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL12
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL12)
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL13
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL13)
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ball.move)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.hide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL14
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL14)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT5
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT5)
-@SP
-AM=M-1
-D=M
-@ball.move$if_true0
-D;JNE
-@ball.move$if_false0
-0;JMP
-(ball.move$if_true0)
-@THIS
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ball.move$if_end0
-0;JMP
-(ball.move$if_false0)
-@THIS
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@THIS
-D=M
-@9
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.move$if_true1
-D;JNE
-@ball.move$if_false1
-0;JMP
-(ball.move$if_true1)
-@THIS
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.move$if_true2
-D;JNE
-@ball.move$if_false2
-0;JMP
-(ball.move$if_true2)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@ball.move$if_end2
-0;JMP
-(ball.move$if_false2)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-(ball.move$if_end2)
-@ball.move$if_end1
-0;JMP
-(ball.move$if_false1)
-@THIS
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.move$if_true3
-D;JNE
-@ball.move$if_false3
-0;JMP
-(ball.move$if_true3)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@ball.move$if_end3
-0;JMP
-(ball.move$if_false3)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-(ball.move$if_end3)
-(ball.move$if_end1)
-(ball.move$if_end0)
-@THIS
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.move$if_true4
-D;JNE
-@ball.move$if_false4
-0;JMP
-(ball.move$if_true4)
-@THIS
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.move$if_true5
-D;JNE
-@ball.move$if_false5
-0;JMP
-(ball.move$if_true5)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-@ball.move$if_end5
-0;JMP
-(ball.move$if_false5)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-(ball.move$if_end5)
-@ball.move$if_end4
-0;JMP
-(ball.move$if_false4)
-@THIS
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ball.move$if_true6
-D;JNE
-@ball.move$if_false6
-0;JMP
-(ball.move$if_true6)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-@ball.move$if_end6
-0;JMP
-(ball.move$if_false6)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-(ball.move$if_end6)
-(ball.move$if_end4)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@10
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT0
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT0)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ball.move$if_true7
-D;JNE
-@ball.move$if_false7
-0;JMP
-(ball.move$if_true7)
-@SP
-M=M+1
-A=M-1
-M=1
-@THIS
-D=M
-@14
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-D=M
-@10
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-(ball.move$if_false7)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@11
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT6
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT6)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ball.move$if_true8
-D;JNE
-@ball.move$if_false8
-0;JMP
-(ball.move$if_true8)
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@14
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-D=M
-@11
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-(ball.move$if_false8)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@12
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT1
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT1)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ball.move$if_true9
-D;JNE
-@ball.move$if_false9
-0;JMP
-(ball.move$if_true9)
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@14
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-D=M
-@12
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-(ball.move$if_false9)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@13
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT7
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT7)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ball.move$if_true10
-D;JNE
-@ball.move$if_false10
-0;JMP
-(ball.move$if_true10)
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@14
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THIS
-D=M
-@13
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-(ball.move$if_false10)
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.show
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL15
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL15)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@14
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(ball.bounce)
-@5
-D=A
-(LOOP_ball.bounce)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_ball.bounce
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL16
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL16)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL17
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL17)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ0
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ0)
-@SP
-AM=M-1
-D=M
-@ball.bounce$if_true0
-D;JNE
-@ball.bounce$if_false0
-0;JMP
-(ball.bounce$if_true0)
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ball.bounce$if_end0
-0;JMP
-(ball.bounce$if_false0)
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT8
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT8)
-@SP
-A=M-1
-M=!M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@RET_ADDRESS_EQ1
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ1)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT9
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT9)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@RET_ADDRESS_EQ2
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ2)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@ball.bounce$if_true1
-D;JNE
-@ball.bounce$if_false1
-0;JMP
-(ball.bounce$if_true1)
-@20
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ball.bounce$if_end1
-0;JMP
-(ball.bounce$if_false1)
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-(ball.bounce$if_end1)
-(ball.bounce$if_end0)
-@THIS
-D=M
-@14
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@RET_ADDRESS_EQ3
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ3)
-@SP
-AM=M-1
-D=M
-@ball.bounce$if_true2
-D;JNE
-@ball.bounce$if_false2
-0;JMP
-(ball.bounce$if_true2)
-@506
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@50
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL18
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL18)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL19
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL19)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL20
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL20)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ball.bounce$if_end2
-0;JMP
-(ball.bounce$if_false2)
-@THIS
-D=M
-@14
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ4
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ4)
-@SP
-AM=M-1
-D=M
-@ball.bounce$if_true3
-D;JNE
-@ball.bounce$if_false3
-0;JMP
-(ball.bounce$if_true3)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@50
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL21
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL21)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL22
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL22)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL23
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL23)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ball.bounce$if_end3
-0;JMP
-(ball.bounce$if_false3)
-@THIS
-D=M
-@14
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ5
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ5)
-@SP
-AM=M-1
-D=M
-@ball.bounce$if_true4
-D;JNE
-@ball.bounce$if_false4
-0;JMP
-(ball.bounce$if_true4)
-@250
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL24
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL24)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL25
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL25)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL26
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL26)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ball.bounce$if_end4
-0;JMP
-(ball.bounce$if_false4)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL27
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL27)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL28
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL28)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL29
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL29)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(ball.bounce$if_end4)
-(ball.bounce$if_end3)
-(ball.bounce$if_end2)
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@R13
-M=D
-@ball.setdestination
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL30
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL30)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.new)
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.alloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL31
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL31)
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.show
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL32
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL32)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(bat.dispose)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.dealloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL33
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL33)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.show)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL34
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL34)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.draw
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL35
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL35)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.hide)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL36
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL36)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.draw
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL37
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL37)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.draw)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL38
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL38)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.setdirection)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.getleft)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(bat.getright)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@54
-0;JMP
-(bat.setwidth)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.hide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL39
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL39)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.show
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL40
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL40)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(bat.move)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@RET_ADDRESS_EQ6
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ6)
-@SP
-AM=M-1
-D=M
-@bat.move$if_true0
-D;JNE
-@bat.move$if_false0
-0;JMP
-(bat.move$if_true0)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT10
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT10)
-@SP
-AM=M-1
-D=M
-@bat.move$if_true1
-D;JNE
-@bat.move$if_false1
-0;JMP
-(bat.move$if_true1)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-(bat.move$if_false1)
-@SP
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL41
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL41)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL42
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL42)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL43
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL43)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL44
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL44)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@bat.move$if_end0
-0;JMP
-(bat.move$if_false0)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT2
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT2)
-@SP
-AM=M-1
-D=M
-@bat.move$if_true2
-D;JNE
-@bat.move$if_false2
-0;JMP
-(bat.move$if_true2)
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-(bat.move$if_false2)
-@SP
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL45
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL45)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL46
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL46)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@1
-D=A
-@R13
-M=D
-@screen.setcolor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL47
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL47)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL48
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL48)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(bat.move$if_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(main.main)
-@SP
-AM=M+1
-A=A-1
-M=0
-@0
-D=A
-@R13
-M=D
-@ponggame.newinstance
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL49
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL49)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@ponggame.getinstance
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL50
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL50)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ponggame.run
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL51
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL51)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ponggame.dispose
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL52
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL52)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ponggame.new)
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.alloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL53
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL53)
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@0
-D=A
-@R13
-M=D
-@screen.clearscreen
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL54
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL54)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@50
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@230
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@229
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@R13
-M=D
-@bat.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL55
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL55)
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@253
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@222
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@229
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@R13
-M=D
-@ball.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL56
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL56)
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@400
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@3
-D=A
-@R13
-M=D
-@ball.setdestination
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL57
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL57)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@238
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@240
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@R13
-M=D
-@screen.drawrectangle
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL58
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL58)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@22
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@2
-D=A
-@R13
-M=D
-@output.movecursor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL59
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL59)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@8
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL60
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL60)
-@83
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL61
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL61)
-@99
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL62
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL62)
-@111
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL63
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL63)
-@114
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL64
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL64)
-@101
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL65
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL65)
-@58
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL66
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL66)
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL67
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL67)
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL68
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL68)
-@1
-D=A
-@R13
-M=D
-@output.printstring
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL69
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL69)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(ponggame.dispose)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.dispose
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL70
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL70)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.dispose
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL71
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL71)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.dealloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL72
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL72)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ponggame.newinstance)
-@0
-D=A
-@R13
-M=D
-@ponggame.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL73
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL73)
-@SP
-AM=M-1
-D=M
-@ponggame.0
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ponggame.getinstance)
-@ponggame.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(ponggame.run)
-@SP
-AM=M+1
-A=A-1
-M=0
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-(ponggame.run$while_exp0)
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ponggame.run$while_end0
-D;JNE
-(ponggame.run$while_exp1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ7
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ7)
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ponggame.run$while_end1
-D;JNE
-@0
-D=A
-@R13
-M=D
-@keyboard.keypressed
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL74
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL74)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.move
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL75
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL75)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ponggame.moveball
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL76
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL76)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ponggame.run$while_exp1
-0;JMP
-(ponggame.run$while_end1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@130
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ8
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ8)
-@SP
-AM=M-1
-D=M
-@ponggame.run$if_true0
-D;JNE
-@ponggame.run$if_false0
-0;JMP
-(ponggame.run$if_true0)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@2
-D=A
-@R13
-M=D
-@bat.setdirection
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL77
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL77)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ponggame.run$if_end0
-0;JMP
-(ponggame.run$if_false0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@132
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ9
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ9)
-@SP
-AM=M-1
-D=M
-@ponggame.run$if_true1
-D;JNE
-@ponggame.run$if_false1
-0;JMP
-(ponggame.run$if_true1)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@bat.setdirection
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL78
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL78)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ponggame.run$if_end1
-0;JMP
-(ponggame.run$if_false1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@140
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ10
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ10)
-@SP
-AM=M-1
-D=M
-@ponggame.run$if_true2
-D;JNE
-@ponggame.run$if_false2
-0;JMP
-(ponggame.run$if_true2)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-M=D
-(ponggame.run$if_false2)
-(ponggame.run$if_end1)
-(ponggame.run$if_end0)
-(ponggame.run$while_exp2)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ11
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ11)
-@SP
-A=M-1
-M=!M
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ponggame.run$while_end2
-D;JNE
-@0
-D=A
-@R13
-M=D
-@keyboard.keypressed
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL79
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL79)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.move
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL80
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL80)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ponggame.moveball
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL81
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL81)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ponggame.run$while_exp2
-0;JMP
-(ponggame.run$while_end2)
-@ponggame.run$while_exp0
-0;JMP
-(ponggame.run$while_end0)
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ponggame.run$if_true3
-D;JNE
-@ponggame.run$if_false3
-0;JMP
-(ponggame.run$if_true3)
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@output.movecursor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL82
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL82)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@9
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL83
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL83)
-@71
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL84
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL84)
-@97
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL85
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL85)
-@109
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL86
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL86)
-@101
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL87
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL87)
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL88
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL88)
-@79
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL89
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL89)
-@118
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL90
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL90)
-@101
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL91
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL91)
-@114
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL92
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL92)
-@1
-D=A
-@R13
-M=D
-@output.printstring
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL93
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL93)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(ponggame.run$if_false3)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(ponggame.moveball)
-@5
-D=A
-(LOOP_ponggame.moveball)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_ponggame.moveball
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.move
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL94
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL94)
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT3
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT3)
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ12
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ12)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@ponggame.moveball$if_true0
-D;JNE
-@ponggame.moveball$if_false0
-0;JMP
-(ponggame.moveball$if_true0)
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.getleft
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL95
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL95)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@bat.getright
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL96
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL96)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.getleft
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL97
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL97)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@ball.getright
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL98
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL98)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ13
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ13)
-@SP
-AM=M-1
-D=M
-@ponggame.moveball$if_true1
-D;JNE
-@ponggame.moveball$if_false1
-0;JMP
-(ponggame.moveball$if_true1)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT4
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT4)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT11
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT11)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-M=D
-@THIS
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@ponggame.moveball$if_true2
-D;JNE
-@ponggame.moveball$if_false2
-0;JMP
-(ponggame.moveball$if_true2)
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@RET_ADDRESS_LT12
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT12)
-@SP
-AM=M-1
-D=M
-@ponggame.moveball$if_true3
-D;JNE
-@ponggame.moveball$if_false3
-0;JMP
-(ponggame.moveball$if_true3)
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ponggame.moveball$if_end3
-0;JMP
-(ponggame.moveball$if_false3)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@RET_ADDRESS_GT5
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT5)
-@SP
-AM=M-1
-D=M
-@ponggame.moveball$if_true4
-D;JNE
-@ponggame.moveball$if_false4
-0;JMP
-(ponggame.moveball$if_true4)
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(ponggame.moveball$if_false4)
-(ponggame.moveball$if_end3)
-@THIS
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@bat.setwidth
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL99
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL99)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@22
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@output.movecursor
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL100
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL100)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@THIS
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.printint
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL101
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL101)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(ponggame.moveball$if_false2)
-(ponggame.moveball$if_false1)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@ball.bounce
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL102
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL102)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(ponggame.moveball$if_false0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(array.new)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT6
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT6)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@array.new$if_true0
-D;JNE
-@array.new$if_false0
-0;JMP
-(array.new$if_true0)
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL103
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL103)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(array.new$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.alloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL104
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL104)
-@54
-0;JMP
-(array.dispose)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.dealloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL105
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL105)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(keyboard.init)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(keyboard.keypressed)
-@24576
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.peek
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL106
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL106)
-@54
-0;JMP
-(keyboard.readchar)
-@SP
-A=M
-M=0
-AD=A+1
-M=0
-@SP
-M=D+1
-@SP
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@R13
-M=D
-@output.printchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL107
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL107)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(keyboard.readchar$while_exp0)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ14
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ14)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT7
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT7)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@keyboard.readchar$while_end0
-D;JNE
-@0
-D=A
-@R13
-M=D
-@keyboard.keypressed
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL108
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL108)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT8
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT8)
-@SP
-AM=M-1
-D=M
-@keyboard.readchar$if_true0
-D;JNE
-@keyboard.readchar$if_false0
-0;JMP
-(keyboard.readchar$if_true0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-(keyboard.readchar$if_false0)
-@keyboard.readchar$while_exp0
-0;JMP
-(keyboard.readchar$while_end0)
-@0
-D=A
-@R13
-M=D
-@string.backspace
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL109
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL109)
-@1
-D=A
-@R13
-M=D
-@output.printchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL110
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL110)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.printchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL111
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL111)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(keyboard.readline)
-@5
-D=A
-(LOOP_keyboard.readline)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_keyboard.readline
-D;JGT
-@80
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL112
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL112)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.printstring
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL113
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL113)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@string.newline
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL114
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL114)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@0
-D=A
-@R13
-M=D
-@string.backspace
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL115
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL115)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-(keyboard.readline$while_exp0)
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@keyboard.readline$while_end0
-D;JNE
-@0
-D=A
-@R13
-M=D
-@keyboard.readchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL116
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL116)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ15
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ15)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@keyboard.readline$if_true0
-D;JNE
-@keyboard.readline$if_false0
-0;JMP
-(keyboard.readline$if_true0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ16
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ16)
-@SP
-AM=M-1
-D=M
-@keyboard.readline$if_true1
-D;JNE
-@keyboard.readline$if_false1
-0;JMP
-(keyboard.readline$if_true1)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.eraselastchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL117
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL117)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@keyboard.readline$if_end1
-0;JMP
-(keyboard.readline$if_false1)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL118
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL118)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-(keyboard.readline$if_end1)
-(keyboard.readline$if_false0)
-@keyboard.readline$while_exp0
-0;JMP
-(keyboard.readline$while_end0)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(keyboard.readint)
-@SP
-A=M
-M=0
-AD=A+1
-M=0
-@SP
-M=D+1
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@keyboard.readline
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL119
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL119)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.intvalue
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL120
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL120)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.dispose
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL121
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL121)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(math.init)
-@SP
-AM=M+1
-A=A-1
-M=0
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL122
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL122)
-@SP
-AM=M-1
-D=M
-@math.1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL123
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL123)
-@SP
-AM=M-1
-D=M
-@math.0
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-(math.init$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT13
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT13)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.init$while_end0
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@math.init$while_exp0
-0;JMP
-(math.init$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(math.abs)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT14
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT14)
-@SP
-AM=M-1
-D=M
-@math.abs$if_true0
-D;JNE
-@math.abs$if_false0
-0;JMP
-(math.abs$if_true0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-(math.abs$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(math.multiply)
-@5
-D=A
-(LOOP_math.multiply)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_math.multiply
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT15
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT15)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT9
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT9)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT10
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT10)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT16
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT16)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL124
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL124)
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL125
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL125)
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT17
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT17)
-@SP
-AM=M-1
-D=M
-@math.multiply$if_true0
-D;JNE
-@math.multiply$if_false0
-0;JMP
-(math.multiply$if_true0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-(math.multiply$if_false0)
-(math.multiply$while_exp0)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT18
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT18)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.multiply$while_end0
-D;JNE
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT11
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT11)
-@SP
-AM=M-1
-D=M
-@math.multiply$if_true1
-D;JNE
-@math.multiply$if_false1
-0;JMP
-(math.multiply$if_true1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-(math.multiply$if_false1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@math.multiply$while_exp0
-0;JMP
-(math.multiply$while_end0)
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@math.multiply$if_true2
-D;JNE
-@math.multiply$if_false2
-0;JMP
-(math.multiply$if_true2)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(math.multiply$if_false2)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(math.divide)
-@4
-D=A
-(LOOP_math.divide)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_math.divide
-D;JGT
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ17
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ17)
-@SP
-AM=M-1
-D=M
-@math.divide$if_true0
-D;JNE
-@math.divide$if_false0
-0;JMP
-(math.divide$if_true0)
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL126
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL126)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(math.divide$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT19
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT19)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT12
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT12)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT13
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT13)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT20
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT20)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL127
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL127)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL128
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL128)
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-(math.divide$while_exp0)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.divide$while_end0
-D;JNE
-@32767
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT21
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT21)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.divide$if_true1
-D;JNE
-@math.divide$if_false1
-0;JMP
-(math.divide$if_true1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT14
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT14)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.divide$if_true2
-D;JNE
-@math.divide$if_false2
-0;JMP
-(math.divide$if_true2)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(math.divide$if_false2)
-(math.divide$if_false1)
-@math.divide$while_exp0
-0;JMP
-(math.divide$while_end0)
-(math.divide$while_exp1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@RET_ADDRESS_GT15
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT15)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.divide$while_end1
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT16
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT16)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.divide$if_true3
-D;JNE
-@math.divide$if_false3
-0;JMP
-(math.divide$if_true3)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-(math.divide$if_false3)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@math.divide$while_exp1
-0;JMP
-(math.divide$while_end1)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@math.divide$if_true4
-D;JNE
-@math.divide$if_false4
-0;JMP
-(math.divide$if_true4)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-(math.divide$if_false4)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(math.sqrt)
-@4
-D=A
-(LOOP_math.sqrt)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_math.sqrt
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT22
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT22)
-@SP
-AM=M-1
-D=M
-@math.sqrt$if_true0
-D;JNE
-@math.sqrt$if_false0
-0;JMP
-(math.sqrt$if_true0)
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL129
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL129)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(math.sqrt$if_false0)
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(math.sqrt$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@RET_ADDRESS_GT17
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT17)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@math.sqrt$while_end0
-D;JNE
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@math.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL130
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL130)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT18
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT18)
-@SP
-A=M-1
-M=!M
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT23
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT23)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@math.sqrt$if_true1
-D;JNE
-@math.sqrt$if_false1
-0;JMP
-(math.sqrt$if_true1)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-(math.sqrt$if_false1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@math.sqrt$while_exp0
-0;JMP
-(math.sqrt$while_end0)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(math.max)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT19
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT19)
-@SP
-AM=M-1
-D=M
-@math.max$if_true0
-D;JNE
-@math.max$if_false0
-0;JMP
-(math.max$if_true0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-(math.max$if_false0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(math.min)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT24
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT24)
-@SP
-AM=M-1
-D=M
-@math.min$if_true0
-D;JNE
-@math.min$if_false0
-0;JMP
-(math.min$if_true0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-(math.min$if_false0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(memory.init)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@memory.0
-M=D
-@2048
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@memory.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@14334
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@2049
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@memory.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2050
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(memory.peek)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@memory.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(memory.poke)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@memory.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(memory.alloc)
-@SP
-AM=M+1
-A=A-1
-M=0
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@RET_ADDRESS_LT25
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT25)
-@SP
-AM=M-1
-D=M
-@memory.alloc$if_true0
-D;JNE
-@memory.alloc$if_false0
-0;JMP
-(memory.alloc$if_true0)
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL131
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL131)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(memory.alloc$if_false0)
-@2048
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(memory.alloc$while_exp0)
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT26
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT26)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@memory.alloc$while_end0
-D;JNE
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@memory.alloc$while_exp0
-0;JMP
-(memory.alloc$while_end0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@16379
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT20
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT20)
-@SP
-AM=M-1
-D=M
-@memory.alloc$if_true1
-D;JNE
-@memory.alloc$if_false1
-0;JMP
-(memory.alloc$if_true1)
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL132
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL132)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(memory.alloc$if_false1)
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@RET_ADDRESS_GT21
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT21)
-@SP
-AM=M-1
-D=M
-@memory.alloc$if_true2
-D;JNE
-@memory.alloc$if_false2
-0;JMP
-(memory.alloc$if_true2)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@RET_ADDRESS_EQ18
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ18)
-@SP
-AM=M-1
-D=M
-@memory.alloc$if_true3
-D;JNE
-@memory.alloc$if_false3
-0;JMP
-(memory.alloc$if_true3)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@memory.alloc$if_end3
-0;JMP
-(memory.alloc$if_false3)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-(memory.alloc$if_end3)
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-(memory.alloc$if_false2)
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@54
-0;JMP
-(memory.dealloc)
-@SP
-A=M
-M=0
-AD=A+1
-M=0
-@SP
-M=D+1
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ19
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ19)
-@SP
-AM=M-1
-D=M
-@memory.dealloc$if_true0
-D;JNE
-@memory.dealloc$if_false0
-0;JMP
-(memory.dealloc$if_true0)
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@memory.dealloc$if_end0
-0;JMP
-(memory.dealloc$if_false0)
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@RET_ADDRESS_EQ20
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ20)
-@SP
-AM=M-1
-D=M
-@memory.dealloc$if_true1
-D;JNE
-@memory.dealloc$if_false1
-0;JMP
-(memory.dealloc$if_true1)
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@memory.dealloc$if_end1
-0;JMP
-(memory.dealloc$if_false1)
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-(memory.dealloc$if_end1)
-(memory.dealloc$if_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.init)
-@16384
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.4
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.2
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@output.0
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL133
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL133)
-@SP
-AM=M-1
-D=M
-@output.3
-M=D
-@0
-D=A
-@R13
-M=D
-@output.initmap
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL134
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL134)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@output.createshiftedmap
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL135
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL135)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.initmap)
-@127
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL136
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL136)
-@SP
-AM=M-1
-D=M
-@output.5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL137
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL137)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL138
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL138)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@33
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL139
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL139)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@34
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@20
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL140
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL140)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL141
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL141)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@36
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL142
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL142)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@37
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@49
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL143
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL143)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@38
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL144
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL144)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@39
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL145
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL145)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@40
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL146
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL146)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@41
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL147
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL147)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@42
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL148
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL148)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@43
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL149
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL149)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@44
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL150
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL150)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@45
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL151
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL151)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@46
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL152
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL152)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@47
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL153
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL153)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL154
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL154)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@49
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL155
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL155)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@50
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL156
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL156)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL157
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL157)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@52
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@26
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@60
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL158
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL158)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@53
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL159
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL159)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL160
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL160)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@55
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@49
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL161
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL161)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@56
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL162
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL162)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@57
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL163
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL163)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@58
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL164
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL164)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL165
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL165)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@60
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL166
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL166)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@61
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL167
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL167)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@62
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL168
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL168)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@64
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL169
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL169)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL170
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL170)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@65
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL171
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL171)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@66
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL172
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL172)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@67
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL173
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL173)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@68
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL174
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL174)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@69
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL175
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL175)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@70
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL176
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL176)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@71
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@44
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL177
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL177)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@72
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL178
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL178)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@73
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL179
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL179)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@74
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@60
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL180
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL180)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@75
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL181
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL181)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@76
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL182
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL182)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@77
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@33
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL183
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL183)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@78
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL184
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL184)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@79
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL185
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL185)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@80
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL186
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL186)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@81
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL187
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL187)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@82
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL188
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL188)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@83
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL189
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL189)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@84
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@45
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL190
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL190)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@85
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL191
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL191)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@86
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL192
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL192)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@87
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL193
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL193)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@88
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL194
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL194)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@89
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL195
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL195)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@90
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@49
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL196
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL196)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@91
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL197
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL197)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@92
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=1
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL198
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL198)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@93
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL199
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL199)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@94
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@8
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL200
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL200)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@95
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL201
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL201)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@96
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL202
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL202)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@97
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL203
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL203)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@98
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL204
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL204)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@99
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL205
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL205)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@100
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@60
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL206
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL206)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@101
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL207
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL207)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@102
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@38
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL208
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL208)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@103
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL209
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL209)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@104
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL210
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL210)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@105
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL211
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL211)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@106
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@56
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL212
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL212)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@107
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL213
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL213)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@108
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL214
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL214)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@109
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@29
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL215
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL215)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@110
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@29
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL216
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL216)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@111
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL217
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL217)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@112
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL218
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL218)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@113
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL219
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL219)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@114
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@29
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL220
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL220)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@115
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL221
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL221)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@116
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL222
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL222)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@117
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL223
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL223)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@118
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL224
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL224)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@119
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL225
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL225)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@120
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL226
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL226)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@121
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL227
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL227)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@122
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL228
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL228)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@123
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@56
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@56
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL229
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL229)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@124
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL230
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL230)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@125
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@56
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL231
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL231)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@126
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@38
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@45
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@R13
-M=D
-@output.create
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL232
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL232)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.create)
-@SP
-AM=M+1
-A=A-1
-M=0
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL233
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL233)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@4
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@8
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@9
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@9
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@10
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-D=M
-@11
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.createshiftedmap)
-@4
-D=A
-(LOOP_output.createshiftedmap)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_output.createshiftedmap
-D;JGT
-@127
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL234
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL234)
-@SP
-AM=M-1
-D=M
-@output.6
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-(output.createshiftedmap$while_exp0)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@127
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT27
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT27)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.createshiftedmap$while_end0
-D;JNE
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL235
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL235)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.6
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-(output.createshiftedmap$while_exp1)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT28
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT28)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.createshiftedmap$while_end1
-D;JNE
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@256
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL236
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL236)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@output.createshiftedmap$while_exp1
-0;JMP
-(output.createshiftedmap$while_end1)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ21
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ21)
-@SP
-AM=M-1
-D=M
-@output.createshiftedmap$if_true0
-D;JNE
-@output.createshiftedmap$if_false0
-0;JMP
-(output.createshiftedmap$if_true0)
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@output.createshiftedmap$if_end0
-0;JMP
-(output.createshiftedmap$if_false0)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-(output.createshiftedmap$if_end0)
-@output.createshiftedmap$while_exp0
-0;JMP
-(output.createshiftedmap$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.getmap)
-@SP
-AM=M+1
-A=A-1
-M=0
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT29
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT29)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@126
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT22
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT22)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@output.getmap$if_true0
-D;JNE
-@output.getmap$if_false0
-0;JMP
-(output.getmap$if_true0)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-(output.getmap$if_false0)
-@output.2
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.getmap$if_true1
-D;JNE
-@output.getmap$if_false1
-0;JMP
-(output.getmap$if_true1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@output.getmap$if_end1
-0;JMP
-(output.getmap$if_false1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.6
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(output.getmap$if_end1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(output.drawchar)
-@4
-D=A
-(LOOP_output.drawchar)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_output.drawchar
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.getmap
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL237
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL237)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(output.drawchar$while_exp0)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT30
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT30)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.drawchar$while_end0
-D;JNE
-@output.2
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.drawchar$if_true0
-D;JNE
-@output.drawchar$if_false0
-0;JMP
-(output.drawchar$if_true0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.4
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@256
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@output.drawchar$if_end0
-0;JMP
-(output.drawchar$if_false0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.4
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-(output.drawchar$if_end0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.4
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@output.drawchar$while_exp0
-0;JMP
-(output.drawchar$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.movecursor)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT31
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT31)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@22
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT23
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT23)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT32
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT32)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT24
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT24)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@output.movecursor$if_true0
-D;JNE
-@output.movecursor$if_false0
-0;JMP
-(output.movecursor$if_true0)
-@20
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL238
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL238)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(output.movecursor$if_false0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL239
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL239)
-@SP
-AM=M-1
-D=M
-@output.0
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@352
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL240
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL240)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL241
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL241)
-@RET_ADDRESS_EQ22
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ22)
-@SP
-AM=M-1
-D=M
-@output.2
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.drawchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL242
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL242)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.printchar)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@0
-D=A
-@R13
-M=D
-@string.newline
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL243
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL243)
-@RET_ADDRESS_EQ23
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ23)
-@SP
-AM=M-1
-D=M
-@output.printchar$if_true0
-D;JNE
-@output.printchar$if_false0
-0;JMP
-(output.printchar$if_true0)
-@0
-D=A
-@R13
-M=D
-@output.println
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL244
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL244)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@output.printchar$if_end0
-0;JMP
-(output.printchar$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@0
-D=A
-@R13
-M=D
-@string.backspace
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL245
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL245)
-@RET_ADDRESS_EQ24
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ24)
-@SP
-AM=M-1
-D=M
-@output.printchar$if_true1
-D;JNE
-@output.printchar$if_false1
-0;JMP
-(output.printchar$if_true1)
-@0
-D=A
-@R13
-M=D
-@output.backspace
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL246
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL246)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@output.printchar$if_end1
-0;JMP
-(output.printchar$if_false1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.drawchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL247
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL247)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@output.2
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.printchar$if_true2
-D;JNE
-@output.printchar$if_false2
-0;JMP
-(output.printchar$if_true2)
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@output.0
-M=D
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-(output.printchar$if_false2)
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ25
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ25)
-@SP
-AM=M-1
-D=M
-@output.printchar$if_true3
-D;JNE
-@output.printchar$if_false3
-0;JMP
-(output.printchar$if_true3)
-@0
-D=A
-@R13
-M=D
-@output.println
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL248
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL248)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@output.printchar$if_end3
-0;JMP
-(output.printchar$if_false3)
-@output.2
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.2
-M=D
-(output.printchar$if_end3)
-(output.printchar$if_end1)
-(output.printchar$if_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.printstring)
-@SP
-A=M
-M=0
-AD=A+1
-M=0
-@SP
-M=D+1
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.length
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL249
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL249)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-(output.printstring$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT33
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT33)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.printstring$while_end0
-D;JNE
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.charat
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL250
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL250)
-@1
-D=A
-@R13
-M=D
-@output.printchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL251
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL251)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@output.printstring$while_exp0
-0;JMP
-(output.printstring$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.printint)
-@output.3
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.setint
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL252
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL252)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@output.3
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.printstring
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL253
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL253)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.println)
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@352
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@output.0
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.2
-M=D
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@8128
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ26
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ26)
-@SP
-AM=M-1
-D=M
-@output.println$if_true0
-D;JNE
-@output.println$if_false0
-0;JMP
-(output.println$if_true0)
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-(output.println$if_false0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(output.backspace)
-@output.2
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.backspace$if_true0
-D;JNE
-@output.backspace$if_false0
-0;JMP
-(output.backspace$if_true0)
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT25
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT25)
-@SP
-AM=M-1
-D=M
-@output.backspace$if_true1
-D;JNE
-@output.backspace$if_false1
-0;JMP
-(output.backspace$if_true1)
-@output.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@output.0
-M=D
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-@output.backspace$if_end1
-0;JMP
-(output.backspace$if_false1)
-@31
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.0
-M=D
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ27
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ27)
-@SP
-AM=M-1
-D=M
-@output.backspace$if_true2
-D;JNE
-@output.backspace$if_false2
-0;JMP
-(output.backspace$if_true2)
-@8128
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-(output.backspace$if_false2)
-@output.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@321
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@output.1
-M=D
-(output.backspace$if_end1)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@output.2
-M=D
-@output.backspace$if_end0
-0;JMP
-(output.backspace$if_false0)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@output.2
-M=D
-(output.backspace$if_end0)
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.drawchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL254
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL254)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.init)
-@SP
-AM=M+1
-A=A-1
-M=0
-@16384
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@screen.1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.2
-M=D
-@17
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL255
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL255)
-@SP
-AM=M-1
-D=M
-@screen.0
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-(screen.init$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT34
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT34)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.init$while_end0
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@screen.init$while_exp0
-0;JMP
-(screen.init$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.clearscreen)
-@SP
-AM=M+1
-A=A-1
-M=0
-(screen.clearscreen$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@8192
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT35
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT35)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.clearscreen$while_end0
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@screen.clearscreen$while_exp0
-0;JMP
-(screen.clearscreen$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.updatelocation)
-@screen.2
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@screen.updatelocation$if_true0
-D;JNE
-@screen.updatelocation$if_false0
-0;JMP
-(screen.updatelocation$if_true0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@screen.updatelocation$if_end0
-0;JMP
-(screen.updatelocation$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-(screen.updatelocation$if_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.setcolor)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@screen.2
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawpixel)
-@3
-D=A
-(LOOP_screen.drawpixel)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_screen.drawpixel
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT36
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT36)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT26
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT26)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT37
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT37)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT27
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT27)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@screen.drawpixel$if_true0
-D;JNE
-@screen.drawpixel$if_false0
-0;JMP
-(screen.drawpixel$if_true0)
-@7
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL256
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL256)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawpixel$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL257
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL257)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL258
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL258)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL259
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL259)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL260
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL260)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawconditional)
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@screen.drawconditional$if_true0
-D;JNE
-@screen.drawconditional$if_false0
-0;JMP
-(screen.drawconditional$if_true0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.drawpixel
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL261
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL261)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@screen.drawconditional$if_end0
-0;JMP
-(screen.drawconditional$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.drawpixel
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL262
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL262)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawconditional$if_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawline)
-@11
-D=A
-(LOOP_screen.drawline)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_screen.drawline
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT38
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT38)
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT28
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT28)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT39
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT39)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT29
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT29)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@screen.drawline$if_true0
-D;JNE
-@screen.drawline$if_false0
-0;JMP
-(screen.drawline$if_true0)
-@8
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL263
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL263)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawline$if_false0)
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL264
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL264)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=A
-@R13
-M=D
-@math.abs
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL265
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL265)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT40
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT40)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT41
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT41)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-M=!M
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT42
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT42)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@screen.drawline$if_true1
-D;JNE
-@screen.drawline$if_false1
-0;JMP
-(screen.drawline$if_true1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-A=A+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-A=A+1
-A=A+1
-M=D
-(screen.drawline$if_false1)
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@screen.drawline$if_true2
-D;JNE
-@screen.drawline$if_false2
-0;JMP
-(screen.drawline$if_true2)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT30
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT30)
-@LCL
-D=M
-@7
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@screen.drawline$if_end2
-0;JMP
-(screen.drawline$if_false2)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT31
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT31)
-@LCL
-D=M
-@7
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(screen.drawline$if_end2)
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL266
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL266)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL267
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL267)
-@LCL
-D=M
-@9
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL268
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL268)
-@LCL
-D=M
-@10
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@R13
-M=D
-@screen.drawconditional
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL269
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL269)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawline$while_exp0)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT43
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT43)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.drawline$while_end0
-D;JNE
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT44
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT44)
-@SP
-AM=M-1
-D=M
-@screen.drawline$if_true3
-D;JNE
-@screen.drawline$if_false3
-0;JMP
-(screen.drawline$if_true3)
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@9
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@screen.drawline$if_end3
-0;JMP
-(screen.drawline$if_false3)
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@10
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@screen.drawline$if_true4
-D;JNE
-@screen.drawline$if_false4
-0;JMP
-(screen.drawline$if_true4)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@screen.drawline$if_end4
-0;JMP
-(screen.drawline$if_false4)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(screen.drawline$if_end4)
-(screen.drawline$if_end3)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@R13
-M=D
-@screen.drawconditional
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL270
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL270)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@screen.drawline$while_exp0
-0;JMP
-(screen.drawline$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawrectangle)
-@9
-D=A
-(LOOP_screen.drawrectangle)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_screen.drawrectangle
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT32
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT32)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT33
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT33)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT45
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT45)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT34
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT34)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT46
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT46)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT35
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT35)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@screen.drawrectangle$if_true0
-D;JNE
-@screen.drawrectangle$if_false0
-0;JMP
-(screen.drawrectangle$if_true0)
-@9
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL271
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL271)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawrectangle$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL272
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL272)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL273
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL273)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@LCL
-D=M
-@7
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL274
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL274)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL275
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL275)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@LCL
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL276
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL276)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-(screen.drawrectangle$while_exp0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT36
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT36)
-@SP
-A=M-1
-M=!M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.drawrectangle$while_end0
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ28
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ28)
-@SP
-AM=M-1
-D=M
-@screen.drawrectangle$if_true1
-D;JNE
-@screen.drawrectangle$if_false1
-0;JMP
-(screen.drawrectangle$if_true1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL277
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL277)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@screen.drawrectangle$if_end1
-0;JMP
-(screen.drawrectangle$if_false1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL278
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL278)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(screen.drawrectangle$while_exp1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT47
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT47)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.drawrectangle$while_end1
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL279
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL279)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@screen.drawrectangle$while_exp1
-0;JMP
-(screen.drawrectangle$while_end1)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL280
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL280)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawrectangle$if_end1)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@screen.drawrectangle$while_exp0
-0;JMP
-(screen.drawrectangle$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawhorizontal)
-@11
-D=A
-(LOOP_screen.drawhorizontal)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_screen.drawhorizontal
-D;JGT
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.min
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL281
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL281)
-@LCL
-D=M
-@7
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.max
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL282
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL282)
-@LCL
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@RET_ADDRESS_GT37
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT37)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@256
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT48
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT48)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@LCL
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@512
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT49
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT49)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@LCL
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@RET_ADDRESS_GT38
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT38)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-AM=M-1
-D=M
-@screen.drawhorizontal$if_true0
-D;JNE
-@screen.drawhorizontal$if_false0
-0;JMP
-(screen.drawhorizontal$if_true0)
-@LCL
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@2
-D=A
-@R13
-M=D
-@math.max
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL283
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL283)
-@LCL
-D=M
-@7
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.min
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL284
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL284)
-@LCL
-D=M
-@8
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL285
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL285)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-D=M
-@7
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL286
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL286)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@LCL
-D=M
-@9
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL287
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL287)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-D=M
-@8
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL288
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL288)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@LCL
-D=M
-@10
-D=D+A
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-D=M
-@9
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@10
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@screen.0
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL289
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL289)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@6
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ29
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ29)
-@SP
-AM=M-1
-D=M
-@screen.drawhorizontal$if_true1
-D;JNE
-@screen.drawhorizontal$if_false1
-0;JMP
-(screen.drawhorizontal$if_true1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL290
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL290)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@screen.drawhorizontal$if_end1
-0;JMP
-(screen.drawhorizontal$if_false1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@5
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL291
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL291)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(screen.drawhorizontal$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT50
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT50)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.drawhorizontal$while_end0
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL292
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL292)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@screen.drawhorizontal$while_exp0
-0;JMP
-(screen.drawhorizontal$while_end0)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@screen.updatelocation
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL293
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL293)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawhorizontal$if_end1)
-(screen.drawhorizontal$if_false0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawsymetric)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-D=A
-@R13
-M=D
-@screen.drawhorizontal
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL294
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL294)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-D=A
-@R13
-M=D
-@screen.drawhorizontal
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL295
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL295)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@R13
-M=D
-@screen.drawhorizontal
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL296
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL296)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@R13
-M=D
-@screen.drawhorizontal
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL297
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL297)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(screen.drawcircle)
-@3
-D=A
-(LOOP_screen.drawcircle)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_screen.drawcircle
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT51
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT51)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT39
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT39)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT52
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT52)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT40
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT40)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@screen.drawcircle$if_true0
-D;JNE
-@screen.drawcircle$if_false0
-0;JMP
-(screen.drawcircle$if_true0)
-@12
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL298
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL298)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawcircle$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT53
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT53)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@511
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT41
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT41)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT54
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT54)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@255
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT42
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT42)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@screen.drawcircle$if_true1
-D;JNE
-@screen.drawcircle$if_false1
-0;JMP
-(screen.drawcircle$if_true1)
-@13
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL299
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL299)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawcircle$if_false1)
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@R13
-M=D
-@screen.drawsymetric
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL300
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL300)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(screen.drawcircle$while_exp0)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT43
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT43)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@screen.drawcircle$while_end0
-D;JNE
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT55
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT55)
-@SP
-AM=M-1
-D=M
-@screen.drawcircle$if_true2
-D;JNE
-@screen.drawcircle$if_false2
-0;JMP
-(screen.drawcircle$if_true2)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL301
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL301)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@screen.drawcircle$if_end2
-0;JMP
-(screen.drawcircle$if_false2)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL302
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL302)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@5
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-(screen.drawcircle$if_end2)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@R13
-M=D
-@screen.drawsymetric
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL303
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL303)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@screen.drawcircle$while_exp0
-0;JMP
-(screen.drawcircle$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(string.new)
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.alloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL304
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL304)
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT56
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT56)
-@SP
-AM=M-1
-D=M
-@string.new$if_true0
-D;JNE
-@string.new$if_false0
-0;JMP
-(string.new$if_true0)
-@14
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL305
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL305)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.new$if_false0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT44
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT44)
-@SP
-AM=M-1
-D=M
-@string.new$if_true1
-D;JNE
-@string.new$if_false1
-0;JMP
-(string.new$if_true1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL306
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL306)
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-M=D
-(string.new$if_false1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.dispose)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT45
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT45)
-@SP
-AM=M-1
-D=M
-@string.dispose$if_true0
-D;JNE
-@string.dispose$if_false0
-0;JMP
-(string.dispose$if_true0)
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.dispose
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL307
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL307)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.dispose$if_false0)
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@memory.dealloc
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL308
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL308)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(string.length)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.charat)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT57
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT57)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT46
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT46)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ30
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ30)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@string.charat$if_true0
-D;JNE
-@string.charat$if_false0
-0;JMP
-(string.charat$if_true0)
-@15
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL309
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL309)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.charat$if_false0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.setcharat)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT58
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT58)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT47
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT47)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ31
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ31)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-AM=M-1
-D=M
-@string.setcharat$if_true0
-D;JNE
-@string.setcharat$if_false0
-0;JMP
-(string.setcharat$if_true0)
-@16
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL310
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL310)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.setcharat$if_false0)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(string.appendchar)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ32
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ32)
-@SP
-AM=M-1
-D=M
-@string.appendchar$if_true0
-D;JNE
-@string.appendchar$if_false0
-0;JMP
-(string.appendchar$if_true0)
-@17
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL311
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL311)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.appendchar$if_false0)
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@THIS
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.eraselastchar)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ33
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ33)
-@SP
-AM=M-1
-D=M
-@string.eraselastchar$if_true0
-D;JNE
-@string.eraselastchar$if_false0
-0;JMP
-(string.eraselastchar$if_true0)
-@18
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL312
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL312)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.eraselastchar$if_false0)
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(string.intvalue)
-@5
-D=A
-(LOOP_string.intvalue)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_string.intvalue
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ34
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ34)
-@SP
-AM=M-1
-D=M
-@string.intvalue$if_true0
-D;JNE
-@string.intvalue$if_false0
-0;JMP
-(string.intvalue$if_true0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(string.intvalue$if_false0)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@45
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_EQ35
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ35)
-@SP
-AM=M-1
-D=M
-@string.intvalue$if_true1
-D;JNE
-@string.intvalue$if_false1
-0;JMP
-(string.intvalue$if_true1)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(string.intvalue$if_false1)
-(string.intvalue$while_exp0)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT59
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT59)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@string.intvalue$while_end0
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT60
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT60)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@9
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_GT48
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT48)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@string.intvalue$if_true2
-D;JNE
-@string.intvalue$if_false2
-0;JMP
-(string.intvalue$if_true2)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL313
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL313)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(string.intvalue$if_false2)
-@string.intvalue$while_exp0
-0;JMP
-(string.intvalue$while_end0)
-@LCL
-D=M
-@4
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@string.intvalue$if_true3
-D;JNE
-@string.intvalue$if_false3
-0;JMP
-(string.intvalue$if_true3)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-(string.intvalue$if_false3)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.setint)
-@4
-D=A
-(LOOP_string.setint)
-D=D-1
-@SP
-AM=M+1
-A=A-1
-M=0
-@LOOP_string.setint
-D;JGT
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THIS
-M=D
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ36
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ36)
-@SP
-AM=M-1
-D=M
-@string.setint$if_true0
-D;JNE
-@string.setint$if_false0
-0;JMP
-(string.setint$if_true0)
-@19
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL314
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL314)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.setint$if_false0)
-@6
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL315
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL315)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT61
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT61)
-@SP
-AM=M-1
-D=M
-@string.setint$if_true1
-D;JNE
-@string.setint$if_false1
-0;JMP
-(string.setint$if_true1)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-A=A+1
-A=A+1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-A=M-1
-D=!M
-M=D+1
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-(string.setint$if_false1)
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-(string.setint$while_exp0)
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT49
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT49)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@string.setint$while_end0
-D;JNE
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.divide
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL316
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL316)
-@SP
-AM=M-1
-D=M
-@LCL
-A=M+1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@ARG
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@math.multiply
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL317
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL317)
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@LCL
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M+1
-M=D
-@string.setint$while_exp0
-0;JMP
-(string.setint$while_end0)
-@LCL
-D=M
-@3
-A=D+A
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@string.setint$if_true2
-D;JNE
-@string.setint$if_false2
-0;JMP
-(string.setint$if_true2)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@45
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(string.setint$if_false2)
-@THIS
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT62
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT62)
-@SP
-AM=M-1
-D=M
-@string.setint$if_true3
-D;JNE
-@string.setint$if_false3
-0;JMP
-(string.setint$if_true3)
-@19
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL318
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL318)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(string.setint$if_false3)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_EQ37
-D=A
-@6
-0;JMP
-(RET_ADDRESS_EQ37)
-@SP
-AM=M-1
-D=M
-@string.setint$if_true4
-D;JNE
-@string.setint$if_false4
-0;JMP
-(string.setint$if_true4)
-@SP
-M=M+1
-A=M-1
-M=0
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@48
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@string.setint$if_end4
-0;JMP
-(string.setint$if_false4)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-(string.setint$while_exp1)
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@RET_ADDRESS_LT63
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT63)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@string.setint$while_end1
-D;JNE
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@THAT
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-M=D
-@R5
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@THAT
-A=M
-M=D
-@THIS
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@SP
-AM=M-1
-D=M
-@THIS
-A=M+1
-A=A+1
-M=D
-@string.setint$while_exp1
-0;JMP
-(string.setint$while_end1)
-(string.setint$if_end4)
-@LCL
-A=M+1
-A=A+1
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@array.dispose
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL319
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL319)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(string.newline)
-@128
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.backspace)
-@129
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(string.doublequote)
-@34
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-(sys.init)
-@0
-D=A
-@R13
-M=D
-@memory.init
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL320
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL320)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@math.init
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL321
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL321)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@screen.init
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL322
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL322)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@output.init
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL323
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL323)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@keyboard.init
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL324
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL324)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@main.main
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL325
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL325)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@sys.halt
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL326
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL326)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(sys.halt)
-(sys.halt$while_exp0)
-@SP
-M=M+1
-A=M-1
-M=0
-@SP
-A=M-1
-M=!M
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@sys.halt$while_end0
-D;JNE
-@sys.halt$while_exp0
-0;JMP
-(sys.halt$while_end0)
-(sys.wait)
-@SP
-AM=M+1
-A=A-1
-M=0
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_LT64
-D=A
-@38
-0;JMP
-(RET_ADDRESS_LT64)
-@SP
-AM=M-1
-D=M
-@sys.wait$if_true0
-D;JNE
-@sys.wait$if_false0
-0;JMP
-(sys.wait$if_true0)
-@SP
-M=M+1
-A=M-1
-M=1
-@1
-D=A
-@R13
-M=D
-@sys.error
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL327
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL327)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-(sys.wait$if_false0)
-(sys.wait$while_exp0)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT50
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT50)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@sys.wait$while_end0
-D;JNE
-@50
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-(sys.wait$while_exp1)
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=0
-@RET_ADDRESS_GT51
-D=A
-@22
-0;JMP
-(RET_ADDRESS_GT51)
-@SP
-A=M-1
-M=!M
-@SP
-AM=M-1
-D=M
-@sys.wait$while_end1
-D;JNE
-@LCL
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@LCL
-A=M
-M=D
-@sys.wait$while_exp1
-0;JMP
-(sys.wait$while_end1)
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@SP
-M=M+1
-A=M-1
-M=1
-@SP
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@sys.wait$while_exp0
-0;JMP
-(sys.wait$while_end0)
-@SP
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-(sys.error)
-@3
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@string.new
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL328
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL328)
-@69
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL329
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL329)
-@82
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL330
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL330)
-@82
-D=A
-@SP
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@R13
-M=D
-@string.appendchar
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL331
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL331)
-@1
-D=A
-@R13
-M=D
-@output.printstring
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL332
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL332)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@ARG
-A=M
-D=M
-@SP
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@R13
-M=D
-@output.printint
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL333
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL333)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
-@0
-D=A
-@R13
-M=D
-@sys.halt
-D=A
-@R14
-M=D
-@RET_ADDRESS_CALL334
-D=A
-@95
-0;JMP
-(RET_ADDRESS_CALL334)
-@SP
-AM=M-1
-D=M
-@R5
-M=D
diff --git a/projects/06/pong/Pong.hack b/projects/06/pong/Pong.hack
deleted file mode 100644
index 9eb4a3d..0000000
--- a/projects/06/pong/Pong.hack
+++ /dev/null
@@ -1,27483 +0,0 @@
-0000000100000000
-1110110000010000
-0000000000000000
-1110001100001000
-0000000010000101
-1110101010000111
-0000000000001111
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111010000
-1110101010001000
-0000000000010011
-1110001100000101
-0000000000000000
-1111110010100000
-1110111010001000
-0000000000001111
-1111110000100000
-1110101010000111
-0000000000001111
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111010000
-1110101010001000
-0000000000100011
-1110001100000110
-0000000000000000
-1111110010100000
-1110111010001000
-0000000000001111
-1111110000100000
-1110101010000111
-0000000000001111
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111010000
-1110101010001000
-0000000000110011
-1110001100000011
-0000000000000000
-1111110010100000
-1110111010001000
-0000000000001111
-1111110000100000
-1110101010000111
-0000000000000101
-1110110000010000
-0000000000000001
-1111000111100000
-1111110000010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-1110110000010000
-0000000000000000
-1110011111001000
-0000000000000001
-1111110000010000
-0000000000001110
-1110001110101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000001110
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000001110
-1111110010101000
-1111110000010000
-0000000000000010
-1110001100001000
-0000000000001110
-1111110010101000
-1111110000010000
-0000000000000001
-1110001100001000
-0000000000001101
-1111110000100000
-1110101010000111
-0000000000000000
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000000
-1111110111101000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000000
-1111110111101000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110001100001000
-0000000000000100
-1111110000010000
-0000000000000000
-1111110111101000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000001101
-1111000010010000
-0000000000000000
-1111000111010000
-0000000000000010
-1110001100001000
-0000000000000000
-1111110111011000
-0000000000000001
-1110001100001000
-0000000000001110
-1111110000100000
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110100110110010
-1110110000010000
-0000000000001110
-1110001100001000
-0000000010010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010000111000011
-1110110000010000
-0000000000001110
-1110001100001000
-0000000010100011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001010
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1111110000010000
-0000000000001011
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001100
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1111110000010000
-0000000000001101
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000000110000011
-1110110000010000
-0000000000001110
-1110001100001000
-0000000101001101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010010010001101
-1110110000010000
-0000000000001110
-1110001100001000
-0000000101111000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000000110100010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000001000000010
-1110110000010000
-0000000000001110
-1110001100001000
-0000000110111001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000000111100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000001000000010
-1110110000010000
-0000000000001110
-1110001100001000
-0000000111110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0000001001001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000110110
-1110101010000111
-0000000000000011
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000001010001110
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0000001011101011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0000001100000110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000001100011110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000111
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000001100111010
-1110001100000101
-0000001110100010
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000001101110110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000001110010100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000001001
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000001111011111
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000001110110100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000001111010011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000001001
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000001111111000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000010000100110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000010001010101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000000111000100
-1110110000010000
-0000000000001110
-1110001100001000
-0000010010000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000010010011010
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000010010100001
-1110001100000101
-0000010011000011
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000010101111001
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001001
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000010011110011
-1110001100000101
-0000010100110111
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000010100000011
-1110001100000101
-0000010100011101
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000010100110101
-1110101010000111
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000010101111001
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000010101000111
-1110001100000101
-0000010101100001
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000010101111001
-1110101010000111
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000010110001001
-1110001100000101
-0000010111001101
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000010110011001
-1110001100000101
-0000010110110011
-1110101010000111
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000010111001011
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000011000001111
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000010111011101
-1110001100000101
-0000010111110111
-1110101010000111
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000011000001111
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001010
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000011000100011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000011000101101
-1110001100000101
-0000011001001100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001010
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000011001100000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000011001101010
-1110001100000101
-0000011010001011
-1110101010000111
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000011010011111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000011010101001
-1110001100000101
-0000011011001010
-1110101010000111
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000011011011110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000011011101000
-1110001100000101
-0000011100001001
-1110101010000111
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000000110000011
-1110110000010000
-0000000000001110
-1110001100001000
-0000011100011011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000101
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000011100101101
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0000011101011010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0000011101111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000011110010011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000011110011010
-1110001100000101
-0000011110101011
-1110101010000111
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000100000100110
-1110101010000111
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000011110111011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000011111001101
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000011111100010
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000011111111010
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000100000000110
-1110001100000101
-0000100000010111
-1110101010000111
-0000000000010100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000100000100110
-1110101010000111
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000100000110111
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000100000111110
-1110001100000101
-0000100010110011
-1110101010000111
-0000000111111010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100001101001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0000100001111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100010100110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000101000111000
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000100011000110
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000100011001101
-1110001100000101
-0000100100111100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100011110010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0000100100000110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100100101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000101000111000
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000001110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000100101001111
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000100101010110
-1110001100000101
-0000100111001011
-1110101010000111
-0000000011111010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100110000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0000100110010101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100110111110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000101000111000
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000100111101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0000101000000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0000101000101101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0000001010001100
-1110110000010000
-0000000000001110
-1110001100001000
-0000101001011000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010000111000011
-1110110000010000
-0000000000001110
-1110001100001000
-0000101001110101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000101100001011
-1110110000010000
-0000000000001110
-1110001100001000
-0000101011010101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010010010001101
-1110110000010000
-0000000000001110
-1110001100001000
-0000101100000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000101100101010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000101110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0000101101000001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000101101101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000101110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0000101101111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0000101111011001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000101101001100
-1110110000010000
-0000000000001110
-1110001100001000
-0000110001011011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000101100001011
-1110110000010000
-0000000000001110
-1110001100001000
-0000110010000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000110010101000
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000110010101111
-1110001100000101
-0000110111000101
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000110011010110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000110011011101
-1110001100000101
-0000110011100111
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000110011110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0000110101100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000110101111000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0000110110111110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000111011110111
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000110111111011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000111000000010
-1110001100000101
-0000111000011011
-1110101010000111
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000111000101011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0000111001111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110011001
-1110110000010000
-0000000000001110
-1110001100001000
-0000111010010010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0000111011110010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001000110011100
-1110110000010000
-0000000000001110
-1110001100001000
-0000111100001101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001000110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0000111100011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001000110111011
-1110110000010000
-0000000000001110
-1110001100001000
-0000111100110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001000101000011
-1110110000010000
-0000000000001110
-1110001100001000
-0000111101001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010000111000011
-1110110000010000
-0000000000001110
-1110001100001000
-0000111101101100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0101000001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0000111101111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000011100110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0000101001100011
-1110110000010000
-0000000000001110
-1110001100001000
-0000111110111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000011111101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000011100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000001101
-1110001100001000
-0000000010010001
-1110110000010000
-0000000000001110
-1110001100001000
-0000111111101100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000110010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0000001010001100
-1110110000010000
-0000000000001110
-1110001100001000
-0001000000001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000011101110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101011101010010
-1110110000010000
-0000000000001110
-1110001100001000
-0001000000110110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000010110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0100101110010110
-1110110000010000
-0000000000001110
-1110001100001000
-0001000001010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000001000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001000010001
-1110110000010000
-0000000000001110
-1110001100001000
-0001000001101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001010011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000001111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000010001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001101111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000010011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000010110000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000011000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000111010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000011010100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000011100110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001000011111000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0001000100000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000101011100010
-1110110000010000
-0000000000001110
-1110001100001000
-0001000101100010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000000101011010
-1110110000010000
-0000000000001110
-1110001100001000
-0001000101111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010010010001101
-1110110000010000
-0000000000001110
-1110001100001000
-0001000110010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0000111101011010
-1110110000010000
-0000000000001110
-1110001100001000
-0001000110101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000010000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001001101001111
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001000111101110
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001001001001010
-1110001100000101
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001011100100100
-1110110000010000
-0000000000001110
-1110001100001000
-0001001000010011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000110010001011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001000101100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001010001000111
-1110110000010000
-0000000000001110
-1110001100001000
-0001001001000011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0001000111011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000010000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001001001011011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001001001100010
-1110001100000101
-0001001010000000
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0000101111100100
-1110110000010000
-0000000000001110
-1110001100001000
-0001001001111001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0001001011011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000010000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001001010010001
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001001010011000
-1110001100000101
-0001001010111000
-1110101010000111
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0000101111100100
-1110110000010000
-0000000000001110
-1110001100001000
-0001001010110001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0001001011011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000010001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001001011001001
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001001011010000
-1110001100000101
-0001001011011111
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001001011101110
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001001101001101
-1110001100000101
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001011100100100
-1110110000010000
-0000000000001110
-1110001100001000
-0001001100010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000110010001011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001100101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001010001000111
-1110110000010000
-0000000000001110
-1110001100001000
-0001001101000110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0001001011011111
-1110101010000111
-0001000111001011
-1110101010000111
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001001101011111
-1110001100000101
-0001010001000001
-1110101010000111
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0100101110010110
-1110110000010000
-0000000000001110
-1110001100001000
-0001001101110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000001001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001000010001
-1110110000010000
-0000000000001110
-1110001100001000
-0001001110001110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001110100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001100001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001110110010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001111000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001111010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001111101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001001111111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001010000001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001010000011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001010000110000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0001010000111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000101
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0001010001001001
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000010001100110
-1110110000010000
-0000000000001110
-1110001100001000
-0001010001101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001010010000110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001010010011011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001010010101010
-1110001100000101
-0001011010101010
-1110101010000111
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000110000000110
-1110110000010000
-0000000000001110
-1110001100001000
-0001010011011001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000110000011011
-1110110000010000
-0000000000001110
-1110001100001000
-0001010011110010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000001001010111
-1110110000010000
-0000000000001110
-1110001100001000
-0001010100001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0000001001101100
-1110110000010000
-0000000000001110
-1110001100001000
-0001010100100111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001010101000010
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001010101001001
-1110001100000101
-0001011010001011
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001010101011101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001010101110010
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001010110010010
-1110001100000101
-0001011010001011
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0001010110110001
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001010110111000
-1110001100000101
-0001010111001000
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0001010111111001
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0001010111101000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001010111101111
-1110001100000101
-0001010111111001
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0000110000111101
-1110110000010000
-0000000000001110
-1110001100001000
-0001011000110100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000010110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0100101110010110
-1110110000010000
-0000000000001110
-1110001100001000
-0001011001101100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100111000001101
-1110110000010000
-0000000000001110
-1110001100001000
-0001011010000110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0000011100101011
-1110110000010000
-0000000000001110
-1110001100001000
-0001011010100101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001011010111111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001011011001001
-1110001100000101
-0001011011100000
-1110101010000111
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0001011011011011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010000111000011
-1110110000010000
-0000000000001110
-1110001100001000
-0001011011110011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010010010001101
-1110110000010000
-0000000000001110
-1110001100001000
-0001011100010011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0110000000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010000101101110
-1110110000010000
-0000000000001110
-1110001100001000
-0001011100110110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000110110
-1110101010000111
-0000000000000000
-1111110000100000
-1110101010001000
-1110110111110000
-1110101010001000
-0000000000000000
-1110011111001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110010011010
-1110110000010000
-0000000000001110
-1110001100001000
-0001011101001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001011101100011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001011101110010
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001011110110110
-1110001100000101
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001011100100100
-1110110000010000
-0000000000001110
-1110001100001000
-0001011110001011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001011110100000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001011110100111
-1110001100000101
-0001011110110100
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0001011101010100
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110100110100010
-1110110000010000
-0000000000001110
-1110001100001000
-0001011111000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110010011010
-1110110000010000
-0000000000001110
-1110001100001000
-0001011111001110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110010011010
-1110110000010000
-0000000000001110
-1110001100001000
-0001011111100110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000101
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0001011111110110
-1110001100000001
-0000000001010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001000010001
-1110110000010000
-0000000000001110
-1110001100001000
-0001100000001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0001100000101010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110100110011010
-1110110000010000
-0000000000001110
-1110001100001000
-0001100000111011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110100110100010
-1110110000010000
-0000000000001110
-1110001100001000
-0001100001001101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001100100000100
-1110001100000101
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001011100111000
-1110110000010000
-0000000000001110
-1110001100001000
-0001100001110100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001100010001100
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001100010101000
-1110001100000101
-0001100100000010
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001100010111011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001100011000010
-1110001100000101
-0001100011011110
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110010011001001
-1110110000010000
-0000000000001110
-1110001100001000
-0001100011010111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0001100100000010
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0001100011111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0001100001010100
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110000100000
-1110101010001000
-1110110111110000
-1110101010001000
-0000000000000000
-1110011111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011111110100
-1110110000010000
-0000000000001110
-1110001100001000
-0001100100101001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110010100100001
-1110110000010000
-0000000000001110
-1110001100001000
-0001100101000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001010100100
-1110110000010000
-0000000000001110
-1110001100001000
-0001100101011011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0001100101111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010001
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0001100110010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010010
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001100111010101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001101001110000
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0001100111000100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001101010000101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001101010001100
-1110001100000101
-0001101010011101
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000101
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0001101010101000
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001101010111110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001101011001101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001101011100001
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001101011110000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0001101100010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0001101100101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001101101000111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001101101001110
-1110001100000101
-0001101101110101
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001101110001000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001110001001101
-1110001100000101
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001101111000100
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001101111001011
-1110001100000101
-0001110000011000
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0001101101110101
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001110001011101
-1110001100000101
-0001110001101110
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000100
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0001110001111001
-1110001100000001
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001110010001111
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001110010010110
-1110001100000101
-0001110010101101
-1110101010000111
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0001110010101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001110010111100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001110011001011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001110011011111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001110011101110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0001110100100001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0001110101001010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001111010100001
-1110001100000101
-0111111111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001110110101111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001110111001010
-1110001100000101
-0001111010011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001111001101110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001111010001001
-1110001100000101
-0001111010011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0001110101010000
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0001111010110100
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001111101100111
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001111011100101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001111011101111
-1110001100000101
-0001111101001111
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0001111010100001
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0001111101110110
-1110001100000101
-0001111110000111
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000100
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0001111110010010
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0001111110101000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0001111110101111
-1110001100000101
-0001111111000110
-1110101010000111
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0001111111000001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0001111111100101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0010000010011100
-1110001100000101
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0010000000111001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0010000001010011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0010000001100110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0010000001110101
-1110001100000101
-0010000010000100
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0001111111010010
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0010000010111001
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010000011000000
-1110001100000101
-0010000011001101
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0010000011101000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010000011101111
-1110001100000101
-0010000011111100
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010011
-1110001100001000
-0000100000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0011011111111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000100000000001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000100000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0010000111010110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010000111011101
-1110001100000101
-0010000111110100
-1110101010000111
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0010000111101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000100000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0010001000100111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0010001001010011
-1110001100000101
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0010001000000000
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0011111111111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0010001001110000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010001001110111
-1110001100000101
-0010001010001110
-1110101010000111
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0010001010001001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0010001011000000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010001011000111
-1110001100000101
-0010010001001111
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0010001101100000
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010001101100111
-1110001100000101
-0010001110111011
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0010010000001011
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110000100000
-1110101010001000
-1110110111110000
-1110101010001000
-0000000000000000
-1110011111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0010010011110010
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010010011111001
-1110001100000101
-0010010101010100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0010011001111000
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0010010111110101
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0010010111111100
-1110001100000101
-0010011000110110
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0010011001111000
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0100000000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010100
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010101
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010111
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001000010001
-1110110000010000
-0000000000001110
-1110001100001000
-0010011010111011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011000
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0010011011101000
-1110110000010000
-0000000000001110
-1110001100001000
-0010011011001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0100100000011000
-1110110000010000
-0000000000001110
-1110001100001000
-0010011011011101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000001111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0010011011111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011001
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010011101001101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010011110010000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010011111100011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010100000101100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010100001111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010100011010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010100100100111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010100101111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000100111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010100111000101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101000011010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101001101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101010111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101100001001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101101010010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101110010111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010101111011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000101111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010110000101101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010110010000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010110011010111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010110100101100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010110110000001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010110111010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010111000101011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010111010000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000110111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010111011010101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010111100101010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010111101111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0010111111001010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000000010111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000001101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000010101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000100000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000101010101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000110101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011000111111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011001001010010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011001010100111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011001011111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011001101010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011001110100110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011001111111011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011010001010000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011010010100101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011010011111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011010101001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011010110100100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011010111111001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011011001001110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011011010100011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011011011111000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011011101001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011011110100100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011011111111001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011100001001110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011100010100011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011100011111000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001010111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011100101001101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011100110100010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011100111110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011101001001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011101010100001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011101011110000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011101101000101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011101110001110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011101111010011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011110000011100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011110001101011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011110011000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011110100001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011110101100100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011110110110011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011111000001000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001100111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011111001011011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011111010110000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011111100000011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011111101011000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0011111110101101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000000000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000001010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000010100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001101111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000011101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000101000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000110010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100000111100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100001000101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100001010000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100001011010011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100001100100010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001110111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100001101110001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100001111000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100010000010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100010001100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100010010110101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100010100001010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100010101011111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000001111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000001100
-1110110000010000
-0000000000001101
-1110001100001000
-0100010110110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100010110101000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0100010111001001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000001000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000001001
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000001001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000001010
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000010000
-0000000000001011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000100
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0100100000011010
-1110001100000001
-0000000001111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0100100000110011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011010
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000001111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100100001010101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100100110101011
-1110001100000101
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0100100010010100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100100011101001
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100100101101011
-1110001100000101
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000100000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0100100100111001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0100100011010110
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0100100101111011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100100110000010
-1110001100000101
-0100100110010001
-1110101010000111
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0100100110101001
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0100100001000011
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100100111000110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000001111110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100100111010111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100100111100011
-1110001100000101
-0100100111101101
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000010101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100100111111010
-1110001100000101
-0100101000100000
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011001
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0100101001000100
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011010
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000100
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0100101001001111
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100100110110001
-1110110000010000
-0000000000001110
-1110001100001000
-0100101001101001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100101010001101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100101110010000
-1110001100000101
-0000000000010101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100101010100010
-1110001100000101
-0100101011011001
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010100
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000100000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0100101100001010
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010100
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010100
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0100101001111100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0100101110100101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100101110110110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0100101111001010
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100101111100000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100101111101100
-1110001100000101
-0100110000000011
-1110101010000111
-0000000000010100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0100101111111110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0100110000011100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010111
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000101100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0100110001000000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0100110001110100
-1110110000010000
-0000000001011111
-1110101010000111
-0100110001111000
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010101
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100101001001101
-1110110000010000
-0000000000001110
-1110001100001000
-0100110010001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110100110011010
-1110110000010000
-0000000000001110
-1110001100001000
-0100110010101101
-1110110000010000
-0000000001011111
-1110101010000111
-0100110010110001
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100110010111000
-1110001100000101
-0100110011001011
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0100111001001000
-1110110000010000
-0000000000001110
-1110001100001000
-0100110011000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0100110110000100
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110100110100010
-1110110000010000
-0000000000001110
-1110001100001000
-0100110011011110
-1110110000010000
-0000000001011111
-1110101010000111
-0100110011100010
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100110011101001
-1110001100000101
-0100110011111100
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0100111010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0100110011110101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0100110110000100
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100101001001101
-1110110000010000
-0000000000001110
-1110001100001000
-0100110100001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000010101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100110100100100
-1110001100000101
-0100110101001100
-1110101010000111
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010111
-1110001100001000
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100110101011100
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100110101100011
-1110001100000101
-0100110101110110
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0100111001001000
-1110110000010000
-0000000000001110
-1110001100001000
-0100110101101111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0100110110000100
-1110101010000111
-0000000000010101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110000100000
-1110101010001000
-1110110111110000
-1110101010001000
-0000000000000000
-1110011111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001011111011
-1110110000010000
-0000000000001110
-1110001100001000
-0100110110100100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100110110111100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100111000000111
-1110001100000101
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110001100010001
-1110110000010000
-0000000000001110
-1110001100001000
-0100110111011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110010011010
-1110110000010000
-0000000000001110
-1110001100001000
-0100110111101010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0100110110101010
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000011000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110011010110011
-1110110000010000
-0000000000001110
-1110001100001000
-0100111000100110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000011000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0100111000111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000101100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010111
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010101
-1110001100001000
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0001111111000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100111010001110
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100111010010101
-1110001100000101
-0100111010100000
-1110101010000111
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000010101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0100111010110011
-1110001100000101
-0100111101000000
-1110101010000111
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0100111011000001
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100111011001000
-1110001100000101
-0100111011110010
-1110101010000111
-0000000000010111
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010111
-1110001100001000
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0100111100110101
-1110101010000111
-0000000000011111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010111
-1110001100001000
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100111100001101
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0100111100010100
-1110001100000101
-0100111100011111
-1110101010000111
-0001111111000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000010110
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000101000001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010110
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010101
-1110001100001000
-0100111101001100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000010101
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100101001001101
-1110110000010000
-0000000000001110
-1110001100001000
-0100111101011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0100000000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011011
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011100
-1110001100001000
-0000000000010001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0100111110010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0100111111010101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101000001110000
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0100111111000100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0010000000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101000010001011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101000011010111
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0101000001111010
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000011100
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101000011101010
-1110001100000101
-0101000100111110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0101000110010011
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000011100
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000011
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0101000110101101
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101000111000011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101000111010100
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101000111101000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101000111111110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101001000001010
-1110001100000101
-0101001000100001
-1110101010000111
-0000000000000111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0101001000011100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0101001000111010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101001001100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101001010000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101001011001001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101001011100011
-1110001100000101
-0101001100000100
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110101011
-1110110000010000
-0000000000001110
-1110001100001000
-0101001011111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0101001100100011
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000110101011
-1110110000010000
-0000000000001110
-1110001100001000
-0101001100011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000001011
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0101001100101011
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101001101000001
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101001101010011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101001101100111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101001101111111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101001110001011
-1110001100000101
-0101001110100010
-1110101010000111
-0000000000001000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0101001110011101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0101001111000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001101001110110
-1110110000010000
-0000000000001110
-1110001100001000
-0101001111101011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101010000000111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101010000101111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101010001010011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101010001100100
-1110001100000101
-0101010011000010
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101010011010010
-1110001100000101
-0101010101010100
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101010101000110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0101010110100010
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101010110010110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101010110111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101010111101110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000001001
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101011000100010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000001010
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0101001011010100
-1110110000010000
-0000000000001110
-1110001100001000
-0101011001010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101011001101010
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101011101001100
-1110001100000101
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101011010000011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0101011010001010
-1110001100000101
-0101011010101101
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001001
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0101011100001100
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001010
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101011011011110
-1110001100000101
-0101011011110110
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0101011100001100
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0101001011010100
-1110110000010000
-0000000000001110
-1110001100001000
-0101011101000101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0101011001010110
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000001001
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0101011101010100
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101011101101110
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101011110000010
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101011110010110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101011110101101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101011111000001
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101011111011001
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101011111100101
-1110001100000101
-0101011111111100
-1110101010000111
-0000000000001001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0101011111110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0101100000010101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101100000111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0101100001101010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101100010010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101100100110011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101100101111001
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101101011001101
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101100110101110
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0101100110110101
-1110001100000101
-0101100111100110
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101100111011111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0101101010010000
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101101000000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101101000101111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101101001101111
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101101001010010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0101101000011101
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101101010001011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0101100101100101
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000001011
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0101101011010101
-1110001100000001
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0010000011010110
-1110110000010000
-0000000000001110
-1110001100001000
-0101101011110111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0010000010100111
-1110110000010000
-0000000000001110
-1110001100001000
-0101101100011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0101101100111101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000100000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101101101001110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000001000000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101101101100110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0101101110000000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101101110001100
-1110001100000101
-0101111001010001
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0010000010100111
-1110110000010000
-0000000000001110
-1110001100001000
-0101101110100101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0010000011010110
-1110110000010000
-0000000000001110
-1110001100001000
-0101101111001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0101101111110011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000111
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101110000011011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1111110000010000
-0000000000001001
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0101110001000111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001000
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101110001110001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1111110000010000
-0000000000001010
-1110000010010000
-0000000000001101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000001101
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001001
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000001010
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000011101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000100000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0101110100001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000110
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101110101101011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0101110101110010
-1110001100000101
-0101110110100011
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101110110011100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0101111001010001
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000101
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101110110111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101110111101110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101111000101110
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101111000010001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0101110111011010
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0101000011011101
-1110110000010000
-0000000000001110
-1110001100001000
-0101111001001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0101101011010011
-1110110000010000
-0000000000001110
-1110001100001000
-0101111010100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0101101011010011
-1110110000010000
-0000000000001110
-1110001100001000
-0101111011101110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0101101011010011
-1110110000010000
-0000000000001110
-1110001100001000
-0101111100111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1110110000010000
-0000000000001101
-1110001100001000
-0101101011010011
-1110110000010000
-0000000000001110
-1110001100001000
-0101111110001100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000011
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0101111110011001
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101111110101111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101111111000000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0101111111010100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000011111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0101111111101010
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0101111111110110
-1110001100000101
-0110000000001101
-1110101010000111
-0000000000001100
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110000000001000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110000000101001
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000111111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110000001000111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110000001101000
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000011111111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110000010001011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110000010010111
-1110001100000101
-0110000010101110
-1110101010000111
-0000000000001101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110000010101001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101111001010111
-1110110000010000
-0000000000001110
-1110001100001000
-0110000011111100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110000100010011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110001000001011
-1110001100000101
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110000100101011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110000100110010
-1110001100000101
-0110000101101100
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0110000101010011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0110000111000110
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0110000110011001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000100
-1110110000010000
-0000000000001101
-1110001100001000
-0101111001010111
-1110110000010000
-0000000000001110
-1110001100001000
-0110001000000100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0110000100000001
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010000111000011
-1110110000010000
-0000000000001110
-1110001100001000
-0110001000100011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110001000110111
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110001000111110
-1110001100000101
-0110001001010101
-1110101010000111
-0000000000001110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110001001010000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110001001100100
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110001001101011
-1110001100000101
-0110001010000100
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0110001001111110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110001010111111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110001011000110
-1110001100000101
-0110001011011110
-1110101010000111
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011011110101
-1110110000010000
-0000000000001110
-1110001100001000
-0110001011011001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0010010010001101
-1110110000010000
-0000000000001110
-1110001100001000
-0110001011110000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110001100101100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110001100111111
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110001101010111
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110001101100011
-1110001100000101
-0110001101111010
-1110101010000111
-0000000000001111
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110001101110101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110001110110110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110001111001001
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110001111100001
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110001111101101
-1110001100000101
-0110010000000100
-1110101010000111
-0000000000010000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110001111111111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110010001011010
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110010001100001
-1110001100000101
-0110010001111000
-1110101010000111
-0000000000010001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110010001110011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110010011100101
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110010011101100
-1110001100000101
-0110010100000011
-1110101010000111
-0000000000010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110010011111110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000101
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0110010100100011
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110010101000110
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110010101001101
-1110001100000101
-0110010101010011
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110010110001000
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110010110001111
-1110001100000101
-0110010110101001
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110010110111100
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000000001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110011010001001
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110011000010011
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110011000100101
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111010101001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110011001000101
-1110001100000101
-0110011010000111
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0110011001011110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0110010110101001
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000100
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110011010011001
-1110001100000101
-0110011010101010
-1110101010000111
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000100
-1110110000010000
-1110001110010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0110011010110101
-1110001100000001
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110011011010111
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110011011011110
-1110001100000101
-0110011011110101
-1110101010000111
-0000000000010011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110011011110000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000110
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011010110000
-1110110000010000
-0000000000001110
-1110001100001000
-0110011100000111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110011100011101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110011100100100
-1110001100000101
-0110011101000100
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110110111100000
-1110110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010100000
-1111110001010000
-1110011111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110011101100000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110100000000110
-1110001100000101
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001110001110111
-1110110000010000
-0000000000001110
-1110001100001000
-0110011110000001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110111100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000001010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0001101010100110
-1110110000010000
-0000000000001110
-1110001100001000
-0110011111000001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110111100000
-1110001100001000
-0110011101010001
-1110101010000111
-0000000000000001
-1111110000010000
-0000000000000011
-1110000010100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110100000010110
-1110001100000101
-0110100001011100
-1110101010000111
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000101101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000011
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110100001101110
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110100001110101
-1110001100000101
-0110100010001100
-1110101010000111
-0000000000010011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110100010000111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110100010011011
-1110110000010000
-0000000000000110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110100010100010
-1110001100000101
-0110100011011011
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000110000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0110100101111011
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0110100011111001
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110100101111011
-1110001100000101
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000100
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1110001100001000
-0000000000000101
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000100
-1111110000100000
-1110001100001000
-0000000000000011
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000010001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000011
-1111110111100000
-1110110111100000
-1110001100001000
-0110100011100110
-1110101010000111
-0000000000000001
-1111110111100000
-1110110111100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0001011011110101
-1110110000010000
-0000000000001110
-1110001100001000
-0110100110001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000010000000
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000010000001
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000100010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000110110
-1110101010000111
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0010000100000101
-1110110000010000
-0000000000001110
-1110001100001000
-0110100110111110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001100101101001
-1110110000010000
-0000000000001110
-1110001100001000
-0110100111001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0100111101101001
-1110110000010000
-0000000000001110
-1110001100001000
-0110100111100000
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0010011001111110
-1110110000010000
-0000000000001110
-1110001100001000
-0110100111110001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0001011100011110
-1110110000010000
-0000000000001110
-1110001100001000
-0110101000000010
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0000111011111101
-1110110000010000
-0000000000001110
-1110001100001000
-0110101000010011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110101000101001
-1110110000010000
-0000000000001110
-1110001100001000
-0110101000100100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110101000111010
-1110001100000101
-0110101000101001
-1110101010000111
-0000000000000000
-1111110111101000
-1110110010100000
-1110101010001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110101001001101
-1110110000010000
-0000000000100110
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0110101001010100
-1110001100000101
-0110101001101001
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110101011011001
-1110110000010000
-0000000000001110
-1110001100001000
-0110101001100100
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110101001111000
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110101011010011
-1110001100000101
-0000000000110010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0110101010011011
-1110110000010000
-0000000000010110
-1110101010000111
-0000000000000000
-1111110010100000
-1111110001001000
-0000000000000000
-1111110010101000
-1111110000010000
-0110101010111011
-1110001100000101
-0000000000000001
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000001
-1111110000100000
-1110001100001000
-0110101010001100
-1110101010000111
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000000
-1111110111001000
-1111110010100000
-1110111111001000
-0000000000000000
-1111110010101000
-1111110000010000
-1110110010100000
-1111000111001000
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000010
-1111110000100000
-1110001100001000
-0110101001101001
-1110101010000111
-0000000000000000
-1111110111001000
-1111110010100000
-1110101010001000
-0000000000110110
-1110101010000111
-0000000000000011
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0110001000010001
-1110110000010000
-0000000000001110
-1110001100001000
-0110101011101011
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001000101
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0110101011111101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0110101100001111
-1110110000010000
-0000000001011111
-1110101010000111
-0000000001010010
-1110110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000010
-1110110000010000
-0000000000001101
-1110001100001000
-0110010000111011
-1110110000010000
-0000000000001110
-1110001100001000
-0110101100100001
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100110110001010
-1110110000010000
-0000000000001110
-1110001100001000
-0110101100101101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000010
-1111110000100000
-1111110000010000
-0000000000000000
-1111110111101000
-1110110010100000
-1110001100001000
-0000000000000001
-1110110000010000
-0000000000001101
-1110001100001000
-0100111000001101
-1110110000010000
-0000000000001110
-1110001100001000
-0110101101000101
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
-0000000000000000
-1110110000010000
-0000000000001101
-1110001100001000
-0110101000101001
-1110110000010000
-0000000000001110
-1110001100001000
-0110101101010110
-1110110000010000
-0000000001011111
-1110101010000111
-0000000000000000
-1111110010101000
-1111110000010000
-0000000000000101
-1110001100001000
diff --git a/projects/06/pong/PongL.asm b/projects/06/pong/PongL.asm
deleted file mode 100644
index 17c1044..0000000
--- a/projects/06/pong/PongL.asm
+++ /dev/null
@@ -1,27490 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/pong/PongL.asm
-
-// Symbol-less version of the Pong.asm program.
-
-@256
-D=A
-@0
-M=D
-@133
-0;JMP
-@15
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-D=M-D
-M=0
-@19
-D;JNE
-@0
-A=M-1
-M=-1
-@15
-A=M
-0;JMP
-@15
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-D=M-D
-M=0
-@35
-D;JLE
-@0
-A=M-1
-M=-1
-@15
-A=M
-0;JMP
-@15
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-D=M-D
-M=0
-@51
-D;JGE
-@0
-A=M-1
-M=-1
-@15
-A=M
-0;JMP
-@5
-D=A
-@1
-A=M-D
-D=M
-@13
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-D=A
-@0
-M=D+1
-@1
-D=M
-@14
-AM=D-1
-D=M
-@4
-M=D
-@14
-AM=M-1
-D=M
-@3
-M=D
-@14
-AM=M-1
-D=M
-@2
-M=D
-@14
-AM=M-1
-D=M
-@1
-M=D
-@13
-A=M
-0;JMP
-@0
-A=M
-M=D
-@1
-D=M
-@0
-AM=M+1
-M=D
-@2
-D=M
-@0
-AM=M+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-M=D
-@4
-D=M
-@0
-AM=M+1
-M=D
-@4
-D=A
-@13
-D=D+M
-@0
-D=M-D
-@2
-M=D
-@0
-MD=M+1
-@1
-M=D
-@14
-A=M
-0;JMP
-@0
-D=A
-@13
-M=D
-@27058
-D=A
-@14
-M=D
-@145
-D=A
-@95
-0;JMP
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@8643
-D=A
-@14
-M=D
-@163
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@10
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-D=M
-@11
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@12
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-D=M
-@13
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@3
-D=M
-@14
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@387
-D=A
-@14
-M=D
-@333
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@9357
-D=A
-@14
-M=D
-@376
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@418
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@514
-D=A
-@14
-M=D
-@441
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@480
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@514
-D=A
-@14
-M=D
-@503
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@588
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@54
-0;JMP
-@3
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@654
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@747
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@774
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@798
-D=A
-@38
-0;JMP
-@3
-D=M
-@7
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@826
-D;JNE
-@930
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@886
-D=A
-@38
-0;JMP
-@3
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@916
-D=A
-@38
-0;JMP
-@3
-D=M
-@9
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@991
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@948
-D=A
-@38
-0;JMP
-@3
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@979
-D=A
-@38
-0;JMP
-@3
-D=M
-@9
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@1016
-D=A
-@95
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@1062
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@1109
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@452
-D=A
-@14
-M=D
-@1156
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1178
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@1185
-D;JNE
-@1219
-0;JMP
-@3
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1401
-0;JMP
-@3
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@3
-D=M
-@9
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1267
-D;JNE
-@1335
-0;JMP
-@3
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1283
-D;JNE
-@1309
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@1333
-0;JMP
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@1401
-0;JMP
-@3
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1351
-D;JNE
-@1377
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@1401
-0;JMP
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@3
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1417
-D;JNE
-@1485
-0;JMP
-@3
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1433
-D;JNE
-@1459
-0;JMP
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@1483
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@1551
-0;JMP
-@3
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1501
-D;JNE
-@1527
-0;JMP
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@1551
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@10
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1571
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1581
-D;JNE
-@1612
-0;JMP
-@0
-M=M+1
-A=M-1
-M=1
-@3
-D=M
-@14
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-D=M
-@10
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@11
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1632
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1642
-D;JNE
-@1675
-0;JMP
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@14
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-D=M
-@11
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@12
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1695
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1705
-D;JNE
-@1738
-0;JMP
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@14
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-D=M
-@12
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@13
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1758
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1768
-D;JNE
-@1801
-0;JMP
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@14
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@3
-D=M
-@13
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@387
-D=A
-@14
-M=D
-@1819
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@14
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@5
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@1837
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@1882
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@1916
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1939
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@1946
-D;JNE
-@1963
-0;JMP
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2086
-0;JMP
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1979
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@1997
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@2018
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@2042
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@2054
-D;JNE
-@2071
-0;JMP
-@20
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2086
-0;JMP
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@3
-D=M
-@14
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@2103
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@2110
-D;JNE
-@2227
-0;JMP
-@506
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@50
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2153
-D=A
-@95
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@2173
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2214
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2616
-0;JMP
-@3
-D=M
-@14
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2246
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@2253
-D;JNE
-@2364
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@50
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2290
-D=A
-@95
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@2310
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2351
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2616
-0;JMP
-@3
-D=M
-@14
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2383
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@2390
-D;JNE
-@2507
-0;JMP
-@250
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2432
-D=A
-@95
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@2453
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2494
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@2616
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2543
-D=A
-@95
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@2564
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@2605
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@13
-M=D
-@652
-D=A
-@14
-M=D
-@2648
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@8643
-D=A
-@14
-M=D
-@2677
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@2827
-D=A
-@14
-M=D
-@2773
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@9357
-D=A
-@14
-M=D
-@2816
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@2858
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@2954
-D=A
-@14
-M=D
-@2881
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@2920
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@2954
-D=A
-@14
-M=D
-@2943
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@3033
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@2892
-D=A
-@14
-M=D
-@3163
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@2827
-D=A
-@14
-M=D
-@3200
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@3240
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@3247
-D;JNE
-@3525
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@3286
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@3293
-D;JNE
-@3303
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@3319
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@3424
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@3448
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@3518
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3831
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3579
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@3586
-D;JNE
-@3611
-0;JMP
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@3627
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@3706
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@1
-D=A
-@13
-M=D
-@20889
-D=A
-@14
-M=D
-@3730
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@3826
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@0
-D=A
-@13
-M=D
-@4508
-D=A
-@14
-M=D
-@3853
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@4531
-D=A
-@14
-M=D
-@3870
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@4539
-D=A
-@14
-M=D
-@3895
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@4419
-D=A
-@14
-M=D
-@3919
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@8643
-D=A
-@14
-M=D
-@3948
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-M=D
-@0
-D=A
-@13
-M=D
-@20598
-D=A
-@14
-M=D
-@3965
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@50
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@230
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@229
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@13
-M=D
-@2659
-D=A
-@14
-M=D
-@4026
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@253
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@222
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@229
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@13
-M=D
-@145
-D=A
-@14
-M=D
-@4076
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@400
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@3
-D=A
-@13
-M=D
-@652
-D=A
-@14
-M=D
-@4111
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@238
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@240
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@13
-M=D
-@22354
-D=A
-@14
-M=D
-@4150
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@22
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@2
-D=A
-@13
-M=D
-@19350
-D=A
-@14
-M=D
-@4177
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@8
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25105
-D=A
-@14
-M=D
-@4200
-D=A
-@95
-0;JMP
-@83
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4218
-D=A
-@95
-0;JMP
-@99
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4236
-D=A
-@95
-0;JMP
-@111
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4254
-D=A
-@95
-0;JMP
-@114
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4272
-D=A
-@95
-0;JMP
-@101
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4290
-D=A
-@95
-0;JMP
-@58
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4308
-D=A
-@95
-0;JMP
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4326
-D=A
-@95
-0;JMP
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@4344
-D=A
-@95
-0;JMP
-@1
-D=A
-@13
-M=D
-@19850
-D=A
-@14
-M=D
-@4356
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@2786
-D=A
-@14
-M=D
-@4450
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@346
-D=A
-@14
-M=D
-@4474
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@9357
-D=A
-@14
-M=D
-@4497
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-D=A
-@13
-M=D
-@3930
-D=A
-@14
-M=D
-@4520
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@16
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@16
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@4943
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@4590
-D=A
-@6
-0;JMP
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@4682
-D;JNE
-@0
-D=A
-@13
-M=D
-@5924
-D=A
-@14
-M=D
-@4627
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@3211
-D=A
-@14
-M=D
-@4652
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5191
-D=A
-@14
-M=D
-@4675
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@4575
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@130
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@4699
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@4706
-D;JNE
-@4736
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@2
-D=A
-@13
-M=D
-@3044
-D=A
-@14
-M=D
-@4729
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@4831
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@132
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@4753
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@4760
-D;JNE
-@4792
-0;JMP
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@3044
-D=A
-@14
-M=D
-@4785
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@4831
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@140
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@4809
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@4816
-D;JNE
-@4831
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@4846
-D=A
-@6
-0;JMP
-@0
-A=M-1
-M=!M
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@4941
-D;JNE
-@0
-D=A
-@13
-M=D
-@5924
-D=A
-@14
-M=D
-@4886
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@3211
-D=A
-@14
-M=D
-@4911
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5191
-D=A
-@14
-M=D
-@4934
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@4831
-0;JMP
-@4555
-0;JMP
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4959
-D;JNE
-@5185
-0;JMP
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@19350
-D=A
-@14
-M=D
-@4983
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@9
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25105
-D=A
-@14
-M=D
-@5006
-D=A
-@95
-0;JMP
-@71
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5024
-D=A
-@95
-0;JMP
-@97
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5042
-D=A
-@95
-0;JMP
-@109
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5060
-D=A
-@95
-0;JMP
-@101
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5078
-D=A
-@95
-0;JMP
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5096
-D=A
-@95
-0;JMP
-@79
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5114
-D=A
-@95
-0;JMP
-@118
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5132
-D=A
-@95
-0;JMP
-@101
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5150
-D=A
-@95
-0;JMP
-@114
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@5168
-D=A
-@95
-0;JMP
-@1
-D=A
-@13
-M=D
-@19850
-D=A
-@14
-M=D
-@5180
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@5
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@5193
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@1126
-D=A
-@14
-M=D
-@5231
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@5254
-D=A
-@22
-0;JMP
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@5275
-D=A
-@6
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@5290
-D;JNE
-@5802
-0;JMP
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@3078
-D=A
-@14
-M=D
-@5337
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@3099
-D=A
-@14
-M=D
-@5362
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@599
-D=A
-@14
-M=D
-@5388
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@620
-D=A
-@14
-M=D
-@5415
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@5442
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@5449
-D;JNE
-@5771
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@5469
-D=A
-@22
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@5490
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-M=D
-@3
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@5522
-D;JNE
-@5771
-0;JMP
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@5553
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@5560
-D;JNE
-@5576
-0;JMP
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@5625
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@5608
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@5615
-D;JNE
-@5625
-0;JMP
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@3133
-D=A
-@14
-M=D
-@5684
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@22
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@19350
-D=A
-@14
-M=D
-@5740
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19981
-D=A
-@14
-M=D
-@5766
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@1835
-D=A
-@14
-M=D
-@5797
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@5823
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@5833
-D;JNE
-@5856
-0;JMP
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@5851
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@8643
-D=A
-@14
-M=D
-@5875
-D=A
-@95
-0;JMP
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@9357
-D=A
-@14
-M=D
-@5907
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@24576
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@8558
-D=A
-@14
-M=D
-@5942
-D=A
-@95
-0;JMP
-@54
-0;JMP
-@0
-A=M
-M=0
-AD=A+1
-M=0
-@0
-M=D+1
-@0
-M=M+1
-A=M-1
-M=0
-@1
-D=A
-@13
-M=D
-@19610
-D=A
-@14
-M=D
-@5967
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@5987
-D=A
-@6
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6002
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@6070
-D;JNE
-@0
-D=A
-@13
-M=D
-@5924
-D=A
-@14
-M=D
-@6027
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6048
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@6055
-D;JNE
-@6068
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@5972
-0;JMP
-@0
-D=A
-@13
-M=D
-@27042
-D=A
-@14
-M=D
-@6082
-D=A
-@95
-0;JMP
-@1
-D=A
-@13
-M=D
-@19610
-D=A
-@14
-M=D
-@6094
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19610
-D=A
-@14
-M=D
-@6118
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@5
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@6134
-D;JGT
-@80
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25105
-D=A
-@14
-M=D
-@6159
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19850
-D=A
-@14
-M=D
-@6186
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@27034
-D=A
-@14
-M=D
-@6203
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@0
-D=A
-@13
-M=D
-@27042
-D=A
-@14
-M=D
-@6221
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@6404
-D;JNE
-@0
-D=A
-@13
-M=D
-@5944
-D=A
-@14
-M=D
-@6260
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@6284
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@6312
-D;JNE
-@6402
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@6331
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@6338
-D;JNE
-@6366
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25801
-D=A
-@14
-M=D
-@6359
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@6402
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@6394
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@6228
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@0
-A=M
-M=0
-AD=A+1
-M=0
-@0
-M=D+1
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6132
-D=A
-@14
-M=D
-@6441
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25889
-D=A
-@14
-M=D
-@6466
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25252
-D=A
-@14
-M=D
-@6491
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@6527
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@17
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@6550
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@18
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6613
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@6768
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@6596
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6789
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@6796
-D;JNE
-@6813
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@5
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@6824
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6846
-D=A
-@38
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6861
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6881
-D=A
-@22
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@6896
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@6934
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@6959
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@6983
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@6990
-D;JNE
-@7029
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@7048
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@7245
-D;JNE
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-M=M+1
-A=M-1
-M=0
-@7108
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@7115
-D;JNE
-@7192
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@7029
-0;JMP
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@7261
-D;JNE
-@7278
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@4
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@7289
-D;JGT
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@7311
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@7318
-D;JNE
-@7341
-0;JMP
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@7336
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@7356
-D=A
-@38
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@7371
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@7391
-D=A
-@22
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@7406
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@7457
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@7498
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@7841
-D;JNE
-@32767
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@7599
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@7626
-D;JNE
-@7839
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@7790
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@7817
-D;JNE
-@7839
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@7504
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@7860
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@8039
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@7909
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@7919
-D;JNE
-@8015
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@17
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@7841
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@8054
-D;JNE
-@8071
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@4
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@8082
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@8104
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@8111
-D;JNE
-@8134
-0;JMP
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@8129
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@8165
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@8348
-D;JNE
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@8249
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@8275
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@8294
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@8309
-D;JNE
-@8324
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@8146
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@8377
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@8384
-D;JNE
-@8397
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@8424
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@8431
-D;JNE
-@8444
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@19
-M=D
-@2048
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@19
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@14334
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@2049
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@19
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2050
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@19
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@19
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@8662
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@8669
-D;JNE
-@8692
-0;JMP
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@8687
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2048
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@8743
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@8787
-D;JNE
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@8704
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@16379
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@8816
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@8823
-D;JNE
-@8846
-0;JMP
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@8841
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@8896
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@8903
-D;JNE
-@9295
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@9056
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@9063
-D;JNE
-@9147
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@9227
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@54
-0;JMP
-@0
-A=M
-M=0
-AD=A+1
-M=0
-@0
-M=D+1
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@9458
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@9465
-D;JNE
-@9556
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@9848
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@9717
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@9724
-D;JNE
-@9782
-0;JMP
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@9848
-0;JMP
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@16384
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@20
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@21
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@22
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@23
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25105
-D=A
-@14
-M=D
-@9915
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@24
-M=D
-@0
-D=A
-@13
-M=D
-@9960
-D=A
-@14
-M=D
-@9932
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@18456
-D=A
-@14
-M=D
-@9949
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@127
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@9978
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@25
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10061
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10128
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@33
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10211
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@34
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10284
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10367
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@36
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10454
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@37
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@49
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10535
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@38
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10620
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@39
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10693
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@40
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10778
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@41
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10863
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@42
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@10940
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@43
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11017
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@44
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11090
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@45
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11159
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@46
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11230
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@47
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11309
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11394
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@49
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11479
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@50
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11564
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11649
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@52
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@26
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@60
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11734
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@53
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11819
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11904
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@55
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@49
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@11989
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@56
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12074
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@57
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12159
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@58
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12234
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12311
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@60
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12392
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@61
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12463
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@62
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12544
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@64
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12629
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12712
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@65
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12797
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@66
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12882
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@67
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@12967
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@68
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13052
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@69
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13137
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@70
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13222
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@71
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@44
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13307
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@72
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13392
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@73
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13477
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@74
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@60
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13562
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@75
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13647
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@76
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13732
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@77
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@33
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13817
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@78
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13902
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@79
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@13987
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@80
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14072
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@81
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@59
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14159
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@82
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14244
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@83
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14329
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@84
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@45
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14414
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@85
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14499
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@86
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14584
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@87
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14669
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@88
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14754
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@89
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14839
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@90
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@49
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@35
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@14924
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@91
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15009
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@92
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=1
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15088
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@93
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15173
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@94
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@8
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15246
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@95
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15315
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@96
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15388
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@97
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15467
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@98
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15552
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@99
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15631
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@100
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@60
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15716
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@101
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15795
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@102
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@38
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15880
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@103
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@15963
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@104
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16048
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@105
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16131
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@106
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@56
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16216
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@107
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16301
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@108
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16386
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@109
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@29
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@43
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16465
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@110
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@29
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16544
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@111
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16623
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@112
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16704
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@113
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16785
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@114
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@29
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@55
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16864
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@115
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@16943
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@116
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@28
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17028
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@117
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17107
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@118
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17186
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@119
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17265
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@120
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@30
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17344
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@121
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@62
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17425
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@122
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@51
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17504
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@123
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@56
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@56
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17589
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@124
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17674
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@125
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@56
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17759
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@126
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@38
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@45
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@0
-M=M+1
-A=M-1
-M=0
-@12
-D=A
-@13
-M=D
-@17843
-D=A
-@14
-M=D
-@17832
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@17865
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@4
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@8
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@9
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@9
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@10
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-D=M
-@11
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@4
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@18458
-D;JGT
-@127
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@18483
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@26
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@127
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18517
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@18859
-D;JNE
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@18580
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@26
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18665
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@18795
-D;JNE
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@256
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@18745
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@18646
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@18811
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@18818
-D;JNE
-@18833
-0;JMP
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@18857
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@18499
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18886
-D=A
-@38
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@126
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@18903
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@18915
-D;JNE
-@18925
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@21
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@18938
-D;JNE
-@18976
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@19012
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@26
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@4
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@19023
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@18865
-D=A
-@14
-M=D
-@19049
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@11
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@19085
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@19344
-D;JNE
-@21
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@19106
-D;JNE
-@19161
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@20
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@256
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@19210
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@20
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@20
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@19068
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@19365
-D=A
-@38
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@22
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@19382
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@19402
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@63
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@19424
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@19436
-D;JNE
-@19459
-0;JMP
-@20
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@19454
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@19484
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@23
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@352
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@19520
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@22
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@19572
-D=A
-@95
-0;JMP
-@19576
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@21
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19021
-D=A
-@14
-M=D
-@19599
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-D=A
-@13
-M=D
-@27034
-D=A
-@14
-M=D
-@19629
-D=A
-@95
-0;JMP
-@19633
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@19640
-D;JNE
-@19659
-0;JMP
-@0
-D=A
-@13
-M=D
-@20040
-D=A
-@14
-M=D
-@19652
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@19844
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-D=A
-@13
-M=D
-@27042
-D=A
-@14
-M=D
-@19678
-D=A
-@95
-0;JMP
-@19682
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@19689
-D;JNE
-@19708
-0;JMP
-@0
-D=A
-@13
-M=D
-@20134
-D=A
-@14
-M=D
-@19701
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@19844
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19021
-D=A
-@14
-M=D
-@19727
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@21
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@19748
-D;JNE
-@19788
-0;JMP
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@23
-M=D
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@22
-M=D
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@19804
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@19811
-D;JNE
-@19830
-0;JMP
-@0
-D=A
-@13
-M=D
-@20040
-D=A
-@14
-M=D
-@19823
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@19844
-0;JMP
-@21
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@21
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-A=M
-M=0
-AD=A+1
-M=0
-@0
-M=D+1
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25339
-D=A
-@14
-M=D
-@19876
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@19900
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@19975
-D;JNE
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25361
-D=A
-@14
-M=D
-@19934
-D=A
-@95
-0;JMP
-@1
-D=A
-@13
-M=D
-@19610
-D=A
-@14
-M=D
-@19946
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@19882
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@24
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@26291
-D=A
-@14
-M=D
-@20006
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@24
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19850
-D=A
-@14
-M=D
-@20029
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@352
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@22
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@23
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@21
-M=D
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@8128
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20110
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@20117
-D;JNE
-@20128
-0;JMP
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@22
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@21
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@20147
-D;JNE
-@20288
-0;JMP
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@20161
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@20168
-D;JNE
-@20210
-0;JMP
-@23
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@23
-M=D
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@22
-M=D
-@20277
-0;JMP
-@31
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@23
-M=D
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20237
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@20244
-D;JNE
-@20255
-0;JMP
-@8128
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@22
-M=D
-@22
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@321
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@22
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@21
-M=D
-@20300
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@21
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19021
-D=A
-@14
-M=D
-@20318
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@16384
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@27
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@28
-M=D
-@17
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@20374
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@29
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20437
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@20592
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@20420
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@8192
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20619
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@20695
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@20602
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@28
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@20714
-D;JNE
-@20798
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@20883
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@27
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@28
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@3
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@20909
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@20931
-D=A
-@38
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20948
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@20968
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@20990
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@21002
-D;JNE
-@21025
-0;JMP
-@7
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@21020
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@21050
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@21088
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@21124
-D=A
-@95
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@21193
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@21219
-D;JNE
-@21252
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20907
-D=A
-@14
-M=D
-@21245
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@21283
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20907
-D=A
-@14
-M=D
-@21278
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@11
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@21291
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@21313
-D=A
-@38
-0;JMP
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@21331
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@21351
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@21375
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@21387
-D;JNE
-@21410
-0;JMP
-@8
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@21405
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@21442
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=A
-@13
-M=D
-@6774
-D=A
-@14
-M=D
-@21483
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@21511
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@21551
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-M=!M
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@21587
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@21604
-D;JNE
-@21698
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@21714
-D;JNE
-@21844
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@21830
-D=A
-@22
-0;JMP
-@1
-D=M
-@7
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@21922
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@21910
-D=A
-@22
-0;JMP
-@1
-D=M
-@7
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@21948
-D=A
-@95
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@21998
-D=A
-@95
-0;JMP
-@1
-D=M
-@9
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@22050
-D=A
-@95
-0;JMP
-@1
-D=M
-@10
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@13
-M=D
-@21204
-D=A
-@14
-M=D
-@22097
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@22122
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@22348
-D;JNE
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@22147
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@22154
-D;JNE
-@22189
-0;JMP
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@9
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@22284
-0;JMP
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@10
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@22238
-D;JNE
-@22262
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@22284
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-D=A
-@13
-M=D
-@21204
-D=A
-@14
-M=D
-@22341
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@22102
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@9
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@22356
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@22382
-D=A
-@22
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@22402
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@22422
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@22445
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@22465
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@22489
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@22501
-D;JNE
-@22524
-0;JMP
-@9
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@22519
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@22549
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@22591
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=M
-@7
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@22634
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@22678
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@1
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@22835
-D=A
-@95
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@22905
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@23245
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@22958
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@22965
-D;JNE
-@23014
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@23007
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@23184
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@23042
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@23087
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@23151
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@23122
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@23069
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@23179
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@22885
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@11
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@23253
-D;JGT
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@8406
-D=A
-@14
-M=D
-@23287
-D=A
-@95
-0;JMP
-@1
-D=M
-@7
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@8359
-D=A
-@14
-M=D
-@23326
-D=A
-@95
-0;JMP
-@1
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@23357
-D=A
-@22
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@256
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@23374
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@1
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@512
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@23398
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@1
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@23424
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-AM=M-1
-D=M
-@23436
-D;JNE
-@24145
-0;JMP
-@1
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@2
-D=A
-@13
-M=D
-@8359
-D=A
-@14
-M=D
-@23461
-D=A
-@95
-0;JMP
-@1
-D=M
-@7
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@1
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@8406
-D=A
-@14
-M=D
-@23500
-D=A
-@95
-0;JMP
-@1
-D=M
-@8
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@1
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@23539
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-D=M
-@7
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@23579
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=M
-@9
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@1
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@23623
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-D=M
-@8
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@23665
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-D=M
-@10
-D=D+A
-@13
-M=D
-@0
-AM=M-1
-D=M
-@13
-A=M
-M=D
-@1
-D=M
-@9
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@10
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@29
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@32
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@23820
-D=A
-@95
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@6
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@23915
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@23922
-D;JNE
-@23971
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@23964
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@24145
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@5
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@23999
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@24046
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@24110
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-A=M-1
-D=!M
-M=D+1
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@24081
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@24026
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@20701
-D=A
-@14
-M=D
-@24140
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-D=A
-@13
-M=D
-@23251
-D=A
-@14
-M=D
-@24224
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@3
-D=A
-@13
-M=D
-@23251
-D=A
-@14
-M=D
-@24302
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@13
-M=D
-@23251
-D=A
-@14
-M=D
-@24381
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@13
-M=D
-@23251
-D=A
-@14
-M=D
-@24460
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@3
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@24473
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@24495
-D=A
-@38
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24512
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@24532
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@255
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24554
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@24566
-D;JNE
-@24589
-0;JMP
-@12
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@24584
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-M=M+1
-A=M-1
-M=0
-@24617
-D=A
-@38
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@511
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24647
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-M=M+1
-A=M-1
-M=0
-@24680
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@255
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@24715
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@24727
-D;JNE
-@24750
-0;JMP
-@13
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@24745
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@13
-M=D
-@24151
-D=A
-@14
-M=D
-@24828
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@24851
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@25099
-D;JNE
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@24875
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@24882
-D;JNE
-@24940
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@24915
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@25030
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@24985
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@5
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@4
-D=A
-@13
-M=D
-@24151
-D=A
-@14
-M=D
-@25092
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@24833
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@8643
-D=A
-@14
-M=D
-@25123
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25143
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@25150
-D;JNE
-@25173
-0;JMP
-@14
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@25168
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25188
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@25195
-D;JNE
-@25220
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@25214
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25279
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-@25286
-D;JNE
-@25310
-0;JMP
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5877
-D=A
-@14
-M=D
-@25305
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@9357
-D=A
-@14
-M=D
-@25328
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25388
-D=A
-@38
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25407
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25431
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@25443
-D;JNE
-@25466
-0;JMP
-@15
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@25461
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25526
-D=A
-@38
-0;JMP
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25545
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25569
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-AM=M-1
-D=M
-@25581
-D;JNE
-@25604
-0;JMP
-@16
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@25599
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@25690
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@25697
-D;JNE
-@25720
-0;JMP
-@17
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@25715
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@3
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25829
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@25836
-D;JNE
-@25859
-0;JMP
-@18
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@25854
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@5
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@25891
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@25926
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@25933
-D;JNE
-@25939
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@45
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@25992
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@25999
-D;JNE
-@26025
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-A=A+1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@26044
-D=A
-@38
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D&M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@26249
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@26131
-D=A
-@38
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@9
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@26149
-D=A
-@22
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=D|M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@26181
-D;JNE
-@26247
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@26206
-D=A
-@95
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@26025
-0;JMP
-@1
-D=M
-@4
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@26265
-D;JNE
-@26282
-0;JMP
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@4
-D=A
-D=D-1
-@0
-AM=M+1
-A=A-1
-M=0
-@26293
-D;JGT
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@3
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@26327
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@26334
-D;JNE
-@26357
-0;JMP
-@19
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@26352
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@6
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5808
-D=A
-@14
-M=D
-@26375
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@26397
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@26404
-D;JNE
-@26436
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-A=A+1
-A=A+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-A=M-1
-D=!M
-M=D+1
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@26464
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@26630
-D;JNE
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@7287
-D=A
-@14
-M=D
-@26497
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@1
-A=M+1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@10
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@6822
-D=A
-@14
-M=D
-@26561
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@2
-A=M+1
-M=D
-@26449
-0;JMP
-@1
-D=M
-@3
-A=D+A
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@26646
-D;JNE
-@26716
-0;JMP
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@45
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@3
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@26734
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@26741
-D;JNE
-@26764
-0;JMP
-@19
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@26759
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@26779
-D=A
-@6
-0;JMP
-@0
-AM=M-1
-D=M
-@26786
-D;JNE
-@26843
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@48
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@27003
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@26873
-D=A
-@38
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@27003
-D;JNE
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@4
-M=D
-@4
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-AM=M-1
-D=M
-@4
-M=D
-@5
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@4
-A=M
-M=D
-@3
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=D+M
-@0
-AM=M-1
-D=M
-@3
-A=M+1
-A=A+1
-M=D
-@26854
-0;JMP
-@1
-A=M+1
-A=A+1
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@5877
-D=A
-@14
-M=D
-@27023
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@128
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@129
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@34
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@54
-0;JMP
-@0
-D=A
-@13
-M=D
-@8453
-D=A
-@14
-M=D
-@27070
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@6505
-D=A
-@14
-M=D
-@27087
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@20329
-D=A
-@14
-M=D
-@27104
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@9854
-D=A
-@14
-M=D
-@27121
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@5918
-D=A
-@14
-M=D
-@27138
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@3837
-D=A
-@14
-M=D
-@27155
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@27177
-D=A
-@14
-M=D
-@27172
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@0
-A=M-1
-M=!M
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@27194
-D;JNE
-@27177
-0;JMP
-@0
-AM=M+1
-A=A-1
-M=0
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@27213
-D=A
-@38
-0;JMP
-@0
-AM=M-1
-D=M
-@27220
-D;JNE
-@27241
-0;JMP
-@0
-M=M+1
-A=M-1
-M=1
-@1
-D=A
-@13
-M=D
-@27353
-D=A
-@14
-M=D
-@27236
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@27256
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@27347
-D;JNE
-@50
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=0
-@27291
-D=A
-@22
-0;JMP
-@0
-A=M-1
-M=!M
-@0
-AM=M-1
-D=M
-@27323
-D;JNE
-@1
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@1
-A=M
-M=D
-@27276
-0;JMP
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@0
-M=M+1
-A=M-1
-M=1
-@0
-AM=M-1
-D=M
-A=A-1
-M=M-D
-@0
-AM=M-1
-D=M
-@2
-A=M
-M=D
-@27241
-0;JMP
-@0
-M=M+1
-A=M-1
-M=0
-@54
-0;JMP
-@3
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@25105
-D=A
-@14
-M=D
-@27371
-D=A
-@95
-0;JMP
-@69
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@27389
-D=A
-@95
-0;JMP
-@82
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@27407
-D=A
-@95
-0;JMP
-@82
-D=A
-@0
-AM=M+1
-A=A-1
-M=D
-@2
-D=A
-@13
-M=D
-@25659
-D=A
-@14
-M=D
-@27425
-D=A
-@95
-0;JMP
-@1
-D=A
-@13
-M=D
-@19850
-D=A
-@14
-M=D
-@27437
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@2
-A=M
-D=M
-@0
-AM=M+1
-A=A-1
-M=D
-@1
-D=A
-@13
-M=D
-@19981
-D=A
-@14
-M=D
-@27461
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@13
-M=D
-@27177
-D=A
-@14
-M=D
-@27478
-D=A
-@95
-0;JMP
-@0
-AM=M-1
-D=M
-@5
-M=D
diff --git a/projects/06/rect/Rect.asm b/projects/06/rect/Rect.asm
deleted file mode 100644
index 6cbbaeb..0000000
--- a/projects/06/rect/Rect.asm
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/rect/Rect.asm
-
-// Draws a rectangle at the top-left corner of the screen.
-// The rectangle is 16 pixels wide and R0 pixels high.
-
- @0
- D=M
- @INFINITE_LOOP
- D;JLE
- @counter
- M=D
- @SCREEN
- D=A
- @address
- M=D
-(LOOP)
- @address
- A=M
- M=-1
- @address
- D=M
- @32
- D=D+A
- @address
- M=D
- @counter
- MD=M-1
- @LOOP
- D;JGT
-(INFINITE_LOOP)
- @INFINITE_LOOP
- 0;JMP
diff --git a/projects/06/rect/Rect.hack b/projects/06/rect/Rect.hack
deleted file mode 100644
index f33a9d1..0000000
--- a/projects/06/rect/Rect.hack
+++ /dev/null
@@ -1,25 +0,0 @@
-0000000000000000
-1111110000010000
-0000000000010111
-1110001100000110
-0000000000010000
-1110001100001000
-0100000000000000
-1110110000010000
-0000000000010001
-1110001100001000
-0000000000010001
-1111110000100000
-1110111010001000
-0000000000010001
-1111110000010000
-0000000000100000
-1110000010010000
-0000000000010001
-1110001100001000
-0000000000010000
-1111110010011000
-0000000000001010
-1110001100000001
-0000000000010111
-1110101010000111
diff --git a/projects/06/rect/RectL.asm b/projects/06/rect/RectL.asm
deleted file mode 100644
index e97c09b..0000000
--- a/projects/06/rect/RectL.asm
+++ /dev/null
@@ -1,32 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/06/rect/RectL.asm
-
-// Symbol-less version of the Rect.asm program.
-
-@0
-D=M
-@23
-D;JLE
-@16
-M=D
-@16384
-D=A
-@17
-M=D
-@17
-A=M
-M=-1
-@17
-D=M
-@32
-D=D+A
-@17
-M=D
-@16
-MD=M-1
-@10
-D;JGT
-@23
-0;JMP
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.asm b/projects/07/MemoryAccess/BasicTest/BasicTest.asm
deleted file mode 100644
index d978f07..0000000
--- a/projects/07/MemoryAccess/BasicTest/BasicTest.asm
+++ /dev/null
@@ -1,250 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@10
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@21
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@22
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@36
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@6
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@42
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@45
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@5
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@THAT
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@510
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@11
-M=D
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@5
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@6
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@6
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@11
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.cmp b/projects/07/MemoryAccess/BasicTest/BasicTest.cmp
deleted file mode 100644
index 538454b..0000000
--- a/projects/07/MemoryAccess/BasicTest/BasicTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[256]|RAM[300]|RAM[401]|RAM[402]|RAM[3006|RAM[3012|RAM[3015|RAM[11] |
-| 472 | 10 | 21 | 22 | 36 | 42 | 45 | 510 |
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.out b/projects/07/MemoryAccess/BasicTest/BasicTest.out
deleted file mode 100644
index 85c19a7..0000000
--- a/projects/07/MemoryAccess/BasicTest/BasicTest.out
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[256]|RAM[300]|RAM[401]|RAM[402]|RAM[3006|RAM[3012|RAM[3015|RAM[11] |
-| 472 | 10 | 21 | 22 | 36 | 42 | 45 | 510 |
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.tst b/projects/07/MemoryAccess/BasicTest/BasicTest.tst
deleted file mode 100644
index fa6d9a6..0000000
--- a/projects/07/MemoryAccess/BasicTest/BasicTest.tst
+++ /dev/null
@@ -1,25 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/BasicTest/BasicTest.tst
-
-load BasicTest.asm,
-output-file BasicTest.out,
-compare-to BasicTest.cmp,
-output-list RAM[256]%D1.6.1 RAM[300]%D1.6.1 RAM[401]%D1.6.1
- RAM[402]%D1.6.1 RAM[3006]%D1.6.1 RAM[3012]%D1.6.1
- RAM[3015]%D1.6.1 RAM[11]%D1.6.1;
-
-set RAM[0] 256, // stack pointer
-set RAM[1] 300, // base address of the local segment
-set RAM[2] 400, // base address of the argument segment
-set RAM[3] 3000, // base address of the this segment
-set RAM[4] 3010, // base address of the that segment
-
-repeat 600 { // enough cycles to complete the execution
- ticktock;
-}
-
-// Outputs the stack base and some values
-// from the tested memory segments
-output;
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTest.vm b/projects/07/MemoryAccess/BasicTest/BasicTest.vm
deleted file mode 100644
index b2f9343..0000000
--- a/projects/07/MemoryAccess/BasicTest/BasicTest.vm
+++ /dev/null
@@ -1,31 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/BasicTest/BasicTest.vm
-
-// Executes pop and push commands using the virtual memory segments.
-push constant 10
-pop local 0
-push constant 21
-push constant 22
-pop argument 2
-pop argument 1
-push constant 36
-pop this 6
-push constant 42
-push constant 45
-pop that 5
-pop that 2
-push constant 510
-pop temp 6
-push local 0
-push that 5
-add
-push argument 1
-sub
-push this 6
-push this 6
-add
-sub
-push temp 6
-add
diff --git a/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst b/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst
deleted file mode 100644
index 24e9090..0000000
--- a/projects/07/MemoryAccess/BasicTest/BasicTestVME.tst
+++ /dev/null
@@ -1,25 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/BasicTest/BasicTestVME.tst
-
-load BasicTest.vm,
-output-file BasicTest.out,
-compare-to BasicTest.cmp,
-output-list RAM[256]%D1.6.1 RAM[300]%D1.6.1 RAM[401]%D1.6.1
- RAM[402]%D1.6.1 RAM[3006]%D1.6.1 RAM[3012]%D1.6.1
- RAM[3015]%D1.6.1 RAM[11]%D1.6.1;
-
-set sp 256, // stack pointer
-set local 300, // base address of the local segment
-set argument 400, // base address of the argument segment
-set this 3000, // base address of the this segment
-set that 3010, // base address of the that segment
-
-repeat 25 { // BasicTest.vm has 25 instructions
- vmstep;
-}
-
-// Outputs the stack base and some values
-// from the tested memory segments
-output;
diff --git a/projects/07/MemoryAccess/BasicTest/delme.asm b/projects/07/MemoryAccess/BasicTest/delme.asm
deleted file mode 100644
index 6392181..0000000
--- a/projects/07/MemoryAccess/BasicTest/delme.asm
+++ /dev/null
@@ -1,26 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@10
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/07/MemoryAccess/BasicTest/delme.vm b/projects/07/MemoryAccess/BasicTest/delme.vm
deleted file mode 100644
index d1ae195..0000000
--- a/projects/07/MemoryAccess/BasicTest/delme.vm
+++ /dev/null
@@ -1,8 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/BasicTest/BasicTest.vm
-
-// Executes pop and push commands using the virtual memory segments.
-push constant 10
-pop local 0
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.asm b/projects/07/MemoryAccess/PointerTest/PointerTest.asm
deleted file mode 100644
index 67125df..0000000
--- a/projects/07/MemoryAccess/PointerTest/PointerTest.asm
+++ /dev/null
@@ -1,138 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@3030
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@3040
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@4
-M=D
-@32
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@46
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@6
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@4
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@6
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.cmp b/projects/07/MemoryAccess/PointerTest/PointerTest.cmp
deleted file mode 100644
index b59fa97..0000000
--- a/projects/07/MemoryAccess/PointerTest/PointerTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[256]| RAM[3] | RAM[4] |RAM[3032|RAM[3046|
-| 6084 | 3030 | 3040 | 32 | 46 |
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.out b/projects/07/MemoryAccess/PointerTest/PointerTest.out
deleted file mode 100644
index 5d62de8..0000000
--- a/projects/07/MemoryAccess/PointerTest/PointerTest.out
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[256]| RAM[3] | RAM[4] |RAM[3032|RAM[3046|
-| 6084 | 3030 | 3040 | 32 | 46 |
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.tst b/projects/07/MemoryAccess/PointerTest/PointerTest.tst
deleted file mode 100644
index cd5515d..0000000
--- a/projects/07/MemoryAccess/PointerTest/PointerTest.tst
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/PointerTest/PointerTest.tst
-
-load PointerTest.asm,
-output-file PointerTest.out,
-compare-to PointerTest.cmp,
-output-list RAM[256]%D1.6.1 RAM[3]%D1.6.1
- RAM[4]%D1.6.1 RAM[3032]%D1.6.1 RAM[3046]%D1.6.1;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 450 { // enough cycles to complete the execution
- ticktock;
-}
-
-// outputs the stack base, this, that, and
-// some values from the the this and that segments
-output;
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTest.vm b/projects/07/MemoryAccess/PointerTest/PointerTest.vm
deleted file mode 100644
index 5b0a109..0000000
--- a/projects/07/MemoryAccess/PointerTest/PointerTest.vm
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/PointerTest/PointerTest.vm
-
-// Executes pop and push commands using the
-// pointer, this, and that segments.
-push constant 3030
-pop pointer 0
-push constant 3040
-pop pointer 1
-push constant 32
-pop this 2
-push constant 46
-pop that 6
-push pointer 0
-push pointer 1
-add
-push this 2
-sub
-push that 6
-add
diff --git a/projects/07/MemoryAccess/PointerTest/PointerTestVME.tst b/projects/07/MemoryAccess/PointerTest/PointerTestVME.tst
deleted file mode 100644
index 1b395c2..0000000
--- a/projects/07/MemoryAccess/PointerTest/PointerTestVME.tst
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/PointerTest/PointerTestVME.tst
-
-load PointerTest.vm,
-output-file PointerTest.out,
-compare-to PointerTest.cmp,
-output-list RAM[256]%D1.6.1 RAM[3]%D1.6.1 RAM[4]%D1.6.1
- RAM[3032]%D1.6.1 RAM[3046]%D1.6.1;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 15 { // PointerTest.vm has 15 instructions
- vmstep;
-}
-
-// outputs the stack base, this, that, and
-// some values from the the this and that segments
-output;
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.asm b/projects/07/MemoryAccess/StaticTest/StaticTest.asm
deleted file mode 100644
index 8cd989d..0000000
--- a/projects/07/MemoryAccess/StaticTest/StaticTest.asm
+++ /dev/null
@@ -1,86 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@111
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@333
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@888
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@StaticTest.8
-M=D
-@SP
-AM=M-1
-D=M
-@StaticTest.3
-M=D
-@SP
-AM=M-1
-D=M
-@StaticTest.1
-M=D
-@StaticTest.3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@StaticTest.1
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@StaticTest.8
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.cmp b/projects/07/MemoryAccess/StaticTest/StaticTest.cmp
deleted file mode 100644
index 29f4bf0..0000000
--- a/projects/07/MemoryAccess/StaticTest/StaticTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[256]|
-| 1110 |
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.out b/projects/07/MemoryAccess/StaticTest/StaticTest.out
deleted file mode 100644
index 2bc908b..0000000
--- a/projects/07/MemoryAccess/StaticTest/StaticTest.out
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[256]|
-| 1110 |
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.tst b/projects/07/MemoryAccess/StaticTest/StaticTest.tst
deleted file mode 100644
index 1f23d66..0000000
--- a/projects/07/MemoryAccess/StaticTest/StaticTest.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/StaticTest/StaticTest.tst
-
-load StaticTest.asm,
-output-file StaticTest.out,
-compare-to StaticTest.cmp,
-output-list RAM[256]%D1.6.1;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 200 { // enough cycles to complete the execution
- ticktock;
-}
-
-output; // the stack base
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTest.vm b/projects/07/MemoryAccess/StaticTest/StaticTest.vm
deleted file mode 100644
index 65b4f6f..0000000
--- a/projects/07/MemoryAccess/StaticTest/StaticTest.vm
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/StaticTest/StaticTest.vm
-
-// Executes pop and push commands using the static segment.
-push constant 111
-push constant 333
-push constant 888
-pop static 8
-pop static 3
-pop static 1
-push static 3
-push static 1
-sub
-push static 8
-add
diff --git a/projects/07/MemoryAccess/StaticTest/StaticTestVME.tst b/projects/07/MemoryAccess/StaticTest/StaticTestVME.tst
deleted file mode 100644
index 52882a4..0000000
--- a/projects/07/MemoryAccess/StaticTest/StaticTestVME.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/MemoryAccess/StaticTest/StaticTestVME.tst
-
-load StaticTest.vm,
-output-file StaticTest.out,
-compare-to StaticTest.cmp,
-output-list RAM[256]%D1.6.1;
-
-set sp 256, // initializes the stack pointer
-
-repeat 11 { // StaticTest.vm has 11 instructions
- vmstep;
-}
-
-output; // the stack base
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm
deleted file mode 100644
index faa8af7..0000000
--- a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.asm
+++ /dev/null
@@ -1,32 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@7
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@8
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp
deleted file mode 100644
index 7a3585b..0000000
--- a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] | RAM[256] |
-| 257 | 15 |
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.out b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.out
deleted file mode 100644
index 6b3b20e..0000000
--- a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.out
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] | RAM[256] |
-| 257 | 15 |
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst
deleted file mode 100644
index 02dece3..0000000
--- a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/StackArithmetic/SimpleAdd/SimpleAdd.tst
-
-load SimpleAdd.asm,
-output-file SimpleAdd.out,
-compare-to SimpleAdd.cmp,
-output-list RAM[0]%D2.6.2 RAM[256]%D2.6.2;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 60 { // enough cycles to complete the execution
- ticktock;
-}
-
-output; // the stack pointer and the stack base
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm b/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm
deleted file mode 100644
index cfd4ee9..0000000
--- a/projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/StackArithmetic/SimpleAdd/SimpleAdd.vm
-
-// Pushes and adds two constants.
-push constant 7
-push constant 8
-add
diff --git a/projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst b/projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst
deleted file mode 100644
index 5010f4f..0000000
--- a/projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/StackArithmetic/SimpleAdd/SimpleAddVME.tst
-
-load SimpleAdd.vm,
-output-file SimpleAdd.out,
-compare-to SimpleAdd.cmp,
-output-list RAM[0]%D2.6.2 RAM[256]%D2.6.2;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 3 { // SimpleAdd.vm has 3 instructions
- vmstep;
-}
-
-output; // the stack pointer and the stack base
diff --git a/projects/07/StackArithmetic/StackTest/StackTest.asm b/projects/07/StackArithmetic/StackTest/StackTest.asm
deleted file mode 100644
index 560ec6c..0000000
--- a/projects/07/StackArithmetic/StackTest/StackTest.asm
+++ /dev/null
@@ -1,426 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@17
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@17
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@EQ2
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFEQ2
-0;JMP
-(EQ2)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFEQ2)
-@17
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@16
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@EQ5
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFEQ5
-0;JMP
-(EQ5)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFEQ5)
-@16
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@17
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@EQ8
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFEQ8
-0;JMP
-(EQ8)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFEQ8)
-@892
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@891
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@LT11
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFLT11
-0;JMP
-(LT11)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFLT11)
-@891
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@892
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@LT14
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFLT14
-0;JMP
-(LT14)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFLT14)
-@891
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@891
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@LT17
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFLT17
-0;JMP
-(LT17)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFLT17)
-@32767
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@32766
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@GT20
-D;JGT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFGT20
-0;JMP
-(GT20)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFGT20)
-@32766
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@32767
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@GT23
-D;JGT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFGT23
-0;JMP
-(GT23)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFGT23)
-@32766
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@32766
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@GT26
-D;JGT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFGT26
-0;JMP
-(GT26)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFGT26)
-@57
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@31
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@53
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@112
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=-D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M&D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@82
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M|D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/07/StackArithmetic/StackTest/StackTest.cmp b/projects/07/StackArithmetic/StackTest/StackTest.cmp
deleted file mode 100644
index f90fa1b..0000000
--- a/projects/07/StackArithmetic/StackTest/StackTest.cmp
+++ /dev/null
@@ -1,4 +0,0 @@
-| RAM[0] | RAM[256] | RAM[257] | RAM[258] | RAM[259] | RAM[260] |
-| 266 | -1 | 0 | 0 | 0 | -1 |
-| RAM[261] | RAM[262] | RAM[263] | RAM[264] | RAM[265] |
-| 0 | -1 | 0 | 0 | -91 |
diff --git a/projects/07/StackArithmetic/StackTest/StackTest.out b/projects/07/StackArithmetic/StackTest/StackTest.out
deleted file mode 100644
index cb182ec..0000000
--- a/projects/07/StackArithmetic/StackTest/StackTest.out
+++ /dev/null
@@ -1,4 +0,0 @@
-| RAM[0] | RAM[256] | RAM[257] | RAM[258] | RAM[259] | RAM[260] |
-| 266 | -1 | 0 | 0 | 0 | -1 |
-| RAM[261] | RAM[262] | RAM[263] | RAM[264] | RAM[265] |
-| 0 | -1 | 0 | 0 | -91 |
diff --git a/projects/07/StackArithmetic/StackTest/StackTest.tst b/projects/07/StackArithmetic/StackTest/StackTest.tst
deleted file mode 100644
index f9c5396..0000000
--- a/projects/07/StackArithmetic/StackTest/StackTest.tst
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/StackArithmetic/StackTest/StackTest.tst
-
-load StackTest.asm,
-output-file StackTest.out,
-compare-to StackTest.cmp,
-output-list RAM[0]%D2.6.2
- RAM[256]%D2.6.2 RAM[257]%D2.6.2 RAM[258]%D2.6.2 RAM[259]%D2.6.2 RAM[260]%D2.6.2;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 1000 { // enough cycles to complete the execution
- ticktock;
-}
-
-// outputs the stack pointer (RAM[0]) and
-// the stack contents: RAM[256]-RAM[265]
-output;
-output-list RAM[261]%D2.6.2 RAM[262]%D2.6.2 RAM[263]%D2.6.2 RAM[264]%D2.6.2 RAM[265]%D2.6.2;
-output;
diff --git a/projects/07/StackArithmetic/StackTest/StackTest.vm b/projects/07/StackArithmetic/StackTest/StackTest.vm
deleted file mode 100644
index bfe78e0..0000000
--- a/projects/07/StackArithmetic/StackTest/StackTest.vm
+++ /dev/null
@@ -1,45 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/StackArithmetic/StackTest/StackTest.vm
-
-// Executes a sequence of arithmetic and logical operations
-// on the stack.
-push constant 17
-push constant 17
-eq
-push constant 17
-push constant 16
-eq
-push constant 16
-push constant 17
-eq
-push constant 892
-push constant 891
-lt
-push constant 891
-push constant 892
-lt
-push constant 891
-push constant 891
-lt
-push constant 32767
-push constant 32766
-gt
-push constant 32766
-push constant 32767
-gt
-push constant 32766
-push constant 32766
-gt
-push constant 57
-push constant 31
-push constant 53
-add
-push constant 112
-sub
-neg
-and
-push constant 82
-or
-not
diff --git a/projects/07/StackArithmetic/StackTest/StackTestVME.tst b/projects/07/StackArithmetic/StackTest/StackTestVME.tst
deleted file mode 100644
index b66bd05..0000000
--- a/projects/07/StackArithmetic/StackTest/StackTestVME.tst
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/07/StackArithmetic/StackTest/StackTestVME.tst
-
-load StackTest.vm,
-output-file StackTest.out,
-compare-to StackTest.cmp,
-output-list RAM[0]%D2.6.2
- RAM[256]%D2.6.2 RAM[257]%D2.6.2 RAM[258]%D2.6.2 RAM[259]%D2.6.2 RAM[260]%D2.6.2;
-
-set RAM[0] 256, // initializes the stack pointer
-
-repeat 38 { // StackTest.vm consists of 38 instructions
- vmstep;
-}
-
-// outputs the stack pointer (RAM[0]) and
-// the stack contents: RAM[256]-RAM[265]
-output;
-output-list RAM[261]%D2.6.2 RAM[262]%D2.6.2 RAM[263]%D2.6.2 RAM[264]%D2.6.2 RAM[265]%D2.6.2;
-output;
diff --git a/projects/07/VMTranslator b/projects/07/VMTranslator
deleted file mode 100755
index 65a46dc..0000000
--- a/projects/07/VMTranslator
+++ /dev/null
Binary files differ
diff --git a/projects/07/VMTranslator.hi b/projects/07/VMTranslator.hi
deleted file mode 100644
index 078767f..0000000
--- a/projects/07/VMTranslator.hi
+++ /dev/null
Binary files differ
diff --git a/projects/07/VMTranslator.hs b/projects/07/VMTranslator.hs
deleted file mode 100644
index ce8447d..0000000
--- a/projects/07/VMTranslator.hs
+++ /dev/null
@@ -1,88 +0,0 @@
-import Data.Char (toUpper)
-import Data.List.Split (splitOn)
-import System.Environment (getArgs)
-import Data.Maybe (fromJust)
-import Data.List (elemIndex)
-
-preamble = "@256\nD=A\n@SP\nM=D\n"
-
-epilogue = "(END)\n@END\n0;JMP"
-
-parse' :: [Char] -> [[Char]] -> Int -> [Char] -> [Char]
-parse' op [] n _
- | op `elem` ["add", "sub", "and", "or"] = pop "M" ++ pop ('M':(f op):"D") ++ push "D"
- | op `elem` ["eq", "gt", "lt"] = pop "M" ++ pop "M-D" ++ ifThenElse op n
- | otherwise = pop "M" ++ push (f op:"D")
- where f "add" = '+'; f "sub" = '-'; f "and" = '&';
- f "or" = '|'; f "neg" = '-'; f "not" = '!'
-
-parse' "push" ["constant", x] _ _ = "@" ++ x ++ "\nD=A\n" ++ push "D"
-
-parse' cmd [seg, x] _ _ | seg `elem` ["local", "argument", "this", "that"] =
- case cmd of
- "push" -> getAddr seg x ++ "A=D\nD=M\n" ++ push "D"
- "pop" -> getAddr seg x ++ "@R13\nM=D\n" ++ pop "M" ++ "@R13\nA=M\nM=D\n"
-
-parse' cmd [seg, x] _ _ | seg `elem` ["pointer", "temp"] =
- case cmd of
- "push" -> getAddr' seg x ++ "D=M\n" ++ push "D"
- "pop" -> pop "M" ++ getAddr' seg x ++ "M=D\n"
-
-parse' cmd ["static", x] _ filename =
- case cmd of
- "push" -> getAddr'' x filename ++ "D=M\n" ++ push "D"
- "pop" -> pop "M" ++ getAddr'' x filename ++ "M=D\n"
-
-getAddr seg x = "@" ++ seg2Lab seg ++ "\nD=M\n@" ++ x ++ "\nD=A+D\n"
-
-getAddr' seg x = "@" ++ show (read x + (if seg == "pointer" then 3 else 5)) ++ "\n"
-
-getAddr'' x filename = "@" ++ filename ++ "." ++ x ++ "\n"
-
-seg2Lab seg = case seg of
- "local" -> "LCL"
- "argument" -> "ARG"
- "this" -> "THIS"
- "that" -> "THAT"
-
-push :: [Char] -> [Char]
-push xs = "@SP\nA=M\nM=" ++ xs ++ "\n@SP\nM=M+1\n"
-
-ifThenElse :: [Char] -> Int -> [Char]
-ifThenElse cond n = "@" ++ cond' ++ show n ++ "\nD;J" ++ cond' ++ "\n" ++ push "0"
- ++ "@ENDIF" ++ cond' ++ show n ++ "\n0;JMP\n(" ++ cond' ++ show n ++ ")\n"
- ++ push "-1" ++ "(ENDIF" ++ cond' ++ show n ++ ")\n"
- where cond' = toUpper <$> cond
-
-pop :: [Char] -> [Char]
-pop xs = "@SP\nAM=M-1\nD=" ++ xs ++ "\n"
-
-parseline :: [[Char]] -> Int -> [Char] -> [Char] -> [Char]
-parseline [] _ acc _ = acc
-parseline (line:lines) n acc filename = parseline lines (n + 1) (acc ++ parse' cmd target n filename) filename
- where cmd:target = words line
-
-stripJunk :: [Char] -> [[Char]]
-stripJunk = filter (not . isEmptyLine) . fmap (head . splitOn "//") . lines . replCrWithNl
-
-isEmptyLine :: [Char] -> Bool
-isEmptyLine = null . filter (not . flip elem " \t")
-
-parseCode :: [Char] -> [Char] -> [Char]
-parseCode xs filename = preamble ++ (parseline (stripJunk xs) 0 "" filename) ++ epilogue
-
-replCrWithNl :: [Char] -> [Char]
-replCrWithNl = fmap cr2nl
- where cr2nl '\r' = '\n'
- cr2nl c = c
-
-lastSplit c xs = (take (prefix - 1) xs, drop prefix xs)
- where prefix = length xs - (fromJust . elemIndex c . reverse) xs
-
-main = do
- args <- getArgs
- let path = head args
- let pathWithoutExt = fst $ lastSplit '.' path
- let filename = snd $ lastSplit '/' pathWithoutExt
- code <- readFile path
- writeFile (pathWithoutExt ++ ".asm") (parseCode code filename)
diff --git a/projects/07/VMTranslator.o b/projects/07/VMTranslator.o
deleted file mode 100644
index f8e3523..0000000
--- a/projects/07/VMTranslator.o
+++ /dev/null
Binary files differ
diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm
deleted file mode 100644
index a2ca368..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.asm
+++ /dev/null
@@ -1,421 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@RET0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Sys.init
-0;JMP
-(RET0)
-(Main.fibonacci)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFMain3
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFMain3
-0;JMP
-(IFMain3)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFMain3)
-@SP
-AM=M-1
-D=M
-@Main.fibonacci$IF_TRUE
-D;JNE
-@Main.fibonacci$IF_FALSE
-0;JMP
-(Main.fibonacci$IF_TRUE)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Main.fibonacci$IF_FALSE)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET13
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Main.fibonacci
-0;JMP
-(RET13)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET17
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Main.fibonacci
-0;JMP
-(RET17)
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Sys.init)
-@4
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Main.fibonacci
-0;JMP
-(RET2)
-(Sys.init$WHILE)
-@Sys.init$WHILE
-0;JMP
diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp
deleted file mode 100644
index d667834..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] |RAM[261]|
-| 262 | 3 |
diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.out b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.out
deleted file mode 100644
index fdf5e2d..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.out
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] |RAM[261]|
-| 262 | 3 |
diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst b/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst
deleted file mode 100644
index 1f907b1..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst
+++ /dev/null
@@ -1,18 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/FibonacciElement/FibonacciElement.tst
-
-// FibonacciElement.asm results from translating both Main.vm and Sys.vm into
-// a single assembly program, stored in the file FibonacciElement.asm.
-
-load FibonacciElement.asm,
-output-file FibonacciElement.out,
-compare-to FibonacciElement.cmp,
-output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1;
-
-repeat 6000 {
- ticktock;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst b/projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst
deleted file mode 100644
index 87c0920..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/FibonacciElement/FibonacciElementVME.tst
-
-load, // Load all the VM files from the current directory
-output-file FibonacciElement.out,
-compare-to FibonacciElement.cmp,
-output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1;
-
-set sp 261,
-
-repeat 110 {
- vmstep;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/FibonacciElement/Main.vm b/projects/08/FunctionCalls/FibonacciElement/Main.vm
deleted file mode 100644
index 55e5ad2..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/Main.vm
+++ /dev/null
@@ -1,30 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/FibonacciElement/Main.vm
-
-// Computes the n'th element of the Fibonacci series, recursively.
-// n is given in argument[0]. Called by the Sys.init function
-// (part of the Sys.vm file), which also pushes the argument[0]
-// parameter before this code starts running.
-
-function Main.fibonacci 0
-push argument 0
-push constant 2
-lt // checks if n<2
-if-goto IF_TRUE
-goto IF_FALSE
-label IF_TRUE // if n<2, return n
-push argument 0
-return
-label IF_FALSE // if n>=2, returns fib(n-2)+fib(n-1)
-push argument 0
-push constant 2
-sub
-call Main.fibonacci 1 // computes fib(n-2)
-push argument 0
-push constant 1
-sub
-call Main.fibonacci 1 // computes fib(n-1)
-add // returns fib(n-1) + fib(n-2)
-return
diff --git a/projects/08/FunctionCalls/FibonacciElement/Sys.vm b/projects/08/FunctionCalls/FibonacciElement/Sys.vm
deleted file mode 100644
index f3965c9..0000000
--- a/projects/08/FunctionCalls/FibonacciElement/Sys.vm
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/FibonacciElement/Sys.vm
-
-// Pushes a constant, say n, onto the stack, and calls the Main.fibonacii
-// function, which computes the n'th element of the Fibonacci series.
-// Note that by convention, the Sys.init function is called "automatically"
-// by the bootstrap code.
-
-function Sys.init 0
-push constant 4
-call Main.fibonacci 1 // computes the 4'th fibonacci element
-label WHILE
-goto WHILE // loops infinitely
diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.cmp b/projects/08/FunctionCalls/NestedCall/NestedCall.cmp
deleted file mode 100644
index 9200202..0000000
--- a/projects/08/FunctionCalls/NestedCall/NestedCall.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] | RAM[5] | RAM[6] |
-| 261 | 261 | 256 | 4000 | 5000 | 135 | 246 |
diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.html b/projects/08/FunctionCalls/NestedCall/NestedCall.html
deleted file mode 100644
index 0821f9c..0000000
--- a/projects/08/FunctionCalls/NestedCall/NestedCall.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>NestedCall.tst &mdash; Nand2Tetris Calling Convention Test</title>
- <style type="text/css">
- .code {font-family:"Courier New", Courier, monospace; font-size:90%;}
- pre {margin-left:2em;}
- </style>
-</head>
-<body>
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-<h3>Synopsis</h3>
-<b>NestedCall.tst</b> is an intermediate test (in terms of complexity) intended to be used between the SimpleFunction and
-FibonacciElement tests. It may be useful when SimpleFunction passes but FibonacciElement fails or crashes. NestedCall also
-tests several requirements of the Function Calling Protocol that are not verified by the other
-supplied tests. NestedCall can be used with or without the VM bootstrap code.
-<p>
-<b>NestedCallVME.tst</b> runs the same test on the VM Emulator.
-<p>
-<b>The NestedCall</b> tests and supporting documentation were written by Mark Armbrust.
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-<h3>Test Structure</h3>
-<h4>Startup</h4>
-NestedCall is implemented entirely within the Sys.vm file. The first function in Sys.vm is
-Sys.init(). This allows it to be used before the bootstrap code has been added to the VM Translator
-since there will be no file processing order issues.
-<p>
-NestedCall loads Sys.asm, sets up the stack to simulate the bootstrap's call to Sys.init(), then
-begins execution at the beginning of Sys.asm. If the bootstrap is not present, the program begins
-running with Sys.init() since it is the first function in Sys.vm.
-<p>
-If Sys.asm includes the bootstrap, the bootstrap will (re)initialize the stack and call Sys.init(),
-so the test should see the same environment either way it gets to Sys.init().
-<p>
-The test setup also initializes the
-
-<h4>Sys.init()</h4>
-
-<span class="code">THIS</span> and <span class="code">THAT</span> are set to known values so that context save and restore can be tested.
-<p>
-Sys.init() calls Sys.main() and stores the return value in <span class="code">temp 1</span>. This tests call to and
-return from a function with no arguments.
-
-<h4>Sys.main()</h4>
-Sys.init() allocates 5 local variables. It sets <span class="code">local 1</span>, <span class="code">local 2</span> and
-<span class="code">local 3</span>. <span class="code">local 0</span> and <span class="code">local 4</span> are intentionally not set.
-<p>
-<span class="code">THIS</span> and <span class="code">THAT</span> are changed so that context save and restore can be tested.
-<p>
-Sys.main() calls Sys.add12(123) and stores the return value in <span class="code">temp 0</span>. This tests call to and
-return from a function with arguments.
-<p>
-After Sys.add12() returns, Sys.main() sums <span class="code">local 0</span> through <span class="code">local 4</span> and returns the
-result. This tests that the local segment was properly allocated on the stack and that the local
-variables were not overwritten by the call to Sys.main(). It also tests that <span class="code">local 0</span> and
-<span class="code">local 4</span> were properly initialized to 0.
-
-<h4>Sys.add12()</h4>
-
-<span class="code">THIS</span> and <span class="code">THAT</span> are set to known values so that context save and restore can be tested.
-<p>
-Returns <span class="code">argument 0</span> plus 12.
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-<h3>Test Coverage</h3>
-
-<p style="margin-left:1em; text-indent:-1em;">
-Functions with no arguments return to correct RIP (Return Instruction Point) with correct return value on stack.<br>
-This can fail if the RIP is not correctly pushed on the stack by the calling code, or if the returning
-code does not store the RIP in a temporary register before overwriting it with the return value.
-
-<p style="margin-left:1em; text-indent:-1em;">
-Functions with arguments return to correct RIP with correct return value on stack.<br>
-This can fail if it is assumed that <span class="code">ARG</span> points to the RIP.
-
-<p style="margin-left:1em; text-indent:-1em;">
-Functions with local variables allocate space on the stack for the local variables.<br>
-This can fail if the function prologue is not written or if the SP is not updated after zeroing
-the local variables.
-
-<p style="margin-left:1em; text-indent:-1em;">
-All local variables are initialized to 0.<br>
-Common errors are to forget this completely, or for the zeroing loop to be off by one.
-
-<p style="margin-left:1em; text-indent:-1em;">
-<span class="code">THIS</span> and <span class="code">THAT</span> are correctly retained across function calls. Looking ahead, in Project 9 you will be asked to write a simple computer game in the high-level Jack language. You can run your game (following compilation) on the supplied VM Emulator. But, if you choose to translate the VM code that the compiler generates using <em>your</em> VM Translator, then code like
-"<span class="code">push THIS</span>, <span class="code">push THAT</span> ... <span class="code">pop THIS</span>, <span class="code">pop THAT</span>" can cause some interesting failures!
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-<h3>Debugging</h3>
-These comments assume that your VM translator has passed the SimpleFunction test.
-<p>
-If <span class="code">RAM[0]</span> is incorrect, you have a stack skew. More data was pushed onto the stack by
-<span class="code">call</span> than was popped by <span class="code">return</span>, or vice versa. See <i>debugging with
-breakpoints</i> later in this section.
-<p>
-If one or more of <span class="code">RAM[1]</span> through <span class="code">RAM[4]</span> is incorrect, the <span class="code">LCL</span>,
-<span class="code">ARG</span>, <span class="code">THIS</span> and <span class="code">THAT</span> pointers are not being correctly saved or restored.
-Most likely problem is when they are being saved; the SimpleFunction test verified that
-<span class="code">return</span> restored them correctly.
-<p>
-If <span class="code">RAM[5]</span> is incorrect there may be a problem with setting up the <span class="code">ARG</span> pointer.
-<p>
-If <span class="code">RAM[4]</span> is incorrect and <span class="code">RAM[5]</span> is correct, there may be a problem with
-allocation or initialization of local variables.
-
-<h4>Debugging with breakpoints</h4>
-
-To find tough bugs you can use the "breakpoint" facility in the CPU Emulator (red flag button).
-You can use breakpoints to have you program stop when it gets to a particular RAM address. For
-example:<br>
-&emsp;&bull;&ensp;load the NestedCall.tst file,<br>
-&emsp;&bull;&ensp;set a PC breakpoint at the ROM address for <span class="code">(Sys.main)</span>,<br>
-&emsp;&bull;&ensp;hit the run button.<br>
-When the CPU Emulator stops at the breakpoint you can inspect the RAM to check the stack and pointers values.
-(If the breakpoint isn't hit, you will need to to single-step debug through
-your calling code to see why it didn't get there.)
-<p>
-Other useful places to set breakpoints are the entry points to the other functions and at the
-first and final instructions generated for <span class="code">return</span> commands.
-<p>
-<a href="NestedCallStack.html">NestedCallStack.html</a> shows the expected stack values at various points
-during the test.
-
-<h4>Finding ROM address in your ASM code</h4>
-It is not easy to find the ROM locations where you want to set breakpoints, because there is no
-one-to-one correspondence between the ASM file line numbers and the ROM addresses. This is made even more
-difficult because the supplied CPU Emulator does not display the (LABELS) in its ROM panel.
-<p>
-There are two things that you can do to make this easier.
-<p>
-<h5>Modify your assembler to generate a listing file.</h5>
-A listing file shows all the ASM source lines, including comments, as well as the ROM addresses and
-the values of the labels and the instructions. For example, here is a snippet of a listing file generated by an assembler written by Mark Armbrust:
-<pre>
- 20 16 @i // i -= 1
- 21 FC88 M=M-1
-
- 22 FC10 D=M // if i > 0
- 23 6 @LOOP
- 24 E301 D;JGT // goto LOOP
-
- 25 (STOP)
- 25 25 @STOP
- 26 EA87 0;JMP
-
-Data Symbols
-
- 16 D i
-
-Code Symbols
-
- 6 C LOOP
- 17 C SKIP
- 25 C STOP
-</pre>
-For the Nand2Tetris environment, it is most useful to list the ROM addresses and A-instruction
-values in decimal. In the above snippet, the C-instruction values are
-listed in hexadecimal.
-<p>
-The list file is generated during pass 2 of the Assembler, parallel to generating the .hack file. To
-make it easier to handle blank and comment only lines, Mark has Parser.commandType() return
-NO_COMMAND for source lines with no command. Mark also added Parser.sourceLine() that returns the
-unmodified source line.
-<p>
-<h5>Have your VM Translator write the VM source lines as comments in the ASM output.</h5>
-For example:
-<pre>
- // label LOOP
-(Sys.init$LOOP)
- // goto LOOP
-@Sys.init$LOOP
-0;JMP
- //
- // // Sys.main()
- //
- // // Sets locals 1, 2 and 3, leaving locals 0 and 4 unchanged to test
- // // default local initialization to 0. (RAM set to -1 by test setup.)
- // // Calls Sys.add12(123) and stores return value (135) in temp 0.
- // // Returns local 0 + local 1 + local 2 + local 3 + local 4 (456) to confirm
- // // that locals were not mangled by function call.
- //
- // function Sys.main 5
-(Sys.main)
-@5
-D=-A
-($3)
-@SP
-</pre>
-Note that comments in the VM source become double comments. Looking ahead, in Project 11 you will be asked to write a compiler for the Jack language. If your compiler will write the Jack source lines as comments in the
-generated VM files, this convention will be quite useful.
-
-</body>
-</html> \ No newline at end of file
diff --git a/projects/08/FunctionCalls/NestedCall/NestedCall.tst b/projects/08/FunctionCalls/NestedCall/NestedCall.tst
deleted file mode 100644
index 70e5523..0000000
--- a/projects/08/FunctionCalls/NestedCall/NestedCall.tst
+++ /dev/null
@@ -1,65 +0,0 @@
-// Test file for NestedCall test.
-
-load NestedCall.asm,
-output-file NestedCall.out,
-compare-to NestedCall.cmp,
-output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1 RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[5]%D1.6.1 RAM[6]%D1.6.1;
-
-set RAM[0] 261,
-set RAM[1] 261,
-set RAM[2] 256,
-set RAM[3] -3,
-set RAM[4] -4,
-set RAM[5] -1, // test results
-set RAM[6] -1,
-set RAM[256] 1234, // fake stack frame from call Sys.init
-set RAM[257] -1,
-set RAM[258] -2,
-set RAM[259] -3,
-set RAM[260] -4,
-
-set RAM[261] -1, // Initialize stack to check for local segment
-set RAM[262] -1, // being cleared to zero.
-set RAM[263] -1,
-set RAM[264] -1,
-set RAM[265] -1,
-set RAM[266] -1,
-set RAM[267] -1,
-set RAM[268] -1,
-set RAM[269] -1,
-set RAM[270] -1,
-set RAM[271] -1,
-set RAM[272] -1,
-set RAM[273] -1,
-set RAM[274] -1,
-set RAM[275] -1,
-set RAM[276] -1,
-set RAM[277] -1,
-set RAM[278] -1,
-set RAM[279] -1,
-set RAM[280] -1,
-set RAM[281] -1,
-set RAM[282] -1,
-set RAM[283] -1,
-set RAM[284] -1,
-set RAM[285] -1,
-set RAM[286] -1,
-set RAM[287] -1,
-set RAM[288] -1,
-set RAM[289] -1,
-set RAM[290] -1,
-set RAM[291] -1,
-set RAM[292] -1,
-set RAM[293] -1,
-set RAM[294] -1,
-set RAM[295] -1,
-set RAM[296] -1,
-set RAM[297] -1,
-set RAM[298] -1,
-set RAM[299] -1,
-
-repeat 4000 {
- ticktock;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/NestedCall/NestedCallStack.html b/projects/08/FunctionCalls/NestedCall/NestedCallStack.html
deleted file mode 100644
index 70582b6..0000000
--- a/projects/08/FunctionCalls/NestedCall/NestedCallStack.html
+++ /dev/null
@@ -1,306 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>NestedCall.tst &mdash; Stack Frames</title>
- <style type="text/css">
- .stack {border-collapse:collapse; font-size:80%;}
- .stack td {padding-left:.25em;padding-right:.25em;white-space:nowrap;}
- .stack td:first-child {text-align:right;}
- .stack td:first-child + td {text-align:right;}
- .stack td:first-child + td + td {text-align:left;}
- .stack td:first-child + td + td + td {text-align:left;}
- .stack .reg {border-left:1px solid; border-right:1px solid;}
- .stack .reg th {border:1px solid;}
- .stack .stack {border-left:1px solid; border-right:1px solid;}
- .stack .stack th {border:1px solid;}
- .stack .tos {border-left:1px solid; border-right:1px solid;border-bottom:1px solid;}
- .stack .frame {border-left:1px solid; border-right:1px solid;}
- .stack .frame td:first-child + td {border-left:1px solid;}
- .stack .frame td:first-child + td + td {border-right:1px solid;}
- .stack .framet {border-left:1px solid; border-right:1px solid;}
- .stack .framet td:first-child + td {border-left:1px solid;border-top:1px solid;}
- .stack .framet td:first-child + td + td {border-right:1px solid;border-top:1px solid;}
- .stack .bframe {border-left:1px solid; border-right:1px solid;}
- .stack .bframe td:first-child + td {border-left:2px solid;}
- .stack .bframe td:first-child + td + td {border-right:2px solid;}
- .stack .bframet {border-left:1px solid; border-right:1px solid;}
- .stack .bframet td:first-child + td {border-left:2px solid;border-top:2px solid;}
- .stack .bframet td:first-child + td + td {border-right:2px solid;border-top:2px solid;}
- .stack .bframeb {border-left:1px solid; border-right:1px solid;}
- .stack .bframeb td:first-child + td {border-left:2px solid;border-bottom:2px solid;}
- .stack .bframeb td:first-child + td + td {border-right:2px solid;border-bottom:2px solid;}
- .stack .note td {padding-left:.5em;padding-right:.5em;white-space:normal;text-align:justify;}
- .stack .fid {font-style:italic}
- .master {width: 10%;}
- .master td {vertical-align:top;padding-right:.5em; }
- </style>
-</head>
-<body>
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-<table class="master">
-<tr>
- <td>
- <table class="stack">
- <tr><th colspan="4">Bootstrap init</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>256</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>-1</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>-2</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>-3</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>-4</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="tos"><td>256</td><td>???</td><td></td><td>&larr;SP</td></tr>
- <tr class="note"><td colspan="4"><br>
- This is how my boot&shy;strap code initial&shy;izes the pointers before calling Sys.init().
- <p>
- Setting the LCL, ARG, THIS and THAT point&shy;ers to known illegal values helps identify
- when a pointer is used before it is initial&shy;ized.
- <p>
- (If you are running the NestedCall test with&shy;out boot&shy;strap code, you will not see this state.)</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">Entry to Sys.init()</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>261</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>261</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>256</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>-3</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>-4</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="bframet"><td>256</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="bframe"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframeb"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="tos"><td>261</td><td>???</td><td></td><td>&larr;LCL, SP</td></tr>
- <tr class="note"><td colspan="4"><br>
- This is how NestedCall.tst initial&shy;izes the pointers and stack. This is what RAM looks
- like after my boot&shy;strap calls Sys.init().
- <p>
- (If your VM trans&shy;lation includes the boot&shy;strap, the -1 through -4 values may be
- different if your boot&shy;strap initial&shy;izes them.)</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">Entry to Sys.main()</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>266</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>266</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>261</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4000</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5000</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="framet"><td>256</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="frame"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframet"><td>261</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>262</td><td>261</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>263</td><td>256</td><td>Saved ARG</td><td class="fid">Sys.main</td></tr>
- <tr class="bframe"><td>264</td><td>4000</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframeb"><td>265</td><td>5000</td><td>Saved THAT</td><td></td></tr>
- <tr class="tos"><td>266</td><td>???</td><td></td><td>&larr;LCL, SP</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">After Sys.main() prologue</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>271</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>266</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>261</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4000</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5000</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="framet"><td>256</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="frame"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframet"><td>261</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>262</td><td>261</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>263</td><td>256</td><td>Saved ARG</td><td class="fid">Sys.main</td></tr>
- <tr class="bframe"><td>264</td><td>4000</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframe"><td>265</td><td>5000</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframe"><td>266</td><td>0</td><td>local 0</td><td>&larr;LCL</td></tr>
- <tr class="bframe"><td>267</td><td>0</td><td>local 1</td><td></td></tr>
- <tr class="bframe"><td>268</td><td>0</td><td>local 2</td><td></td></tr>
- <tr class="bframe"><td>269</td><td>0</td><td>local 3</td><td></td></tr>
- <tr class="bframeb"><td>270</td><td>0</td><td>local 4</td><td></td></tr>
- <tr class="tos"><td>271</td><td>???</td><td></td><td>&larr;SP</td></tr>
- <tr class="note"><td colspan="4"><br>
- The <i>function prologue</i> is the assembly language code generated for the
- "function" VM command.
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">Entry to Sys.add12(123)</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>277</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>277</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>271</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4001</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5001</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="framet"><td>256</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="frame"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="framet"><td>261</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>262</td><td>261</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>263</td><td>256</td><td>Saved ARG</td><td class="fid">Sys.main</td></tr>
- <tr class="frame"><td>264</td><td>4000</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>265</td><td>5000</td><td>Saved THAT</td><td></td></tr>
- <tr class="frame"><td>266</td><td>0</td><td>local 0</td><td></td></tr>
- <tr class="frame"><td>267</td><td>200</td><td>local 1</td><td></td></tr>
- <tr class="frame"><td>268</td><td>40</td><td>local 2</td><td></td></tr>
- <tr class="frame"><td>269</td><td>6</td><td>local 3</td><td></td></tr>
- <tr class="frame"><td>270</td><td>0</td><td>local 4</td><td></td></tr>
- <tr class="bframet"><td>271</td><td>123</td><td>argument 0</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>272</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="bframe"><td>273</td><td>266</td><td>Saved LCL</td><td class="fid">Sys.add12</td></tr>
- <tr class="bframe"><td>274</td><td>261</td><td>Saved ARG</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframe"><td>275</td><td>4001</td><td>Saved THIS</td><td></td></tr>
- <tr class="bframeb"><td>276</td><td>5001</td><td>Saved THAT</td><td></td></tr>
- <tr class="tos"><td>277</td><td>???</td><td></td><td>&larr;LCL, SP</td></tr>
- </table>
- </td>
-</tr></table>
-
-<p>
-
-<table class="master">
-<tr>
- <td>
- <table class="stack">
- <tr><th colspan="4">Before Sys.add12() return</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>278</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>277</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>271</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4002</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5002</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="framet"><td>256</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="frame"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="framet"><td>261</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>262</td><td>261</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>263</td><td>256</td><td>Saved ARG</td><td class="fid">Sys.main</td></tr>
- <tr class="frame"><td>264</td><td>4000</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>265</td><td>5000</td><td>Saved THAT</td><td></td></tr>
- <tr class="frame"><td>266</td><td>0</td><td>local 0</td><td></td></tr>
- <tr class="frame"><td>267</td><td>200</td><td>local 1</td><td></td></tr>
- <tr class="frame"><td>268</td><td>40</td><td>local 2</td><td></td></tr>
- <tr class="frame"><td>269</td><td>6</td><td>local 3</td><td></td></tr>
- <tr class="frame"><td>270</td><td>0</td><td>local 4</td><td></td></tr>
- <tr class="bframet"><td>271</td><td>123</td><td>argument 0</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>272</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="bframe"><td>273</td><td>266</td><td>Saved LCL</td><td class="fid">Sys.add12</td></tr>
- <tr class="bframe"><td>274</td><td>261</td><td>Saved ARG</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframe"><td>275</td><td>4001</td><td>Saved THIS</td><td></td></tr>
- <tr class="bframe"><td>276</td><td>5001</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframeb"><td>277</td><td>135</td><td>Return value</td><td>&larr;LCL</td></tr>
- <tr class="tos"><td>278</td><td>???</td><td></td><td>&larr;SP</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">After Sys.add12() return</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>272</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>266</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>261</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4001</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5001</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="framet"><td>256</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="frame"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframet"><td>261</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>262</td><td>261</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>263</td><td>256</td><td>Saved ARG</td><td class="fid">Sys.main</td></tr>
- <tr class="bframe"><td>264</td><td>4000</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframe"><td>265</td><td>5000</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframe"><td>266</td><td>0</td><td>local 0</td><td>&larr;LCL</td></tr>
- <tr class="bframe"><td>267</td><td>200</td><td>local 1</td><td></td></tr>
- <tr class="bframe"><td>268</td><td>40</td><td>local 2</td><td></td></tr>
- <tr class="bframe"><td>269</td><td>6</td><td>local 3</td><td></td></tr>
- <tr class="bframe"><td>270</td><td>0</td><td>local 4</td><td></td></tr>
- <tr class="bframeb"><td>271</td><td>135</td><td>Return value</td><td></td></tr>
- <tr class="tos"><td>272</td><td>???</td><td></td><td>&larr;SP</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">Before Sys.main() return</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>272</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>266</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>261</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4001</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5001</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="framet"><td>256</td><td>*</td><td>Return IP</td><td></td></tr>
- <tr class="frame"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="frame"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="frame"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="frame"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframet"><td>261</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>262</td><td>261</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>263</td><td>256</td><td>Saved ARG</td><td class="fid">Sys.main</td></tr>
- <tr class="bframe"><td>264</td><td>4000</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframe"><td>265</td><td>5000</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframe"><td>266</td><td>0</td><td>local 0</td><td>&larr;LCL</td></tr>
- <tr class="bframe"><td>267</td><td>200</td><td>local 1</td><td></td></tr>
- <tr class="bframe"><td>268</td><td>40</td><td>local 2</td><td></td></tr>
- <tr class="bframe"><td>269</td><td>6</td><td>local 3</td><td></td></tr>
- <tr class="bframe"><td>270</td><td>0</td><td>local 4</td><td></td></tr>
- <tr class="bframeb"><td>271</td><td>246</td><td>Return value</td><td></td></tr>
- <tr class="tos"><td>272</td><td>???</td><td></td><td>&larr;SP</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">After Sys.main() return</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>262</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>261</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>256</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4000</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5000</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="bframet"><td>256</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="bframe"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframe"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="bframeb"><td>261</td><td>246</td><td>Return value</td><td>&larr;LCL</td></tr>
- <tr class="tos"><td>262</td><td>???</td><td></td><td>&larr;SP</td></tr>
- </table>
- </td><td>
- <table class="stack">
- <tr><th colspan="4">In Sys.init() halt loop</th></tr>
- <tr class="reg"><th colspan="4">Pointers</th></tr>
- <tr class="reg"><td>0</td><td>261</td><td>SP</td><td></td></tr>
- <tr class="reg"><td>1</td><td>261</td><td>LCL</td><td></td></tr>
- <tr class="reg"><td>2</td><td>256</td><td>ARG</td><td></td></tr>
- <tr class="reg"><td>3</td><td>4000</td><td>THIS</td><td></td></tr>
- <tr class="reg"><td>4</td><td>5000</td><td>THAT</td><td></td></tr>
- <tr class="stack"><th colspan="4">Stack</th></tr>
- <tr class="bframet"><td>256</td><td>*</td><td>Return IP</td><td>&larr;ARG</td></tr>
- <tr class="bframe"><td>257</td><td>-1</td><td>Saved LCL</td><td></td></tr>
- <tr class="bframe"><td>258</td><td>-2</td><td>Saved ARG</td><td class="fid">Sys.init</td></tr>
- <tr class="bframe"><td>259</td><td>-3</td><td>Saved THIS</td><td class="fid">&ensp;frame</td></tr>
- <tr class="bframeb"><td>260</td><td>-4</td><td>Saved THAT</td><td></td></tr>
- <tr class="tos"><td>261</td><td>???</td><td></td><td>&larr;LCL, SP</td></tr>
- </table>
- </td>
-</tr></table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/projects/08/FunctionCalls/NestedCall/NestedCallVME.tst b/projects/08/FunctionCalls/NestedCall/NestedCallVME.tst
deleted file mode 100644
index 2c689b8..0000000
--- a/projects/08/FunctionCalls/NestedCall/NestedCallVME.tst
+++ /dev/null
@@ -1,70 +0,0 @@
-// Test file for NestedCall test.
-
-load Sys.vm,
-output-file NestedCall.out,
-compare-to NestedCall.cmp,
-output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1 RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[5]%D1.6.1 RAM[6]%D1.6.1;
-
-set RAM[0] 261,
-set RAM[1] 261,
-set RAM[2] 256,
-set RAM[3] -3,
-set RAM[4] -4,
-set RAM[5] -1, // test results
-set RAM[6] -1,
-set RAM[256] 1234, // fake stack frame from call Sys.init
-set RAM[257] -1,
-set RAM[258] -2,
-set RAM[259] -3,
-set RAM[260] -4,
-
-set RAM[261] -1, // Initialize stack to check for local segment
-set RAM[262] -1, // being cleared to zero.
-set RAM[263] -1,
-set RAM[264] -1,
-set RAM[265] -1,
-set RAM[266] -1,
-set RAM[267] -1,
-set RAM[268] -1,
-set RAM[269] -1,
-set RAM[270] -1,
-set RAM[271] -1,
-set RAM[272] -1,
-set RAM[273] -1,
-set RAM[274] -1,
-set RAM[275] -1,
-set RAM[276] -1,
-set RAM[277] -1,
-set RAM[278] -1,
-set RAM[279] -1,
-set RAM[280] -1,
-set RAM[281] -1,
-set RAM[282] -1,
-set RAM[283] -1,
-set RAM[284] -1,
-set RAM[285] -1,
-set RAM[286] -1,
-set RAM[287] -1,
-set RAM[288] -1,
-set RAM[289] -1,
-set RAM[290] -1,
-set RAM[291] -1,
-set RAM[292] -1,
-set RAM[293] -1,
-set RAM[294] -1,
-set RAM[295] -1,
-set RAM[296] -1,
-set RAM[297] -1,
-set RAM[298] -1,
-set RAM[299] -1,
-
-set sp 261,
-set local 261,
-set argument 256,
-set this 3000,
-set that 4000;
-
-repeat 50 {
- vmstep;
-}
-output;
diff --git a/projects/08/FunctionCalls/NestedCall/Sys.vm b/projects/08/FunctionCalls/NestedCall/Sys.vm
deleted file mode 100644
index 8b0b003..0000000
--- a/projects/08/FunctionCalls/NestedCall/Sys.vm
+++ /dev/null
@@ -1,63 +0,0 @@
-// Sys.vm for NestedCall test.
-
-// Sys.init()
-//
-// Calls Sys.main() and stores return value in temp 1.
-// Does not return. (Enters infinite loop.)
-
-function Sys.init 0
-push constant 4000 // test THIS and THAT context save
-pop pointer 0
-push constant 5000
-pop pointer 1
-call Sys.main 0
-pop temp 1
-label LOOP
-goto LOOP
-
-// Sys.main()
-//
-// Sets locals 1, 2 and 3, leaving locals 0 and 4 unchanged to test
-// default local initialization to 0. (RAM set to -1 by test setup.)
-// Calls Sys.add12(123) and stores return value (135) in temp 0.
-// Returns local 0 + local 1 + local 2 + local 3 + local 4 (456) to confirm
-// that locals were not mangled by function call.
-
-function Sys.main 5
-push constant 4001
-pop pointer 0
-push constant 5001
-pop pointer 1
-push constant 200
-pop local 1
-push constant 40
-pop local 2
-push constant 6
-pop local 3
-push constant 123
-call Sys.add12 1
-pop temp 0
-push local 0
-push local 1
-push local 2
-push local 3
-push local 4
-add
-add
-add
-add
-return
-
-// Sys.add12(int n)
-//
-// Returns n+12.
-
-function Sys.add12 0
-push constant 4002
-pop pointer 0
-push constant 5002
-pop pointer 1
-push argument 0
-push constant 12
-add
-return
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm
deleted file mode 100644
index de3a0da..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.asm
+++ /dev/null
@@ -1,138 +0,0 @@
-(SimpleFunction.test)
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp
deleted file mode 100644
index c3ea911..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] |RAM[310]|
-| 311 | 305 | 300 | 3010 | 4010 | 1196 |
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.out b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.out
deleted file mode 100644
index ef72b7a..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.out
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] |RAM[310]|
-| 311 | 305 | 300 | 3010 | 4010 | 1196 |
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst
deleted file mode 100644
index c7b5905..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/SimpleFunction/SimpleFunction.tst
-
-load SimpleFunction.asm,
-output-file SimpleFunction.out,
-compare-to SimpleFunction.cmp,
-output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1
- RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[310]%D1.6.1;
-
-set RAM[0] 317,
-set RAM[1] 317,
-set RAM[2] 310,
-set RAM[3] 3000,
-set RAM[4] 4000,
-set RAM[310] 1234,
-set RAM[311] 37,
-set RAM[312] 1000,
-set RAM[313] 305,
-set RAM[314] 300,
-set RAM[315] 3010,
-set RAM[316] 4010,
-
-repeat 300 {
- ticktock;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm
deleted file mode 100644
index d64a34f..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/SimpleFunction/SimpleFunction.vm
-
-// Performs a simple calculation and returns the result.
-function SimpleFunction.test 2
-push local 0
-push local 1
-add
-not
-push argument 0
-add
-push argument 1
-sub
-return
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction1.asm b/projects/08/FunctionCalls/SimpleFunction/SimpleFunction1.asm
deleted file mode 100644
index 7fe71a5..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunction1.asm
+++ /dev/null
@@ -1,137 +0,0 @@
-(SimpleFunction.test)
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R13
-A=M-1
-A=M
-0;JMP
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst b/projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst
deleted file mode 100644
index c9267ee..0000000
--- a/projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/SimpleFunction/SimpleFunctionVME.tst
-
-load SimpleFunction.vm,
-output-file SimpleFunction.out,
-compare-to SimpleFunction.cmp,
-output-list RAM[0]%D1.6.1 RAM[1]%D1.6.1 RAM[2]%D1.6.1
- RAM[3]%D1.6.1 RAM[4]%D1.6.1 RAM[310]%D1.6.1;
-
-set sp 317,
-set local 317,
-set argument 310,
-set this 3000,
-set that 4000,
-set argument[0] 1234,
-set argument[1] 37,
-set argument[2] 9,
-set argument[3] 305,
-set argument[4] 300,
-set argument[5] 3010,
-set argument[6] 4010,
-
-repeat 10 {
- vmstep;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/StaticsTest/Class1.vm b/projects/08/FunctionCalls/StaticsTest/Class1.vm
deleted file mode 100644
index c463537..0000000
--- a/projects/08/FunctionCalls/StaticsTest/Class1.vm
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/StaticsTest/Class1.vm
-
-// Stores two supplied arguments in static[0] and static[1].
-function Class1.set 0
-push argument 0
-pop static 0
-push argument 1
-pop static 1
-push constant 0
-return
-
-// Returns static[0] - static[1].
-function Class1.get 0
-push static 0
-push static 1
-sub
-return
diff --git a/projects/08/FunctionCalls/StaticsTest/Class2.vm b/projects/08/FunctionCalls/StaticsTest/Class2.vm
deleted file mode 100644
index 94f2946..0000000
--- a/projects/08/FunctionCalls/StaticsTest/Class2.vm
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/StaticsTest/Class2.vm
-
-// Stores two supplied arguments in static[0] and static[1].
-function Class2.set 0
-push argument 0
-pop static 0
-push argument 1
-pop static 1
-push constant 0
-return
-
-// Returns static[0] - static[1].
-function Class2.get 0
-push static 0
-push static 1
-sub
-return
diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.asm b/projects/08/FunctionCalls/StaticsTest/StaticsTest.asm
deleted file mode 100644
index 2d6f2aa..0000000
--- a/projects/08/FunctionCalls/StaticsTest/StaticsTest.asm
+++ /dev/null
@@ -1,586 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@RET0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Sys.init
-0;JMP
-(RET0)
-(Class2.set)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@Class2.0
-M=D
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@Class2.1
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Class2.get)
-@Class2.0
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@Class2.1
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Sys.init)
-@6
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@8
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET3
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@Class1.set
-0;JMP
-(RET3)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@23
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@15
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET7
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@Class2.set
-0;JMP
-(RET7)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@RET9
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Class1.get
-0;JMP
-(RET9)
-@RET10
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Class2.get
-0;JMP
-(RET10)
-(Sys.init$WHILE)
-@Sys.init$WHILE
-0;JMP
-(Class1.set)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@Class1.0
-M=D
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@Class1.1
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Class1.get)
-@Class1.0
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@Class1.1
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp b/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp
deleted file mode 100644
index 5589f1e..0000000
--- a/projects/08/FunctionCalls/StaticsTest/StaticsTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] |RAM[261]|RAM[262]|
-| 263 | -2 | 8 |
diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.out b/projects/08/FunctionCalls/StaticsTest/StaticsTest.out
deleted file mode 100644
index 309f058..0000000
--- a/projects/08/FunctionCalls/StaticsTest/StaticsTest.out
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] |RAM[261]|RAM[262]|
-| 263 | -2 | 8 |
diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst b/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst
deleted file mode 100644
index 1b9194e..0000000
--- a/projects/08/FunctionCalls/StaticsTest/StaticsTest.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/StaticsTest/StaticsTest.tst
-
-load StaticsTest.asm,
-output-file StaticsTest.out,
-compare-to StaticsTest.cmp,
-output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1 RAM[262]%D1.6.1;
-
-set RAM[0] 256,
-
-repeat 2500 {
- ticktock;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst b/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst
deleted file mode 100644
index 130ba66..0000000
--- a/projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/StaticsTest/StaticsTestVME.tst
-
-load, // loads all the VM files from the current directory.
-output-file StaticsTest.out,
-compare-to StaticsTest.cmp,
-output-list RAM[0]%D1.6.1 RAM[261]%D1.6.1 RAM[262]%D1.6.1;
-
-set sp 261,
-
-repeat 36 {
- vmstep;
-}
-
-output;
diff --git a/projects/08/FunctionCalls/StaticsTest/Sys.vm b/projects/08/FunctionCalls/StaticsTest/Sys.vm
deleted file mode 100644
index 3708322..0000000
--- a/projects/08/FunctionCalls/StaticsTest/Sys.vm
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/FunctionCalls/StaticsTest/Sys.vm
-
-// Tests that different functions, stored in two different
-// class files, manipulate the static segment correctly.
-function Sys.init 0
-push constant 6
-push constant 8
-call Class1.set 2
-pop temp 0 // Dumps the return value
-push constant 23
-push constant 15
-call Class2.set 2
-pop temp 0 // Dumps the return value
-call Class1.get 0
-call Class2.get 0
-label WHILE
-goto WHILE
diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.asm b/projects/08/ProgramFlow/BasicLoop/BasicLoop.asm
deleted file mode 100644
index b2e42a7..0000000
--- a/projects/08/ProgramFlow/BasicLoop/BasicLoop.asm
+++ /dev/null
@@ -1,133 +0,0 @@
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-($LOOP_START)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@$LOOP_START
-D;JNE
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp b/projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp
deleted file mode 100644
index 00d35d2..0000000
--- a/projects/08/ProgramFlow/BasicLoop/BasicLoop.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] |RAM[256]|
-| 257 | 6 |
diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.out b/projects/08/ProgramFlow/BasicLoop/BasicLoop.out
deleted file mode 100644
index 1786c7c..0000000
--- a/projects/08/ProgramFlow/BasicLoop/BasicLoop.out
+++ /dev/null
@@ -1,2 +0,0 @@
-| RAM[0] |RAM[256]|
-| 257 | 6 |
diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.tst b/projects/08/ProgramFlow/BasicLoop/BasicLoop.tst
deleted file mode 100644
index 50ca118..0000000
--- a/projects/08/ProgramFlow/BasicLoop/BasicLoop.tst
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/ProgramFlow/BasicLoop/BasicLoop.tst
-
-load BasicLoop.asm,
-output-file BasicLoop.out,
-compare-to BasicLoop.cmp,
-output-list RAM[0]%D1.6.1 RAM[256]%D1.6.1;
-
-set RAM[0] 256,
-set RAM[1] 300,
-set RAM[2] 400,
-set RAM[400] 3,
-
-repeat 600 {
- ticktock;
-}
-
-output;
diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoop.vm b/projects/08/ProgramFlow/BasicLoop/BasicLoop.vm
deleted file mode 100644
index 2d63f13..0000000
--- a/projects/08/ProgramFlow/BasicLoop/BasicLoop.vm
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/ProgramFlow/BasicLoop/BasicLoop.vm
-
-// Computes the sum 1 + 2 + ... + argument[0] and pushes the
-// result onto the stack. Argument[0] is initialized by the test
-// script before this code starts running.
-push constant 0
-pop local 0 // initializes sum = 0
-label LOOP_START
-push argument 0
-push local 0
-add
-pop local 0 // sum = sum + counter
-push argument 0
-push constant 1
-sub
-pop argument 0 // counter--
-push argument 0
-if-goto LOOP_START // If counter > 0, goto LOOP_START
-push local 0
diff --git a/projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst b/projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst
deleted file mode 100644
index 237fdff..0000000
--- a/projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/ProgramFlow/BasicLoop/BasicLoopVME.tst
-
-load BasicLoop.vm,
-output-file BasicLoop.out,
-compare-to BasicLoop.cmp,
-output-list RAM[0]%D1.6.1 RAM[256]%D1.6.1;
-
-set sp 256,
-set local 300,
-set argument 400,
-set argument[0] 3,
-
-repeat 33 {
- vmstep;
-}
-
-output;
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm
deleted file mode 100644
index 3436cef..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.asm
+++ /dev/null
@@ -1,234 +0,0 @@
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@4
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-($MAIN_LOOP_START)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@$COMPUTE_ELEMENT
-D;JNE
-@$END_PROGRAM
-0;JMP
-($COMPUTE_ELEMENT)
-@THAT
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@4
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@4
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@$MAIN_LOOP_START
-0;JMP
-($END_PROGRAM)
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp
deleted file mode 100644
index c262a4b..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[3000]|RAM[3001]|RAM[3002]|RAM[3003]|RAM[3004]|RAM[3005]|
-| 0 | 1 | 1 | 2 | 3 | 5 |
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.out b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.out
deleted file mode 100644
index 304e7c1..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.out
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[3000]|RAM[3001]|RAM[3002]|RAM[3003]|RAM[3004]|RAM[3005]|
-| 0 | 1 | 1 | 2 | 3 | 5 |
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst
deleted file mode 100644
index 07df2b9..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.tst
-
-load FibonacciSeries.asm,
-output-file FibonacciSeries.out,
-compare-to FibonacciSeries.cmp,
-output-list RAM[3000]%D1.6.2 RAM[3001]%D1.6.2 RAM[3002]%D1.6.2
- RAM[3003]%D1.6.2 RAM[3004]%D1.6.2 RAM[3005]%D1.6.2;
-
-set RAM[0] 256,
-set RAM[1] 300,
-set RAM[2] 400,
-set RAM[400] 6,
-set RAM[401] 3000,
-
-repeat 1100 {
- ticktock;
-}
-
-output;
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm
deleted file mode 100644
index 6a643b6..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm
+++ /dev/null
@@ -1,49 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries.vm
-
-// Puts the first argument[0] elements of the Fibonacci series
-// in the memory, starting in the address given in argument[1].
-// Argument[0] and argument[1] are initialized by the test script
-// before this code starts running.
-
-push argument 1
-pop pointer 1 // that = argument[1]
-
-push constant 0
-pop that 0 // first element in the series = 0
-push constant 1
-pop that 1 // second element in the series = 1
-
-push argument 0
-push constant 2
-sub
-pop argument 0 // num_of_elements -= 2 (first 2 elements are set)
-
-label MAIN_LOOP_START
-
-push argument 0
-if-goto COMPUTE_ELEMENT // if num_of_elements > 0, goto COMPUTE_ELEMENT
-goto END_PROGRAM // otherwise, goto END_PROGRAM
-
-label COMPUTE_ELEMENT
-
-push that 0
-push that 1
-add
-pop that 2 // that[2] = that[0] + that[1]
-
-push pointer 1
-push constant 1
-add
-pop pointer 1 // that += 1
-
-push argument 0
-push constant 1
-sub
-pop argument 0 // num_of_elements--
-
-goto MAIN_LOOP_START
-
-label END_PROGRAM
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries1.asm b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries1.asm
deleted file mode 100644
index 68a4c8e..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeries1.asm
+++ /dev/null
@@ -1,241 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@4
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(MAIN_LOOP_START)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@COMPUTE_ELEMENT
-D;JNE
-@END_PROGRAM
-0;JMP
-(COMPUTE_ELEMENT)
-@THAT
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@4
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@4
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@MAIN_LOOP_START
-0;JMP
-(END_PROGRAM)
-(END)
-@END
-0;JMP \ No newline at end of file
diff --git a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst b/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst
deleted file mode 100644
index 243f31b..0000000
--- a/projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/08/ProgramFlow/FibonacciSeries/FibonacciSeriesVME.tst
-
-load FibonacciSeries.vm,
-output-file FibonacciSeries.out,
-compare-to FibonacciSeries.cmp,
-output-list RAM[3000]%D1.6.2 RAM[3001]%D1.6.2 RAM[3002]%D1.6.2
- RAM[3003]%D1.6.2 RAM[3004]%D1.6.2 RAM[3005]%D1.6.2;
-
-set sp 256,
-set local 300,
-set argument 400,
-set argument[0] 6,
-set argument[1] 3000,
-
-repeat 73 {
- vmstep;
-}
-
-output;
diff --git a/projects/08/VMTranslator b/projects/08/VMTranslator
deleted file mode 100755
index 2b04f49..0000000
--- a/projects/08/VMTranslator
+++ /dev/null
Binary files differ
diff --git a/projects/08/VMTranslator.hi b/projects/08/VMTranslator.hi
deleted file mode 100644
index 66e0a40..0000000
--- a/projects/08/VMTranslator.hi
+++ /dev/null
Binary files differ
diff --git a/projects/08/VMTranslator.o b/projects/08/VMTranslator.o
deleted file mode 100644
index 1d984cf..0000000
--- a/projects/08/VMTranslator.o
+++ /dev/null
Binary files differ
diff --git a/projects/09/Average/Main.jack b/projects/09/Average/Main.jack
deleted file mode 100644
index a359602..0000000
--- a/projects/09/Average/Main.jack
+++ /dev/null
@@ -1,27 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/Average/Main.jack
-
-// Inputs some numbers and computes their average
-class Main {
- function void main() {
- var Array a;
- var int length;
- var int i, sum;
-
- let length = Keyboard.readInt("How many numbers? ");
- let a = Array.new(length); // constructs the array
-
- let i = 0;
- while (i < length) {
- let a[i] = Keyboard.readInt("Enter a number: ");
- let sum = sum + a[i];
- let i = i + 1;
- }
-
- do Output.printString("The average is ");
- do Output.printInt(sum / length);
- return;
- }
-}
diff --git a/projects/09/BitmapEditor/BitmapEditor.html b/projects/09/BitmapEditor/BitmapEditor.html
deleted file mode 100644
index fdb9e0b..0000000
--- a/projects/09/BitmapEditor/BitmapEditor.html
+++ /dev/null
@@ -1,200 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>Sokoban Bitmap Editor</title>
- <script type="text/javascript">
- var grid = new Array(0);
-
- function Init() {
- grid = InitGrid();
- DisplayGrid();
- }
-
- function InitGrid() {
- var _grid = new Array(16);
- for (i=0; i<16; i++) {
- _grid[i] = new Array(16);
- for (j=0; j<16; j++) {
- _grid[i][j]=false;
- }
- }
- return _grid;
- }
-
- function RotateBitmapRight() {
- var _grid = InitGrid();
-
- for (i=0; i<16; i++) {
- for (j=0; j<16; j++) {
- _grid[j][15-i]=grid[i][j];
- }
- }
-
- grid = _grid;
- DisplayGrid();
- }
-
- function MirrorBitmap() {
- var _grid = InitGrid();
-
- for (i=0; i<16; i++) {
- for (j=0; j<16; j++) {
- _grid[i][15-j]=grid[i][j];
- }
- }
-
- grid = _grid;
- DisplayGrid();
- }
-
- function DisplayGrid() {
- var str = "<table border=1 cellspacing=0>";
- var i,j, backgroundColor;
- for (i=-1; i<16; i++) {
- str=str+"<tr>";
- for (j=-1; j<16; j++) {
- if (i == -1 && j != -1) {
- str=str+"<td>" + (j+1) + "</td>";
- } else if (i != -1 && j == -1) {
- str=str+"<td>" + (i+1) + "</td>";
- } else if (i ==-1 && j == -1) {
- str=str+"<td/>";
- } else {
-
- if (grid[i][j] == true)
- backgroundColor = "black";
- else
- backgroundColor = "white";
-
- str=str+"<td onclick=\"OnCellClicked(this)\" id="; str=str+(i*16+j); str=str+" width=16 height=16 bgcolor=" + backgroundColor + "></td>";
- }
- }
- str=str+"</tr>";
- }
- str=str+"</table>"
-
- gridElement = document.getElementById('grid');
- gridElement.innerHTML = str;
- GenerateBitMap() ;
- }
-
- function OnCellClicked(cell) {
- var i = cell.id / 16 |0;
- var j = cell.id - i*16;
- grid[i][j] = !grid[i][j];
- if (grid[i][j])
- cell.style.backgroundColor = "black";
- else
- cell.style.backgroundColor = "white";
- GenerateBitMap();
- }
-
- function GenerateBitMap() {
- var i, j;
- var value;
-
- var functionTypeSelect = document.getElementById('functionType');
- methodType = functionTypeSelect.options[functionTypeSelect.selectedIndex].value;
-
- generateCode = document.getElementById('generatedCode');
- generateCode.value = methodType + " void " +
- document.getElementById('functionName').value +
- "(int location) {\n\tlet memAddress = 16384+location;\n";
-
- for (i=0; i<16; i++) {
- //get grid binary representation
- binary = "";
- for (j=0; j<16; j++) {
- if (grid[i][j])
- binary = "1" + binary;
- else
- binary = "0" + binary;
- }
-
- isNegative = false;
- //if number is negative, get its one's complement
- if (binary[0] == "1") {
- isNegative = true;
- oneComplement = "";
- for (k=0; k<16; k++) {
- if (binary[k] == "1")
- oneComplement = oneComplement + "0";
- else
- oneComplement = oneComplement + "1";
- }
- binary = oneComplement;
- }
-
- //calculate one's complement decimal value
- value = 0;
- for (k=0; k<16; k++) {
- value = value * 2;
- if (binary[k] == "1")
- value=value+1;
- }
-
- //two's complement value if it is a negative value
- if (isNegative == true)
- value = -(value + 1)
-
- generateCode.value = generateCode.value + GenerateCodeLine(i, value);
- }
-
- generateCode.value = generateCode.value + "\treturn;\n}";
- }
-
- function GenerateCodeLine(row, value) {
- str = "\tdo Memory.poke(memAddress+" + row*32 + ", " + value + ");\n";
- return str;
- }
- </script>
-</head>
-<body onload="Init();">
- <h4><i>IDC Herzliya / Efi Arazi School of Computer Science / Digital Systems Construction, Spring 2011 / Project 09 / Golan Parashi</i></h4>
- <h1>Sokoban Bitmap Editor</h1>
- <p>This javascript applicaiton is used to generate highly optimized jack code for drawing a 16x16 bitmap to the screen.</p>
- <p>Using the mouse, click the desired cell to mark/unmark it. You may use 90 degrees rotation and vertical mirroring by<br>
- clicking the appropriate buttons.</p>
- <p>When you are finished drawing, you may select function type and enter function's name.</p>
- <p>
- <table>
- <thead>
- <tr>
- <th align="left">Bitmap</th>
- <th align="left"></th>
- <th align="left">Generated Jack Code</th>
- </tr>
- </thead>
- <tr>
- <td><div id="grid"/></td>
- <td>
- <form action="javascript:GenerateBitMap();">
- <table>
- <tr><td align="left">Function Type:</td></tr>
- <tr><td align="center">
- <select id="functionType" onChange="GenerateBitMap()">
- <option value="function" selected="selected">function</option>
- <option value="method">method</option>
- </select>
- </td></tr>
- <tr><td align="left">Function Name:</td></tr>
- <tr><td align="left"><input type="text" value="draw" id="functionName" onkeyup="GenerateBitMap()"/></td></tr>
- <tr><td></td></tr>
- <tr><td align="center"><input type="button" value="Generate Code >>" onclick="GenerateBitMap()"/></td></tr>
- </table>
- </form>
- </td>
- <td><textarea id="generatedCode" cols="50" rows="20" readonly="read-only"></textarea></td>
- </tr>
- <tr>
- <table>
- <tr>
- <td align="center"><input type="button" value="Rotate right" onclick="RotateBitmapRight()"/></td>
- <td align="center"><input type="button" value="Vertical Mirror" onclick="MirrorBitmap()"/></td>
- </tr>
- </table>
- </tr>
- </table>
-</body>
-</html> \ No newline at end of file
diff --git a/projects/09/BitmapEditor/BitmapEditor.iml b/projects/09/BitmapEditor/BitmapEditor.iml
deleted file mode 100644
index ef582b1..0000000
--- a/projects/09/BitmapEditor/BitmapEditor.iml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
- <exclude-output />
- <content url="file://$MODULE_DIR$" />
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- </component>
-</module>
-
diff --git a/projects/09/Fraction/Fraction.jack b/projects/09/Fraction/Fraction.jack
deleted file mode 100644
index c86f0a5..0000000
--- a/projects/09/Fraction/Fraction.jack
+++ /dev/null
@@ -1,65 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/Fraction/Fraction.jack
-
-/** Represents the Fraction type and related operations. */
-class Fraction {
- field int numerator, denominator; // field = property = member variable.
-
- /** Constructs a (reduced) fraction from the given numerator and denominator. */
- constructor Fraction new(int x, int y) {
- let numerator = x;
- let denominator = y;
- do reduce(); // reduces the fraction
- return this; // a constructor is expected to return a reference to the new object
- }
-
- // Reduces this fraction.
- method void reduce() {
- var int g;
- let g = Fraction.gcd(numerator, denominator);
- if (g > 1) {
- let numerator = numerator / g;
- let denominator = denominator / g;
- }
- return;
- }
-
- /** Accessors. */
- method int getNumerator() { return numerator; }
- method int getDenominator() { return denominator; }
-
- /** Returns the sum of this fraction and the other one. */
- method Fraction plus(Fraction other) {
- var int sum;
- let sum = (numerator * other.getDenominator()) + (other.getNumerator() * denominator);
- return Fraction.new(sum, denominator * other.getDenominator());
- }
-
- // More fraction-related methods (minus, times, div, etc.) can be added here.
-
- /** Disposes this fraction. */
- method void dispose() {
- do Memory.deAlloc(this); // uses an OS routine to recycle the memory held by the object
- return;
- }
-
- /** Prints this fraction in the format x/y. */
- method void print() {
- do Output.printInt(numerator);
- do Output.printString("/");
- do Output.printInt(denominator);
- return;
- }
-
- // Computes the greatest common divisor of the given integers.
- function int gcd(int a, int b) {
- var int r;
- while (~(b = 0)) { // applies Euclid's algorithm
- let r = a - (b * (a / b)); // r = remainder of the integer division a/b
- let a = b; let b = r;
- }
- return a;
- }
-}
diff --git a/projects/09/Fraction/Main.jack b/projects/09/Fraction/Main.jack
deleted file mode 100644
index 43ddece..0000000
--- a/projects/09/Fraction/Main.jack
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/Fraction/Main.jack
-
-// Computes the sum of 2/3 and 1/5.
-class Main {
- function void main() {
- var Fraction a, b, c;
- let a = Fraction.new(2,3);
- let b = Fraction.new(1,5);
- let c = a.plus(b); // Computes c = a + b
- do c.print(); // Prints "13/15"
- return;
- }
-}
diff --git a/projects/09/HelloWorld/HelloWorld.asm b/projects/09/HelloWorld/HelloWorld.asm
deleted file mode 100644
index 550a010..0000000
--- a/projects/09/HelloWorld/HelloWorld.asm
+++ /dev/null
@@ -1,923 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@RET0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Sys.init
-0;JMP
-(RET0)
-(Main.main)
-@12
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@String.new
-0;JMP
-(RET2)
-@72
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET4
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET4)
-@101
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET6
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET6)
-@108
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET8
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET8)
-@108
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET10
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET10)
-@111
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET12
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET12)
-@32
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET14
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET14)
-@119
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET16
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET16)
-@111
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET18
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET18)
-@114
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET20
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET20)
-@108
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET22
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET22)
-@100
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET24
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET24)
-@33
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET26
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@2
-D=D-A
-@ARG
-M=D
-@String.appendChar
-0;JMP
-(RET26)
-@RET27
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Output.printString
-0;JMP
-(RET27)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@RET29
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Output.println
-0;JMP
-(RET29)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
diff --git a/projects/09/HelloWorld/Main.jack b/projects/09/HelloWorld/Main.jack
deleted file mode 100644
index 446b21b..0000000
--- a/projects/09/HelloWorld/Main.jack
+++ /dev/null
@@ -1,14 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/HelloWorld/Main.jack
-
-/** Hello World program. */
-class Main {
- function void main() {
- /* Prints some text using the standard library. */
- do Output.printString("Hello world!");
- do Output.println(); // New line
- return;
- }
-}
diff --git a/projects/09/HelloWorld/Main.vm b/projects/09/HelloWorld/Main.vm
deleted file mode 100644
index 32eb03f..0000000
--- a/projects/09/HelloWorld/Main.vm
+++ /dev/null
@@ -1,33 +0,0 @@
-function Main.main 0
-push constant 12
-call String.new 1
-push constant 72
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-return
diff --git a/projects/09/Jack OS API.pdf b/projects/09/Jack OS API.pdf
deleted file mode 100644
index e653e86..0000000
--- a/projects/09/Jack OS API.pdf
+++ /dev/null
Binary files differ
diff --git a/projects/09/K/Board.vm b/projects/09/K/Board.vm
deleted file mode 100644
index 985e813..0000000
--- a/projects/09/K/Board.vm
+++ /dev/null
@@ -1,1465 +0,0 @@
-function Board.new 1
-push constant 4
-call Memory.alloc 1
-pop pointer 0
-push constant 4
-call Array.new 1
-pop this 0
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push constant 4
-lt
-not
-if-goto WHILE_END0
-push local 0
-push this 0
-add
-push constant 4
-call Array.new 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push pointer 0
-call Board.initBoard 1
-pop temp 0
-push constant 0
-pop this 2
-push pointer 0
-return
-function Board.init 0
-push constant 6
-call String.new 1
-push constant 43
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 43
-call String.appendChar 2
-pop static 0
-push constant 9
-call String.new 1
-push constant 89
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-pop static 1
-push constant 8
-call String.new 1
-push constant 89
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-pop static 4
-push constant 25
-call String.new 1
-push constant 80
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-pop static 2
-push constant 10
-call String.new 1
-push constant 71
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-pop static 3
-push constant 6
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-pop static 5
-push constant 0
-return
-function Board.initBoard 3
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push constant 4
-lt
-not
-if-goto WHILE_END0
-push constant 0
-pop local 1
-push local 0
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 2
-label WHILE_EXP1
-push local 1
-push constant 4
-lt
-not
-if-goto WHILE_END1
-push local 1
-push local 2
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP1
-label WHILE_END1
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 2
-push constant 0
-push local 2
-add
-push constant 65
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-pop this 1
-push constant 0
-pop this 3
-push constant 0
-return
-function Board.transpose 0
-push argument 0
-pop pointer 0
-push pointer 0
-push constant 0
-push constant 1
-call Board.exch 3
-pop temp 0
-push pointer 0
-push constant 0
-push constant 2
-call Board.exch 3
-pop temp 0
-push pointer 0
-push constant 0
-push constant 3
-call Board.exch 3
-pop temp 0
-push pointer 0
-push constant 1
-push constant 2
-call Board.exch 3
-pop temp 0
-push pointer 0
-push constant 1
-push constant 3
-call Board.exch 3
-pop temp 0
-push pointer 0
-push constant 2
-push constant 3
-call Board.exch 3
-pop temp 0
-push constant 0
-return
-function Board.exch 3
-push argument 0
-pop pointer 0
-push argument 1
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 1
-push argument 2
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 2
-push argument 2
-push local 1
-add
-pop pointer 1
-push that 0
-pop local 0
-push argument 2
-push local 1
-add
-push argument 1
-push local 2
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push argument 1
-push local 2
-add
-push local 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Board.align 2
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-push constant 0
-pop local 1
-push argument 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-label WHILE_EXP0
-push local 0
-push constant 4
-lt
-not
-if-goto WHILE_END0
-push local 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 1
-push argument 1
-add
-push local 0
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-label IF_FALSE1
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-label WHILE_EXP1
-push local 1
-push constant 4
-lt
-not
-if-goto WHILE_END1
-push local 1
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP1
-label WHILE_END1
-goto IF_END0
-label IF_FALSE0
-label WHILE_EXP2
-push local 0
-push constant 4
-lt
-not
-if-goto WHILE_END2
-push constant 3
-push local 0
-sub
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 3
-push local 1
-sub
-push argument 1
-add
-push constant 3
-push local 0
-sub
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-label IF_FALSE2
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP2
-label WHILE_END2
-label WHILE_EXP3
-push local 1
-push constant 4
-lt
-not
-if-goto WHILE_END3
-push constant 3
-push local 1
-sub
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP3
-label WHILE_END3
-label IF_END0
-push constant 0
-return
-function Board.reduce 0
-push argument 0
-pop pointer 0
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-eq
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 3
-push argument 1
-add
-pop pointer 1
-push that 0
-eq
-and
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 2
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-push argument 1
-add
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push argument 1
-add
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END1
-label IF_FALSE1
-push constant 3
-push argument 1
-add
-push constant 3
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push argument 1
-add
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END1
-push constant 0
-return
-label IF_FALSE0
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-eq
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push argument 2
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push constant 0
-push argument 1
-add
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push argument 1
-add
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push argument 1
-add
-push constant 3
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END3
-label IF_FALSE3
-push constant 1
-push argument 1
-add
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END3
-push constant 0
-return
-label IF_FALSE2
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 3
-push argument 1
-add
-pop pointer 1
-push that 0
-eq
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push argument 2
-if-goto IF_TRUE5
-goto IF_FALSE5
-label IF_TRUE5
-push constant 2
-push argument 1
-add
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END5
-label IF_FALSE5
-push constant 3
-push argument 1
-add
-push constant 3
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push argument 1
-add
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push argument 1
-add
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END5
-push constant 0
-return
-label IF_FALSE4
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-eq
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-if-goto IF_TRUE6
-goto IF_FALSE6
-label IF_TRUE6
-push argument 2
-if-goto IF_TRUE7
-goto IF_FALSE7
-label IF_TRUE7
-push constant 1
-push argument 1
-add
-push constant 1
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push argument 1
-add
-push constant 3
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END7
-label IF_FALSE7
-push constant 2
-push argument 1
-add
-push constant 2
-push argument 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push argument 1
-add
-push constant 0
-push argument 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push argument 1
-add
-push constant 32
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END7
-push constant 0
-return
-label IF_FALSE6
-push constant 0
-return
-function Board.addTile 5
-push argument 0
-pop pointer 0
-push this 3
-push constant 1
-eq
-not
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-return
-label IF_FALSE0
-push this 2
-push constant 25173
-call Math.multiply 2
-push constant 13849
-add
-pop this 2
-push this 2
-push constant 0
-lt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push this 2
-neg
-pop this 2
-label IF_FALSE1
-push this 2
-push this 2
-push constant 2
-call Math.divide 2
-push constant 2
-call Math.multiply 2
-sub
-push constant 0
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 1
-pop local 3
-goto IF_END2
-label IF_FALSE2
-push constant 1
-neg
-pop local 3
-label IF_END2
-push this 2
-push this 2
-push constant 16
-call Math.divide 2
-push constant 16
-call Math.multiply 2
-sub
-pop this 2
-push this 2
-push constant 4
-call Math.divide 2
-pop local 1
-push this 2
-push constant 4
-push local 1
-call Math.multiply 2
-sub
-pop local 2
-push local 1
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 0
-push constant 65
-pop local 4
-label WHILE_EXP0
-push local 2
-push local 0
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-not
-if-goto WHILE_END0
-push this 2
-push local 3
-add
-pop this 2
-push this 2
-push constant 0
-lt
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push constant 15
-pop this 2
-label IF_FALSE3
-push this 2
-push this 2
-push constant 16
-call Math.divide 2
-push constant 16
-call Math.multiply 2
-sub
-pop this 2
-push this 2
-push constant 4
-call Math.divide 2
-pop local 1
-push this 2
-push constant 4
-push local 1
-call Math.multiply 2
-sub
-pop local 2
-push local 1
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 0
-push constant 131
-push local 4
-sub
-pop local 4
-goto WHILE_EXP0
-label WHILE_END0
-push local 2
-push local 0
-add
-push local 4
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Board.transform 3
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-eq
-push argument 1
-push constant 1
-eq
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-not
-pop local 1
-goto IF_END0
-label IF_FALSE0
-push constant 0
-pop local 1
-label IF_END0
-push argument 1
-push constant 0
-eq
-push argument 1
-push constant 2
-eq
-or
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-pop local 0
-goto IF_END1
-label IF_FALSE1
-push constant 0
-not
-pop local 0
-label IF_END1
-push local 0
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push pointer 0
-call Board.transpose 1
-pop temp 0
-label IF_FALSE2
-push constant 0
-pop local 2
-label WHILE_EXP0
-push local 2
-push constant 4
-lt
-not
-if-goto WHILE_END0
-push pointer 0
-push local 2
-push this 0
-add
-pop pointer 1
-push that 0
-push local 1
-call Board.align 3
-pop temp 0
-push pointer 0
-push local 2
-push this 0
-add
-pop pointer 1
-push that 0
-push local 1
-call Board.reduce 3
-pop temp 0
-push local 2
-push constant 1
-add
-pop local 2
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push pointer 0
-call Board.transpose 1
-pop temp 0
-label IF_FALSE3
-push constant 0
-return
-function Board.next 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 1
-add
-pop this 1
-push pointer 0
-push argument 1
-call Board.transform 2
-pop temp 0
-push pointer 0
-call Board.updateStatus 1
-pop temp 0
-push constant 0
-return
-function Board.getStatus 0
-push argument 0
-pop pointer 0
-push this 3
-return
-function Board.setStatus 0
-push argument 0
-pop pointer 0
-push argument 1
-pop this 3
-push constant 0
-return
-function Board.updateStatus 3
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push constant 4
-lt
-not
-if-goto WHILE_END0
-push local 0
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 2
-push constant 0
-pop local 1
-label WHILE_EXP1
-push local 1
-push constant 4
-lt
-not
-if-goto WHILE_END1
-push local 1
-push local 2
-add
-pop pointer 1
-push that 0
-push constant 75
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 3
-pop this 3
-push constant 0
-return
-label IF_FALSE0
-push local 1
-push local 2
-add
-pop pointer 1
-push that 0
-push constant 32
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 1
-pop this 3
-push constant 0
-return
-label IF_FALSE1
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP1
-label WHILE_END1
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 2
-pop this 3
-push constant 0
-return
-function Board.draw 5
-push argument 0
-pop pointer 0
-push constant 9
-pop local 0
-push constant 30
-pop local 1
-push this 3
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-push constant 1
-sub
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push constant 75
-call Output.printChar 1
-pop temp 0
-push local 0
-push constant 1
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 2
-call Output.printString 1
-pop temp 0
-goto IF_END0
-label IF_FALSE0
-push this 3
-push constant 2
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 0
-push constant 1
-sub
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 3
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 1
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 1
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 3
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 2
-call Output.printString 1
-pop temp 0
-goto IF_END1
-label IF_FALSE1
-push this 3
-push constant 3
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 0
-push constant 1
-sub
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 3
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 1
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 4
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 3
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 2
-call Output.printString 1
-pop temp 0
-goto IF_END2
-label IF_FALSE2
-push local 0
-push constant 1
-sub
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 0
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 4
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 0
-call Output.printString 1
-pop temp 0
-push constant 0
-pop local 2
-label WHILE_EXP0
-push local 2
-push constant 4
-lt
-not
-if-goto WHILE_END0
-push constant 0
-pop local 3
-push local 0
-push local 2
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push constant 124
-call Output.printChar 1
-pop temp 0
-push local 2
-push this 0
-add
-pop pointer 1
-push that 0
-pop local 4
-label WHILE_EXP1
-push local 3
-push constant 4
-lt
-not
-if-goto WHILE_END1
-push local 3
-push local 4
-add
-pop pointer 1
-push that 0
-call Output.printChar 1
-pop temp 0
-push local 3
-push constant 1
-add
-pop local 3
-goto WHILE_EXP1
-label WHILE_END1
-push constant 124
-call Output.printChar 1
-pop temp 0
-push local 2
-push constant 1
-add
-pop local 2
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-push constant 6
-add
-push local 1
-push constant 2
-sub
-call Output.moveCursor 2
-pop temp 0
-push static 5
-call Output.printString 1
-pop temp 0
-push this 1
-call Output.printInt 1
-pop temp 0
-label IF_END2
-label IF_END1
-label IF_END0
-push constant 0
-return
-function Board.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/09/K/K.txt b/projects/09/K/K.txt
deleted file mode 100644
index dc75c82..0000000
--- a/projects/09/K/K.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-from a to k
-
-- a title frame showing game name and instructions. space to continue.
-- a main frame showing the game running
-- a endofgame frame showing game results: win or lose
-
-- a Board class with cell being a 4 by 4 two-d array.
-- arrange strings according to an orientation: arrange(4 strings, dir)=cells
- - dir: 0: align to left, 1: align to right, 2: align to top, 3:align to bottom
- - e.g.: arrange({"abc", "bc", "dc", "efeh", 0}) gives the following board:
- abc_
- bc__
- dc__
- efeh
- - arrange({"abc", "bc", "dc", "efeh", 0}, 3) gives the following
- ___e
- a__f
- bbde
- ccch
-- a new tile of 'a' or 'b' appears each turn somewhere, using some quasirandomisation e.g. (23 * n^2 + 79) mod 16.
- - addtile(char, x, y)
-- the board transformation: board.trans(dir) = arrange(dir) . (fmap reduce) . getstring(dir). calls getstrings, then reduce on each row / column
-- board.getstrings(dir)= the strings according to direction dir. Inverse of arrange.
-- reduce(string)=string: reduce("baac")=="bbc"; reduce("aabb")=="bc"; and reduce("cbb")== "cc" instead of "d".
-- when one of the hjkl keys is pressed get the direction dir.
diff --git a/projects/09/K/KGame.vm b/projects/09/K/KGame.vm
deleted file mode 100644
index df3a069..0000000
--- a/projects/09/K/KGame.vm
+++ /dev/null
@@ -1,169 +0,0 @@
-function KGame.new 0
-push constant 1
-call Memory.alloc 1
-pop pointer 0
-call Board.new 0
-pop this 0
-push this 0
-call Board.draw 1
-pop temp 0
-push pointer 0
-return
-function KGame.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-call Board.dispose 1
-pop temp 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function KGame.run 4
-push argument 0
-pop pointer 0
-push constant 0
-pop local 3
-label WHILE_EXP0
-push local 3
-not
-not
-if-goto WHILE_END0
-push this 0
-call Board.getStatus 1
-pop local 2
-push constant 0
-pop local 0
-label WHILE_EXP1
-push local 0
-push constant 0
-eq
-not
-if-goto WHILE_END1
-call Keyboard.keyPressed 0
-pop local 0
-goto WHILE_EXP1
-label WHILE_END1
-push local 0
-pop local 1
-label WHILE_EXP2
-push local 1
-push constant 0
-eq
-not
-not
-if-goto WHILE_END2
-call Keyboard.keyPressed 0
-pop local 1
-goto WHILE_EXP2
-label WHILE_END2
-push local 0
-push constant 81
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-not
-pop local 3
-goto IF_END0
-label IF_FALSE0
-push local 2
-push constant 0
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-call Screen.clearScreen 0
-pop temp 0
-push this 0
-push constant 1
-call Board.setStatus 2
-pop temp 0
-push this 0
-call Board.draw 1
-pop temp 0
-goto IF_END1
-label IF_FALSE1
-push local 2
-push constant 2
-eq
-push local 2
-push constant 3
-eq
-or
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-call Screen.clearScreen 0
-pop temp 0
-push this 0
-push constant 0
-call Board.setStatus 2
-pop temp 0
-push this 0
-call Board.draw 1
-pop temp 0
-push this 0
-call Board.initBoard 1
-pop temp 0
-goto IF_END2
-label IF_FALSE2
-push local 0
-push constant 82
-eq
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-call Screen.clearScreen 0
-pop temp 0
-push this 0
-call Board.initBoard 1
-pop temp 0
-push this 0
-call Board.draw 1
-pop temp 0
-goto IF_END3
-label IF_FALSE3
-push local 0
-push constant 129
-gt
-push local 0
-push constant 134
-lt
-and
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-call Screen.clearScreen 0
-pop temp 0
-push this 0
-push local 0
-push constant 130
-sub
-call Board.next 2
-pop temp 0
-push this 0
-call Board.draw 1
-pop temp 0
-push constant 300
-call Sys.wait 1
-pop temp 0
-call Screen.clearScreen 0
-pop temp 0
-push this 0
-call Board.addTile 1
-pop temp 0
-push this 0
-call Board.draw 1
-pop temp 0
-label IF_FALSE4
-label IF_END3
-label IF_END2
-label IF_END1
-label IF_END0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
diff --git a/projects/09/K/Main.vm b/projects/09/K/Main.vm
deleted file mode 100644
index 0441c7a..0000000
--- a/projects/09/K/Main.vm
+++ /dev/null
@@ -1,13 +0,0 @@
-function Main.main 1
-call Board.init 0
-pop temp 0
-call KGame.new 0
-pop local 0
-push local 0
-call KGame.run 1
-pop temp 0
-push local 0
-call KGame.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/09/List/List.jack b/projects/09/List/List.jack
deleted file mode 100644
index c62fe28..0000000
--- a/projects/09/List/List.jack
+++ /dev/null
@@ -1,46 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/List/List.jack
-
-/** Represents a linked list of integers. */
-class List {
- field int data; // a list consists of a data field,
- field List next; // followed by a list
-
- /* Creates a List. */
- constructor List new(int car, List cdr) {
- let data = car; // the identifiers car and cdr are used in
- let next = cdr; // memory of the Lisp programming language
- return this;
- }
-
- /** Accessors. */
- method int getData() { return data; }
- method int getNext() { return next; }
-
- /** Prints this list. */
- method void print() {
- var List current; // initializes current to the first item
- let current = this; // of this list
- while (~(current = null)) {
- do Output.printInt(current.getData());
- do Output.printChar(32); // prints a space
- let current = current.getNext();
- }
- return;
- }
-
- /** Disposes this List by recursively disposing its tail. */
- method void dispose() {
- if (~(next = null)) {
- do next.dispose();
- }
- // Uses an OS routine to recycle this object.
- do Memory.deAlloc(this);
- return;
- }
-
- // More list processing methods can come here.
-
-}
diff --git a/projects/09/List/Main.jack b/projects/09/List/Main.jack
deleted file mode 100644
index 824eb6f..0000000
--- a/projects/09/List/Main.jack
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/List/Main.jack
-
-/** Demonstrates the use of the List abstraction. */
-class Main {
- function void main() {
- // Creates and uses the list (2,3,5).
- var List v;
- let v = List.new(5,null);
- let v = List.new(2,List.new(3,v));
- do v.print(); // prints 2 3 5
- do v.dispose(); // disposes the list
- return;
- }
-}
diff --git a/projects/09/Square/Main.jack b/projects/09/Square/Main.jack
deleted file mode 100644
index 8311cc2..0000000
--- a/projects/09/Square/Main.jack
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/Square/Main.jack
-
-/** Initializes a new Square Dance game and starts running it. */
-class Main {
- function void main() {
- var SquareGame game;
- let game = SquareGame.new();
- do game.run();
- do game.dispose();
- return;
- }
-}
diff --git a/projects/09/Square/Main.vm b/projects/09/Square/Main.vm
deleted file mode 100644
index a3b355b..0000000
--- a/projects/09/Square/Main.vm
+++ /dev/null
@@ -1,11 +0,0 @@
-function Main.main 1
-call SquareGame.new 0
-pop local 0
-push local 0
-call SquareGame.run 1
-pop temp 0
-push local 0
-call SquareGame.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/09/Square/Square.asm b/projects/09/Square/Square.asm
deleted file mode 100644
index 8ad70dd..0000000
--- a/projects/09/Square/Square.asm
+++ /dev/null
@@ -1,6346 +0,0 @@
-@256
-D=A
-@SP
-M=D
-@RET0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Sys.init
-0;JMP
-(RET0)
-(Main.main)
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@RET1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@SquareGame.new
-0;JMP
-(RET1)
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET4
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@SquareGame.run
-0;JMP
-(RET4)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET7
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@SquareGame.dispose
-0;JMP
-(RET7)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(SquareGame.new)
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Memory.alloc
-0;JMP
-(RET2)
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@30
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET7
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@3
-D=D-A
-@ARG
-M=D
-@Square.new
-0;JMP
-(RET7)
-@THIS
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(SquareGame.dispose)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET17
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.dispose
-0;JMP
-(RET17)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET20
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Memory.deAlloc
-0;JMP
-(RET20)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(SquareGame.moveSquare)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame29
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame29
-0;JMP
-(IFSquareGame29)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame29)
-@SP
-AM=M-1
-D=M
-@SquareGame.moveSquare$IF_TRUE0
-D;JNE
-@SquareGame.moveSquare$IF_FALSE0
-0;JMP
-(SquareGame.moveSquare$IF_TRUE0)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET34
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.moveUp
-0;JMP
-(RET34)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(SquareGame.moveSquare$IF_FALSE0)
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame39
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame39
-0;JMP
-(IFSquareGame39)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame39)
-@SP
-AM=M-1
-D=M
-@SquareGame.moveSquare$IF_TRUE1
-D;JNE
-@SquareGame.moveSquare$IF_FALSE1
-0;JMP
-(SquareGame.moveSquare$IF_TRUE1)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET44
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.moveDown
-0;JMP
-(RET44)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(SquareGame.moveSquare$IF_FALSE1)
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@3
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame49
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame49
-0;JMP
-(IFSquareGame49)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame49)
-@SP
-AM=M-1
-D=M
-@SquareGame.moveSquare$IF_TRUE2
-D;JNE
-@SquareGame.moveSquare$IF_FALSE2
-0;JMP
-(SquareGame.moveSquare$IF_TRUE2)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET54
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.moveLeft
-0;JMP
-(RET54)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(SquareGame.moveSquare$IF_FALSE2)
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@4
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame59
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame59
-0;JMP
-(IFSquareGame59)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame59)
-@SP
-AM=M-1
-D=M
-@SquareGame.moveSquare$IF_TRUE3
-D;JNE
-@SquareGame.moveSquare$IF_FALSE3
-0;JMP
-(SquareGame.moveSquare$IF_TRUE3)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET64
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.moveRight
-0;JMP
-(RET64)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(SquareGame.moveSquare$IF_FALSE3)
-@5
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET68
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Sys.wait
-0;JMP
-(RET68)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(SquareGame.run)
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(SquareGame.run$WHILE_EXP0)
-@LCL
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SquareGame.run$WHILE_END0
-D;JNE
-(SquareGame.run$WHILE_EXP1)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame85
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame85
-0;JMP
-(IFSquareGame85)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame85)
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SquareGame.run$WHILE_END1
-D;JNE
-@RET88
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Keyboard.keyPressed
-0;JMP
-(RET88)
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET91
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@SquareGame.moveSquare
-0;JMP
-(RET91)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@SquareGame.run$WHILE_EXP1
-0;JMP
-(SquareGame.run$WHILE_END1)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@81
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame97
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame97
-0;JMP
-(IFSquareGame97)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame97)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE0
-D;JNE
-@SquareGame.run$IF_FALSE0
-0;JMP
-(SquareGame.run$IF_TRUE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@LCL
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(SquareGame.run$IF_FALSE0)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@90
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame107
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame107
-0;JMP
-(IFSquareGame107)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame107)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE1
-D;JNE
-@SquareGame.run$IF_FALSE1
-0;JMP
-(SquareGame.run$IF_TRUE1)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET112
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.decSize
-0;JMP
-(RET112)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(SquareGame.run$IF_FALSE1)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@88
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame117
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame117
-0;JMP
-(IFSquareGame117)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame117)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE2
-D;JNE
-@SquareGame.run$IF_FALSE2
-0;JMP
-(SquareGame.run$IF_TRUE2)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET122
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.incSize
-0;JMP
-(RET122)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(SquareGame.run$IF_FALSE2)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@131
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame127
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame127
-0;JMP
-(IFSquareGame127)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame127)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE3
-D;JNE
-@SquareGame.run$IF_FALSE3
-0;JMP
-(SquareGame.run$IF_TRUE3)
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(SquareGame.run$IF_FALSE3)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@133
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame136
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame136
-0;JMP
-(IFSquareGame136)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame136)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE4
-D;JNE
-@SquareGame.run$IF_FALSE4
-0;JMP
-(SquareGame.run$IF_TRUE4)
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(SquareGame.run$IF_FALSE4)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@130
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame145
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame145
-0;JMP
-(IFSquareGame145)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame145)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE5
-D;JNE
-@SquareGame.run$IF_FALSE5
-0;JMP
-(SquareGame.run$IF_TRUE5)
-@3
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(SquareGame.run$IF_FALSE5)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@132
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame154
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame154
-0;JMP
-(IFSquareGame154)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame154)
-@SP
-AM=M-1
-D=M
-@SquareGame.run$IF_TRUE6
-D;JNE
-@SquareGame.run$IF_FALSE6
-0;JMP
-(SquareGame.run$IF_TRUE6)
-@4
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-(SquareGame.run$IF_FALSE6)
-(SquareGame.run$WHILE_EXP2)
-@LCL
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquareGame164
-D;JEQ
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquareGame164
-0;JMP
-(IFSquareGame164)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquareGame164)
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SquareGame.run$WHILE_END2
-D;JNE
-@RET168
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@0
-D=D-A
-@ARG
-M=D
-@Keyboard.keyPressed
-0;JMP
-(RET168)
-@LCL
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET171
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@SquareGame.moveSquare
-0;JMP
-(RET171)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@SquareGame.run$WHILE_EXP2
-0;JMP
-(SquareGame.run$WHILE_END2)
-@SquareGame.run$WHILE_EXP0
-0;JMP
-(SquareGame.run$WHILE_END0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.new)
-@3
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Memory.alloc
-0;JMP
-(RET2)
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@ARG
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET11
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.draw
-0;JMP
-(RET11)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.dispose)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET19
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Memory.deAlloc
-0;JMP
-(RET19)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.draw)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@RET28
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET28)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET38
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET38)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.erase)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET46
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET46)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET56
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET56)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.incSize)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@254
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare67
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare67
-0;JMP
-(IFSquare67)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare67)
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@510
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare72
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare72
-0;JMP
-(IFSquare72)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare72)
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M&D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@Square.incSize$IF_TRUE0
-D;JNE
-@Square.incSize$IF_FALSE0
-0;JMP
-(Square.incSize$IF_TRUE0)
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET78
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.erase
-0;JMP
-(RET78)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET85
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.draw
-0;JMP
-(RET85)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(Square.incSize$IF_FALSE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.decSize)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare95
-D;JGT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare95
-0;JMP
-(IFSquare95)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare95)
-@SP
-AM=M-1
-D=M
-@Square.decSize$IF_TRUE0
-D;JNE
-@Square.decSize$IF_FALSE0
-0;JMP
-(Square.decSize$IF_TRUE0)
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET100
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.erase
-0;JMP
-(RET100)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@3
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET107
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Square.draw
-0;JMP
-(RET107)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(Square.decSize$IF_FALSE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.moveUp)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare117
-D;JGT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare117
-0;JMP
-(IFSquare117)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare117)
-@SP
-AM=M-1
-D=M
-@Square.moveUp$IF_TRUE0
-D;JNE
-@Square.moveUp$IF_FALSE0
-0;JMP
-(Square.moveUp$IF_TRUE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET122
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET122)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET136
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET136)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@RET144
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET144)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET154
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET154)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(Square.moveUp$IF_FALSE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.moveDown)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@254
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare166
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare166
-0;JMP
-(IFSquare166)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare166)
-@SP
-AM=M-1
-D=M
-@Square.moveDown$IF_TRUE0
-D;JNE
-@Square.moveDown$IF_FALSE0
-0;JMP
-(Square.moveDown$IF_TRUE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET171
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET171)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET181
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET181)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@RET189
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET189)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET203
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET203)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(Square.moveDown$IF_FALSE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.moveLeft)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare213
-D;JGT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare213
-0;JMP
-(IFSquare213)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare213)
-@SP
-AM=M-1
-D=M
-@Square.moveLeft$IF_TRUE0
-D;JNE
-@Square.moveLeft$IF_FALSE0
-0;JMP
-(Square.moveLeft$IF_TRUE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET218
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET218)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET232
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET232)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@RET240
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET240)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET250
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET250)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(Square.moveLeft$IF_FALSE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
-(Square.moveRight)
-@ARG
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@3
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@510
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@IFSquare262
-D;JLT
-@SP
-A=M
-M=0
-@SP
-M=M+1
-@ENDIFSquare262
-0;JMP
-(IFSquare262)
-@SP
-A=M
-M=-1
-@SP
-M=M+1
-(ENDIFSquare262)
-@SP
-AM=M-1
-D=M
-@Square.moveRight$IF_TRUE0
-D;JNE
-@Square.moveRight$IF_FALSE0
-0;JMP
-(Square.moveRight$IF_TRUE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET267
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET267)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET277
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET277)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@2
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-@R13
-M=D
-@SP
-AM=M-1
-D=M
-@R13
-A=M
-M=D
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-A=M
-M=!D
-@SP
-M=M+1
-@RET285
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@1
-D=D-A
-@ARG
-M=D
-@Screen.setColor
-0;JMP
-(RET285)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@1
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M-D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@0
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@1
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@2
-D=A+D
-A=D
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-AM=M-1
-D=M
-@SP
-AM=M-1
-D=M+D
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@RET299
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@ARG
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THIS
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@THAT
-D=M
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@SP
-D=M
-@LCL
-M=D
-@5
-D=D-A
-@4
-D=D-A
-@ARG
-M=D
-@Screen.drawRectangle
-0;JMP
-(RET299)
-@SP
-AM=M-1
-D=M
-@5
-M=D
-(Square.moveRight$IF_FALSE0)
-@0
-D=A
-@SP
-A=M
-M=D
-@SP
-M=M+1
-@LCL
-D=M
-@R13
-M=D
-@5
-A=D-A
-D=M
-@R14
-M=D
-@SP
-AM=M-1
-D=M
-@ARG
-A=M
-M=D
-@ARG
-D=M+1
-@SP
-M=D
-@R13
-AM=M-1
-D=M
-@THAT
-M=D
-@R13
-AM=M-1
-D=M
-@THIS
-M=D
-@R13
-AM=M-1
-D=M
-@ARG
-M=D
-@R13
-AM=M-1
-D=M
-@LCL
-M=D
-@R14
-A=M
-0;JMP
diff --git a/projects/09/Square/Square.jack b/projects/09/Square/Square.jack
deleted file mode 100644
index 38066e5..0000000
--- a/projects/09/Square/Square.jack
+++ /dev/null
@@ -1,108 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/Square/Square.jack
-
-/** Implements a graphical square. */
-class Square {
-
- field int x, y; // screen location of the square's top-left corner
- field int size; // length of this square, in pixels
-
- /** Constructs a new square with a given location and size. */
- constructor Square new(int Ax, int Ay, int Asize) {
- let x = Ax;
- let y = Ay;
- let size = Asize;
- do draw();
- return this;
- }
-
- /** Disposes this square. */
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-
- /** Draws the square on the screen. */
- method void draw() {
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + size, y + size);
- return;
- }
-
- /** Erases the square from the screen. */
- method void erase() {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + size, y + size);
- return;
- }
-
- /** Increments the square size by 2 pixels. */
- method void incSize() {
- if (((y + size) < 254) & ((x + size) < 510)) {
- do erase();
- let size = size + 2;
- do draw();
- }
- return;
- }
-
- /** Decrements the square size by 2 pixels. */
- method void decSize() {
- if (size > 2) {
- do erase();
- let size = size - 2;
- do draw();
- }
- return;
- }
-
- /** Moves the square up by 2 pixels. */
- method void moveUp() {
- if (y > 1) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size);
- let y = y - 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + size, y + 1);
- }
- return;
- }
-
- /** Moves the square down by 2 pixels. */
- method void moveDown() {
- if ((y + size) < 254) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + size, y + 1);
- let y = y + 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size);
- }
- return;
- }
-
- /** Moves the square left by 2 pixels. */
- method void moveLeft() {
- if (x > 1) {
- do Screen.setColor(false);
- do Screen.drawRectangle((x + size) - 1, y, x + size, y + size);
- let x = x - 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + 1, y + size);
- }
- return;
- }
-
- /** Moves the square right by 2 pixels. */
- method void moveRight() {
- if ((x + size) < 510) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + 1, y + size);
- let x = x + 2;
- do Screen.setColor(true);
- do Screen.drawRectangle((x + size) - 1, y, x + size, y + size);
- }
- return;
- }
-}
diff --git a/projects/09/Square/Square.vm b/projects/09/Square/Square.vm
deleted file mode 100644
index e3932bc..0000000
--- a/projects/09/Square/Square.vm
+++ /dev/null
@@ -1,304 +0,0 @@
-function Square.new 0
-push constant 3
-call Memory.alloc 1
-pop pointer 0
-push argument 0
-pop this 0
-push argument 1
-pop this 1
-push argument 2
-pop this 2
-push pointer 0
-call Square.draw 1
-pop temp 0
-push pointer 0
-return
-function Square.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function Square.draw 0
-push argument 0
-pop pointer 0
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-return
-function Square.erase 0
-push argument 0
-pop pointer 0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-return
-function Square.incSize 0
-push argument 0
-pop pointer 0
-push this 1
-push this 2
-add
-push constant 254
-lt
-push this 0
-push this 2
-add
-push constant 510
-lt
-and
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push pointer 0
-call Square.erase 1
-pop temp 0
-push this 2
-push constant 2
-add
-pop this 2
-push pointer 0
-call Square.draw 1
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
-function Square.decSize 0
-push argument 0
-pop pointer 0
-push this 2
-push constant 2
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push pointer 0
-call Square.erase 1
-pop temp 0
-push this 2
-push constant 2
-sub
-pop this 2
-push pointer 0
-call Square.draw 1
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
-function Square.moveUp 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 1
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 2
-add
-push constant 1
-sub
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 1
-push constant 2
-sub
-pop this 1
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push constant 1
-add
-call Screen.drawRectangle 4
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
-function Square.moveDown 0
-push argument 0
-pop pointer 0
-push this 1
-push this 2
-add
-push constant 254
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push constant 1
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 1
-push constant 2
-add
-pop this 1
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 2
-add
-push constant 1
-sub
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
-function Square.moveLeft 0
-push argument 0
-pop pointer 0
-push this 0
-push constant 1
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 2
-add
-push constant 1
-sub
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 0
-push constant 2
-sub
-pop this 0
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push constant 1
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
-function Square.moveRight 0
-push argument 0
-pop pointer 0
-push this 0
-push this 2
-add
-push constant 510
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push constant 1
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 0
-push constant 2
-add
-pop this 0
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 2
-add
-push constant 1
-sub
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
diff --git a/projects/09/Square/SquareGame.jack b/projects/09/Square/SquareGame.jack
deleted file mode 100644
index 02393e2..0000000
--- a/projects/09/Square/SquareGame.jack
+++ /dev/null
@@ -1,79 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/Square/SquareGame.jack
-
-/**
- * Implements the Square Dance game.
- * This simple game allows the user to move a black square around
- * the screen, and change the square's size during the movement.
- * When the game starts, a square of 30 by 30 pixels is shown at the
- * top-left corner of the screen. The user controls the square as follows.
- * The 4 arrow keys are used to move the square up, down, left, and right.
- * The 'z' and 'x' keys are used, respectively, to decrement and increment
- * the square's size. The 'q' key is used to quit the game.
- */
-
-class SquareGame {
- field Square square; // the square of this game
- field int direction; // the square's current direction:
- // 0=none, 1=up, 2=down, 3=left, 4=right
-
- /** Constructs a new Square Game. */
- constructor SquareGame new() {
- // Creates a 30 by 30 pixels square and positions it at the top-left
- // of the screen.
- let square = Square.new(0, 0, 30);
- let direction = 0; // initial state is no movement
- return this;
- }
-
- /** Disposes this game. */
- method void dispose() {
- do square.dispose();
- do Memory.deAlloc(this);
- return;
- }
-
- /** Moves the square in the current direction. */
- method void moveSquare() {
- if (direction = 1) { do square.moveUp(); }
- if (direction = 2) { do square.moveDown(); }
- if (direction = 3) { do square.moveLeft(); }
- if (direction = 4) { do square.moveRight(); }
- do Sys.wait(5); // delays the next movement
- return;
- }
-
- /** Runs the game: handles the user's inputs and moves the square accordingly */
- method void run() {
- var char key; // the key currently pressed by the user
- var boolean exit;
- let exit = false;
-
- while (~exit) {
- // waits for a key to be pressed
- while (key = 0) {
- let key = Keyboard.keyPressed();
- do moveSquare();
- }
- if (key = 81) { let exit = true; } // q key
- if (key = 90) { do square.decSize(); } // z key
- if (key = 88) { do square.incSize(); } // x key
- if (key = 131) { let direction = 1; } // up arrow
- if (key = 133) { let direction = 2; } // down arrow
- if (key = 130) { let direction = 3; } // left arrow
- if (key = 132) { let direction = 4; } // right arrow
-
- // waits for the key to be released
- while (~(key = 0)) {
- let key = Keyboard.keyPressed();
- do moveSquare();
- }
- } // while
- return;
- }
-}
-
-
-
diff --git a/projects/09/Square/SquareGame.vm b/projects/09/Square/SquareGame.vm
deleted file mode 100644
index 8444dbc..0000000
--- a/projects/09/Square/SquareGame.vm
+++ /dev/null
@@ -1,179 +0,0 @@
-function SquareGame.new 0
-push constant 2
-call Memory.alloc 1
-pop pointer 0
-push constant 0
-push constant 0
-push constant 30
-call Square.new 3
-pop this 0
-push constant 0
-pop this 1
-push pointer 0
-return
-function SquareGame.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-call Square.dispose 1
-pop temp 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function SquareGame.moveSquare 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 1
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push this 0
-call Square.moveUp 1
-pop temp 0
-label IF_FALSE0
-push this 1
-push constant 2
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push this 0
-call Square.moveDown 1
-pop temp 0
-label IF_FALSE1
-push this 1
-push constant 3
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push this 0
-call Square.moveLeft 1
-pop temp 0
-label IF_FALSE2
-push this 1
-push constant 4
-eq
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push this 0
-call Square.moveRight 1
-pop temp 0
-label IF_FALSE3
-push constant 5
-call Sys.wait 1
-pop temp 0
-push constant 0
-return
-function SquareGame.run 2
-push argument 0
-pop pointer 0
-push constant 0
-pop local 1
-label WHILE_EXP0
-push local 1
-not
-not
-if-goto WHILE_END0
-label WHILE_EXP1
-push local 0
-push constant 0
-eq
-not
-if-goto WHILE_END1
-call Keyboard.keyPressed 0
-pop local 0
-push pointer 0
-call SquareGame.moveSquare 1
-pop temp 0
-goto WHILE_EXP1
-label WHILE_END1
-push local 0
-push constant 81
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-not
-pop local 1
-label IF_FALSE0
-push local 0
-push constant 90
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push this 0
-call Square.decSize 1
-pop temp 0
-label IF_FALSE1
-push local 0
-push constant 88
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push this 0
-call Square.incSize 1
-pop temp 0
-label IF_FALSE2
-push local 0
-push constant 131
-eq
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push constant 1
-pop this 1
-label IF_FALSE3
-push local 0
-push constant 133
-eq
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push constant 2
-pop this 1
-label IF_FALSE4
-push local 0
-push constant 130
-eq
-if-goto IF_TRUE5
-goto IF_FALSE5
-label IF_TRUE5
-push constant 3
-pop this 1
-label IF_FALSE5
-push local 0
-push constant 132
-eq
-if-goto IF_TRUE6
-goto IF_FALSE6
-label IF_TRUE6
-push constant 4
-pop this 1
-label IF_FALSE6
-label WHILE_EXP2
-push local 0
-push constant 0
-eq
-not
-not
-if-goto WHILE_END2
-call Keyboard.keyPressed 0
-pop local 0
-push pointer 0
-call SquareGame.moveSquare 1
-pop temp 0
-goto WHILE_EXP2
-label WHILE_END2
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
diff --git a/projects/10/.gitignore b/projects/10/.gitignore
deleted file mode 100644
index 1377554..0000000
--- a/projects/10/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.swp
diff --git a/projects/10/ArrayTest/Main.ast b/projects/10/ArrayTest/Main.ast
deleted file mode 100644
index f8194cb..0000000
--- a/projects/10/ArrayTest/Main.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "Main" [] [JSubroutineDec (JSubroutineHeader "function" ("void","main") []) (JSubroutineBody [("Array","a"),("int","length"),("int","i"),("int","sum")] [JLetStatment (JVarId "length" Nothing) (JExpCall (JSubroutineCall "Keyboard" (Just "readInt") [JStrConst "HOW MANY NUMBERS? "])),JLetStatment (JVarId "a" Nothing) (JExpCall (JSubroutineCall "Array" (Just "new") [JExpVar (JVarId "length" Nothing)])),JLetStatment (JVarId "i" Nothing) (JIntConst 0),JWhileStatment (JExpBin (JExpVar (JVarId "i" Nothing)) [('<',JExpVar (JVarId "length" Nothing))]) [JLetStatment (JVarId "a" (Just (JExpVar (JVarId "i" Nothing)))) (JExpCall (JSubroutineCall "Keyboard" (Just "readInt") [JStrConst "ENTER THE NEXT NUMBER: "])),JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('+',JIntConst 1)])],JLetStatment (JVarId "i" Nothing) (JIntConst 0),JLetStatment (JVarId "sum" Nothing) (JIntConst 0),JWhileStatment (JExpBin (JExpVar (JVarId "i" Nothing)) [('<',JExpVar (JVarId "length" Nothing))]) [JLetStatment (JVarId "sum" Nothing) (JExpBin (JExpVar (JVarId "sum" Nothing)) [('+',JExpVar (JVarId "a" (Just (JExpVar (JVarId "i" Nothing)))))]),JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('+',JIntConst 1)])],JDoStatement (JSubroutineCall "Output" (Just "printString") [JStrConst "THE AVERAGE IS: "]),JDoStatement (JSubroutineCall "Output" (Just "printInt") [JExpBin (JExpVar (JVarId "sum" Nothing)) [('/',JExpVar (JVarId "length" Nothing))]]),JDoStatement (JSubroutineCall "Output" (Just "println") []),JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/ArrayTest/Main.jack b/projects/10/ArrayTest/Main.jack
deleted file mode 100644
index aa237b1..0000000
--- a/projects/10/ArrayTest/Main.jack
+++ /dev/null
@@ -1,38 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/10/ArrayTest/Main.jack
-
-// (identical to projects/09/Average/Main.jack)
-
-/** Computes the average of a sequence of integers. */
-class Main {
- function void main() {
- var Array a;
- var int length;
- var int i, sum;
-
- let length = Keyboard.readInt("HOW MANY NUMBERS? ");
- let a = Array.new(length);
- let i = 0;
-
- while (i < length) {
- let a[i] = Keyboard.readInt("ENTER THE NEXT NUMBER: ");
- let i = i + 1;
- }
-
- let i = 0;
- let sum = 0;
-
- while (i < length) {
- let sum = sum + a[i];
- let i = i + 1;
- }
-
- do Output.printString("THE AVERAGE IS: ");
- do Output.printInt(sum / length);
- do Output.println();
-
- return;
- }
-}
diff --git a/projects/10/ArrayTest/Main.xml b/projects/10/ArrayTest/Main.xml
deleted file mode 100644
index 0ea96df..0000000
--- a/projects/10/ArrayTest/Main.xml
+++ /dev/null
@@ -1,286 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> Main </identifier>
- <symbol> { </symbol>
- <subroutineDec>
- <keyword> function </keyword>
- <keyword> void </keyword>
- <identifier> main </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <identifier> Array </identifier>
- <identifier> a </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <keyword> int </keyword>
- <identifier> length </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <keyword> int </keyword>
- <identifier> i </identifier>
- <symbol> , </symbol>
- <identifier> sum </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> length </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Keyboard </identifier>
- <symbol> . </symbol>
- <identifier> readInt </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <stringConstant> HOW MANY NUMBERS? </stringConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> a </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Array </identifier>
- <symbol> . </symbol>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> length </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> &lt; </symbol>
- <term>
- <identifier> length </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> a </identifier>
- <symbol> [ </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- </expression>
- <symbol> ] </symbol>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Keyboard </identifier>
- <symbol> . </symbol>
- <identifier> readInt </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <stringConstant> ENTER THE NEXT NUMBER: </stringConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> sum </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> &lt; </symbol>
- <term>
- <identifier> length </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> sum </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> sum </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> a </identifier>
- <symbol> [ </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- </expression>
- <symbol> ] </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Output </identifier>
- <symbol> . </symbol>
- <identifier> printString </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <stringConstant> THE AVERAGE IS: </stringConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Output </identifier>
- <symbol> . </symbol>
- <identifier> printInt </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> sum </identifier>
- </term>
- <symbol> / </symbol>
- <term>
- <identifier> length </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Output </identifier>
- <symbol> . </symbol>
- <identifier> println </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/ArrayTest/MainT.xml b/projects/10/ArrayTest/MainT.xml
deleted file mode 100644
index 68721ec..0000000
--- a/projects/10/ArrayTest/MainT.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> Main </identifier>
-<symbol> { </symbol>
-<keyword> function </keyword>
-<keyword> void </keyword>
-<identifier> main </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<identifier> Array </identifier>
-<identifier> a </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<keyword> int </keyword>
-<identifier> length </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<keyword> int </keyword>
-<identifier> i </identifier>
-<symbol> , </symbol>
-<identifier> sum </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> length </identifier>
-<symbol> = </symbol>
-<identifier> Keyboard </identifier>
-<symbol> . </symbol>
-<identifier> readInt </identifier>
-<symbol> ( </symbol>
-<stringConstant> HOW MANY NUMBERS? </stringConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> a </identifier>
-<symbol> = </symbol>
-<identifier> Array </identifier>
-<symbol> . </symbol>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<identifier> length </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> ; </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<identifier> i </identifier>
-<symbol> &lt; </symbol>
-<identifier> length </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> a </identifier>
-<symbol> [ </symbol>
-<identifier> i </identifier>
-<symbol> ] </symbol>
-<symbol> = </symbol>
-<identifier> Keyboard </identifier>
-<symbol> . </symbol>
-<identifier> readInt </identifier>
-<symbol> ( </symbol>
-<stringConstant> ENTER THE NEXT NUMBER: </stringConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> + </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> sum </identifier>
-<symbol> = </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> ; </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<identifier> i </identifier>
-<symbol> &lt; </symbol>
-<identifier> length </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> sum </identifier>
-<symbol> = </symbol>
-<identifier> sum </identifier>
-<symbol> + </symbol>
-<identifier> a </identifier>
-<symbol> [ </symbol>
-<identifier> i </identifier>
-<symbol> ] </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> + </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> do </keyword>
-<identifier> Output </identifier>
-<symbol> . </symbol>
-<identifier> printString </identifier>
-<symbol> ( </symbol>
-<stringConstant> THE AVERAGE IS: </stringConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Output </identifier>
-<symbol> . </symbol>
-<identifier> printInt </identifier>
-<symbol> ( </symbol>
-<identifier> sum </identifier>
-<symbol> / </symbol>
-<identifier> length </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Output </identifier>
-<symbol> . </symbol>
-<identifier> println </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/ExpressionLessSquare/Main.ast b/projects/10/ExpressionLessSquare/Main.ast
deleted file mode 100644
index 57a44eb..0000000
--- a/projects/10/ExpressionLessSquare/Main.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "Main" [JClassVarDec "static" ("boolean","test")] [JSubroutineDec (JSubroutineHeader "function" ("void","main") []) (JSubroutineBody [("SquareGame","game")] [JLetStatment (JVarId "game" Nothing) (JExpVar (JVarId "game" Nothing)),JDoStatement (JSubroutineCall "game" (Just "run") []),JDoStatement (JSubroutineCall "game" (Just "dispose") []),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "function" ("void","test") []) (JSubroutineBody [("int","i"),("int","j"),("String","s"),("Array","a")] [JIfStatement (JExpVar (JVarId "i" Nothing)) [JLetStatment (JVarId "s" Nothing) (JExpVar (JVarId "i" Nothing)),JLetStatment (JVarId "s" Nothing) (JExpVar (JVarId "j" Nothing)),JLetStatment (JVarId "a" (Just (JExpVar (JVarId "i" Nothing)))) (JExpVar (JVarId "j" Nothing))] (Just [JLetStatment (JVarId "i" Nothing) (JExpVar (JVarId "i" Nothing)),JLetStatment (JVarId "j" Nothing) (JExpVar (JVarId "j" Nothing)),JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('|',JExpVar (JVarId "j" Nothing))])]),JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/ExpressionLessSquare/Main.jack b/projects/10/ExpressionLessSquare/Main.jack
deleted file mode 100644
index d2c5561..0000000
--- a/projects/10/ExpressionLessSquare/Main.jack
+++ /dev/null
@@ -1,36 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/10/ExpressionLessSquare/Main.jack
-
-/** Expressionless version of projects/10/Square/Main.jack. */
-
-class Main {
- static boolean test; // Added for testing -- there is no static keyword
- // in the Square files.
-
- function void main() {
- var SquareGame game;
- let game = game;
- do game.run();
- do game.dispose();
- return;
- }
-
- function void test() { // Added to test Jack syntax that is not use in
- var int i, j; // the Square files.
- var String s;
- var Array a;
- if (i) {
- let s = i;
- let s = j;
- let a[i] = j;
- }
- else { // There is no else keyword in the Square files.
- let i = i;
- let j = j;
- let i = i | j;
- }
- return;
- }
-}
diff --git a/projects/10/ExpressionLessSquare/Main.xml b/projects/10/ExpressionLessSquare/Main.xml
deleted file mode 100644
index 6beb694..0000000
--- a/projects/10/ExpressionLessSquare/Main.xml
+++ /dev/null
@@ -1,205 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> Main </identifier>
- <symbol> { </symbol>
- <classVarDec>
- <keyword> static </keyword>
- <keyword> boolean </keyword>
- <identifier> test </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <subroutineDec>
- <keyword> function </keyword>
- <keyword> void </keyword>
- <identifier> main </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <identifier> SquareGame </identifier>
- <identifier> game </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> game </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> game </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> game </identifier>
- <symbol> . </symbol>
- <identifier> run </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> game </identifier>
- <symbol> . </symbol>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> function </keyword>
- <keyword> void </keyword>
- <identifier> test </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <keyword> int </keyword>
- <identifier> i </identifier>
- <symbol> , </symbol>
- <identifier> j </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <identifier> String </identifier>
- <identifier> s </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <identifier> Array </identifier>
- <identifier> a </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> s </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> s </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> j </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> a </identifier>
- <symbol> [ </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- </expression>
- <symbol> ] </symbol>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> j </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- <keyword> else </keyword>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> j </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> j </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> | </symbol>
- <term>
- <identifier> j </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/ExpressionLessSquare/MainT.xml b/projects/10/ExpressionLessSquare/MainT.xml
deleted file mode 100644
index f074ba4..0000000
--- a/projects/10/ExpressionLessSquare/MainT.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> Main </identifier>
-<symbol> { </symbol>
-<keyword> static </keyword>
-<keyword> boolean </keyword>
-<identifier> test </identifier>
-<symbol> ; </symbol>
-<keyword> function </keyword>
-<keyword> void </keyword>
-<identifier> main </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<identifier> SquareGame </identifier>
-<identifier> game </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> game </identifier>
-<symbol> = </symbol>
-<identifier> game </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> game </identifier>
-<symbol> . </symbol>
-<identifier> run </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> game </identifier>
-<symbol> . </symbol>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> function </keyword>
-<keyword> void </keyword>
-<identifier> test </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<keyword> int </keyword>
-<identifier> i </identifier>
-<symbol> , </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<identifier> String </identifier>
-<identifier> s </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<identifier> Array </identifier>
-<identifier> a </identifier>
-<symbol> ; </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> i </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> s </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> s </identifier>
-<symbol> = </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> a </identifier>
-<symbol> [ </symbol>
-<identifier> i </identifier>
-<symbol> ] </symbol>
-<symbol> = </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> else </keyword>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> j </identifier>
-<symbol> = </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> | </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/ExpressionLessSquare/Square.ast b/projects/10/ExpressionLessSquare/Square.ast
deleted file mode 100644
index 884c695..0000000
--- a/projects/10/ExpressionLessSquare/Square.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "Square" [JClassVarDec "field" ("int","x"),JClassVarDec "field" ("int","y"),JClassVarDec "field" ("int","size")] [JSubroutineDec (JSubroutineHeader "constructor" ("Square","new") [("int","Ax"),("int","Ay"),("int","Asize")]) (JSubroutineBody [] [JLetStatment (JVarId "x" Nothing) (JExpVar (JVarId "Ax" Nothing)),JLetStatment (JVarId "y" Nothing) (JExpVar (JVarId "Ay" Nothing)),JLetStatment (JVarId "size" Nothing) (JExpVar (JVarId "Asize" Nothing)),JDoStatement (JSubroutineCall "draw" Nothing []),JReturnStatement (Just (JExpVar (JVarId "x" Nothing)))]),JSubroutineDec (JSubroutineHeader "method" ("void","dispose") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "Memory" (Just "deAlloc") [JKeywordConst "this"]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","draw") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","erase") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","incSize") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "x" Nothing)) [JDoStatement (JSubroutineCall "erase" Nothing []),JLetStatment (JVarId "size" Nothing) (JExpVar (JVarId "size" Nothing)),JDoStatement (JSubroutineCall "draw" Nothing [])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","decSize") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "size" Nothing)) [JDoStatement (JSubroutineCall "erase" Nothing []),JLetStatment (JVarId "size" Nothing) (JExpVar (JVarId "size" Nothing)),JDoStatement (JSubroutineCall "draw" Nothing [])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveUp") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "y" Nothing)) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)]),JLetStatment (JVarId "y" Nothing) (JExpVar (JVarId "y" Nothing)),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveDown") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "y" Nothing)) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)]),JLetStatment (JVarId "y" Nothing) (JExpVar (JVarId "y" Nothing)),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveLeft") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "x" Nothing)) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)]),JLetStatment (JVarId "x" Nothing) (JExpVar (JVarId "x" Nothing)),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveRight") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "x" Nothing)) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)]),JLetStatment (JVarId "x" Nothing) (JExpVar (JVarId "x" Nothing)),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JExpVar (JVarId "x" Nothing)]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing)])] Nothing,JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/ExpressionLessSquare/Square.jack b/projects/10/ExpressionLessSquare/Square.jack
deleted file mode 100644
index 33a54ad..0000000
--- a/projects/10/ExpressionLessSquare/Square.jack
+++ /dev/null
@@ -1,99 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-/// File name: projects/10/ExpressionLessSquare/Square.jack
-
-/** Expressionless version of projects/10/Square/Square.jack. */
-
-class Square {
-
- field int x, y;
- field int size;
-
- constructor Square new(int Ax, int Ay, int Asize) {
- let x = Ax;
- let y = Ay;
- let size = Asize;
- do draw();
- return x;
- }
-
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-
- method void draw() {
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- return;
- }
-
- method void erase() {
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- return;
- }
-
- method void incSize() {
- if (x) {
- do erase();
- let size = size;
- do draw();
- }
- return;
- }
-
- method void decSize() {
- if (size) {
- do erase();
- let size = size;
- do draw();
- }
- return;
- }
-
- method void moveUp() {
- if (y) {
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- let y = y;
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- }
- return;
- }
-
- method void moveDown() {
- if (y) {
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- let y = y;
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- }
- return;
- }
-
- method void moveLeft() {
- if (x) {
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- let x = x;
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- }
- return;
- }
-
- method void moveRight() {
- if (x) {
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- let x = x;
- do Screen.setColor(x);
- do Screen.drawRectangle(x, y, x, y);
- }
- return;
- }
-}
diff --git a/projects/10/ExpressionLessSquare/Square.xml b/projects/10/ExpressionLessSquare/Square.xml
deleted file mode 100644
index ed0e6ec..0000000
--- a/projects/10/ExpressionLessSquare/Square.xml
+++ /dev/null
@@ -1,967 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> Square </identifier>
- <symbol> { </symbol>
- <classVarDec>
- <keyword> field </keyword>
- <keyword> int </keyword>
- <identifier> x </identifier>
- <symbol> , </symbol>
- <identifier> y </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <classVarDec>
- <keyword> field </keyword>
- <keyword> int </keyword>
- <identifier> size </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <subroutineDec>
- <keyword> constructor </keyword>
- <identifier> Square </identifier>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <parameterList>
- <keyword> int </keyword>
- <identifier> Ax </identifier>
- <symbol> , </symbol>
- <keyword> int </keyword>
- <identifier> Ay </identifier>
- <symbol> , </symbol>
- <keyword> int </keyword>
- <identifier> Asize </identifier>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> x </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Ax </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> y </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Ay </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> size </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Asize </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Memory </identifier>
- <symbol> . </symbol>
- <identifier> deAlloc </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> this </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> erase </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> incSize </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> erase </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> size </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> decSize </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> erase </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> size </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveUp </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> y </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveDown </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> y </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveLeft </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> x </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveRight </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> x </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/ExpressionLessSquare/SquareGame.ast b/projects/10/ExpressionLessSquare/SquareGame.ast
deleted file mode 100644
index 0abe80b..0000000
--- a/projects/10/ExpressionLessSquare/SquareGame.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "SquareGame" [JClassVarDec "field" ("Square","square"),JClassVarDec "field" ("int","direction")] [JSubroutineDec (JSubroutineHeader "constructor" ("SquareGame","new") []) (JSubroutineBody [] [JLetStatment (JVarId "square" Nothing) (JExpVar (JVarId "square" Nothing)),JLetStatment (JVarId "direction" Nothing) (JExpVar (JVarId "direction" Nothing)),JReturnStatement (Just (JExpVar (JVarId "square" Nothing)))]),JSubroutineDec (JSubroutineHeader "method" ("void","dispose") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "square" (Just "dispose") []),JDoStatement (JSubroutineCall "Memory" (Just "deAlloc") [JExpVar (JVarId "square" Nothing)]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveSquare") []) (JSubroutineBody [] [JIfStatement (JExpVar (JVarId "direction" Nothing)) [JDoStatement (JSubroutineCall "square" (Just "moveUp") [])] Nothing,JIfStatement (JExpVar (JVarId "direction" Nothing)) [JDoStatement (JSubroutineCall "square" (Just "moveDown") [])] Nothing,JIfStatement (JExpVar (JVarId "direction" Nothing)) [JDoStatement (JSubroutineCall "square" (Just "moveLeft") [])] Nothing,JIfStatement (JExpVar (JVarId "direction" Nothing)) [JDoStatement (JSubroutineCall "square" (Just "moveRight") [])] Nothing,JDoStatement (JSubroutineCall "Sys" (Just "wait") [JExpVar (JVarId "direction" Nothing)]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","run") []) (JSubroutineBody [("char","key"),("boolean","exit")] [JLetStatment (JVarId "exit" Nothing) (JExpVar (JVarId "key" Nothing)),JWhileStatment (JExpVar (JVarId "exit" Nothing)) [JWhileStatment (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "key" Nothing) (JExpVar (JVarId "key" Nothing)),JDoStatement (JSubroutineCall "moveSquare" Nothing [])],JIfStatement (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "exit" Nothing) (JExpVar (JVarId "exit" Nothing))] Nothing,JIfStatement (JExpVar (JVarId "key" Nothing)) [JDoStatement (JSubroutineCall "square" (Just "decSize") [])] Nothing,JIfStatement (JExpVar (JVarId "key" Nothing)) [JDoStatement (JSubroutineCall "square" (Just "incSize") [])] Nothing,JIfStatement (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "direction" Nothing) (JExpVar (JVarId "exit" Nothing))] Nothing,JIfStatement (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "direction" Nothing) (JExpVar (JVarId "key" Nothing))] Nothing,JIfStatement (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "direction" Nothing) (JExpVar (JVarId "square" Nothing))] Nothing,JIfStatement (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "direction" Nothing) (JExpVar (JVarId "direction" Nothing))] Nothing,JWhileStatment (JExpVar (JVarId "key" Nothing)) [JLetStatment (JVarId "key" Nothing) (JExpVar (JVarId "key" Nothing)),JDoStatement (JSubroutineCall "moveSquare" Nothing [])]],JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/ExpressionLessSquare/SquareGame.jack b/projects/10/ExpressionLessSquare/SquareGame.jack
deleted file mode 100644
index 2866f0d..0000000
--- a/projects/10/ExpressionLessSquare/SquareGame.jack
+++ /dev/null
@@ -1,60 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/10/ExpressionLessSquare/SquareGame.jack
-
-/** Expressionless version of projects/10/Square/SquareGame.jack. */
-
-class SquareGame {
- field Square square;
- field int direction;
-
- constructor SquareGame new() {
- let square = square;
- let direction = direction;
- return square;
- }
-
- method void dispose() {
- do square.dispose();
- do Memory.deAlloc(square);
- return;
- }
-
- method void moveSquare() {
- if (direction) { do square.moveUp(); }
- if (direction) { do square.moveDown(); }
- if (direction) { do square.moveLeft(); }
- if (direction) { do square.moveRight(); }
- do Sys.wait(direction);
- return;
- }
-
- method void run() {
- var char key;
- var boolean exit;
-
- let exit = key;
- while (exit) {
- while (key) {
- let key = key;
- do moveSquare();
- }
-
- if (key) { let exit = exit; }
- if (key) { do square.decSize(); }
- if (key) { do square.incSize(); }
- if (key) { let direction = exit; }
- if (key) { let direction = key; }
- if (key) { let direction = square; }
- if (key) { let direction = direction; }
-
- while (key) {
- let key = key;
- do moveSquare();
- }
- }
- return;
- }
-}
-
diff --git a/projects/10/ExpressionLessSquare/SquareGame.xml b/projects/10/ExpressionLessSquare/SquareGame.xml
deleted file mode 100644
index 288c6cd..0000000
--- a/projects/10/ExpressionLessSquare/SquareGame.xml
+++ /dev/null
@@ -1,544 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> SquareGame </identifier>
- <symbol> { </symbol>
- <classVarDec>
- <keyword> field </keyword>
- <identifier> Square </identifier>
- <identifier> square </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <classVarDec>
- <keyword> field </keyword>
- <keyword> int </keyword>
- <identifier> direction </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <subroutineDec>
- <keyword> constructor </keyword>
- <identifier> SquareGame </identifier>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> square </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> square </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <returnStatement>
- <keyword> return </keyword>
- <expression>
- <term>
- <identifier> square </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Memory </identifier>
- <symbol> . </symbol>
- <identifier> deAlloc </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> square </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveSquare </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveUp </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveDown </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveLeft </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveRight </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Sys </identifier>
- <symbol> . </symbol>
- <identifier> wait </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> run </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <keyword> char </keyword>
- <identifier> key </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <keyword> boolean </keyword>
- <identifier> exit </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> exit </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> exit </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> key </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> moveSquare </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> exit </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> exit </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> decSize </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> incSize </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> exit </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> square </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> key </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> moveSquare </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/ExpressionLessSquare/SquareGameT.xml b/projects/10/ExpressionLessSquare/SquareGameT.xml
deleted file mode 100644
index 278a8a9..0000000
--- a/projects/10/ExpressionLessSquare/SquareGameT.xml
+++ /dev/null
@@ -1,268 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> SquareGame </identifier>
-<symbol> { </symbol>
-<keyword> field </keyword>
-<identifier> Square </identifier>
-<identifier> square </identifier>
-<symbol> ; </symbol>
-<keyword> field </keyword>
-<keyword> int </keyword>
-<identifier> direction </identifier>
-<symbol> ; </symbol>
-<keyword> constructor </keyword>
-<identifier> SquareGame </identifier>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> square </identifier>
-<symbol> = </symbol>
-<identifier> square </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<identifier> direction </identifier>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<identifier> square </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Memory </identifier>
-<symbol> . </symbol>
-<identifier> deAlloc </identifier>
-<symbol> ( </symbol>
-<identifier> square </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveSquare </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveUp </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveDown </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveLeft </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveRight </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> do </keyword>
-<identifier> Sys </identifier>
-<symbol> . </symbol>
-<identifier> wait </identifier>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> run </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<keyword> char </keyword>
-<identifier> key </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<keyword> boolean </keyword>
-<identifier> exit </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> exit </identifier>
-<symbol> = </symbol>
-<identifier> key </identifier>
-<symbol> ; </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<identifier> exit </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<identifier> key </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> moveSquare </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> exit </identifier>
-<symbol> = </symbol>
-<identifier> exit </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> decSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> incSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<identifier> exit </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<identifier> key </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<identifier> square </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<identifier> direction </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<identifier> key </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> moveSquare </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/ExpressionLessSquare/SquareT.xml b/projects/10/ExpressionLessSquare/SquareT.xml
deleted file mode 100644
index cd03a1e..0000000
--- a/projects/10/ExpressionLessSquare/SquareT.xml
+++ /dev/null
@@ -1,449 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> Square </identifier>
-<symbol> { </symbol>
-<keyword> field </keyword>
-<keyword> int </keyword>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ; </symbol>
-<keyword> field </keyword>
-<keyword> int </keyword>
-<identifier> size </identifier>
-<symbol> ; </symbol>
-<keyword> constructor </keyword>
-<identifier> Square </identifier>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<keyword> int </keyword>
-<identifier> Ax </identifier>
-<symbol> , </symbol>
-<keyword> int </keyword>
-<identifier> Ay </identifier>
-<symbol> , </symbol>
-<keyword> int </keyword>
-<identifier> Asize </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> x </identifier>
-<symbol> = </symbol>
-<identifier> Ax </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> y </identifier>
-<symbol> = </symbol>
-<identifier> Ay </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> size </identifier>
-<symbol> = </symbol>
-<identifier> Asize </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<identifier> x </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Memory </identifier>
-<symbol> . </symbol>
-<identifier> deAlloc </identifier>
-<symbol> ( </symbol>
-<keyword> this </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> erase </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> incSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> erase </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> size </identifier>
-<symbol> = </symbol>
-<identifier> size </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> decSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> erase </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> size </identifier>
-<symbol> = </symbol>
-<identifier> size </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveUp </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> y </identifier>
-<symbol> = </symbol>
-<identifier> y </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveDown </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> y </identifier>
-<symbol> = </symbol>
-<identifier> y </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveLeft </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> x </identifier>
-<symbol> = </symbol>
-<identifier> x </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveRight </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> x </identifier>
-<symbol> = </symbol>
-<identifier> x </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/JackParser b/projects/10/JackParser
deleted file mode 100755
index 7d36891..0000000
--- a/projects/10/JackParser
+++ /dev/null
Binary files differ
diff --git a/projects/10/JackParser.hi b/projects/10/JackParser.hi
deleted file mode 100644
index a0ca33e..0000000
--- a/projects/10/JackParser.hi
+++ /dev/null
Binary files differ
diff --git a/projects/10/JackParser.hs b/projects/10/JackParser.hs
deleted file mode 100644
index 6f83070..0000000
--- a/projects/10/JackParser.hs
+++ /dev/null
@@ -1,312 +0,0 @@
--- Jack Parser, as the coursework of Project 10 of Nand2Tetris course.
--- Author: Yuchen Pei (me@ypei.me)
--- Date: 2018-01-11
-{-# LANGUAGE FlexibleContexts #-}
-import Text.Parsec.Prim
-import Text.Parsec.Char
-import Text.Parsec.Combinator
-import Data.Functor.Identity
-import Data.Either
-import Data.Maybe
-import Data.List
-import System.Environment
-import System.Directory
-import Control.Monad
-
-data JClass = JClass JIdentifier [JClassVarDec] [JSubroutineDec] deriving (Show, Eq)
-data JClassVarDec = JClassVarDec JClassVarScope JTypeAndId deriving (Show, Eq)
-data JSubroutineDec = JSubroutineDec JSubroutineHeader JSubroutineBody deriving (Show, Eq)
-data JSubroutineHeader = JSubroutineHeader JSubroutineType JTypeAndId [JTypeAndId] deriving (Show, Eq)
-data JSubroutineBody = JSubroutineBody [JTypeAndId] [JStatement] deriving (Show, Eq)
-data JStatement = JLetStatment JVarId JExpression
- | JIfStatement JExpression [JStatement] (Maybe [JStatement])
- | JWhileStatment JExpression [JStatement]
- | JDoStatement JSubroutineCall
- | JReturnStatement (Maybe JExpression)
- deriving (Show, Eq)
-data JExpression = JIntConst Int
- | JStrConst [Char]
- | JKeywordConst [Char] -- can only be true, false, null or this
- | JExpVar JVarId
- | JExpCall JSubroutineCall
- | JExpUna JUOp JExpression -- JOp can only be - or ~ here
- | JExpBin JExpression [(JBOp, JExpression)]
- deriving (Show, Eq)
-data JVarId = JVarId JIdentifier (Maybe JExpression) deriving (Show, Eq)
-data JSubroutineCall = JSubroutineCall JIdentifier (Maybe JIdentifier) [JExpression] deriving (Show, Eq)
-type JBOp = Char
-type JUOp = Char
-type JIdentifier = [Char]
-type JTypeAndId = (JType, JIdentifier)
-type JClassVarScope = [Char]
-type JType = [Char]
-type JSubroutineType = [Char]
-type JackParser = Parsec [Char] ()
-
-
-binaryOpChars = "+-*/&|<>="
-unaryOpChars = "-~"
-keywordConstStrs = ["true", "false", "null", "this"]
-primTypeStrs = ["int", "char", "boolean"]
-primTypeStrs' = primTypeStrs ++ ["void"]
-classVarScopeStrs = ["static", "field"]
-subroutineTypeStrs = ["constructor", "function", "method"]
-alphaUnderscore = ['a' .. 'z'] ++ ['A' .. 'Z'] ++ ['_']
-alphaNumUnderscore = alphaUnderscore ++ ['0'..'9']
-
-parse' parser = parse parser ""
-
---jack xs = parse' (many jSpace >> jClass) (replCrWithNl xs)
-jack = parse' (many jSpace >> jClass)
-
-jClass :: JackParser JClass
-jClass = do
- string "class" >> many1 jSpace
- id <- jIdentifier
- many jSpace >> char '{'
- classVarDecs <- many $ try (many jSpace >> jClassVarDecs)
- subroutineDecs <- many $ try (many jSpace >> jSubroutineDec)
- many jSpace >> char '}'
- return $ JClass id (mconcat classVarDecs) subroutineDecs
-
-jClassType :: JackParser [Char]
-jClassType = do
- x <- oneOf ['A' .. 'Z']
- xs <- many $ oneOf alphaNumUnderscore
- return $ x:xs
-
-jBOp :: JackParser JBOp
-jBOp = oneOf binaryOpChars
-
-jUOp :: JackParser JUOp
-jUOp = oneOf unaryOpChars
-
-jComment :: JackParser ()
-jComment = jInlineComment <|> jBlockComment
-
-jInlineComment :: JackParser ()
-jInlineComment = return () <*
- try (string "//" >> manyTill (noneOf "\n\r") endOfLine)
- --try (string "//" >> manyTill (noneOf "\n") newline)
-
-jSpace :: JackParser ()
-jSpace = (return () <* space) <|> jComment
-
-jBlockComment :: JackParser ()
-jBlockComment = return () <*
- try (string "/*" >> manyTill anyChar (try $ string "*/"))
-
-jPrimType :: JackParser JType
-jPrimType = choice $ string <$> primTypeStrs
-
-jType :: JackParser JType
-jType = choice [jPrimType, jClassType]
-
-jPrimType' :: JackParser JType
-jPrimType' = choice $ string <$> primTypeStrs'
-
-jType' :: JackParser JType
-jType' = choice [jPrimType', jClassType]
-
-jClassVarScope :: JackParser JClassVarScope
-jClassVarScope = choice $ string <$> classVarScopeStrs
-
-jSubroutineType :: JackParser JSubroutineType
-jSubroutineType = choice $ string <$> subroutineTypeStrs
-
-jIdentifier :: JackParser [Char]
-jIdentifier = do
- x <- oneOf alphaUnderscore
- xs <- many $ oneOf alphaNumUnderscore
- return $ x:xs
-
-jClassVarDecs :: JackParser [JClassVarDec]
-jClassVarDecs = do
- scope <- jClassVarScope
- many1 jSpace
- typeAndIds <- jTypeAndIds
- many jSpace >> char ';'
- return $ JClassVarDec scope <$> typeAndIds
-
-jVarDecs :: JackParser [JTypeAndId]
-jVarDecs =
- (string "var" >> many1 jSpace) >> jTypeAndIds <* (many jSpace >> char ';')
-
-jTypeAndId :: JackParser JType -> JackParser JTypeAndId
-jTypeAndId p = do
- type_ <- p
- many1 jSpace
- id <- jIdentifier
- return (type_, id)
-
-jTypeAndIds :: JackParser [JTypeAndId]
-jTypeAndIds = do
- type_ <- jType
- many1 jSpace
- ids <- sepBy jIdentifier (try $ many jSpace >> char ',' >> many jSpace)
- return $ (\x -> (type_, x)) <$> ids
-
-jParameters :: JackParser [JTypeAndId]
-jParameters = do
- char '(' >> many jSpace
- params <- sepBy (jTypeAndId jType) (try $ many jSpace >> char ',' >> many jSpace)
- many jSpace >> char ')'
- return params
-
-jSubroutineHeader :: JackParser JSubroutineHeader
-jSubroutineHeader = do
- subtype <- jSubroutineType
- many1 jSpace
- typeAndId <- jTypeAndId jType'
- params <- jParameters
- return $ JSubroutineHeader subtype typeAndId params
-
-jExpression :: JackParser JExpression
-jExpression = jExpBin <|> jTerm
-
-jTerm :: JackParser JExpression
-jTerm = choice [jIntConst, jStrConst, jKeywordConst, jExpCall, jExpVar, jExpUna, jExpInBraces]
-
-jIntConst :: JackParser JExpression
-jIntConst = JIntConst <$> (read <$> many1 digit)
-
-jStrConst :: JackParser JExpression
-jStrConst = JStrConst <$> between (char '"') (char '"') (many $ noneOf "\"")
-
-jKeywordConst :: JackParser JExpression
-jKeywordConst = JKeywordConst <$> (choice $ try <$> string <$> keywordConstStrs)
-
-jExpVar :: JackParser JExpression
-jExpVar = JExpVar <$> jVarId
-
-jVarId :: JackParser JVarId
-jVarId = do
- id <- jIdentifier
- maybeArray <- optionMaybe $ try (char '[' >> jExpression <* char ']')
- return $ JVarId id maybeArray
-
-jExpCall :: JackParser JExpression
-jExpCall = JExpCall <$> jSubroutineCall
-
-jExpUna :: JackParser JExpression
-jExpUna = do
- op <- oneOf unaryOpChars
- many jSpace
- x <- jTerm
- return $ JExpUna op x
-
-jExpInBraces :: JackParser JExpression
-jExpInBraces = between (char '(') (char ')') jExpression -- expressions like a + () is not allowed
-
-jExpBin :: JackParser JExpression
-jExpBin = try $ do
- x <- jTerm
- xs <- many1 jOpAndTerm
- return $ JExpBin x xs
-
-jOpAndTerm :: JackParser (JBOp, JExpression)
-jOpAndTerm = do
- op <- many jSpace >> jBOp
- x <- many jSpace >> jTerm
- return (op, x)
-
-jSubroutineDec :: JackParser JSubroutineDec
-jSubroutineDec = do
- header <- jSubroutineHeader
- many jSpace
- body <- jSubroutineBody
- return $ JSubroutineDec header body
-
-jSubroutineBody :: JackParser JSubroutineBody
-jSubroutineBody = do
- char '{'
- varDecs <- many $ try (many jSpace >> jVarDecs)
- stmts <- many $ try (many jSpace >> jStatement)
- many jSpace >> char '}'
- return $ JSubroutineBody (mconcat varDecs) stmts
-
-jStatement :: JackParser JStatement
-jStatement = choice [jLetStatement, jIfStatement, jWhileStatement, jDoStatement, jReturnStatement]
-
-jLetStatement :: JackParser JStatement
-jLetStatement = do
- string "let" >> many1 jSpace
- leftVarId <- jVarId
- many jSpace >> char '=' >> many jSpace
- exp <- jExpression
- many jSpace >> char ';'
- return $ JLetStatment leftVarId exp
-
-jIfStatement = do
- string "if" >> many jSpace >> char '(' >> many jSpace
- exp <- jExpression
- many jSpace >> char ')' >> many jSpace >> char '{' >> many jSpace
- stmts <- many (try $ many jSpace >> jStatement)
- many jSpace >> char '}'
- stmts' <- optionMaybe $ try jElseBlock
- return $ JIfStatement exp stmts stmts'
-
-jElseBlock :: JackParser [JStatement]
-jElseBlock = do
- many jSpace >> string "else" >> many jSpace >> char '{' >> many jSpace
- stmts <- many (try $ many jSpace >> jStatement)
- many jSpace >> char '}'
- return stmts
-
-jWhileStatement :: JackParser JStatement
-jWhileStatement = do
- string "while" >> many jSpace >> char '(' >> many jSpace
- exp <- jExpression
- many jSpace >> char ')' >> many jSpace >> char '{'
- stmts <- many (try $ many jSpace >> jStatement)
- many jSpace >> char '}'
- return $ JWhileStatment exp stmts
-
-jDoStatement :: JackParser JStatement
-jDoStatement = do
- jCall <- string "do" >> many jSpace >> jSubroutineCall
- many jSpace >> char ';'
- return $ JDoStatement jCall
-
-jReturnStatement :: JackParser JStatement
-jReturnStatement = do
- string "return" >> many jSpace
- res <- optionMaybe $ try jExpression
- many jSpace >> char ';'
- return $ JReturnStatement res
-
-jSubroutineCall :: JackParser JSubroutineCall
-jSubroutineCall = try $ do
- callee <- jIdentifier
- method <- optionMaybe $ try (char '.' >> jIdentifier)
- args <- emptyArgs <|> someArgs
- return $ JSubroutineCall callee method args
-
-emptyArgs :: JackParser [JExpression]
-emptyArgs = return [] <* (try $ char '(' >> many jSpace >> char ')')
-
-someArgs :: JackParser [JExpression]
-someArgs = do
- char '(' >> many jSpace
- exps <- sepBy jExpression (many jSpace >> char ',' >> many jSpace)
- many jSpace >> char ')'
- return exps
-
-{--
-replCrWithNl :: [Char] -> [Char]
-replCrWithNl = fmap cr2nl
- where cr2nl '\r' = '\n'
- cr2nl c = c
- --}
-
--- IO
-
-main = do
- dir <- head <$> getArgs
- filesWODir <- filter isJackFile <$> listDirectory dir
- let jackFiles = (dir++) <$> filesWODir
- codes <- sequence $ readFile <$> jackFiles
- zipWithM writeFile (chExt <$> jackFiles) (show . jack <$> codes)
- where isJackFile xs = drop (length xs - 5) xs == ".jack"
- chExt xs = take (length xs - 4) xs ++ "ast"
- --}
diff --git a/projects/10/JackParser.o b/projects/10/JackParser.o
deleted file mode 100644
index d33b200..0000000
--- a/projects/10/JackParser.o
+++ /dev/null
Binary files differ
diff --git a/projects/10/Square/Main.ast b/projects/10/Square/Main.ast
deleted file mode 100644
index d314f03..0000000
--- a/projects/10/Square/Main.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "Main" [JClassVarDec "static" ("boolean","test")] [JSubroutineDec (JSubroutineHeader "function" ("void","main") []) (JSubroutineBody [("SquareGame","game")] [JLetStatment (JVarId "game" Nothing) (JExpCall (JSubroutineCall "SquareGame" (Just "new") [])),JDoStatement (JSubroutineCall "game" (Just "run") []),JDoStatement (JSubroutineCall "game" (Just "dispose") []),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "function" ("void","test") []) (JSubroutineBody [("int","i"),("int","j"),("String","s"),("Array","a")] [JIfStatement (JKeywordConst "false") [JLetStatment (JVarId "s" Nothing) (JStrConst "string constant"),JLetStatment (JVarId "s" Nothing) (JKeywordConst "null"),JLetStatment (JVarId "a" (Just (JIntConst 1))) (JExpVar (JVarId "a" (Just (JIntConst 2))))] (Just [JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('*',JExpUna '-' (JExpVar (JVarId "j" Nothing)))]),JLetStatment (JVarId "j" Nothing) (JExpBin (JExpVar (JVarId "j" Nothing)) [('/',JExpUna '-' (JIntConst 2))]),JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('|',JExpVar (JVarId "j" Nothing))])]),JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/Square/Main.jack b/projects/10/Square/Main.jack
deleted file mode 100644
index 0b9e4cb..0000000
--- a/projects/10/Square/Main.jack
+++ /dev/null
@@ -1,36 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/10/Square/Main.jack
-
-// (derived from projects/09/Square/Main.jack, with testing additions)
-
-/** Initializes a new Square Dance game and starts running it. */
-class Main {
- static boolean test; // Added for testing -- there is no static keyword
- // in the Square files.
- function void main() {
- var SquareGame game;
- let game = SquareGame.new();
- do game.run();
- do game.dispose();
- return;
- }
-
- function void test() { // Added to test Jack syntax that is not use in
- var int i, j; // the Square files.
- var String s;
- var Array a;
- if (false) {
- let s = "string constant";
- let s = null;
- let a[1] = a[2];
- }
- else { // There is no else keyword in the Square files.
- let i = i * (-j);
- let j = j / (-2); // note: unary negate constant 2
- let i = i | j;
- }
- return;
- }
-}
diff --git a/projects/10/Square/Main.xml b/projects/10/Square/Main.xml
deleted file mode 100644
index f6863c6..0000000
--- a/projects/10/Square/Main.xml
+++ /dev/null
@@ -1,244 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> Main </identifier>
- <symbol> { </symbol>
- <classVarDec>
- <keyword> static </keyword>
- <keyword> boolean </keyword>
- <identifier> test </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <subroutineDec>
- <keyword> function </keyword>
- <keyword> void </keyword>
- <identifier> main </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <identifier> SquareGame </identifier>
- <identifier> game </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> game </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> SquareGame </identifier>
- <symbol> . </symbol>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> game </identifier>
- <symbol> . </symbol>
- <identifier> run </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> game </identifier>
- <symbol> . </symbol>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> function </keyword>
- <keyword> void </keyword>
- <identifier> test </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <keyword> int </keyword>
- <identifier> i </identifier>
- <symbol> , </symbol>
- <identifier> j </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <identifier> String </identifier>
- <identifier> s </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <identifier> Array </identifier>
- <identifier> a </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> s </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <stringConstant> string constant </stringConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> s </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <keyword> null </keyword>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> a </identifier>
- <symbol> [ </symbol>
- <expression>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ] </symbol>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> a </identifier>
- <symbol> [ </symbol>
- <expression>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ] </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- <keyword> else </keyword>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> * </symbol>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> - </symbol>
- <term>
- <identifier> j </identifier>
- </term>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> j </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> j </identifier>
- </term>
- <symbol> / </symbol>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> i </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> i </identifier>
- </term>
- <symbol> | </symbol>
- <term>
- <identifier> j </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/Square/MainT.xml b/projects/10/Square/MainT.xml
deleted file mode 100644
index 950c050..0000000
--- a/projects/10/Square/MainT.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> Main </identifier>
-<symbol> { </symbol>
-<keyword> static </keyword>
-<keyword> boolean </keyword>
-<identifier> test </identifier>
-<symbol> ; </symbol>
-<keyword> function </keyword>
-<keyword> void </keyword>
-<identifier> main </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<identifier> SquareGame </identifier>
-<identifier> game </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> game </identifier>
-<symbol> = </symbol>
-<identifier> SquareGame </identifier>
-<symbol> . </symbol>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> game </identifier>
-<symbol> . </symbol>
-<identifier> run </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> game </identifier>
-<symbol> . </symbol>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> function </keyword>
-<keyword> void </keyword>
-<identifier> test </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<keyword> int </keyword>
-<identifier> i </identifier>
-<symbol> , </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<identifier> String </identifier>
-<identifier> s </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<identifier> Array </identifier>
-<identifier> a </identifier>
-<symbol> ; </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<keyword> false </keyword>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> s </identifier>
-<symbol> = </symbol>
-<stringConstant> string constant </stringConstant>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> s </identifier>
-<symbol> = </symbol>
-<keyword> null </keyword>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> a </identifier>
-<symbol> [ </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ] </symbol>
-<symbol> = </symbol>
-<identifier> a </identifier>
-<symbol> [ </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ] </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> else </keyword>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> * </symbol>
-<symbol> ( </symbol>
-<symbol> - </symbol>
-<identifier> j </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> j </identifier>
-<symbol> = </symbol>
-<identifier> j </identifier>
-<symbol> / </symbol>
-<symbol> ( </symbol>
-<symbol> - </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> i </identifier>
-<symbol> = </symbol>
-<identifier> i </identifier>
-<symbol> | </symbol>
-<identifier> j </identifier>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/Square/Square.ast b/projects/10/Square/Square.ast
deleted file mode 100644
index d360f5f..0000000
--- a/projects/10/Square/Square.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "Square" [JClassVarDec "field" ("int","x"),JClassVarDec "field" ("int","y"),JClassVarDec "field" ("int","size")] [JSubroutineDec (JSubroutineHeader "constructor" ("Square","new") [("int","Ax"),("int","Ay"),("int","Asize")]) (JSubroutineBody [] [JLetStatment (JVarId "x" Nothing) (JExpVar (JVarId "Ax" Nothing)),JLetStatment (JVarId "y" Nothing) (JExpVar (JVarId "Ay" Nothing)),JLetStatment (JVarId "size" Nothing) (JExpVar (JVarId "Asize" Nothing)),JDoStatement (JSubroutineCall "draw" Nothing []),JReturnStatement (Just (JKeywordConst "this"))]),JSubroutineDec (JSubroutineHeader "method" ("void","dispose") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "Memory" (Just "deAlloc") [JKeywordConst "this"]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","draw") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "true"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","erase") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "false"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","incSize") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpBin (JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('<',JIntConst 254)]) [('&',JExpBin (JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('<',JIntConst 510)])]) [JDoStatement (JSubroutineCall "erase" Nothing []),JLetStatment (JVarId "size" Nothing) (JExpBin (JExpVar (JVarId "size" Nothing)) [('+',JIntConst 2)]),JDoStatement (JSubroutineCall "draw" Nothing [])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","decSize") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpVar (JVarId "size" Nothing)) [('>',JIntConst 2)]) [JDoStatement (JSubroutineCall "erase" Nothing []),JLetStatment (JVarId "size" Nothing) (JExpBin (JExpVar (JVarId "size" Nothing)) [('-',JIntConst 2)]),JDoStatement (JSubroutineCall "draw" Nothing [])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveUp") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpVar (JVarId "y" Nothing)) [('>',JIntConst 1)]) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "false"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpBin (JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('-',JIntConst 1)],JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]]),JLetStatment (JVarId "y" Nothing) (JExpBin (JExpVar (JVarId "y" Nothing)) [('-',JIntConst 2)]),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "true"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JIntConst 1)]])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveDown") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('<',JIntConst 254)]) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "false"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JIntConst 1)]]),JLetStatment (JVarId "y" Nothing) (JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JIntConst 2)]),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "true"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpBin (JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('-',JIntConst 1)],JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveLeft") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpVar (JVarId "x" Nothing)) [('>',JIntConst 1)]) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "false"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpBin (JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('-',JIntConst 1)],JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]]),JLetStatment (JVarId "x" Nothing) (JExpBin (JExpVar (JVarId "x" Nothing)) [('-',JIntConst 2)]),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "true"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JIntConst 1)],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]])] Nothing,JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveRight") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('<',JIntConst 510)]) [JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "false"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpVar (JVarId "x" Nothing),JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JIntConst 1)],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]]),JLetStatment (JVarId "x" Nothing) (JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JIntConst 2)]),JDoStatement (JSubroutineCall "Screen" (Just "setColor") [JKeywordConst "true"]),JDoStatement (JSubroutineCall "Screen" (Just "drawRectangle") [JExpBin (JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]) [('-',JIntConst 1)],JExpVar (JVarId "y" Nothing),JExpBin (JExpVar (JVarId "x" Nothing)) [('+',JExpVar (JVarId "size" Nothing))],JExpBin (JExpVar (JVarId "y" Nothing)) [('+',JExpVar (JVarId "size" Nothing))]])] Nothing,JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/Square/Square.jack b/projects/10/Square/Square.jack
deleted file mode 100644
index 3faf24f..0000000
--- a/projects/10/Square/Square.jack
+++ /dev/null
@@ -1,110 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/10/Square/Square.jack
-
-// (same as projects/09/Square/Square.jack)
-
-/** Implements a graphical square. */
-class Square {
-
- field int x, y; // screen location of the square's top-left corner
- field int size; // length of this square, in pixels
-
- /** Constructs a new square with a given location and size. */
- constructor Square new(int Ax, int Ay, int Asize) {
- let x = Ax;
- let y = Ay;
- let size = Asize;
- do draw();
- return this;
- }
-
- /** Disposes this square. */
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-
- /** Draws the square on the screen. */
- method void draw() {
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + size, y + size);
- return;
- }
-
- /** Erases the square from the screen. */
- method void erase() {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + size, y + size);
- return;
- }
-
- /** Increments the square size by 2 pixels. */
- method void incSize() {
- if (((y + size) < 254) & ((x + size) < 510)) {
- do erase();
- let size = size + 2;
- do draw();
- }
- return;
- }
-
- /** Decrements the square size by 2 pixels. */
- method void decSize() {
- if (size > 2) {
- do erase();
- let size = size - 2;
- do draw();
- }
- return;
- }
-
- /** Moves the square up by 2 pixels. */
- method void moveUp() {
- if (y > 1) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size);
- let y = y - 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + size, y + 1);
- }
- return;
- }
-
- /** Moves the square down by 2 pixels. */
- method void moveDown() {
- if ((y + size) < 254) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + size, y + 1);
- let y = y + 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size);
- }
- return;
- }
-
- /** Moves the square left by 2 pixels. */
- method void moveLeft() {
- if (x > 1) {
- do Screen.setColor(false);
- do Screen.drawRectangle((x + size) - 1, y, x + size, y + size);
- let x = x - 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + 1, y + size);
- }
- return;
- }
-
- /** Moves the square right by 2 pixels. */
- method void moveRight() {
- if ((x + size) < 510) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + 1, y + size);
- let x = x + 2;
- do Screen.setColor(true);
- do Screen.drawRectangle((x + size) - 1, y, x + size, y + size);
- }
- return;
- }
-}
diff --git a/projects/10/Square/Square.xml b/projects/10/Square/Square.xml
deleted file mode 100644
index ff5f235..0000000
--- a/projects/10/Square/Square.xml
+++ /dev/null
@@ -1,1211 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> Square </identifier>
- <symbol> { </symbol>
- <classVarDec>
- <keyword> field </keyword>
- <keyword> int </keyword>
- <identifier> x </identifier>
- <symbol> , </symbol>
- <identifier> y </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <classVarDec>
- <keyword> field </keyword>
- <keyword> int </keyword>
- <identifier> size </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <subroutineDec>
- <keyword> constructor </keyword>
- <identifier> Square </identifier>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <parameterList>
- <keyword> int </keyword>
- <identifier> Ax </identifier>
- <symbol> , </symbol>
- <keyword> int </keyword>
- <identifier> Ay </identifier>
- <symbol> , </symbol>
- <keyword> int </keyword>
- <identifier> Asize </identifier>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> x </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Ax </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> y </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Ay </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> size </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Asize </identifier>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <expression>
- <term>
- <keyword> this </keyword>
- </term>
- </expression>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Memory </identifier>
- <symbol> . </symbol>
- <identifier> deAlloc </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> this </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> true </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> erase </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> incSize </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> &lt; </symbol>
- <term>
- <integerConstant> 254 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> &amp; </symbol>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> &lt; </symbol>
- <term>
- <integerConstant> 510 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> erase </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> size </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> size </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> decSize </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> size </identifier>
- </term>
- <symbol> &gt; </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> erase </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> size </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> size </identifier>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> draw </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveUp </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> &gt; </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> y </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> true </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveDown </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> &lt; </symbol>
- <term>
- <integerConstant> 254 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> y </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> true </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveLeft </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> &gt; </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> x </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> true </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveRight </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> &lt; </symbol>
- <term>
- <integerConstant> 510 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> x </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> setColor </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> true </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Screen </identifier>
- <symbol> . </symbol>
- <identifier> drawRectangle </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- <symbol> - </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> x </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <identifier> y </identifier>
- </term>
- <symbol> + </symbol>
- <term>
- <identifier> size </identifier>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/Square/SquareGame.ast b/projects/10/Square/SquareGame.ast
deleted file mode 100644
index 55a9ff0..0000000
--- a/projects/10/Square/SquareGame.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "SquareGame" [JClassVarDec "field" ("Square","square"),JClassVarDec "field" ("int","direction")] [JSubroutineDec (JSubroutineHeader "constructor" ("SquareGame","new") []) (JSubroutineBody [] [JLetStatment (JVarId "square" Nothing) (JExpCall (JSubroutineCall "Square" (Just "new") [JIntConst 0,JIntConst 0,JIntConst 30])),JLetStatment (JVarId "direction" Nothing) (JIntConst 0),JReturnStatement (Just (JKeywordConst "this"))]),JSubroutineDec (JSubroutineHeader "method" ("void","dispose") []) (JSubroutineBody [] [JDoStatement (JSubroutineCall "square" (Just "dispose") []),JDoStatement (JSubroutineCall "Memory" (Just "deAlloc") [JKeywordConst "this"]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","moveSquare") []) (JSubroutineBody [] [JIfStatement (JExpBin (JExpVar (JVarId "direction" Nothing)) [('=',JIntConst 1)]) [JDoStatement (JSubroutineCall "square" (Just "moveUp") [])] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "direction" Nothing)) [('=',JIntConst 2)]) [JDoStatement (JSubroutineCall "square" (Just "moveDown") [])] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "direction" Nothing)) [('=',JIntConst 3)]) [JDoStatement (JSubroutineCall "square" (Just "moveLeft") [])] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "direction" Nothing)) [('=',JIntConst 4)]) [JDoStatement (JSubroutineCall "square" (Just "moveRight") [])] Nothing,JDoStatement (JSubroutineCall "Sys" (Just "wait") [JIntConst 5]),JReturnStatement Nothing]),JSubroutineDec (JSubroutineHeader "method" ("void","run") []) (JSubroutineBody [("char","key"),("boolean","exit")] [JLetStatment (JVarId "exit" Nothing) (JKeywordConst "false"),JWhileStatment (JExpUna '~' (JExpVar (JVarId "exit" Nothing))) [JWhileStatment (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 0)]) [JLetStatment (JVarId "key" Nothing) (JExpCall (JSubroutineCall "Keyboard" (Just "keyPressed") [])),JDoStatement (JSubroutineCall "moveSquare" Nothing [])],JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 81)]) [JLetStatment (JVarId "exit" Nothing) (JKeywordConst "true")] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 90)]) [JDoStatement (JSubroutineCall "square" (Just "decSize") [])] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 88)]) [JDoStatement (JSubroutineCall "square" (Just "incSize") [])] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 131)]) [JLetStatment (JVarId "direction" Nothing) (JIntConst 1)] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 133)]) [JLetStatment (JVarId "direction" Nothing) (JIntConst 2)] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 130)]) [JLetStatment (JVarId "direction" Nothing) (JIntConst 3)] Nothing,JIfStatement (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 132)]) [JLetStatment (JVarId "direction" Nothing) (JIntConst 4)] Nothing,JWhileStatment (JExpUna '~' (JExpBin (JExpVar (JVarId "key" Nothing)) [('=',JIntConst 0)])) [JLetStatment (JVarId "key" Nothing) (JExpCall (JSubroutineCall "Keyboard" (Just "keyPressed") [])),JDoStatement (JSubroutineCall "moveSquare" Nothing [])]],JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/Square/SquareGame.jack b/projects/10/Square/SquareGame.jack
deleted file mode 100644
index 4f71b16..0000000
--- a/projects/10/Square/SquareGame.jack
+++ /dev/null
@@ -1,81 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/10/Square/SquareGame.jack
-
-// (same as projects/09/Square/SquareGame.jack)
-
-/**
- * Implements the Square Dance game.
- * This simple game allows the user to move a black square around
- * the screen, and change the square's size during the movement.
- * When the game starts, a square of 30 by 30 pixels is shown at the
- * top-left corner of the screen. The user controls the square as follows.
- * The 4 arrow keys are used to move the square up, down, left, and right.
- * The 'z' and 'x' keys are used, respectively, to decrement and increment
- * the square's size. The 'q' key is used to quit the game.
- */
-
-class SquareGame {
- field Square square; // the square of this game
- field int direction; // the square's current direction:
- // 0=none, 1=up, 2=down, 3=left, 4=right
-
- /** Constructs a new Square Game. */
- constructor SquareGame new() {
- // Creates a 30 by 30 pixels square and positions it at the top-left
- // of the screen.
- let square = Square.new(0, 0, 30);
- let direction = 0; // initial state is no movement
- return this;
- }
-
- /** Disposes this game. */
- method void dispose() {
- do square.dispose();
- do Memory.deAlloc(this);
- return;
- }
-
- /** Moves the square in the current direction. */
- method void moveSquare() {
- if (direction = 1) { do square.moveUp(); }
- if (direction = 2) { do square.moveDown(); }
- if (direction = 3) { do square.moveLeft(); }
- if (direction = 4) { do square.moveRight(); }
- do Sys.wait(5); // delays the next movement
- return;
- }
-
- /** Runs the game: handles the user's inputs and moves the square accordingly */
- method void run() {
- var char key; // the key currently pressed by the user
- var boolean exit;
- let exit = false;
-
- while (~exit) {
- // waits for a key to be pressed
- while (key = 0) {
- let key = Keyboard.keyPressed();
- do moveSquare();
- }
- if (key = 81) { let exit = true; } // q key
- if (key = 90) { do square.decSize(); } // z key
- if (key = 88) { do square.incSize(); } // x key
- if (key = 131) { let direction = 1; } // up arrow
- if (key = 133) { let direction = 2; } // down arrow
- if (key = 130) { let direction = 3; } // left arrow
- if (key = 132) { let direction = 4; } // right arrow
-
- // waits for the key to be released
- while (~(key = 0)) {
- let key = Keyboard.keyPressed();
- do moveSquare();
- }
- } // while
- return;
- }
-}
-
-
-
diff --git a/projects/10/Square/SquareGame.xml b/projects/10/Square/SquareGame.xml
deleted file mode 100644
index ed3ab6e..0000000
--- a/projects/10/Square/SquareGame.xml
+++ /dev/null
@@ -1,643 +0,0 @@
-<class>
- <keyword> class </keyword>
- <identifier> SquareGame </identifier>
- <symbol> { </symbol>
- <classVarDec>
- <keyword> field </keyword>
- <identifier> Square </identifier>
- <identifier> square </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <classVarDec>
- <keyword> field </keyword>
- <keyword> int </keyword>
- <identifier> direction </identifier>
- <symbol> ; </symbol>
- </classVarDec>
- <subroutineDec>
- <keyword> constructor </keyword>
- <identifier> SquareGame </identifier>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> square </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Square </identifier>
- <symbol> . </symbol>
- <identifier> new </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> , </symbol>
- <expression>
- <term>
- <integerConstant> 30 </integerConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <returnStatement>
- <keyword> return </keyword>
- <expression>
- <term>
- <keyword> this </keyword>
- </term>
- </expression>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> dispose </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Memory </identifier>
- <symbol> . </symbol>
- <identifier> deAlloc </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <keyword> this </keyword>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> moveSquare </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <statements>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveUp </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveDown </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 3 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveLeft </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> direction </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 4 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> moveRight </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> Sys </identifier>
- <symbol> . </symbol>
- <identifier> wait </identifier>
- <symbol> ( </symbol>
- <expressionList>
- <expression>
- <term>
- <integerConstant> 5 </integerConstant>
- </term>
- </expression>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <subroutineDec>
- <keyword> method </keyword>
- <keyword> void </keyword>
- <identifier> run </identifier>
- <symbol> ( </symbol>
- <parameterList>
- </parameterList>
- <symbol> ) </symbol>
- <subroutineBody>
- <symbol> { </symbol>
- <varDec>
- <keyword> var </keyword>
- <keyword> char </keyword>
- <identifier> key </identifier>
- <symbol> ; </symbol>
- </varDec>
- <varDec>
- <keyword> var </keyword>
- <keyword> boolean </keyword>
- <identifier> exit </identifier>
- <symbol> ; </symbol>
- </varDec>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> exit </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <keyword> false </keyword>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ~ </symbol>
- <term>
- <identifier> exit </identifier>
- </term>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> key </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Keyboard </identifier>
- <symbol> . </symbol>
- <identifier> keyPressed </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> moveSquare </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 81 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> exit </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <keyword> true </keyword>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 90 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> decSize </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 88 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <doStatement>
- <keyword> do </keyword>
- <identifier> square </identifier>
- <symbol> . </symbol>
- <identifier> incSize </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 131 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 1 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 133 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 2 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 130 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 3 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <ifStatement>
- <keyword> if </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 132 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> direction </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <integerConstant> 4 </integerConstant>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- </statements>
- <symbol> } </symbol>
- </ifStatement>
- <whileStatement>
- <keyword> while </keyword>
- <symbol> ( </symbol>
- <expression>
- <term>
- <symbol> ~ </symbol>
- <term>
- <symbol> ( </symbol>
- <expression>
- <term>
- <identifier> key </identifier>
- </term>
- <symbol> = </symbol>
- <term>
- <integerConstant> 0 </integerConstant>
- </term>
- </expression>
- <symbol> ) </symbol>
- </term>
- </term>
- </expression>
- <symbol> ) </symbol>
- <symbol> { </symbol>
- <statements>
- <letStatement>
- <keyword> let </keyword>
- <identifier> key </identifier>
- <symbol> = </symbol>
- <expression>
- <term>
- <identifier> Keyboard </identifier>
- <symbol> . </symbol>
- <identifier> keyPressed </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- </term>
- </expression>
- <symbol> ; </symbol>
- </letStatement>
- <doStatement>
- <keyword> do </keyword>
- <identifier> moveSquare </identifier>
- <symbol> ( </symbol>
- <expressionList>
- </expressionList>
- <symbol> ) </symbol>
- <symbol> ; </symbol>
- </doStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- </statements>
- <symbol> } </symbol>
- </whileStatement>
- <returnStatement>
- <keyword> return </keyword>
- <symbol> ; </symbol>
- </returnStatement>
- </statements>
- <symbol> } </symbol>
- </subroutineBody>
- </subroutineDec>
- <symbol> } </symbol>
-</class>
diff --git a/projects/10/Square/SquareGameT.xml b/projects/10/Square/SquareGameT.xml
deleted file mode 100644
index 3136af2..0000000
--- a/projects/10/Square/SquareGameT.xml
+++ /dev/null
@@ -1,315 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> SquareGame </identifier>
-<symbol> { </symbol>
-<keyword> field </keyword>
-<identifier> Square </identifier>
-<identifier> square </identifier>
-<symbol> ; </symbol>
-<keyword> field </keyword>
-<keyword> int </keyword>
-<identifier> direction </identifier>
-<symbol> ; </symbol>
-<keyword> constructor </keyword>
-<identifier> SquareGame </identifier>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> square </identifier>
-<symbol> = </symbol>
-<identifier> Square </identifier>
-<symbol> . </symbol>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> , </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> , </symbol>
-<integerConstant> 30 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<keyword> this </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Memory </identifier>
-<symbol> . </symbol>
-<identifier> deAlloc </identifier>
-<symbol> ( </symbol>
-<keyword> this </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveSquare </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveUp </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveDown </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 3 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveLeft </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 4 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> moveRight </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> do </keyword>
-<identifier> Sys </identifier>
-<symbol> . </symbol>
-<identifier> wait </identifier>
-<symbol> ( </symbol>
-<integerConstant> 5 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> run </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> var </keyword>
-<keyword> char </keyword>
-<identifier> key </identifier>
-<symbol> ; </symbol>
-<keyword> var </keyword>
-<keyword> boolean </keyword>
-<identifier> exit </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> exit </identifier>
-<symbol> = </symbol>
-<keyword> false </keyword>
-<symbol> ; </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<symbol> ~ </symbol>
-<identifier> exit </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<identifier> Keyboard </identifier>
-<symbol> . </symbol>
-<identifier> keyPressed </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> moveSquare </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 81 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> exit </identifier>
-<symbol> = </symbol>
-<keyword> true </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 90 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> decSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 88 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> square </identifier>
-<symbol> . </symbol>
-<identifier> incSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 131 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 133 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 130 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 3 </integerConstant>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 132 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> direction </identifier>
-<symbol> = </symbol>
-<integerConstant> 4 </integerConstant>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> while </keyword>
-<symbol> ( </symbol>
-<symbol> ~ </symbol>
-<symbol> ( </symbol>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<integerConstant> 0 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> key </identifier>
-<symbol> = </symbol>
-<identifier> Keyboard </identifier>
-<symbol> . </symbol>
-<identifier> keyPressed </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> moveSquare </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/Square/SquareT.xml b/projects/10/Square/SquareT.xml
deleted file mode 100644
index 69a8ca0..0000000
--- a/projects/10/Square/SquareT.xml
+++ /dev/null
@@ -1,561 +0,0 @@
-<tokens>
-<keyword> class </keyword>
-<identifier> Square </identifier>
-<symbol> { </symbol>
-<keyword> field </keyword>
-<keyword> int </keyword>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> ; </symbol>
-<keyword> field </keyword>
-<keyword> int </keyword>
-<identifier> size </identifier>
-<symbol> ; </symbol>
-<keyword> constructor </keyword>
-<identifier> Square </identifier>
-<identifier> new </identifier>
-<symbol> ( </symbol>
-<keyword> int </keyword>
-<identifier> Ax </identifier>
-<symbol> , </symbol>
-<keyword> int </keyword>
-<identifier> Ay </identifier>
-<symbol> , </symbol>
-<keyword> int </keyword>
-<identifier> Asize </identifier>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> let </keyword>
-<identifier> x </identifier>
-<symbol> = </symbol>
-<identifier> Ax </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> y </identifier>
-<symbol> = </symbol>
-<identifier> Ay </identifier>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> size </identifier>
-<symbol> = </symbol>
-<identifier> Asize </identifier>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<keyword> this </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> dispose </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Memory </identifier>
-<symbol> . </symbol>
-<identifier> deAlloc </identifier>
-<symbol> ( </symbol>
-<keyword> this </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> true </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> erase </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> false </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> incSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> &lt; </symbol>
-<integerConstant> 254 </integerConstant>
-<symbol> ) </symbol>
-<symbol> &amp; </symbol>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> &lt; </symbol>
-<integerConstant> 510 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> erase </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> size </identifier>
-<symbol> = </symbol>
-<identifier> size </identifier>
-<symbol> + </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> decSize </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> size </identifier>
-<symbol> &gt; </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> erase </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> size </identifier>
-<symbol> = </symbol>
-<identifier> size </identifier>
-<symbol> - </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> draw </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveUp </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> &gt; </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> false </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> - </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> y </identifier>
-<symbol> = </symbol>
-<identifier> y </identifier>
-<symbol> - </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> true </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveDown </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> &lt; </symbol>
-<integerConstant> 254 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> false </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> y </identifier>
-<symbol> = </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> true </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<symbol> ( </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> - </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveLeft </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> &gt; </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> false </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> - </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> x </identifier>
-<symbol> = </symbol>
-<identifier> x </identifier>
-<symbol> - </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> true </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> method </keyword>
-<keyword> void </keyword>
-<identifier> moveRight </identifier>
-<symbol> ( </symbol>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> if </keyword>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> &lt; </symbol>
-<integerConstant> 510 </integerConstant>
-<symbol> ) </symbol>
-<symbol> { </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> false </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> let </keyword>
-<identifier> x </identifier>
-<symbol> = </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<integerConstant> 2 </integerConstant>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> setColor </identifier>
-<symbol> ( </symbol>
-<keyword> true </keyword>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<keyword> do </keyword>
-<identifier> Screen </identifier>
-<symbol> . </symbol>
-<identifier> drawRectangle </identifier>
-<symbol> ( </symbol>
-<symbol> ( </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> - </symbol>
-<integerConstant> 1 </integerConstant>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> , </symbol>
-<identifier> x </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> , </symbol>
-<identifier> y </identifier>
-<symbol> + </symbol>
-<identifier> size </identifier>
-<symbol> ) </symbol>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<keyword> return </keyword>
-<symbol> ; </symbol>
-<symbol> } </symbol>
-<symbol> } </symbol>
-</tokens>
diff --git a/projects/10/jackspec.wiki b/projects/10/jackspec.wiki
deleted file mode 100644
index e746941..0000000
--- a/projects/10/jackspec.wiki
+++ /dev/null
@@ -1,3 +0,0 @@
-Class = Name ClassVarDec* SubroutineDec*
-ClassVarDec = ClassVarScope Type Identifier*
-Type = JInt
diff --git a/projects/10/spec1 b/projects/10/spec1
deleted file mode 100644
index e69de29..0000000
--- a/projects/10/spec1
+++ /dev/null
diff --git a/projects/10/spec1.png b/projects/10/spec1.png
deleted file mode 100644
index d1a128e..0000000
--- a/projects/10/spec1.png
+++ /dev/null
Binary files differ
diff --git a/projects/10/spec2.png b/projects/10/spec2.png
deleted file mode 100644
index 8cd374b..0000000
--- a/projects/10/spec2.png
+++ /dev/null
Binary files differ
diff --git a/projects/10/test/Main.ast b/projects/10/test/Main.ast
deleted file mode 100644
index f8194cb..0000000
--- a/projects/10/test/Main.ast
+++ /dev/null
@@ -1 +0,0 @@
-Right (JClass "Main" [] [JSubroutineDec (JSubroutineHeader "function" ("void","main") []) (JSubroutineBody [("Array","a"),("int","length"),("int","i"),("int","sum")] [JLetStatment (JVarId "length" Nothing) (JExpCall (JSubroutineCall "Keyboard" (Just "readInt") [JStrConst "HOW MANY NUMBERS? "])),JLetStatment (JVarId "a" Nothing) (JExpCall (JSubroutineCall "Array" (Just "new") [JExpVar (JVarId "length" Nothing)])),JLetStatment (JVarId "i" Nothing) (JIntConst 0),JWhileStatment (JExpBin (JExpVar (JVarId "i" Nothing)) [('<',JExpVar (JVarId "length" Nothing))]) [JLetStatment (JVarId "a" (Just (JExpVar (JVarId "i" Nothing)))) (JExpCall (JSubroutineCall "Keyboard" (Just "readInt") [JStrConst "ENTER THE NEXT NUMBER: "])),JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('+',JIntConst 1)])],JLetStatment (JVarId "i" Nothing) (JIntConst 0),JLetStatment (JVarId "sum" Nothing) (JIntConst 0),JWhileStatment (JExpBin (JExpVar (JVarId "i" Nothing)) [('<',JExpVar (JVarId "length" Nothing))]) [JLetStatment (JVarId "sum" Nothing) (JExpBin (JExpVar (JVarId "sum" Nothing)) [('+',JExpVar (JVarId "a" (Just (JExpVar (JVarId "i" Nothing)))))]),JLetStatment (JVarId "i" Nothing) (JExpBin (JExpVar (JVarId "i" Nothing)) [('+',JIntConst 1)])],JDoStatement (JSubroutineCall "Output" (Just "printString") [JStrConst "THE AVERAGE IS: "]),JDoStatement (JSubroutineCall "Output" (Just "printInt") [JExpBin (JExpVar (JVarId "sum" Nothing)) [('/',JExpVar (JVarId "length" Nothing))]]),JDoStatement (JSubroutineCall "Output" (Just "println") []),JReturnStatement Nothing])]) \ No newline at end of file
diff --git a/projects/10/test/Main.jack b/projects/10/test/Main.jack
deleted file mode 100644
index cd80644..0000000
--- a/projects/10/test/Main.jack
+++ /dev/null
@@ -1,30 +0,0 @@
-class Main {
- function void main() {
- var Array a;
- var int length;
- var int i, sum;
-
- let length = Keyboard.readInt("HOW MANY NUMBERS? ");
- let a = Array.new(length);
- let i = 0;
-
- while (i < length) {
- let a[i] = Keyboard.readInt("ENTER THE NEXT NUMBER: ");
- let i = i + 1;
- }
-
- let i = 0;
- let sum = 0;
-
- while (i < length) {
- let sum = sum + a[i];
- let i = i + 1;
- }
-
- do Output.printString("THE AVERAGE IS: ");
- do Output.printInt(sum / length);
- do Output.println();
-
- return;
- }
-}
diff --git a/projects/11/Average/Main.jack b/projects/11/Average/Main.jack
deleted file mode 100644
index d560bf1..0000000
--- a/projects/11/Average/Main.jack
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Average/Main.jack
-
-// (Same as projects/09/Average/Main.jack)
-
-// Inputs some numbers and computes their average
-class Main {
- function void main() {
- var Array a;
- var int length;
- var int i, sum;
-
- let length = Keyboard.readInt("How many numbers? ");
- let a = Array.new(length); // constructs the array
-
- let i = 0;
- while (i < length) {
- let a[i] = Keyboard.readInt("Enter a number: ");
- let sum = sum + a[i];
- let i = i + 1;
- }
-
- do Output.printString("The average is ");
- do Output.printInt(sum / length);
- return;
- }
-}
diff --git a/projects/11/Average/Main.vm b/projects/11/Average/Main.vm
deleted file mode 100644
index 91772b9..0000000
--- a/projects/11/Average/Main.vm
+++ /dev/null
@@ -1,147 +0,0 @@
-function Main.main 4
-push constant 18
-call String.new 1
-push constant 72
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 63
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Keyboard.readInt 1
-pop local 1
-push local 1
-call Array.new 1
-pop local 0
-push constant 0
-pop local 2
-label main.While0
-push local 2
-push local 1
-lt
-not
-if-goto main.EndWhile0
-push constant 16
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Keyboard.readInt 1
-push local 0
-push local 2
-add
-pop pointer 1
-pop that 0
-push local 3
-push local 0
-push local 2
-add
-pop pointer 1
-push that 0
-add
-pop local 3
-push local 2
-push constant 1
-add
-pop local 2
-goto main.While0
-label main.EndWhile0
-push constant 15
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 3
-push local 1
-call Math.divide 2
-call Output.printInt 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/ComplexArrays/Main.jack b/projects/11/ComplexArrays/Main.jack
deleted file mode 100644
index fe51c20..0000000
--- a/projects/11/ComplexArrays/Main.jack
+++ /dev/null
@@ -1,70 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/ComplexArrays/Main.jack
-
-/**
- * Performs several complex array processing tests.
- * For each test, the expected result is printed, along with the
- * actual result. In each test, the two results should be equal.
- */
-class Main {
-
- function void main() {
- var Array a, b, c;
-
- let a = Array.new(10);
- let b = Array.new(5);
- let c = Array.new(1);
-
- let a[3] = 2;
- let a[4] = 8;
- let a[5] = 4;
- let b[a[3]] = a[3] + 3; // b[2] = 5
- let a[b[a[3]]] = a[a[5]] * b[((7 - a[3]) - Main.double(2)) + 1]; // a[5] = 8 * 5 = 40
- let c[0] = null;
- let c = c[0];
-
- do Output.printString("Test 1: expected result: 5; actual result: ");
- do Output.printInt(b[2]);
- do Output.println();
- do Output.printString("Test 2: expected result: 40; actual result: ");
- do Output.printInt(a[5]);
- do Output.println();
- do Output.printString("Test 3: expected result: 0; actual result: ");
- do Output.printInt(c);
- do Output.println();
-
- let c = null;
-
- if (c = null) {
- do Main.fill(a, 10);
- let c = a[3];
- let c[1] = 33;
- let c = a[7];
- let c[1] = 77;
- let b = a[3];
- let b[1] = b[1] + c[1]; // b[1] = 33 + 77 = 110;
- }
-
- do Output.printString("Test 4: expected result: 77; actual result: ");
- do Output.printInt(c[1]);
- do Output.println();
- do Output.printString("Test 5: expected result: 110; actual result: ");
- do Output.printInt(b[1]);
- do Output.println();
- return;
- }
-
- function int double(int a) {
- return a * 2;
- }
-
- function void fill(Array a, int size) {
- while (size > 0) {
- let size = size - 1;
- let a[size] = Array.new(3);
- }
- return;
- }
-}
diff --git a/projects/11/ComplexArrays/Main.vm b/projects/11/ComplexArrays/Main.vm
deleted file mode 100644
index dc83733..0000000
--- a/projects/11/ComplexArrays/Main.vm
+++ /dev/null
@@ -1,681 +0,0 @@
-function Main.main 3
-push constant 10
-call Array.new 1
-pop local 0
-push constant 5
-call Array.new 1
-pop local 1
-push constant 1
-call Array.new 1
-pop local 2
-push constant 2
-push local 0
-push constant 3
-add
-pop pointer 1
-pop that 0
-push constant 8
-push local 0
-push constant 4
-add
-pop pointer 1
-pop that 0
-push constant 4
-push local 0
-push constant 5
-add
-pop pointer 1
-pop that 0
-push local 0
-push constant 3
-add
-pop pointer 1
-push that 0
-push constant 3
-add
-push local 1
-push local 0
-push constant 3
-add
-pop pointer 1
-push that 0
-add
-pop pointer 1
-pop that 0
-push local 0
-push local 0
-push constant 5
-add
-pop pointer 1
-push that 0
-add
-pop pointer 1
-push that 0
-push local 1
-push constant 7
-push local 0
-push constant 3
-add
-pop pointer 1
-push that 0
-sub
-push constant 2
-call Main.double 1
-sub
-push constant 1
-add
-add
-pop pointer 1
-push that 0
-call Math.multiply 2
-push local 0
-push local 1
-push local 0
-push constant 3
-add
-pop pointer 1
-push that 0
-add
-pop pointer 1
-push that 0
-add
-pop pointer 1
-pop that 0
-push constant 0
-push local 2
-push constant 0
-add
-pop pointer 1
-pop that 0
-push local 2
-push constant 0
-add
-pop pointer 1
-push that 0
-pop local 2
-push constant 43
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 49
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 53
-call String.appendChar 2
-push constant 59
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 1
-push constant 2
-add
-pop pointer 1
-push that 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 44
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 52
-call String.appendChar 2
-push constant 48
-call String.appendChar 2
-push constant 59
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 5
-add
-pop pointer 1
-push that 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 43
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 48
-call String.appendChar 2
-push constant 59
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 2
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-pop local 2
-push local 2
-push constant 0
-eq
-not
-if-goto main.Else0
-push local 0
-push constant 10
-call Main.fill 2
-pop temp 0
-push local 0
-push constant 3
-add
-pop pointer 1
-push that 0
-pop local 2
-push constant 33
-push local 2
-push constant 1
-add
-pop pointer 1
-pop that 0
-push local 0
-push constant 7
-add
-pop pointer 1
-push that 0
-pop local 2
-push constant 77
-push local 2
-push constant 1
-add
-pop pointer 1
-pop that 0
-push local 0
-push constant 3
-add
-pop pointer 1
-push that 0
-pop local 1
-push local 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push local 2
-push constant 1
-add
-pop pointer 1
-push that 0
-add
-push local 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-label main.Else0
-push constant 44
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 52
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 55
-call String.appendChar 2
-push constant 55
-call String.appendChar 2
-push constant 59
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 2
-push constant 1
-add
-pop pointer 1
-push that 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 45
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 53
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 49
-call String.appendChar 2
-push constant 49
-call String.appendChar 2
-push constant 48
-call String.appendChar 2
-push constant 59
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 1
-push constant 1
-add
-pop pointer 1
-push that 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-return
-function Main.double 0
-push argument 0
-push constant 2
-call Math.multiply 2
-return
-function Main.fill 0
-label fill.While0
-push argument 1
-push constant 0
-gt
-not
-if-goto fill.EndWhile0
-push argument 1
-push constant 1
-sub
-pop argument 1
-push constant 3
-call Array.new 1
-push argument 0
-push argument 1
-add
-pop pointer 1
-pop that 0
-goto fill.While0
-label fill.EndWhile0
-push constant 0
-return
diff --git a/projects/11/ConvertToBin/Main.jack b/projects/11/ConvertToBin/Main.jack
deleted file mode 100644
index e1ab941..0000000
--- a/projects/11/ConvertToBin/Main.jack
+++ /dev/null
@@ -1,84 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/ConvertToBin/Main.jack
-
-/**
- * Unpacks a 16-bit number into its binary representation:
- * Takes the 16-bit number stored in RAM[8000] and stores its individual
- * bits in RAM[8001..8016] (each location will contain 0 or 1).
- * Before the conversion, RAM[8001]..RAM[8016] are initialized to -1.
- *
- * The program should be tested as follows:
- * 1) Load the program into the supplied VM emulator
- * 2) Put some value in RAM[8000]
- * 3) Switch to "no animation"
- * 4) Run the program (give it enough time to run)
- * 5) Stop the program
- * 6) Check that RAM[8001]..RAM[8016] contains the correct binary result, and
- * that none of these memory locations contains -1.
- */
-class Main {
-
- /**
- * Initializes RAM[8001]..RAM[8016] to -1,
- * and converts the value in RAM[8000] to binary.
- */
- function void main() {
- var int value;
- do Memory.poke(8000, 3827);
- //do Memory.poke(8000, -7);
- do Main.fillMemory(8001, 16, -1); // sets RAM[8001]..RAM[8016] to -1
- let value = Memory.peek(8000); // reads a value from RAM[8000]
- do Main.convert(value); // performs the conversion
- return;
- }
-
- /** Converts the given decimal value to binary, and puts
- * the resulting bits in RAM[8001]..RAM[8016]. */
- function void convert(int value) {
- var int mask, position;
- var boolean loop;
-
- let loop = true;
- while (loop) {
- let position = position + 1;
- let mask = Main.nextMask(mask);
-
- if (~(position > 16)) {
-
- if (~((value & mask) = 0)) {
- do Memory.poke(8000 + position, 1);
- }
- else {
- do Memory.poke(8000 + position, 0);
- }
- }
- else {
- let loop = false;
- }
- }
- return;
- }
-
- /** Returns the next mask (the mask that should follow the given mask). */
- function int nextMask(int mask) {
- if (mask = 0) {
- return 1;
- }
- else {
- return mask * 2;
- }
- }
-
- /** Fills 'length' consecutive memory locations with 'value',
- * starting at 'startAddress'. */
- function void fillMemory(int startAddress, int length, int value) {
- while (length > 0) {
- do Memory.poke(startAddress, value);
- let length = length - 1;
- let startAddress = startAddress + 1;
- }
- return;
- }
-}
diff --git a/projects/11/ConvertToBin/Main.vm b/projects/11/ConvertToBin/Main.vm
deleted file mode 100644
index 15d63c0..0000000
--- a/projects/11/ConvertToBin/Main.vm
+++ /dev/null
@@ -1,110 +0,0 @@
-function Main.main 1
-push constant 8000
-push constant 3827
-call Memory.poke 2
-pop temp 0
-push constant 8001
-push constant 16
-push constant 1
-neg
-call Main.fillMemory 3
-pop temp 0
-push constant 8000
-call Memory.peek 1
-pop local 0
-push local 0
-call Main.convert 1
-pop temp 0
-push constant 0
-return
-function Main.convert 3
-push constant 1
-neg
-pop local 2
-label convert.While0
-push local 2
-not
-if-goto convert.EndWhile0
-push local 1
-push constant 1
-add
-pop local 1
-push local 0
-call Main.nextMask 1
-pop local 0
-push local 1
-push constant 16
-gt
-not
-not
-if-goto convert.While0.Else0
-push argument 0
-push local 0
-and
-push constant 0
-eq
-not
-not
-if-goto convert.While0.Else0.Else0
-push constant 8000
-push local 1
-add
-push constant 1
-call Memory.poke 2
-pop temp 0
-goto convert.While0.Else0.Endif0
-label convert.While0.Else0.Else0
-push constant 8000
-push local 1
-add
-push constant 0
-call Memory.poke 2
-pop temp 0
-label convert.While0.Else0.Endif0
-goto convert.While0.Endif0
-label convert.While0.Else0
-push constant 0
-pop local 2
-label convert.While0.Endif0
-goto convert.While0
-label convert.EndWhile0
-push constant 0
-return
-function Main.nextMask 0
-push argument 0
-push constant 0
-eq
-not
-if-goto nextMask.Else0
-push constant 1
-return
-goto nextMask.Endif0
-label nextMask.Else0
-push argument 0
-push constant 2
-call Math.multiply 2
-return
-label nextMask.Endif0
-function Main.fillMemory 0
-label fillMemory.While0
-push argument 1
-push constant 0
-gt
-not
-if-goto fillMemory.EndWhile0
-push argument 0
-push argument 2
-call Memory.poke 2
-pop temp 0
-push argument 1
-push constant 1
-sub
-pop argument 1
-push argument 0
-push constant 1
-add
-pop argument 0
-goto fillMemory.While0
-label fillMemory.EndWhile0
-push constant 0
-return
diff --git a/projects/11/ConvertToBin/setram.tst b/projects/11/ConvertToBin/setram.tst
deleted file mode 100644
index a33eece..0000000
--- a/projects/11/ConvertToBin/setram.tst
+++ /dev/null
@@ -1,3 +0,0 @@
-load Main.vm
-set RAM[8000] 1023;
-vmstep;
diff --git a/projects/11/JackCompiler b/projects/11/JackCompiler
deleted file mode 100755
index 2dc9b98..0000000
--- a/projects/11/JackCompiler
+++ /dev/null
Binary files differ
diff --git a/projects/11/JackCompiler.hi b/projects/11/JackCompiler.hi
deleted file mode 100644
index 50c8c9c..0000000
--- a/projects/11/JackCompiler.hi
+++ /dev/null
Binary files differ
diff --git a/projects/11/JackCompiler.o b/projects/11/JackCompiler.o
deleted file mode 100644
index 49a6ac5..0000000
--- a/projects/11/JackCompiler.o
+++ /dev/null
Binary files differ
diff --git a/projects/11/K/Board.jack b/projects/11/K/Board.jack
deleted file mode 100644
index 49d42d5..0000000
--- a/projects/11/K/Board.jack
+++ /dev/null
@@ -1,305 +0,0 @@
-class Board {
- field Array grid;
- field int nTurn;
- field int seed;
-
- constructor Board new() {
- var int i, j;
- var Array t;
- let grid = Array.new(4);
- let i = 0;
- while (i < 4) {
- let j = 0;
- let grid[i] = Array.new(4);
- let t = grid[i];
- while (j < 4) {
- let t[j] = 32;
- let j = j + 1;
- }
- let i = i + 1;
- }
- let t = grid[0];
- let t[0] = 65;
- let nTurn = 0;
- let seed = 0;
- return this;
- }
-
- method void arrange(Array xs, boolean isHorizontal) {
- if (isHorizontal) {
- do deepcopy(xs, grid);
- } else {
- do transpose(xs, grid);
- }
- do dispose4(xs);
- return;
- }
-
-
- method void copy(Array xs, Array ys) {
- var int i;
- let i = 0;
- while (i < 4) {
- let ys[i] = xs[i];
- let i = i + 1;
- }
- return;
- }
-
- method void deepcopy(Array xs, Array ys) {
- var int i;
- let i = 0;
- while (i < 4) {
- do copy(xs[i], ys[i]);
- let i = i + 1;
- }
- return;
- }
-
- method void transpose(Array xs, Array ys) {
- var int i, j;
- var Array t, s;
- let i = 0;
- while (i < 4) {
- let j = 0;
- let t = ys[i];
- while (j < 4) {
- let s = xs[j];
- let t[j] = s[i];
- let j = j + 1;
- }
- let i = i + 1;
- }
- return;
- }
-
- method void dispose4(Array xs){
- var int i;
- var Array t;
- let i = 0;
- while (i < 4) {
- let t = xs[i];
- do t.dispose();
- let i = i + 1;
- }
- do xs.dispose();
- return;
- }
-
- method Array new4(){
- var Array xs;
- var int i;
- let xs = Array.new(4);
- let i = 0;
- while (i < 4) {
- let xs[i] = Array.new(4);
- let i = i + 1;
- }
- return xs;
- }
-
- method Array getStrips(boolean isHorizontal){
- var Array xs;
- let xs = new4();
- if (isHorizontal) {
- do deepcopy(grid, xs);
- } else {
- do transpose(grid, xs);
- }
- return xs;
- }
-
- method Array align(Array xs, boolean left){
- var int i, j;
- let i = 0;
- let j = 0;
- if (left) {
- while (i < 4) {
- if (xs[i] > 64) {
- let xs[j] = xs[i];
- let j = j + 1;
- }
- let i = i + 1;
- }
- while (j < 4) {
- let xs[j] = 32;
- let j = j + 1;
- }
- } else {
- while (i < 4) {
- if (xs[3 - i] > 64) {
- let xs[3 - j] = xs[3 - i];
- let j = j + 1;
- }
- let i = i + 1;
- }
- while (j < 4) {
- let xs[3 - j] = 32;
- let j = j + 1;
- }
- }
- return xs;
- }
-
- method Array reduce(Array xs, boolean left){
- if ((xs[0] = xs[1]) & (xs[2] = xs[3]) & (xs[0] > 64) & (xs[2] > 64)) {
- if (left) {
- let xs[0] = xs[0] + 1;
- let xs[1] = xs[2] + 1;
- let xs[2] = 32;
- let xs[3] = 32;
- } else {
- let xs[3] = xs[3] + 1;
- let xs[2] = xs[1] + 1;
- let xs[1] = 32;
- let xs[0] = 32;
- }
- return xs;
- }
- if ((xs[0] = xs[1]) & (xs[0] > 64)) {
- if (left) {
- let xs[0] = xs[0] + 1;
- let xs[1] = xs[2];
- let xs[2] = xs[3];
- let xs[3] = 32;
- } else {
- let xs[1] = xs[1] + 1;
- let xs[0] = 32;
- }
- return xs;
- }
- if ((xs[2] = xs[3]) & (xs[2] > 64)) {
- if (left) {
- let xs[2] = xs[2] + 1;
- let xs[3] = 32;
- } else {
- let xs[3] = xs[3] + 1;
- let xs[2] = xs[1];
- let xs[1] = xs[0];
- let xs[0] = 32;
- }
- return xs;
- }
- if ((xs[1] = xs[2]) & (xs[1] > 64)) {
- if (left) {
- let xs[1] = xs[1] + 1;
- let xs[2] = xs[3];
- let xs[3] = 32;
- } else {
- let xs[2] = xs[2] + 1;
- let xs[1] = xs[0];
- let xs[0] = 32;
- }
- return xs;
- }
- return xs;
- }
-
- method void addTile(){
- var Array t;
- var int r, c, parity, newTile;
- /*
- let t = grid[1];
- if (t[1] = 32) {
- let t[1] = 65;
- }
- */
- let seed = seed * 25173 + 13849;
- if (seed < 0) {
- let seed = - seed;
- }
-
- if (seed - (seed / 2 * 2) = 0) {
- let parity = 1;
- } else {
- let parity = -1;
- }
-
- let seed = seed - (seed / 16 * 16);
- let r = seed / 4;
- let c = seed - (4 * r);
- let t = grid[r];
- let newTile = 65;
-
- while (t[c] > 64){
- let seed = seed + parity;
- if (seed < 0) {
- let seed = 15;
- }
- let seed = seed - (seed / 16 * 16);
- let r = seed / 4;
- let c = seed - (4 * r);
- let t = grid[r];
- let newTile = 131 - newTile;
- }
- let t[c] = newTile;
- return;
- }
-
- method void transform(char dir){
- var boolean isHorizontal, left;
- var Array xs;
- var int i;
- if ((dir = 0) | (dir = 1)) {
- let left = true;
- } else {
- let left = false;
- }
- if ((dir = 0) | (dir = 2)) {
- let isHorizontal = true;
- } else {
- let isHorizontal = false;
- }
- let xs = getStrips(isHorizontal);
- let i = 0;
- while (i < 4) {
- let xs[i] = reduce(align(xs[i], left), left);
- let i = i + 1;
- }
- do arrange(xs, isHorizontal);
- return;
- }
-
- method void next(char dir){
- let nTurn = nTurn + 1;
- do transform(dir);
- do addTile();
- return;
- }
-
- method void draw(){
- var int r, c, i, j;
- var Array t;
- let r = 9;
- let c = 30;
-
- do Output.moveCursor(r - 1, c - 1);
- do Output.printString("+----+");
- do Output.moveCursor(r + 4, c - 1);
- do Output.printString("+----+");
-
- let i = 0;
- while (i < 4) {
- let j = 0;
- do Output.moveCursor(r + i, c - 1);
- do Output.printString("|");
- let t = grid[i];
- while (j < 4) {
- do Output.printChar(t[j]);
- let j = j + 1;
- }
- do Output.printString("|");
- let i = i + 1;
- }
-
- do Output.moveCursor(r + 6, c - 2);
- do Output.printString("Turn: ");
- do Output.printInt(nTurn);
- return;
- }
-
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-}
diff --git a/projects/11/K/Board.vm b/projects/11/K/Board.vm
deleted file mode 100644
index 272b52d..0000000
--- a/projects/11/K/Board.vm
+++ /dev/null
@@ -1,1183 +0,0 @@
-function Board.new 3
-push constant 3
-call Memory.alloc 1
-pop pointer 0
-push constant 4
-call Array.new 1
-pop this 0
-push constant 0
-pop local 0
-label new.While0
-push local 0
-push constant 4
-lt
-not
-if-goto new.EndWhile0
-push constant 0
-pop local 1
-push constant 4
-call Array.new 1
-push this 0
-push local 0
-add
-pop pointer 1
-pop that 0
-push this 0
-push local 0
-add
-pop pointer 1
-push that 0
-pop local 2
-label new.While0.While0
-push local 1
-push constant 4
-lt
-not
-if-goto new.While0.EndWhile0
-push constant 32
-push local 2
-push local 1
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto new.While0.While0
-label new.While0.EndWhile0
-push local 0
-push constant 1
-add
-pop local 0
-goto new.While0
-label new.EndWhile0
-push this 0
-push constant 0
-add
-pop pointer 1
-push that 0
-pop local 2
-push constant 65
-push local 2
-push constant 0
-add
-pop pointer 1
-pop that 0
-push constant 0
-pop this 1
-push constant 0
-pop this 2
-push pointer 0
-return
-function Board.arrange 0
-push argument 0
-pop pointer 0
-push argument 2
-not
-if-goto arrange.Else0
-push pointer 0
-push argument 1
-push this 0
-call Board.deepcopy 3
-pop temp 0
-goto arrange.Endif0
-label arrange.Else0
-push pointer 0
-push argument 1
-push this 0
-call Board.transpose 3
-pop temp 0
-label arrange.Endif0
-push pointer 0
-push argument 1
-call Board.dispose4 2
-pop temp 0
-push constant 0
-return
-function Board.copy 1
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-label copy.While0
-push local 0
-push constant 4
-lt
-not
-if-goto copy.EndWhile0
-push argument 1
-push local 0
-add
-pop pointer 1
-push that 0
-push argument 2
-push local 0
-add
-pop pointer 1
-pop that 0
-push local 0
-push constant 1
-add
-pop local 0
-goto copy.While0
-label copy.EndWhile0
-push constant 0
-return
-function Board.deepcopy 1
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-label deepcopy.While0
-push local 0
-push constant 4
-lt
-not
-if-goto deepcopy.EndWhile0
-push pointer 0
-push argument 1
-push local 0
-add
-pop pointer 1
-push that 0
-push argument 2
-push local 0
-add
-pop pointer 1
-push that 0
-call Board.copy 3
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto deepcopy.While0
-label deepcopy.EndWhile0
-push constant 0
-return
-function Board.transpose 4
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-label transpose.While0
-push local 0
-push constant 4
-lt
-not
-if-goto transpose.EndWhile0
-push constant 0
-pop local 1
-push argument 2
-push local 0
-add
-pop pointer 1
-push that 0
-pop local 2
-label transpose.While0.While0
-push local 1
-push constant 4
-lt
-not
-if-goto transpose.While0.EndWhile0
-push argument 1
-push local 1
-add
-pop pointer 1
-push that 0
-pop local 3
-push local 3
-push local 0
-add
-pop pointer 1
-push that 0
-push local 2
-push local 1
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto transpose.While0.While0
-label transpose.While0.EndWhile0
-push local 0
-push constant 1
-add
-pop local 0
-goto transpose.While0
-label transpose.EndWhile0
-push constant 0
-return
-function Board.dispose4 2
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-label dispose4.While0
-push local 0
-push constant 4
-lt
-not
-if-goto dispose4.EndWhile0
-push argument 1
-push local 0
-add
-pop pointer 1
-push that 0
-pop local 1
-push local 1
-call Array.dispose 1
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto dispose4.While0
-label dispose4.EndWhile0
-push argument 1
-call Array.dispose 1
-pop temp 0
-push constant 0
-return
-function Board.new4 2
-push argument 0
-pop pointer 0
-push constant 4
-call Array.new 1
-pop local 0
-push constant 0
-pop local 1
-label new4.While0
-push local 1
-push constant 4
-lt
-not
-if-goto new4.EndWhile0
-push constant 4
-call Array.new 1
-push local 0
-push local 1
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto new4.While0
-label new4.EndWhile0
-push local 0
-return
-function Board.getStrips 1
-push argument 0
-pop pointer 0
-push pointer 0
-call Board.new4 1
-pop local 0
-push argument 1
-not
-if-goto getStrips.Else0
-push pointer 0
-push this 0
-push local 0
-call Board.deepcopy 3
-pop temp 0
-goto getStrips.Endif0
-label getStrips.Else0
-push pointer 0
-push this 0
-push local 0
-call Board.transpose 3
-pop temp 0
-label getStrips.Endif0
-push local 0
-return
-function Board.align 2
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-push constant 0
-pop local 1
-push argument 2
-not
-if-goto align.Else0
-label align.Else0.While0
-push local 0
-push constant 4
-lt
-not
-if-goto align.Else0.EndWhile0
-push argument 1
-push local 0
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-not
-if-goto align.Else0.While0.Else0
-push argument 1
-push local 0
-add
-pop pointer 1
-push that 0
-push argument 1
-push local 1
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-label align.Else0.While0.Else0
-push local 0
-push constant 1
-add
-pop local 0
-goto align.Else0.While0
-label align.Else0.EndWhile0
-label align.Else0.While1
-push local 1
-push constant 4
-lt
-not
-if-goto align.Else0.EndWhile1
-push constant 32
-push argument 1
-push local 1
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto align.Else0.While1
-label align.Else0.EndWhile1
-goto align.Endif0
-label align.Else0
-label align.If0.While0
-push local 0
-push constant 4
-lt
-not
-if-goto align.If0.EndWhile0
-push argument 1
-push constant 3
-push local 0
-sub
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-not
-if-goto align.If0.While0.Else0
-push argument 1
-push constant 3
-push local 0
-sub
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 3
-push local 1
-sub
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-label align.If0.While0.Else0
-push local 0
-push constant 1
-add
-pop local 0
-goto align.If0.While0
-label align.If0.EndWhile0
-label align.If0.While1
-push local 1
-push constant 4
-lt
-not
-if-goto align.If0.EndWhile1
-push constant 32
-push argument 1
-push constant 3
-push local 1
-sub
-add
-pop pointer 1
-pop that 0
-push local 1
-push constant 1
-add
-pop local 1
-goto align.If0.While1
-label align.If0.EndWhile1
-label align.Endif0
-push argument 1
-return
-function Board.reduce 0
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-eq
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 3
-add
-pop pointer 1
-push that 0
-eq
-and
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-not
-if-goto reduce.Else0
-push argument 2
-not
-if-goto reduce.Else0.Else0
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 0
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 3
-add
-pop pointer 1
-pop that 0
-goto reduce.Else0.Endif0
-label reduce.Else0.Else0
-push argument 1
-push constant 3
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 3
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 0
-add
-pop pointer 1
-pop that 0
-label reduce.Else0.Endif0
-push argument 1
-return
-label reduce.Else0
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-eq
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-not
-if-goto reduce.Else1
-push argument 2
-not
-if-goto reduce.Else1.Else0
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 0
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 3
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 3
-add
-pop pointer 1
-pop that 0
-goto reduce.Else1.Endif0
-label reduce.Else1.Else0
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 0
-add
-pop pointer 1
-pop that 0
-label reduce.Else1.Endif0
-push argument 1
-return
-label reduce.Else1
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 3
-add
-pop pointer 1
-push that 0
-eq
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-not
-if-goto reduce.Else2
-push argument 2
-not
-if-goto reduce.Else2.Else0
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 3
-add
-pop pointer 1
-pop that 0
-goto reduce.Else2.Endif0
-label reduce.Else2.Else0
-push argument 1
-push constant 3
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 3
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 0
-add
-pop pointer 1
-pop that 0
-label reduce.Else2.Endif0
-push argument 1
-return
-label reduce.Else2
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-eq
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-and
-not
-if-goto reduce.Else3
-push argument 2
-not
-if-goto reduce.Else3.Else0
-push argument 1
-push constant 1
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 3
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 3
-add
-pop pointer 1
-pop that 0
-goto reduce.Else3.Endif0
-label reduce.Else3.Else0
-push argument 1
-push constant 2
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-push argument 1
-push constant 2
-add
-pop pointer 1
-pop that 0
-push argument 1
-push constant 0
-add
-pop pointer 1
-push that 0
-push argument 1
-push constant 1
-add
-pop pointer 1
-pop that 0
-push constant 32
-push argument 1
-push constant 0
-add
-pop pointer 1
-pop that 0
-label reduce.Else3.Endif0
-push argument 1
-return
-label reduce.Else3
-push argument 1
-return
-function Board.addTile 5
-push argument 0
-pop pointer 0
-push this 2
-push constant 25173
-call Math.multiply 2
-push constant 13849
-add
-pop this 2
-push this 2
-push constant 0
-lt
-not
-if-goto addTile.Else0
-push this 2
-neg
-pop this 2
-label addTile.Else0
-push this 2
-push this 2
-push constant 2
-call Math.divide 2
-push constant 2
-call Math.multiply 2
-sub
-push constant 0
-eq
-not
-if-goto addTile.Else1
-push constant 1
-pop local 3
-goto addTile.Endif1
-label addTile.Else1
-push constant 1
-neg
-pop local 3
-label addTile.Endif1
-push this 2
-push this 2
-push constant 16
-call Math.divide 2
-push constant 16
-call Math.multiply 2
-sub
-pop this 2
-push this 2
-push constant 4
-call Math.divide 2
-pop local 1
-push this 2
-push constant 4
-push local 1
-call Math.multiply 2
-sub
-pop local 2
-push this 0
-push local 1
-add
-pop pointer 1
-push that 0
-pop local 0
-push constant 65
-pop local 4
-label addTile.While2
-push local 0
-push local 2
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-not
-if-goto addTile.EndWhile2
-push this 2
-push local 3
-add
-pop this 2
-push this 2
-push constant 0
-lt
-not
-if-goto addTile.While2.Else0
-push constant 15
-pop this 2
-label addTile.While2.Else0
-push this 2
-push this 2
-push constant 16
-call Math.divide 2
-push constant 16
-call Math.multiply 2
-sub
-pop this 2
-push this 2
-push constant 4
-call Math.divide 2
-pop local 1
-push this 2
-push constant 4
-push local 1
-call Math.multiply 2
-sub
-pop local 2
-push this 0
-push local 1
-add
-pop pointer 1
-push that 0
-pop local 0
-push constant 131
-push local 4
-sub
-pop local 4
-goto addTile.While2
-label addTile.EndWhile2
-push local 4
-push local 0
-push local 2
-add
-pop pointer 1
-pop that 0
-push constant 0
-return
-function Board.transform 4
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-eq
-push argument 1
-push constant 1
-eq
-or
-not
-if-goto transform.Else0
-push constant 1
-neg
-pop local 1
-goto transform.Endif0
-label transform.Else0
-push constant 0
-pop local 1
-label transform.Endif0
-push argument 1
-push constant 0
-eq
-push argument 1
-push constant 2
-eq
-or
-not
-if-goto transform.Else1
-push constant 1
-neg
-pop local 0
-goto transform.Endif1
-label transform.Else1
-push constant 0
-pop local 0
-label transform.Endif1
-push pointer 0
-push local 0
-call Board.getStrips 2
-pop local 2
-push constant 0
-pop local 3
-label transform.While2
-push local 3
-push constant 4
-lt
-not
-if-goto transform.EndWhile2
-push pointer 0
-push pointer 0
-push local 2
-push local 3
-add
-pop pointer 1
-push that 0
-push local 1
-call Board.align 3
-push local 1
-call Board.reduce 3
-push local 2
-push local 3
-add
-pop pointer 1
-pop that 0
-push local 3
-push constant 1
-add
-pop local 3
-goto transform.While2
-label transform.EndWhile2
-push pointer 0
-push local 2
-push local 0
-call Board.arrange 3
-pop temp 0
-push constant 0
-return
-function Board.next 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 1
-add
-pop this 1
-push pointer 0
-push argument 1
-call Board.transform 2
-pop temp 0
-push pointer 0
-call Board.addTile 1
-pop temp 0
-push constant 0
-return
-function Board.draw 5
-push argument 0
-pop pointer 0
-push constant 9
-pop local 0
-push constant 30
-pop local 1
-push local 0
-push constant 1
-sub
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push constant 6
-call String.new 1
-push constant 43
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 43
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 4
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push constant 6
-call String.new 1
-push constant 43
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 43
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-pop local 2
-label draw.While0
-push local 2
-push constant 4
-lt
-not
-if-goto draw.EndWhile0
-push constant 0
-pop local 3
-push local 0
-push local 2
-add
-push local 1
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-push constant 1
-call String.new 1
-push constant 124
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push this 0
-push local 2
-add
-pop pointer 1
-push that 0
-pop local 4
-label draw.While0.While0
-push local 3
-push constant 4
-lt
-not
-if-goto draw.While0.EndWhile0
-push local 4
-push local 3
-add
-pop pointer 1
-push that 0
-call Output.printChar 1
-pop temp 0
-push local 3
-push constant 1
-add
-pop local 3
-goto draw.While0.While0
-label draw.While0.EndWhile0
-push constant 1
-call String.new 1
-push constant 124
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 2
-push constant 1
-add
-pop local 2
-goto draw.While0
-label draw.EndWhile0
-push local 0
-push constant 6
-add
-push local 1
-push constant 2
-sub
-call Output.moveCursor 2
-pop temp 0
-push constant 6
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push this 1
-call Output.printInt 1
-pop temp 0
-push constant 0
-return
-function Board.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/K/K.txt b/projects/11/K/K.txt
deleted file mode 100644
index dc75c82..0000000
--- a/projects/11/K/K.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-from a to k
-
-- a title frame showing game name and instructions. space to continue.
-- a main frame showing the game running
-- a endofgame frame showing game results: win or lose
-
-- a Board class with cell being a 4 by 4 two-d array.
-- arrange strings according to an orientation: arrange(4 strings, dir)=cells
- - dir: 0: align to left, 1: align to right, 2: align to top, 3:align to bottom
- - e.g.: arrange({"abc", "bc", "dc", "efeh", 0}) gives the following board:
- abc_
- bc__
- dc__
- efeh
- - arrange({"abc", "bc", "dc", "efeh", 0}, 3) gives the following
- ___e
- a__f
- bbde
- ccch
-- a new tile of 'a' or 'b' appears each turn somewhere, using some quasirandomisation e.g. (23 * n^2 + 79) mod 16.
- - addtile(char, x, y)
-- the board transformation: board.trans(dir) = arrange(dir) . (fmap reduce) . getstring(dir). calls getstrings, then reduce on each row / column
-- board.getstrings(dir)= the strings according to direction dir. Inverse of arrange.
-- reduce(string)=string: reduce("baac")=="bbc"; reduce("aabb")=="bc"; and reduce("cbb")== "cc" instead of "d".
-- when one of the hjkl keys is pressed get the direction dir.
diff --git a/projects/11/K/KGame.jack b/projects/11/K/KGame.jack
deleted file mode 100644
index 796f5b5..0000000
--- a/projects/11/K/KGame.jack
+++ /dev/null
@@ -1,34 +0,0 @@
-class KGame{
- field Board board;
-
- constructor KGame new() {
- let board = Board.new();
- do board.draw();
- return this;
- }
-
- method void dispose() {
- do board.dispose();
- do Memory.deAlloc(this);
- return;
- }
-
- method void run() {
- var int key, dir;
- var boolean exit;
- let key = 0;
- let exit = false;
- while (~exit) {
- while ((key < 130) | (key > 133)) {
- let key = Keyboard.keyPressed();
- }
- let dir = key - 130;
- while (~(key = 0)) {
- let key = Keyboard.keyPressed();
- }
- do board.next(dir);
- do board.draw();
- }
- return;
- }
-}
diff --git a/projects/11/K/KGame.vm b/projects/11/K/KGame.vm
deleted file mode 100644
index eef2df0..0000000
--- a/projects/11/K/KGame.vm
+++ /dev/null
@@ -1,74 +0,0 @@
-function KGame.new 0
-push constant 1
-call Memory.alloc 1
-pop pointer 0
-call Board.new 0
-pop this 0
-push this 0
-call Board.draw 1
-pop temp 0
-push pointer 0
-return
-function KGame.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-call Board.dispose 1
-pop temp 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function KGame.run 3
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-push constant 0
-pop local 2
-label run.While0
-push local 2
-not
-not
-if-goto run.EndWhile0
-label run.While0.While0
-push local 0
-push constant 130
-lt
-push local 0
-push constant 133
-gt
-or
-not
-if-goto run.While0.EndWhile0
-call Keyboard.keyPressed 0
-pop local 0
-goto run.While0.While0
-label run.While0.EndWhile0
-push local 0
-push constant 130
-sub
-pop local 1
-label run.While0.While1
-push local 0
-push constant 0
-eq
-not
-not
-if-goto run.While0.EndWhile1
-call Keyboard.keyPressed 0
-pop local 0
-goto run.While0.While1
-label run.While0.EndWhile1
-push this 0
-push local 1
-call Board.next 2
-pop temp 0
-push this 0
-call Board.draw 1
-pop temp 0
-goto run.While0
-label run.EndWhile0
-push constant 0
-return
diff --git a/projects/11/K/Main.jack b/projects/11/K/Main.jack
deleted file mode 100644
index 4136e80..0000000
--- a/projects/11/K/Main.jack
+++ /dev/null
@@ -1,9 +0,0 @@
-class Main {
- function void main() {
- var KGame game;
- let game = KGame.new();
- do game.run();
- do game.dispose();
- return;
- }
-}
diff --git a/projects/11/K/Main.vm b/projects/11/K/Main.vm
deleted file mode 100644
index 0a56ae9..0000000
--- a/projects/11/K/Main.vm
+++ /dev/null
@@ -1,11 +0,0 @@
-function Main.main 1
-call KGame.new 0
-pop local 0
-push local 0
-call KGame.run 1
-pop temp 0
-push local 0
-call KGame.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/Pong/Ball.jack b/projects/11/Pong/Ball.jack
deleted file mode 100644
index 02e47f9..0000000
--- a/projects/11/Pong/Ball.jack
+++ /dev/null
@@ -1,203 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Pong/Ball.jack
-
-/**
- * A graphical ball. Characterized by a screen location and distance of
- * last destination. Has methods for drawing, erasing and moving on the screen.
- * The ball is displayed as a filled, 6-by-6 pixles rectangle.
- */
-class Ball {
-
- field int x, y; // the ball's screen location (in pixels)
- field int lengthx, lengthy; // distance of last destination (in pixels)
-
- field int d, straightD, diagonalD; // used for straight line movement computation
- field boolean invert, positivex, positivey; // (same)
-
- field int leftWall, rightWall, topWall, bottomWall; // wall locations
-
- field int wall; // last wall that the ball was bounced off of
-
- /** Constructs a new ball with the given initial location and wall locations. */
- constructor Ball new(int Ax, int Ay,
- int AleftWall, int ArightWall, int AtopWall, int AbottomWall) {
- let x = Ax;
- let y = Ay;
- let leftWall = AleftWall;
- let rightWall = ArightWall - 6; // -6 for ball size
- let topWall = AtopWall;
- let bottomWall = AbottomWall - 6; // -6 for ball size
- let wall = 0;
- do show();
- return this;
- }
-
- /** Deallocates the Ball's memory. */
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-
- /** Shows the ball. */
- method void show() {
- do Screen.setColor(true);
- do draw();
- return;
- }
-
- /** Hides the ball. */
- method void hide() {
- do Screen.setColor(false);
- do draw();
- return;
- }
-
- /** Draws the ball. */
- method void draw() {
- do Screen.drawRectangle(x, y, x + 5, y + 5);
- return;
- }
-
- /** Returns the ball's left edge. */
- method int getLeft() {
- return x;
- }
-
- /** Returns the ball's right edge. */
- method int getRight() {
- return x + 5;
- }
-
- /** Computes and sets the ball's destination. */
- method void setDestination(int destx, int desty) {
- var int dx, dy, temp;
- let lengthx = destx - x;
- let lengthy = desty - y;
- let dx = Math.abs(lengthx);
- let dy = Math.abs(lengthy);
- let invert = (dx < dy);
-
- if (invert) {
- let temp = dx; // swap dx, dy
- let dx = dy;
- let dy = temp;
- let positivex = (y < desty);
- let positivey = (x < destx);
- }
- else {
- let positivex = (x < destx);
- let positivey = (y < desty);
- }
-
- let d = (2 * dy) - dx;
- let straightD = 2 * dy;
- let diagonalD = 2 * (dy - dx);
-
- return;
- }
-
- /**
- * Moves the ball one unit towards its destination.
- * If the ball has reached a wall, returns 0.
- * Else, returns a value according to the wall:
- * 1 (left wall), 2 (right wall), 3 (top wall), 4 (bottom wall).
- */
- method int move() {
-
- do hide();
-
- if (d < 0) { let d = d + straightD; }
- else {
- let d = d + diagonalD;
-
- if (positivey) {
- if (invert) { let x = x + 4; }
- else { let y = y + 4; }
- }
- else {
- if (invert) { let x = x - 4; }
- else { let y = y - 4; }
- }
- }
-
- if (positivex) {
- if (invert) { let y = y + 4; }
- else { let x = x + 4; }
- }
- else {
- if (invert) { let y = y - 4; }
- else { let x = x - 4; }
- }
-
- if (~(x > leftWall)) {
- let wall = 1;
- let x = leftWall;
- }
- if (~(x < rightWall)) {
- let wall = 2;
- let x = rightWall;
- }
- if (~(y > topWall)) {
- let wall = 3;
- let y = topWall;
- }
- if (~(y < bottomWall)) {
- let wall = 4;
- let y = bottomWall;
- }
-
- do show();
-
- return wall;
- }
-
- /**
- * Bounces off the current wall: sets the new destination
- * of the ball according to the ball's angle and the given
- * bouncing direction (-1/0/1=left/center/right or up/center/down).
- */
- method void bounce(int bouncingDirection) {
- var int newx, newy, divLengthx, divLengthy, factor;
-
- // dividing by 10 first since results are too big
- let divLengthx = lengthx / 10;
- let divLengthy = lengthy / 10;
- if (bouncingDirection = 0) { let factor = 10; }
- else {
- if (((~(lengthx < 0)) & (bouncingDirection = 1)) | ((lengthx < 0) & (bouncingDirection = (-1)))) {
- let factor = 20; // bounce direction is in ball direction
- }
- else { let factor = 5; } // bounce direction is against ball direction
- }
-
- if (wall = 1) {
- let newx = 506;
- let newy = (divLengthy * (-50)) / divLengthx;
- let newy = y + (newy * factor);
- }
- else {
- if (wall = 2) {
- let newx = 0;
- let newy = (divLengthy * 50) / divLengthx;
- let newy = y + (newy * factor);
- }
- else {
- if (wall = 3) {
- let newy = 250;
- let newx = (divLengthx * (-25)) / divLengthy;
- let newx = x + (newx * factor);
- }
- else { // assumes wall = 4
- let newy = 0;
- let newx = (divLengthx * 25) / divLengthy;
- let newx = x + (newx * factor);
- }
- }
- }
-
- do setDestination(newx, newy);
- return;
- }
-}
diff --git a/projects/11/Pong/Ball.vm b/projects/11/Pong/Ball.vm
deleted file mode 100644
index 9d7b984..0000000
--- a/projects/11/Pong/Ball.vm
+++ /dev/null
@@ -1,427 +0,0 @@
-function Ball.new 0
-push constant 15
-call Memory.alloc 1
-pop pointer 0
-push argument 0
-pop this 0
-push argument 1
-pop this 1
-push argument 2
-pop this 10
-push argument 3
-push constant 6
-sub
-pop this 11
-push argument 4
-pop this 12
-push argument 5
-push constant 6
-sub
-pop this 13
-push constant 0
-pop this 14
-push pointer 0
-call Ball.show 1
-pop temp 0
-push pointer 0
-return
-function Ball.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function Ball.show 0
-push argument 0
-pop pointer 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push pointer 0
-call Ball.draw 1
-pop temp 0
-push constant 0
-return
-function Ball.hide 0
-push argument 0
-pop pointer 0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push pointer 0
-call Ball.draw 1
-pop temp 0
-push constant 0
-return
-function Ball.draw 0
-push argument 0
-pop pointer 0
-push this 0
-push this 1
-push this 0
-push constant 5
-add
-push this 1
-push constant 5
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-return
-function Ball.getLeft 0
-push argument 0
-pop pointer 0
-push this 0
-return
-function Ball.getRight 0
-push argument 0
-pop pointer 0
-push this 0
-push constant 5
-add
-return
-function Ball.setDestination 3
-push argument 0
-pop pointer 0
-push argument 1
-push this 0
-sub
-pop this 2
-push argument 2
-push this 1
-sub
-pop this 3
-push this 2
-call Math.abs 1
-pop local 0
-push this 3
-call Math.abs 1
-pop local 1
-push local 0
-push local 1
-lt
-pop this 7
-push this 7
-not
-if-goto setDestination.Else0
-push local 0
-pop local 2
-push local 1
-pop local 0
-push local 2
-pop local 1
-push this 1
-push argument 2
-lt
-pop this 8
-push this 0
-push argument 1
-lt
-pop this 9
-goto setDestination.Endif0
-label setDestination.Else0
-push this 0
-push argument 1
-lt
-pop this 8
-push this 1
-push argument 2
-lt
-pop this 9
-label setDestination.Endif0
-push constant 2
-push local 1
-call Math.multiply 2
-push local 0
-sub
-pop this 4
-push constant 2
-push local 1
-call Math.multiply 2
-pop this 5
-push constant 2
-push local 1
-push local 0
-sub
-call Math.multiply 2
-pop this 6
-push constant 0
-return
-function Ball.move 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Ball.hide 1
-pop temp 0
-push this 4
-push constant 0
-lt
-not
-if-goto move.Else0
-push this 4
-push this 5
-add
-pop this 4
-goto move.Endif0
-label move.Else0
-push this 4
-push this 6
-add
-pop this 4
-push this 9
-not
-if-goto move.If0.Else0
-push this 7
-not
-if-goto move.If0.Else0.Else0
-push this 0
-push constant 4
-add
-pop this 0
-goto move.If0.Else0.Endif0
-label move.If0.Else0.Else0
-push this 1
-push constant 4
-add
-pop this 1
-label move.If0.Else0.Endif0
-goto move.If0.Endif0
-label move.If0.Else0
-push this 7
-not
-if-goto move.If0.If0.Else0
-push this 0
-push constant 4
-sub
-pop this 0
-goto move.If0.If0.Endif0
-label move.If0.If0.Else0
-push this 1
-push constant 4
-sub
-pop this 1
-label move.If0.If0.Endif0
-label move.If0.Endif0
-label move.Endif0
-push this 8
-not
-if-goto move.Else1
-push this 7
-not
-if-goto move.Else1.Else0
-push this 1
-push constant 4
-add
-pop this 1
-goto move.Else1.Endif0
-label move.Else1.Else0
-push this 0
-push constant 4
-add
-pop this 0
-label move.Else1.Endif0
-goto move.Endif1
-label move.Else1
-push this 7
-not
-if-goto move.If1.Else0
-push this 1
-push constant 4
-sub
-pop this 1
-goto move.If1.Endif0
-label move.If1.Else0
-push this 0
-push constant 4
-sub
-pop this 0
-label move.If1.Endif0
-label move.Endif1
-push this 0
-push this 10
-gt
-not
-not
-if-goto move.Else2
-push constant 1
-pop this 14
-push this 10
-pop this 0
-label move.Else2
-push this 0
-push this 11
-lt
-not
-not
-if-goto move.Else3
-push constant 2
-pop this 14
-push this 11
-pop this 0
-label move.Else3
-push this 1
-push this 12
-gt
-not
-not
-if-goto move.Else4
-push constant 3
-pop this 14
-push this 12
-pop this 1
-label move.Else4
-push this 1
-push this 13
-lt
-not
-not
-if-goto move.Else5
-push constant 4
-pop this 14
-push this 13
-pop this 1
-label move.Else5
-push pointer 0
-call Ball.show 1
-pop temp 0
-push this 14
-return
-function Ball.bounce 5
-push argument 0
-pop pointer 0
-push this 2
-push constant 10
-call Math.divide 2
-pop local 2
-push this 3
-push constant 10
-call Math.divide 2
-pop local 3
-push argument 1
-push constant 0
-eq
-not
-if-goto bounce.Else0
-push constant 10
-pop local 4
-goto bounce.Endif0
-label bounce.Else0
-push this 2
-push constant 0
-lt
-not
-push argument 1
-push constant 1
-eq
-and
-push this 2
-push constant 0
-lt
-push argument 1
-push constant 1
-neg
-eq
-and
-or
-not
-if-goto bounce.If0.Else0
-push constant 20
-pop local 4
-goto bounce.If0.Endif0
-label bounce.If0.Else0
-push constant 5
-pop local 4
-label bounce.If0.Endif0
-label bounce.Endif0
-push this 14
-push constant 1
-eq
-not
-if-goto bounce.Else1
-push constant 506
-pop local 0
-push local 3
-push constant 50
-neg
-call Math.multiply 2
-push local 2
-call Math.divide 2
-pop local 1
-push this 1
-push local 1
-push local 4
-call Math.multiply 2
-add
-pop local 1
-goto bounce.Endif1
-label bounce.Else1
-push this 14
-push constant 2
-eq
-not
-if-goto bounce.If1.Else0
-push constant 0
-pop local 0
-push local 3
-push constant 50
-call Math.multiply 2
-push local 2
-call Math.divide 2
-pop local 1
-push this 1
-push local 1
-push local 4
-call Math.multiply 2
-add
-pop local 1
-goto bounce.If1.Endif0
-label bounce.If1.Else0
-push this 14
-push constant 3
-eq
-not
-if-goto bounce.If1.If0.Else0
-push constant 250
-pop local 1
-push local 2
-push constant 25
-neg
-call Math.multiply 2
-push local 3
-call Math.divide 2
-pop local 0
-push this 0
-push local 0
-push local 4
-call Math.multiply 2
-add
-pop local 0
-goto bounce.If1.If0.Endif0
-label bounce.If1.If0.Else0
-push constant 0
-pop local 1
-push local 2
-push constant 25
-call Math.multiply 2
-push local 3
-call Math.divide 2
-pop local 0
-push this 0
-push local 0
-push local 4
-call Math.multiply 2
-add
-pop local 0
-label bounce.If1.If0.Endif0
-label bounce.If1.Endif0
-label bounce.Endif1
-push pointer 0
-push local 0
-push local 1
-call Ball.setDestination 3
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/Pong/Bat.jack b/projects/11/Pong/Bat.jack
deleted file mode 100644
index 340760f..0000000
--- a/projects/11/Pong/Bat.jack
+++ /dev/null
@@ -1,103 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Pong/Bat.jack
-
-/**
- * A graphical Pong bat.
- * Displayed as a filled horizontal rectangle that has
- * a screen location, a width and a height.
- * Has methods for drawing, erasing, moving left and right,
- * and changing its width (to make the hitting action more challenging).
- * This class should have been called "paddle", following the
- * standard Pong terminology. But, unaware of this terminology,
- * we called it "bat", and then decided to stick to it.
- */
-class Bat {
-
- field int x, y; // the bat's screen location
- field int width, height; // the bat's width and height
- field int direction; // direction of the bat's movement (1 = left, 2 = right)
-
- /** Constructs a new bat with the given location and width. */
- constructor Bat new(int Ax, int Ay, int Awidth, int Aheight) {
- let x = Ax;
- let y = Ay;
- let width = Awidth;
- let height = Aheight;
- let direction = 2;
- do show();
- return this;
- }
-
- /** Deallocates the object's memory. */
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-
- /** Shows the bat. */
- method void show() {
- do Screen.setColor(true);
- do draw();
- return;
- }
-
- /** Hides the bat. */
- method void hide() {
- do Screen.setColor(false);
- do draw();
- return;
- }
-
- /** Draws the bat. */
- method void draw() {
- do Screen.drawRectangle(x, y, x + width, y + height);
- return;
- }
-
- /** Sets the bat's direction (0=stop, 1=left, 2=right). */
- method void setDirection(int Adirection) {
- let direction = Adirection;
- return;
- }
-
- /** Returns the bat's left edge. */
- method int getLeft() {
- return x;
- }
-
- /** Returns the bat's right edge. */
- method int getRight() {
- return x + width;
- }
-
- /** Sets the bat's width. */
- method void setWidth(int Awidth) {
- do hide();
- let width = Awidth;
- do show();
- return;
- }
-
- /** Moves the bat one step in the bat's direction. */
- method void move() {
- if (direction = 1) {
- let x = x - 4;
- if (x < 0) { let x = 0; }
- do Screen.setColor(false);
- do Screen.drawRectangle((x + width) + 1, y, (x + width) + 4, y + height);
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + 3, y + height);
- }
- else {
- let x = x + 4;
- if ((x + width) > 511) { let x = 511 - width; }
- do Screen.setColor(false);
- do Screen.drawRectangle(x - 4, y, x - 1, y + height);
- do Screen.setColor(true);
- do Screen.drawRectangle((x + width) - 3, y, x + width, y + height);
- }
- return;
- }
-}
diff --git a/projects/11/Pong/Bat.vm b/projects/11/Pong/Bat.vm
deleted file mode 100644
index 77acfe4..0000000
--- a/projects/11/Pong/Bat.vm
+++ /dev/null
@@ -1,204 +0,0 @@
-function Bat.new 0
-push constant 5
-call Memory.alloc 1
-pop pointer 0
-push argument 0
-pop this 0
-push argument 1
-pop this 1
-push argument 2
-pop this 2
-push argument 3
-pop this 3
-push constant 2
-pop this 4
-push pointer 0
-call Bat.show 1
-pop temp 0
-push pointer 0
-return
-function Bat.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function Bat.show 0
-push argument 0
-pop pointer 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push pointer 0
-call Bat.draw 1
-pop temp 0
-push constant 0
-return
-function Bat.hide 0
-push argument 0
-pop pointer 0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push pointer 0
-call Bat.draw 1
-pop temp 0
-push constant 0
-return
-function Bat.draw 0
-push argument 0
-pop pointer 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 3
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-return
-function Bat.setDirection 0
-push argument 0
-pop pointer 0
-push argument 1
-pop this 4
-push constant 0
-return
-function Bat.getLeft 0
-push argument 0
-pop pointer 0
-push this 0
-return
-function Bat.getRight 0
-push argument 0
-pop pointer 0
-push this 0
-push this 2
-add
-return
-function Bat.setWidth 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Bat.hide 1
-pop temp 0
-push argument 1
-pop this 2
-push pointer 0
-call Bat.show 1
-pop temp 0
-push constant 0
-return
-function Bat.move 0
-push argument 0
-pop pointer 0
-push this 4
-push constant 1
-eq
-not
-if-goto move.Else0
-push this 0
-push constant 4
-sub
-pop this 0
-push this 0
-push constant 0
-lt
-not
-if-goto move.Else0.Else0
-push constant 0
-pop this 0
-label move.Else0.Else0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 2
-add
-push constant 1
-add
-push this 1
-push this 0
-push this 2
-add
-push constant 4
-add
-push this 1
-push this 3
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push constant 3
-add
-push this 1
-push this 3
-add
-call Screen.drawRectangle 4
-pop temp 0
-goto move.Endif0
-label move.Else0
-push this 0
-push constant 4
-add
-pop this 0
-push this 0
-push this 2
-add
-push constant 511
-gt
-not
-if-goto move.If0.Else0
-push constant 511
-push this 2
-sub
-pop this 0
-label move.If0.Else0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push constant 4
-sub
-push this 1
-push this 0
-push constant 1
-sub
-push this 1
-push this 3
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 2
-add
-push constant 3
-sub
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 3
-add
-call Screen.drawRectangle 4
-pop temp 0
-label move.Endif0
-push constant 0
-return
diff --git a/projects/11/Pong/Main.jack b/projects/11/Pong/Main.jack
deleted file mode 100644
index 45e2dd2..0000000
--- a/projects/11/Pong/Main.jack
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Pong/Main.jack
-
-/**
- * The main class of the Pong game.
- */
-class Main {
-
- /** Initializes a Pong game and starts running it. */
- function void main() {
- var PongGame game;
- do PongGame.newInstance();
- let game = PongGame.getInstance();
- do game.run();
- do game.dispose();
- return;
- }
-}
diff --git a/projects/11/Pong/Main.vm b/projects/11/Pong/Main.vm
deleted file mode 100644
index 94d76d7..0000000
--- a/projects/11/Pong/Main.vm
+++ /dev/null
@@ -1,13 +0,0 @@
-function Main.main 1
-call PongGame.newInstance 0
-pop temp 0
-call PongGame.getInstance 0
-pop local 0
-push local 0
-call PongGame.run 1
-pop temp 0
-push local 0
-call PongGame.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/Pong/PongGame.jack b/projects/11/Pong/PongGame.jack
deleted file mode 100644
index 7e1ae4c..0000000
--- a/projects/11/Pong/PongGame.jack
+++ /dev/null
@@ -1,137 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Pong/PongGame.jack
-
-/**
- * Represents a Pong game.
- */
-class PongGame {
-
- static PongGame instance; // the singelton, a Pong game instance
- field Bat bat; // the bat
- field Ball ball; // the ball
- field int wall; // the current wall that the ball is bouncing off of.
- field boolean exit; // true when the game is over
- field int score; // the current score.
- field int lastWall; // the last wall that the ball bounced off of.
-
- // The current width of the bat
- field int batWidth;
-
- /** Constructs a new Pong game. */
- constructor PongGame new() {
- do Screen.clearScreen();
- let batWidth = 50; // initial bat size
- let bat = Bat.new(230, 229, batWidth, 7);
- let ball = Ball.new(253, 222, 0, 511, 0, 229);
- do ball.setDestination(400,0);
- do Screen.drawRectangle(0, 238, 511, 240);
- do Output.moveCursor(22,0);
- do Output.printString("Score: 0");
-
- let exit = false;
- let score = 0;
- let wall = 0;
- let lastWall = 0;
-
- return this;
- }
-
- /** Deallocates the object's memory. */
- method void dispose() {
- do bat.dispose();
- do ball.dispose();
- do Memory.deAlloc(this);
- return;
- }
-
- /** Creates an instance of Pong game, and stores it. */
- function void newInstance() {
- let instance = PongGame.new();
- return;
- }
-
- /** Returns the single instance of this Pong game. */
- function PongGame getInstance() {
- return instance;
- }
-
- /** Starts the game, and andles inputs from the user that control
- * the bat's movement direction. */
- method void run() {
- var char key;
-
- while (~exit) {
- // waits for a key to be pressed.
- while ((key = 0) & (~exit)) {
- let key = Keyboard.keyPressed();
- do bat.move();
- do moveBall();
- do Sys.wait(50);
- }
-
- if (key = 130) { do bat.setDirection(1); }
- else {
- if (key = 132) { do bat.setDirection(2); }
- else {
- if (key = 140) { let exit = true; }
- }
- }
-
- // Waits for the key to be released.
- while ((~(key = 0)) & (~exit)) {
- let key = Keyboard.keyPressed();
- do bat.move();
- do moveBall();
- do Sys.wait(50);
- }
- }
-
- if (exit) {
- do Output.moveCursor(10,27);
- do Output.printString("Game Over");
- }
-
- return;
- }
-
- /**
- * Handles ball movement, including bouncing.
- * If the ball bounces off a wall, finds its new direction.
- * If the ball bounces off the bat, increases the score by one
- * and shrinks the bat's size, to make the game more challenging.
- */
- method void moveBall() {
- var int bouncingDirection, batLeft, batRight, ballLeft, ballRight;
-
- let wall = ball.move();
-
- if ((wall > 0) & (~(wall = lastWall))) {
- let lastWall = wall;
- let bouncingDirection = 0;
- let batLeft = bat.getLeft();
- let batRight = bat.getRight();
- let ballLeft = ball.getLeft();
- let ballRight = ball.getRight();
-
- if (wall = 4) {
- let exit = (batLeft > ballRight) | (batRight < ballLeft);
- if (~exit) {
- if (ballRight < (batLeft + 10)) { let bouncingDirection = -1; }
- else {
- if (ballLeft > (batRight - 10)) { let bouncingDirection = 1; }
- }
-
- let batWidth = batWidth - 2;
- do bat.setWidth(batWidth);
- let score = score + 1;
- do Output.moveCursor(22,7);
- do Output.printInt(score);
- }
- }
- do ball.bounce(bouncingDirection);
- }
- return;
- }
-} \ No newline at end of file
diff --git a/projects/11/Pong/PongGame.vm b/projects/11/Pong/PongGame.vm
deleted file mode 100644
index 5521919..0000000
--- a/projects/11/Pong/PongGame.vm
+++ /dev/null
@@ -1,309 +0,0 @@
-function PongGame.new 0
-push constant 7
-call Memory.alloc 1
-pop pointer 0
-call Screen.clearScreen 0
-pop temp 0
-push constant 50
-pop this 6
-push constant 230
-push constant 229
-push this 6
-push constant 7
-call Bat.new 4
-pop this 0
-push constant 253
-push constant 222
-push constant 0
-push constant 511
-push constant 0
-push constant 229
-call Ball.new 6
-pop this 1
-push this 1
-push constant 400
-push constant 0
-call Ball.setDestination 3
-pop temp 0
-push constant 0
-push constant 238
-push constant 511
-push constant 240
-call Screen.drawRectangle 4
-pop temp 0
-push constant 22
-push constant 0
-call Output.moveCursor 2
-pop temp 0
-push constant 8
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 48
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-pop this 3
-push constant 0
-pop this 4
-push constant 0
-pop this 2
-push constant 0
-pop this 5
-push pointer 0
-return
-function PongGame.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-call Bat.dispose 1
-pop temp 0
-push this 1
-call Ball.dispose 1
-pop temp 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function PongGame.newInstance 0
-call PongGame.new 0
-pop static 0
-push constant 0
-return
-function PongGame.getInstance 0
-push static 0
-return
-function PongGame.run 1
-push argument 0
-pop pointer 0
-label run.While0
-push this 3
-not
-not
-if-goto run.EndWhile0
-label run.While0.While0
-push local 0
-push constant 0
-eq
-push this 3
-not
-and
-not
-if-goto run.While0.EndWhile0
-call Keyboard.keyPressed 0
-pop local 0
-push this 0
-call Bat.move 1
-pop temp 0
-push pointer 0
-call PongGame.moveBall 1
-pop temp 0
-push constant 50
-call Sys.wait 1
-pop temp 0
-goto run.While0.While0
-label run.While0.EndWhile0
-push local 0
-push constant 130
-eq
-not
-if-goto run.While0.Else1
-push this 0
-push constant 1
-call Bat.setDirection 2
-pop temp 0
-goto run.While0.Endif1
-label run.While0.Else1
-push local 0
-push constant 132
-eq
-not
-if-goto run.While0.If1.Else0
-push this 0
-push constant 2
-call Bat.setDirection 2
-pop temp 0
-goto run.While0.If1.Endif0
-label run.While0.If1.Else0
-push local 0
-push constant 140
-eq
-not
-if-goto run.While0.If1.If0.Else0
-push constant 1
-neg
-pop this 3
-label run.While0.If1.If0.Else0
-label run.While0.If1.Endif0
-label run.While0.Endif1
-label run.While0.While2
-push local 0
-push constant 0
-eq
-not
-push this 3
-not
-and
-not
-if-goto run.While0.EndWhile2
-call Keyboard.keyPressed 0
-pop local 0
-push this 0
-call Bat.move 1
-pop temp 0
-push pointer 0
-call PongGame.moveBall 1
-pop temp 0
-push constant 50
-call Sys.wait 1
-pop temp 0
-goto run.While0.While2
-label run.While0.EndWhile2
-goto run.While0
-label run.EndWhile0
-push this 3
-not
-if-goto run.Else1
-push constant 10
-push constant 27
-call Output.moveCursor 2
-pop temp 0
-push constant 9
-call String.new 1
-push constant 71
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 79
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-label run.Else1
-push constant 0
-return
-function PongGame.moveBall 5
-push argument 0
-pop pointer 0
-push this 1
-call Ball.move 1
-pop this 2
-push this 2
-push constant 0
-gt
-push this 2
-push this 5
-eq
-not
-and
-not
-if-goto moveBall.Else0
-push this 2
-pop this 5
-push constant 0
-pop local 0
-push this 0
-call Bat.getLeft 1
-pop local 1
-push this 0
-call Bat.getRight 1
-pop local 2
-push this 1
-call Ball.getLeft 1
-pop local 3
-push this 1
-call Ball.getRight 1
-pop local 4
-push this 2
-push constant 4
-eq
-not
-if-goto moveBall.Else0.Else0
-push local 1
-push local 4
-gt
-push local 2
-push local 3
-lt
-or
-pop this 3
-push this 3
-not
-not
-if-goto moveBall.Else0.Else0.Else0
-push local 4
-push local 1
-push constant 10
-add
-lt
-not
-if-goto moveBall.Else0.Else0.Else0.Else0
-push constant 1
-neg
-pop local 0
-goto moveBall.Else0.Else0.Else0.Endif0
-label moveBall.Else0.Else0.Else0.Else0
-push local 3
-push local 2
-push constant 10
-sub
-gt
-not
-if-goto moveBall.Else0.Else0.Else0.If0.Else0
-push constant 1
-pop local 0
-label moveBall.Else0.Else0.Else0.If0.Else0
-label moveBall.Else0.Else0.Else0.Endif0
-push this 6
-push constant 2
-sub
-pop this 6
-push this 0
-push this 6
-call Bat.setWidth 2
-pop temp 0
-push this 4
-push constant 1
-add
-pop this 4
-push constant 22
-push constant 7
-call Output.moveCursor 2
-pop temp 0
-push this 4
-call Output.printInt 1
-pop temp 0
-label moveBall.Else0.Else0.Else0
-label moveBall.Else0.Else0
-push this 1
-push local 0
-call Ball.bounce 2
-pop temp 0
-label moveBall.Else0
-push constant 0
-return
diff --git a/projects/11/Seven/Main.jack b/projects/11/Seven/Main.jack
deleted file mode 100644
index 067402e..0000000
--- a/projects/11/Seven/Main.jack
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Seven/Main.jack
-
-/**
- * Computes the value of 1 + (2 * 3) and prints the result
- * at the top-left of the screen.
- */
-class Main {
-
- function void main() {
- do Output.printInt(1 + (2 * 3));
- return;
- }
-
-}
diff --git a/projects/11/Seven/Main.vm b/projects/11/Seven/Main.vm
deleted file mode 100644
index a209c18..0000000
--- a/projects/11/Seven/Main.vm
+++ /dev/null
@@ -1,10 +0,0 @@
-function Main.main 0
-push constant 1
-push constant 2
-push constant 3
-call Math.multiply 2
-add
-call Output.printInt 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/Square/Main.jack b/projects/11/Square/Main.jack
deleted file mode 100644
index 0753893..0000000
--- a/projects/11/Square/Main.jack
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Square/Main.jack
-
-// (same as projects/09/Square/Main.jack)
-
-/** Initializes a new Square Dance game and starts running it. */
-class Main {
- function void main() {
- var SquareGame game;
- let game = SquareGame.new();
- do game.run();
- do game.dispose();
- return;
- }
-}
diff --git a/projects/11/Square/Main.vm b/projects/11/Square/Main.vm
deleted file mode 100644
index a3b355b..0000000
--- a/projects/11/Square/Main.vm
+++ /dev/null
@@ -1,11 +0,0 @@
-function Main.main 1
-call SquareGame.new 0
-pop local 0
-push local 0
-call SquareGame.run 1
-pop temp 0
-push local 0
-call SquareGame.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/11/Square/Square.jack b/projects/11/Square/Square.jack
deleted file mode 100644
index 5a92838..0000000
--- a/projects/11/Square/Square.jack
+++ /dev/null
@@ -1,110 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Square/Square.jack
-
-// (same as projects/09/Square/Square.jack)
-
-/** Implements a graphical square. */
-class Square {
-
- field int x, y; // screen location of the square's top-left corner
- field int size; // length of this square, in pixels
-
- /** Constructs a new square with a given location and size. */
- constructor Square new(int Ax, int Ay, int Asize) {
- let x = Ax;
- let y = Ay;
- let size = Asize;
- do draw();
- return this;
- }
-
- /** Disposes this square. */
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-
- /** Draws the square on the screen. */
- method void draw() {
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + size, y + size);
- return;
- }
-
- /** Erases the square from the screen. */
- method void erase() {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + size, y + size);
- return;
- }
-
- /** Increments the square size by 2 pixels. */
- method void incSize() {
- if (((y + size) < 254) & ((x + size) < 510)) {
- do erase();
- let size = size + 2;
- do draw();
- }
- return;
- }
-
- /** Decrements the square size by 2 pixels. */
- method void decSize() {
- if (size > 2) {
- do erase();
- let size = size - 2;
- do draw();
- }
- return;
- }
-
- /** Moves the square up by 2 pixels. */
- method void moveUp() {
- if (y > 1) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size);
- let y = y - 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + size, y + 1);
- }
- return;
- }
-
- /** Moves the square down by 2 pixels. */
- method void moveDown() {
- if ((y + size) < 254) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + size, y + 1);
- let y = y + 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, (y + size) - 1, x + size, y + size);
- }
- return;
- }
-
- /** Moves the square left by 2 pixels. */
- method void moveLeft() {
- if (x > 1) {
- do Screen.setColor(false);
- do Screen.drawRectangle((x + size) - 1, y, x + size, y + size);
- let x = x - 2;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + 1, y + size);
- }
- return;
- }
-
- /** Moves the square right by 2 pixels. */
- method void moveRight() {
- if ((x + size) < 510) {
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + 1, y + size);
- let x = x + 2;
- do Screen.setColor(true);
- do Screen.drawRectangle((x + size) - 1, y, x + size, y + size);
- }
- return;
- }
-}
diff --git a/projects/11/Square/Square.vm b/projects/11/Square/Square.vm
deleted file mode 100644
index 871ccf7..0000000
--- a/projects/11/Square/Square.vm
+++ /dev/null
@@ -1,298 +0,0 @@
-function Square.new 0
-push constant 3
-call Memory.alloc 1
-pop pointer 0
-push argument 0
-pop this 0
-push argument 1
-pop this 1
-push argument 2
-pop this 2
-push pointer 0
-call Square.draw 1
-pop temp 0
-push pointer 0
-return
-function Square.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function Square.draw 0
-push argument 0
-pop pointer 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-return
-function Square.erase 0
-push argument 0
-pop pointer 0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-return
-function Square.incSize 0
-push argument 0
-pop pointer 0
-push this 1
-push this 2
-add
-push constant 254
-lt
-push this 0
-push this 2
-add
-push constant 510
-lt
-and
-not
-if-goto incSize.Else0
-push pointer 0
-call Square.erase 1
-pop temp 0
-push this 2
-push constant 2
-add
-pop this 2
-push pointer 0
-call Square.draw 1
-pop temp 0
-label incSize.Else0
-push constant 0
-return
-function Square.decSize 0
-push argument 0
-pop pointer 0
-push this 2
-push constant 2
-gt
-not
-if-goto decSize.Else0
-push pointer 0
-call Square.erase 1
-pop temp 0
-push this 2
-push constant 2
-sub
-pop this 2
-push pointer 0
-call Square.draw 1
-pop temp 0
-label decSize.Else0
-push constant 0
-return
-function Square.moveUp 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 1
-gt
-not
-if-goto moveUp.Else0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 2
-add
-push constant 1
-sub
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 1
-push constant 2
-sub
-pop this 1
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push constant 1
-add
-call Screen.drawRectangle 4
-pop temp 0
-label moveUp.Else0
-push constant 0
-return
-function Square.moveDown 0
-push argument 0
-pop pointer 0
-push this 1
-push this 2
-add
-push constant 254
-lt
-not
-if-goto moveDown.Else0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push constant 1
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 1
-push constant 2
-add
-pop this 1
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 2
-add
-push constant 1
-sub
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-label moveDown.Else0
-push constant 0
-return
-function Square.moveLeft 0
-push argument 0
-pop pointer 0
-push this 0
-push constant 1
-gt
-not
-if-goto moveLeft.Else0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 2
-add
-push constant 1
-sub
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 0
-push constant 2
-sub
-pop this 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push constant 1
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-label moveLeft.Else0
-push constant 0
-return
-function Square.moveRight 0
-push argument 0
-pop pointer 0
-push this 0
-push this 2
-add
-push constant 510
-lt
-not
-if-goto moveRight.Else0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 1
-push this 0
-push constant 1
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-push this 0
-push constant 2
-add
-pop this 0
-push constant 1
-neg
-call Screen.setColor 1
-pop temp 0
-push this 0
-push this 2
-add
-push constant 1
-sub
-push this 1
-push this 0
-push this 2
-add
-push this 1
-push this 2
-add
-call Screen.drawRectangle 4
-pop temp 0
-label moveRight.Else0
-push constant 0
-return
diff --git a/projects/11/Square/SquareGame.jack b/projects/11/Square/SquareGame.jack
deleted file mode 100644
index 4fe7e39..0000000
--- a/projects/11/Square/SquareGame.jack
+++ /dev/null
@@ -1,81 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/11/Square/SquareGame.jack
-
-// (same as projects/09/Square/SquareGame.jack)
-
-/**
- * Implements the Square Dance game.
- * This simple game allows the user to move a black square around
- * the screen, and change the square's size during the movement.
- * When the game starts, a square of 30 by 30 pixels is shown at the
- * top-left corner of the screen. The user controls the square as follows.
- * The 4 arrow keys are used to move the square up, down, left, and right.
- * The 'z' and 'x' keys are used, respectively, to decrement and increment
- * the square's size. The 'q' key is used to quit the game.
- */
-
-class SquareGame {
- field Square square; // the square of this game
- field int direction; // the square's current direction:
- // 0=none, 1=up, 2=down, 3=left, 4=right
-
- /** Constructs a new Square Game. */
- constructor SquareGame new() {
- // Creates a 30 by 30 pixels square and positions it at the top-left
- // of the screen.
- let square = Square.new(0, 0, 30);
- let direction = 0; // initial state is no movement
- return this;
- }
-
- /** Disposes this game. */
- method void dispose() {
- do square.dispose();
- do Memory.deAlloc(this);
- return;
- }
-
- /** Moves the square in the current direction. */
- method void moveSquare() {
- if (direction = 1) { do square.moveUp(); }
- if (direction = 2) { do square.moveDown(); }
- if (direction = 3) { do square.moveLeft(); }
- if (direction = 4) { do square.moveRight(); }
- do Sys.wait(5); // delays the next movement
- return;
- }
-
- /** Runs the game: handles the user's inputs and moves the square accordingly */
- method void run() {
- var char key; // the key currently pressed by the user
- var boolean exit;
- let exit = false;
-
- while (~exit) {
- // waits for a key to be pressed
- while (key = 0) {
- let key = Keyboard.keyPressed();
- do moveSquare();
- }
- if (key = 81) { let exit = true; } // q key
- if (key = 90) { do square.decSize(); } // z key
- if (key = 88) { do square.incSize(); } // x key
- if (key = 131) { let direction = 1; } // up arrow
- if (key = 133) { let direction = 2; } // down arrow
- if (key = 130) { let direction = 3; } // left arrow
- if (key = 132) { let direction = 4; } // right arrow
-
- // waits for the key to be released
- while (~(key = 0)) {
- let key = Keyboard.keyPressed();
- do moveSquare();
- }
- } // while
- return;
- }
-}
-
-
-
diff --git a/projects/11/Square/SquareGame.vm b/projects/11/Square/SquareGame.vm
deleted file mode 100644
index f2dd542..0000000
--- a/projects/11/Square/SquareGame.vm
+++ /dev/null
@@ -1,168 +0,0 @@
-function SquareGame.new 0
-push constant 2
-call Memory.alloc 1
-pop pointer 0
-push constant 0
-push constant 0
-push constant 30
-call Square.new 3
-pop this 0
-push constant 0
-pop this 1
-push pointer 0
-return
-function SquareGame.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-call Square.dispose 1
-pop temp 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function SquareGame.moveSquare 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 1
-eq
-not
-if-goto moveSquare.Else0
-push this 0
-call Square.moveUp 1
-pop temp 0
-label moveSquare.Else0
-push this 1
-push constant 2
-eq
-not
-if-goto moveSquare.Else1
-push this 0
-call Square.moveDown 1
-pop temp 0
-label moveSquare.Else1
-push this 1
-push constant 3
-eq
-not
-if-goto moveSquare.Else2
-push this 0
-call Square.moveLeft 1
-pop temp 0
-label moveSquare.Else2
-push this 1
-push constant 4
-eq
-not
-if-goto moveSquare.Else3
-push this 0
-call Square.moveRight 1
-pop temp 0
-label moveSquare.Else3
-push constant 5
-call Sys.wait 1
-pop temp 0
-push constant 0
-return
-function SquareGame.run 2
-push argument 0
-pop pointer 0
-push constant 0
-pop local 1
-label run.While0
-push local 1
-not
-not
-if-goto run.EndWhile0
-label run.While0.While0
-push local 0
-push constant 0
-eq
-not
-if-goto run.While0.EndWhile0
-call Keyboard.keyPressed 0
-pop local 0
-push pointer 0
-call SquareGame.moveSquare 1
-pop temp 0
-goto run.While0.While0
-label run.While0.EndWhile0
-push local 0
-push constant 81
-eq
-not
-if-goto run.While0.Else1
-push constant 1
-neg
-pop local 1
-label run.While0.Else1
-push local 0
-push constant 90
-eq
-not
-if-goto run.While0.Else2
-push this 0
-call Square.decSize 1
-pop temp 0
-label run.While0.Else2
-push local 0
-push constant 88
-eq
-not
-if-goto run.While0.Else3
-push this 0
-call Square.incSize 1
-pop temp 0
-label run.While0.Else3
-push local 0
-push constant 131
-eq
-not
-if-goto run.While0.Else4
-push constant 1
-pop this 1
-label run.While0.Else4
-push local 0
-push constant 133
-eq
-not
-if-goto run.While0.Else5
-push constant 2
-pop this 1
-label run.While0.Else5
-push local 0
-push constant 130
-eq
-not
-if-goto run.While0.Else6
-push constant 3
-pop this 1
-label run.While0.Else6
-push local 0
-push constant 132
-eq
-not
-if-goto run.While0.Else7
-push constant 4
-pop this 1
-label run.While0.Else7
-label run.While0.While8
-push local 0
-push constant 0
-eq
-not
-not
-if-goto run.While0.EndWhile8
-call Keyboard.keyPressed 0
-pop local 0
-push pointer 0
-call SquareGame.moveSquare 1
-pop temp 0
-goto run.While0.While8
-label run.While0.EndWhile8
-goto run.While0
-label run.EndWhile0
-push constant 0
-return
diff --git a/projects/11/Test.jack b/projects/11/Test.jack
deleted file mode 100644
index ff4bfae..0000000
--- a/projects/11/Test.jack
+++ /dev/null
@@ -1,7 +0,0 @@
-class Test{
-method void something(){
-}
-constructor Test new(){
- do something();
-}
-}
diff --git a/projects/11/systemsub.txt b/projects/11/systemsub.txt
deleted file mode 100644
index cad8797..0000000
--- a/projects/11/systemsub.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-class Math{
-function int abs(int x, int y){}
-function int multiply(int x, int y){}
-function int divide(int x, int y){}
-function int min(int x, int y){}
-function int max(int x, int y){}
-function int sqrt(int x){}
-}
-class String{
-constructor String new(int maxLength){}
-method int dispose(){}
-method int length(){}
-method char charAt(int j){}
-method void setCharAt(int j, char c){}
-method String appendChar(char c){}
-method void eraseLastChar(){}
-method int intValue(){}
-method void setInt(int val){}
-function char backSpace(){}
-function char doubleQuote(){}
-function char newLine(){}
-}
-class Array{
-function Array new(int size){}
-method void dispose(){}
-}
-class Output{
-function void moveCursor(int i, int j){}
-function void printChar(char c){}
-function void printString(String s){}
-function void printInt(int i){}
-function void println(){}
-function void backSpace(){}
-}
-class Screen{
-function void clearScreen(){}
-function void setColor(boolean b){}
-function void drawPixel(int x, int y){}
-function void drawLine(int x1, int y1, int x2, int y2){}
-function void drawRectangle(int x1, int y1, int x2, int y2){}
-function void drawCircle(int x, int y, int r){}
-}
-class Keyboard{
-function char keyPressed(){}
-function char readChar(){}
-function String readLine(String message){}
-function int readInt(String message){}
-}
-class Memory{
-function int peek(int address){}
-function void poke(int address, int value){}
-function Array alloc(int size){}
-function void deAlloc(Array o){}
-}
-class Sys{
-function void halt(){}
-function void error(int errorCode){}
-function void wait(int duration){}
-}
diff --git a/projects/11/systemsub1.txt b/projects/11/systemsub1.txt
deleted file mode 100644
index 2095728..0000000
--- a/projects/11/systemsub1.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-function int Math.multiply(int x, int y)
-function int Math.divide(int x, int y)
-function int Math.min(int x, int y)
-function int Math.max(int x, int y)
-function int Math.sqrt(int x)
-constructor String String.new(int maxLength)
-method int String.dispose()
-method int String.length()
-method char String.charAt(int j)
-method void String.setCharAt(int j, char c)
-method String String.appendChar(char c)
-method void String.eraseLastChar()
-method int String.intValue()
-method void String.setInt(int val)
-function char String.backSpace()
-function char String.doubleQuote()
-function char String.newLine()
-function Array Array.new(int size)
-method void Array.dispose()
-function void Output.moveCursor(int i, int j)
-function void Output.printChar(char c)
-function void Output.printString(String s)
-function void Output.printInt(int i)
-function void Output.println()
-function void Output.backSpace()
-function void Screen.clearScreen()
-function void Screen.setColor(boolean b)
-function void Screen.drawPixel(int x, int y)
-function void Screen.drawLine(int x1, int y1, int x2, int y2)
-function void Screen.drawRectangle(int x1, int y1, int x2, int y2)
-function void Screen.drawCircle(int x, int y, int r)
-function char Keyboard.keyPressed()
-function char Keyboard.readChar()
-function String Keyboard.readLine(String message)
-function int Keyboard.readInt(String message)
-function int Memory.peek(int address)
-function void Memory.poke(int address, int value)
-function Array Memory.alloc(int size)
-function void Memory.deAlloc(Array o)
-function void Sys.halt()
-function void Sys.error(int errorCode)
-function void Sys.wait(int duration)
diff --git a/projects/12/ArrayTest/Array.jack b/projects/12/ArrayTest/Array.jack
deleted file mode 100644
index 343c25c..0000000
--- a/projects/12/ArrayTest/Array.jack
+++ /dev/null
@@ -1,26 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Array.jack
-
-/**
- * Represents an array.
- * In the Jack language, arrays are instances of the Array class.
- * Once declared, the array entries can be accessed using the usual
- * syntax arr[i]. Each array entry can hold a primitive data type as
- * well as any object type. Different array entries can have different
- * data types.
- */
-class Array {
-
- /** Constructs a new Array of the given size. */
- function Array new(int size) {
- return Memory.alloc(size);
- }
-
- /** Disposes this array. */
- method void dispose() {
- do Memory.deAlloc(this);
- return;
- }
-}
diff --git a/projects/12/ArrayTest/Array.vm b/projects/12/ArrayTest/Array.vm
deleted file mode 100644
index c0cd797..0000000
--- a/projects/12/ArrayTest/Array.vm
+++ /dev/null
@@ -1,12 +0,0 @@
-function Array.new 0
-push argument 0
-call Memory.alloc 1
-return
-function Array.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/ArrayTest/ArrayTest.cmp b/projects/12/ArrayTest/ArrayTest.cmp
deleted file mode 100644
index d1a9798..0000000
--- a/projects/12/ArrayTest/ArrayTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|
-| 222 | 122 | 100 | 10 |
diff --git a/projects/12/ArrayTest/ArrayTest.out b/projects/12/ArrayTest/ArrayTest.out
deleted file mode 100644
index e9f4e75..0000000
--- a/projects/12/ArrayTest/ArrayTest.out
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|
-| 222 | 122 | 100 | 10 |
diff --git a/projects/12/ArrayTest/ArrayTest.tst b/projects/12/ArrayTest/ArrayTest.tst
deleted file mode 100644
index 89934b9..0000000
--- a/projects/12/ArrayTest/ArrayTest.tst
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/ArrayTest/ArrayTest.tst
-
-load,
-output-file ArrayTest.out,
-compare-to ArrayTest.cmp,
-output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1;
-
-repeat 1000000 {
- vmstep;
-}
-
-output;
diff --git a/projects/12/ArrayTest/Main.jack b/projects/12/ArrayTest/Main.jack
deleted file mode 100644
index 439770a..0000000
--- a/projects/12/ArrayTest/Main.jack
+++ /dev/null
@@ -1,40 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/ArrayTest/Main.jack
-
-/** Test program for the OS Array class. */
-class Main {
-
- /** Performs several Array manipulations. */
- function void main() {
- var Array r; // stores test results
- var Array a, b, c;
-
- let r = 8000;
-
- let a = Array.new(3);
- let a[2] = 222;
- let r[0] = a[2]; // RAM[8000] = 222
-
- let b = Array.new(3);
- let b[1] = a[2] - 100;
- let r[1] = b[1]; // RAM[8001] = 122
-
- let c = Array.new(500);
- let c[499] = a[2] - b[1];
- let r[2] = c[499]; // RAM[8002] = 100
-
- do a.dispose();
- do b.dispose();
-
- let b = Array.new(3);
- let b[0] = c[499] - 90;
- let r[3] = b[0]; // RAM[8003] = 10
-
- do c.dispose();
- do b.dispose();
-
- return;
- }
-}
diff --git a/projects/12/ArrayTest/Main.vm b/projects/12/ArrayTest/Main.vm
deleted file mode 100644
index 141f20a..0000000
--- a/projects/12/ArrayTest/Main.vm
+++ /dev/null
@@ -1,131 +0,0 @@
-function Main.main 4
-push constant 8000
-pop local 0
-push constant 3
-call Array.new 1
-pop local 1
-push constant 2
-push local 1
-add
-push constant 222
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push local 0
-add
-push constant 2
-push local 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-call Array.new 1
-pop local 2
-push constant 1
-push local 2
-add
-push constant 2
-push local 1
-add
-pop pointer 1
-push that 0
-push constant 100
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push local 0
-add
-push constant 1
-push local 2
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 500
-call Array.new 1
-pop local 3
-push constant 499
-push local 3
-add
-push constant 2
-push local 1
-add
-pop pointer 1
-push that 0
-push constant 1
-push local 2
-add
-pop pointer 1
-push that 0
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push local 0
-add
-push constant 499
-push local 3
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-call Array.dispose 1
-pop temp 0
-push local 2
-call Array.dispose 1
-pop temp 0
-push constant 3
-call Array.new 1
-pop local 2
-push constant 0
-push local 2
-add
-push constant 499
-push local 3
-add
-pop pointer 1
-push that 0
-push constant 90
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push local 0
-add
-push constant 0
-push local 2
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 3
-call Array.dispose 1
-pop temp 0
-push local 2
-call Array.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/KeyboardTest/Keyboard.jack b/projects/12/KeyboardTest/Keyboard.jack
deleted file mode 100644
index a35704a..0000000
--- a/projects/12/KeyboardTest/Keyboard.jack
+++ /dev/null
@@ -1,97 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Keyboard.jack
-
-/**
- * A library for handling user input from the keyboard.
- */
-class Keyboard {
-
- /** Initializes the keyboard. */
- function void init() {
- return;
- }
-
- /**
- * Returns the character of the currently pressed key on the keyboard;
- * if no key is currently pressed, returns 0.
- *
- * Recognizes all ASCII characters, as well as the following keys:
- * new line = 128 = String.newline()
- * backspace = 129 = String.backspace()
- * left arrow = 130
- * up arrow = 131
- * right arrow = 132
- * down arrow = 133
- * home = 134
- * End = 135
- * page up = 136
- * page down = 137
- * insert = 138
- * delete = 139
- * ESC = 140
- * F1 - F12 = 141 - 152
- */
- function char keyPressed() {
- return Memory.peek(24576);
- }
-
- /**
- * Waits until a key is pressed on the keyboard and released,
- * then echoes the key to the screen, and returns the character
- * of the pressed key.
- */
- function char readChar() {
- var int key, key1;
- let key = 0;
- while (key = 0) {
- let key = Memory.peek(24576);
- }
- let key1 = key;
- while (key1 = key) {
- let key1 = Memory.peek(24576);
- }
- if ((key > 31) & (key < 127) | (key = 128) | (key = 129)) {
- do Output.printChar(key);
- }
- return key;
- }
-
- /**
- * Displays the message on the screen, reads from the keyboard the entered
- * text until a newline character is detected, echoes the text to the screen,
- * and returns its value. Also handles user backspaces.
- */
- function String readLine(String message) {
- var int c;
- var String s;
- let s = String.new(140);
- do Output.printString(message);
- let c = Keyboard.readChar();
- while (~(c = 128)) {
- if (c = 129) {
- if (s.length() > 0) {
- do s.eraseLastChar();
- }
- } else {
- do s.appendChar(c);
- }
- let c = Keyboard.readChar();
- }
- return s;
- }
-
- /**
- * Displays the message on the screen, reads from the keyboard the entered
- * text until a newline character is detected, echoes the text to the screen,
- * and returns its integer value (until the first non-digit character in the
- * entered text is detected). Also handles user backspaces.
- */
- function int readInt(String message) {
- var String s;
- do Output.printString(message);
- let s = Keyboard.readLine("");
- return s.intValue();
- }
-}
diff --git a/projects/12/KeyboardTest/Keyboard.vm b/projects/12/KeyboardTest/Keyboard.vm
deleted file mode 100644
index 5dc3426..0000000
--- a/projects/12/KeyboardTest/Keyboard.vm
+++ /dev/null
@@ -1,115 +0,0 @@
-function Keyboard.init 0
-push constant 0
-return
-function Keyboard.keyPressed 0
-push constant 24576
-call Memory.peek 1
-return
-function Keyboard.readChar 2
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push constant 0
-eq
-not
-if-goto WHILE_END0
-push constant 24576
-call Memory.peek 1
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-pop local 1
-label WHILE_EXP1
-push local 1
-push local 0
-eq
-not
-if-goto WHILE_END1
-push constant 24576
-call Memory.peek 1
-pop local 1
-goto WHILE_EXP1
-label WHILE_END1
-push local 0
-push constant 31
-gt
-push local 0
-push constant 127
-lt
-and
-push local 0
-push constant 128
-eq
-or
-push local 0
-push constant 129
-eq
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-call Output.printChar 1
-pop temp 0
-label IF_FALSE0
-push local 0
-return
-function Keyboard.readLine 2
-push constant 140
-call String.new 1
-pop local 1
-push argument 0
-call Output.printString 1
-pop temp 0
-call Keyboard.readChar 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push constant 128
-eq
-not
-not
-if-goto WHILE_END0
-push local 0
-push constant 129
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 1
-call String.length 1
-push constant 0
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 1
-call String.eraseLastChar 1
-pop temp 0
-label IF_FALSE1
-goto IF_END0
-label IF_FALSE0
-push local 1
-push local 0
-call String.appendChar 2
-pop temp 0
-label IF_END0
-call Keyboard.readChar 0
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 1
-return
-function Keyboard.readInt 1
-push argument 0
-call Output.printString 1
-pop temp 0
-push constant 0
-call String.new 1
-call Keyboard.readLine 1
-pop local 0
-push local 0
-call String.intValue 1
-return
diff --git a/projects/12/KeyboardTest/KeyboardTestOutput.gif b/projects/12/KeyboardTest/KeyboardTestOutput.gif
deleted file mode 100644
index 944983a..0000000
--- a/projects/12/KeyboardTest/KeyboardTestOutput.gif
+++ /dev/null
Binary files differ
diff --git a/projects/12/KeyboardTest/Main.jack b/projects/12/KeyboardTest/Main.jack
deleted file mode 100644
index e89182c..0000000
--- a/projects/12/KeyboardTest/Main.jack
+++ /dev/null
@@ -1,93 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/KeyboardTest/Main.jack
-
-/** Test program for the OS Keyboard class. */
-class Main {
-
- /** Gets input from the user and verifies its contents. */
- function void main() {
- var char c, key;
- var String s;
- var int i;
- var boolean ok;
-
- let ok = false;
- do Output.printString("keyPressed test:");
- do Output.println();
- while (~ok) {
- do Output.printString("Please press the 'Page Down' key");
- while (key = 0) {
- let key = Keyboard.keyPressed();
- }
- let c = key;
- while (~(key = 0)) {
- let key = Keyboard.keyPressed();
- }
-
- do Output.println();
-
- if (c = 137) {
- do Output.printString("ok");
- do Output.println();
- let ok = true;
- }
- }
-
- let ok = false;
- do Output.printString("readChar test:");
- do Output.println();
- do Output.printString("(Verify that the pressed character is echoed to the screen)");
- do Output.println();
- while (~ok) {
- do Output.printString("Please press the number '3': ");
- let c = Keyboard.readChar();
-
- do Output.println();
-
- if (c = 51) {
- do Output.printString("ok");
- do Output.println();
- let ok = true;
- }
- }
-
- let ok = false;
- do Output.printString("readLine test:");
- do Output.println();
- do Output.printString("(Verify echo and usage of 'backspace')");
- do Output.println();
- while (~ok) {
- let s = Keyboard.readLine("Please type 'JACK' and press enter: ");
-
- if (s.length() = 4) {
- if ((s.charAt(0) = 74) & (s.charAt(1) = 65) & (s.charAt(2) = 67) & (s.charAt(3) = 75)) {
- do Output.printString("ok");
- do Output.println();
- let ok = true;
- }
- }
- }
-
- let ok = false;
- do Output.printString("readInt test:");
- do Output.println();
- do Output.printString("(Verify echo and usage of 'backspace')");
- do Output.println();
- while (~ok) {
- let i = Keyboard.readInt("Please type '-32123' and press enter: ");
-
- if (i = (-32123)) {
- do Output.printString("ok");
- do Output.println();
- let ok = true;
- }
- }
-
- do Output.println();
- do Output.printString("Test completed successfully");
-
- return;
- }
-}
diff --git a/projects/12/KeyboardTest/Main.vm b/projects/12/KeyboardTest/Main.vm
deleted file mode 100644
index aec89d6..0000000
--- a/projects/12/KeyboardTest/Main.vm
+++ /dev/null
@@ -1,949 +0,0 @@
-function Main.main 5
-push constant 0
-pop local 4
-push constant 16
-call String.new 1
-push constant 107
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 80
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-label WHILE_EXP0
-push local 4
-not
-not
-if-goto WHILE_END0
-push constant 32
-call String.new 1
-push constant 80
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 80
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 68
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-label WHILE_EXP1
-push local 1
-push constant 0
-eq
-not
-if-goto WHILE_END1
-call Keyboard.keyPressed 0
-pop local 1
-goto WHILE_EXP1
-label WHILE_END1
-push local 1
-pop local 0
-label WHILE_EXP2
-push local 1
-push constant 0
-eq
-not
-not
-if-goto WHILE_END2
-call Keyboard.keyPressed 0
-pop local 1
-goto WHILE_EXP2
-label WHILE_END2
-call Output.println 0
-pop temp 0
-push local 0
-push constant 137
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 2
-call String.new 1
-push constant 111
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-not
-pop local 4
-label IF_FALSE0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-pop local 4
-push constant 14
-call String.new 1
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 59
-call String.new 1
-push constant 40
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 41
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-label WHILE_EXP3
-push local 4
-not
-not
-if-goto WHILE_END3
-push constant 29
-call String.new 1
-push constant 80
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Keyboard.readChar 0
-pop local 0
-call Output.println 0
-pop temp 0
-push local 0
-push constant 51
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 2
-call String.new 1
-push constant 111
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-not
-pop local 4
-label IF_FALSE1
-goto WHILE_EXP3
-label WHILE_END3
-push constant 0
-pop local 4
-push constant 14
-call String.new 1
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 76
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 38
-call String.new 1
-push constant 40
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 41
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-label WHILE_EXP4
-push local 4
-not
-not
-if-goto WHILE_END4
-push constant 36
-call String.new 1
-push constant 80
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 74
-call String.appendChar 2
-push constant 65
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 75
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Keyboard.readLine 1
-pop local 2
-push local 2
-call String.length 1
-push constant 4
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 2
-push constant 0
-call String.charAt 2
-push constant 74
-eq
-push local 2
-push constant 1
-call String.charAt 2
-push constant 65
-eq
-and
-push local 2
-push constant 2
-call String.charAt 2
-push constant 67
-eq
-and
-push local 2
-push constant 3
-call String.charAt 2
-push constant 75
-eq
-and
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push constant 2
-call String.new 1
-push constant 111
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-not
-pop local 4
-label IF_FALSE3
-label IF_FALSE2
-goto WHILE_EXP4
-label WHILE_END4
-push constant 0
-pop local 4
-push constant 13
-call String.new 1
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 73
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 38
-call String.new 1
-push constant 40
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 41
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-label WHILE_EXP5
-push local 4
-not
-not
-if-goto WHILE_END5
-push constant 38
-call String.new 1
-push constant 80
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 49
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Keyboard.readInt 1
-pop local 3
-push local 3
-push constant 32123
-neg
-eq
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push constant 2
-call String.new 1
-push constant 111
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 0
-not
-pop local 4
-label IF_FALSE4
-goto WHILE_EXP5
-label WHILE_END5
-call Output.println 0
-pop temp 0
-push constant 27
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/MathTest/Main.jack b/projects/12/MathTest/Main.jack
deleted file mode 100644
index de5cec2..0000000
--- a/projects/12/MathTest/Main.jack
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/MathTest/Main.jack
-
-/** Test program for the OS Math class. */
-class Main {
-
- /** Performs various mathematical operations, using calls to the Math class methods. */
- function void main() {
- var Array r; // stores the test results;
-
- let r = 8000;
-
- let r[0] = 2 * 3; // 6
- let r[1] = r[0] * (-30); // 6 * (-30) = -180
- let r[2] = r[1] * 100; // (-180) * 100 = -18000
- let r[3] = 1 * r[2]; // 1 * (-18000) = -18000
- let r[4] = r[3] * 0; // 0
-
- let r[5] = 9 / 3; // 3
- let r[6] = (-18000) / 6; // -3000
- let r[7] = 32766 / (-32767); // 0
-
- let r[8] = Math.sqrt(9); // 3
- let r[9] = Math.sqrt(32767); // 181
-
- let r[10] = Math.min(345, 123); // 123
- let r[11] = Math.max(123, -345); // 123
- let r[12] = Math.abs(27); // 27
- let r[13] = Math.abs(-32767); // 32767
-
- return;
- }
-}
diff --git a/projects/12/MathTest/Main.vm b/projects/12/MathTest/Main.vm
deleted file mode 100644
index 025f20c..0000000
--- a/projects/12/MathTest/Main.vm
+++ /dev/null
@@ -1,162 +0,0 @@
-function Main.main 1
-push constant 8000
-pop local 0
-push constant 0
-push local 0
-add
-push constant 2
-push constant 3
-call Math.multiply 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push local 0
-add
-push constant 0
-push local 0
-add
-pop pointer 1
-push that 0
-push constant 30
-neg
-call Math.multiply 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push local 0
-add
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-push constant 100
-call Math.multiply 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push local 0
-add
-push constant 1
-push constant 2
-push local 0
-add
-pop pointer 1
-push that 0
-call Math.multiply 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 4
-push local 0
-add
-push constant 3
-push local 0
-add
-pop pointer 1
-push that 0
-push constant 0
-call Math.multiply 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 5
-push local 0
-add
-push constant 9
-push constant 3
-call Math.divide 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 6
-push local 0
-add
-push constant 18000
-neg
-push constant 6
-call Math.divide 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 7
-push local 0
-add
-push constant 32766
-push constant 32767
-neg
-call Math.divide 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8
-push local 0
-add
-push constant 9
-call Math.sqrt 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 9
-push local 0
-add
-push constant 32767
-call Math.sqrt 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 10
-push local 0
-add
-push constant 345
-push constant 123
-call Math.min 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 11
-push local 0
-add
-push constant 123
-push constant 345
-neg
-call Math.max 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 12
-push local 0
-add
-push constant 27
-call Math.abs 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 13
-push local 0
-add
-push constant 32767
-neg
-call Math.abs 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
diff --git a/projects/12/MathTest/Math.jack b/projects/12/MathTest/Math.jack
deleted file mode 100644
index 01bce8f..0000000
--- a/projects/12/MathTest/Math.jack
+++ /dev/null
@@ -1,158 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Math.jack
-
-/**
- * A library of commonly used mathematical functions.
- * Note: Jack compilers implement multiplication and division using OS method calls.
- */
-class Math {
- static Array twoToThe;
-
- /** Initializes the library. */
- function void init() {
- var int i, x;
- let x = 1;
- let i = 0;
- let twoToThe = Array.new(16);
- while (i < 16){
- let twoToThe[i] = x;
- let x = x + x;
- let i = i + 1;
- }
- return;
- }
-
- function boolean bit(int x, int i) {
- return ~(x & twoToThe[i] = 0);
- }
-
- function int sign(int x) {
- if (x > 0) {
- return 1;
- } else {
- if (x < 0) {
- return -1;
- } else {
- return 0;
- }
- }
- }
-
- /** Returns the absolute value of x. */
- function int abs(int x) {
- if (x > 0){
- return x;
- } else {
- return -x;
- }
- }
-
- /** Returns the product of x and y.
- * When a Jack compiler detects the multiplication operator '*' in the
- * program's code, it handles it by invoking this method. In other words,
- * the Jack expressions x*y and multiply(x,y) return the same value.
- */
- function int multiply(int x, int y) {
- var int res, shiftedX, i;
- let shiftedX = x;
- let i = 0;
- let res = 0;
- //while ((~(twoToThe[i] > y)) & (i < 16)) {
- while (i < 16) {
- if (Math.bit(y, i)){
- let res = res + shiftedX;
- }
- let shiftedX = shiftedX + shiftedX;
- let i = i + 1;
- }
- return res;
- }
-
- /** Returns the integer part of x/y.
- * When a Jack compiler detects the multiplication operator '/' in the
- * program's code, it handles it by invoking this method. In other words,
- * the Jack expressions x/y and divide(x,y) return the same value.
- */
- function int divide(int x, int y) {
- var int ax, ay;
- if (x > 0) {
- if (y > 0) {
- return Math.divide1(x, y);
- } else {
- return -Math.divide1(x, -y);
- }
- } else {
- if (y > 0) {
- return -Math.divide1(-x, y);
- } else {
- return Math.divide1(-x, -y);
- }
- }
- }
-
- function int divide1(int x, int y) {
- var int q;
- if (y = 0) {
- do Output.printString("Error: division by zero.");
- do Sys.error(0);
- }
- if ((y > x) | (y < 0)) {
- return 0;
- }
- let q = Math.divide1(x, y * 2);
- if (x - (2 * q * y) < y) {
- return 2 * q;
- } else {
- return 2 * q + 1;
- }
- }
-
- function int length(int x){
- var int n;
- let n = 14;
- while (twoToThe[n] > x){
- let n = n - 1;
- }
- return n;
- }
-
- /** Returns the integer part of the square root of x. */
- function int sqrt(int x) {
- var int y, k, z, w;
- if (x < 0) {
- do Output.printString("Error: square rooting a negative number.");
- do Sys.error(0);
- }
- let k = Math.length(x) / 2;
- let y = 0;
- while (~(k < 0)) {
- let z = y + twoToThe[k];
- let w = z * z;
- if ((~(w > x)) & (w > 0)) {
- let y = z;
- }
- let k = k - 1;
- }
- return y;
- }
-
- /** Returns the greater number. */
- function int max(int a, int b) {
- if (a > b) {
- return a;
- } else {
- return b;
- }
- }
-
- /** Returns the smaller number. */
- function int min(int a, int b) {
- if (a < b) {
- return a;
- } else {
- return b;
- }
- }
-}
diff --git a/projects/12/MathTest/Math.vm b/projects/12/MathTest/Math.vm
deleted file mode 100644
index 513fc1a..0000000
--- a/projects/12/MathTest/Math.vm
+++ /dev/null
@@ -1,472 +0,0 @@
-function Math.init 2
-push constant 1
-pop local 1
-push constant 0
-pop local 0
-push constant 16
-call Array.new 1
-pop static 0
-label WHILE_EXP0
-push local 0
-push constant 16
-lt
-not
-if-goto WHILE_END0
-push local 0
-push static 0
-add
-push local 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push local 1
-add
-pop local 1
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Math.bit 0
-push argument 0
-push argument 1
-push static 0
-add
-pop pointer 1
-push that 0
-and
-push constant 0
-eq
-not
-return
-function Math.sign 0
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 1
-return
-goto IF_END0
-label IF_FALSE0
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 1
-neg
-return
-goto IF_END1
-label IF_FALSE1
-push constant 0
-return
-label IF_END1
-label IF_END0
-function Math.abs 0
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-return
-goto IF_END0
-label IF_FALSE0
-push argument 0
-neg
-return
-label IF_END0
-function Math.multiply 3
-push argument 0
-pop local 1
-push constant 0
-pop local 2
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 2
-push constant 16
-lt
-not
-if-goto WHILE_END0
-push argument 1
-push local 2
-call Math.bit 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-push local 1
-add
-pop local 0
-label IF_FALSE0
-push local 1
-push local 1
-add
-pop local 1
-push local 2
-push constant 1
-add
-pop local 2
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-return
-function Math.divide 2
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 1
-push constant 0
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push argument 0
-push argument 1
-call Math.divide1 2
-return
-goto IF_END1
-label IF_FALSE1
-push argument 0
-push argument 1
-neg
-call Math.divide1 2
-neg
-return
-label IF_END1
-goto IF_END0
-label IF_FALSE0
-push argument 1
-push constant 0
-gt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push argument 0
-neg
-push argument 1
-call Math.divide1 2
-neg
-return
-goto IF_END2
-label IF_FALSE2
-push argument 0
-neg
-push argument 1
-neg
-call Math.divide1 2
-return
-label IF_END2
-label IF_END0
-function Math.divide1 1
-push argument 1
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 24
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 122
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push argument 0
-gt
-push argument 1
-push constant 0
-lt
-or
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-return
-label IF_FALSE1
-push argument 0
-push argument 1
-push constant 2
-call Math.multiply 2
-call Math.divide1 2
-pop local 0
-push argument 0
-push constant 2
-push local 0
-call Math.multiply 2
-push argument 1
-call Math.multiply 2
-sub
-push argument 1
-lt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 2
-push local 0
-call Math.multiply 2
-return
-goto IF_END2
-label IF_FALSE2
-push constant 2
-push local 0
-call Math.multiply 2
-push constant 1
-add
-return
-label IF_END2
-function Math.length 1
-push constant 14
-pop local 0
-label WHILE_EXP0
-push local 0
-push static 0
-add
-pop pointer 1
-push that 0
-push argument 0
-gt
-not
-if-goto WHILE_END0
-push local 0
-push constant 1
-sub
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-return
-function Math.sqrt 4
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 40
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 113
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-call Math.length 1
-push constant 2
-call Math.divide 2
-pop local 1
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 1
-push constant 0
-lt
-not
-not
-if-goto WHILE_END0
-push local 0
-push local 1
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop local 2
-push local 2
-push local 2
-call Math.multiply 2
-pop local 3
-push local 3
-push argument 0
-gt
-not
-push local 3
-push constant 0
-gt
-and
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 2
-pop local 0
-label IF_FALSE1
-push local 1
-push constant 1
-sub
-pop local 1
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-return
-function Math.max 0
-push argument 0
-push argument 1
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-return
-goto IF_END0
-label IF_FALSE0
-push argument 1
-return
-label IF_END0
-function Math.min 0
-push argument 0
-push argument 1
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-return
-goto IF_END0
-label IF_FALSE0
-push argument 1
-return
-label IF_END0
diff --git a/projects/12/MathTest/MathTest.cmp b/projects/12/MathTest/MathTest.cmp
deleted file mode 100644
index 703c1be..0000000
--- a/projects/12/MathTest/MathTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|RAM[8004]|RAM[8005]|RAM[8006]|RAM[8007]|RAM[8008]|RAM[8009]|RAM[8010]|RAM[8011]|RAM[8012]|RAM[8013]|
-| 6 | -180 | -18000 | -18000 | 0 | 3 | -3000 | 0 | 3 | 181 | 123 | 123 | 27 | 32767 |
diff --git a/projects/12/MathTest/MathTest.out b/projects/12/MathTest/MathTest.out
deleted file mode 100644
index 8b5a504..0000000
--- a/projects/12/MathTest/MathTest.out
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|RAM[8004]|RAM[8005]|RAM[8006]|RAM[8007]|RAM[8008]|RAM[8009]|RAM[8010]|RAM[8011]|RAM[8012]|RAM[8013]|
-| 6 | -180 | -18000 | -18000 | 0 | 3 | -3000 | 0 | 3 | 181 | 123 | 123 | 27 | 32767 |
diff --git a/projects/12/MathTest/MathTest.tst b/projects/12/MathTest/MathTest.tst
deleted file mode 100644
index 127dbb4..0000000
--- a/projects/12/MathTest/MathTest.tst
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/MathTest/MathTest.tst
-
-load,
-output-file MathTest.out,
-compare-to MathTest.cmp,
-output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1 RAM[8004]%D2.6.1 RAM[8005]%D2.6.1 RAM[8006]%D2.6.1 RAM[8007]%D2.6.1 RAM[8008]%D2.6.1 RAM[8009]%D2.6.1 RAM[8010]%D2.6.1 RAM[8011]%D2.6.1 RAM[8012]%D2.6.1 RAM[8013]%D2.6.1;
-
-repeat 1000000 {
- vmstep;
-}
-
-output;
diff --git a/projects/12/MemoryTest/Main.jack b/projects/12/MemoryTest/Main.jack
deleted file mode 100644
index 77a53a9..0000000
--- a/projects/12/MemoryTest/Main.jack
+++ /dev/null
@@ -1,42 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/MemoryTest/Main.jack
-
-/** Test program for the OS Memory class. */
-class Main {
-
- /** Performs various memory manipulations. */
- function void main() {
- var int temp;
- var Array a, b, c;
-
- do Memory.poke(8000, 333); // RAM[8000] = 333
- let temp = Memory.peek(8000);
- do Memory.poke(8001, temp + 1); // RAM[8001] = 334
-
- let a = Array.new(3); // uses Memory.alloc
- let a[2] = 222;
- do Memory.poke(8002, a[2]); // RAM[8002] = 222
-
- let b = Array.new(3);
- let b[1] = a[2] - 100;
- do Memory.poke(8003, b[1]); // RAM[8003] = 122
-
- let c = Array.new(500);
- let c[499] = a[2] - b[1];
- do Memory.poke(8004, c[499]); // RAM[8004] = 100
-
- do a.dispose(); // uses Memory.deAlloc
- do b.dispose();
-
- let b = Array.new(3);
- let b[0] = c[499] - 90;
- do Memory.poke(8005, b[0]); // RAM[8005] = 10
-
- do c.dispose();
- do b.dispose();
-
- return;
- }
-}
diff --git a/projects/12/MemoryTest/Main.vm b/projects/12/MemoryTest/Main.vm
deleted file mode 100644
index a3a9e81..0000000
--- a/projects/12/MemoryTest/Main.vm
+++ /dev/null
@@ -1,126 +0,0 @@
-function Main.main 4
-push constant 8000
-push constant 333
-call Memory.poke 2
-pop temp 0
-push constant 8000
-call Memory.peek 1
-pop local 0
-push constant 8001
-push local 0
-push constant 1
-add
-call Memory.poke 2
-pop temp 0
-push constant 3
-call Array.new 1
-pop local 1
-push constant 2
-push local 1
-add
-push constant 222
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8002
-push constant 2
-push local 1
-add
-pop pointer 1
-push that 0
-call Memory.poke 2
-pop temp 0
-push constant 3
-call Array.new 1
-pop local 2
-push constant 1
-push local 2
-add
-push constant 2
-push local 1
-add
-pop pointer 1
-push that 0
-push constant 100
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8003
-push constant 1
-push local 2
-add
-pop pointer 1
-push that 0
-call Memory.poke 2
-pop temp 0
-push constant 500
-call Array.new 1
-pop local 3
-push constant 499
-push local 3
-add
-push constant 2
-push local 1
-add
-pop pointer 1
-push that 0
-push constant 1
-push local 2
-add
-pop pointer 1
-push that 0
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8004
-push constant 499
-push local 3
-add
-pop pointer 1
-push that 0
-call Memory.poke 2
-pop temp 0
-push local 1
-call Array.dispose 1
-pop temp 0
-push local 2
-call Array.dispose 1
-pop temp 0
-push constant 3
-call Array.new 1
-pop local 2
-push constant 0
-push local 2
-add
-push constant 499
-push local 3
-add
-pop pointer 1
-push that 0
-push constant 90
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8005
-push constant 0
-push local 2
-add
-pop pointer 1
-push that 0
-call Memory.poke 2
-pop temp 0
-push local 3
-call Array.dispose 1
-pop temp 0
-push local 2
-call Array.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/MemoryTest/Memory.jack b/projects/12/MemoryTest/Memory.jack
deleted file mode 100644
index 54e04aa..0000000
--- a/projects/12/MemoryTest/Memory.jack
+++ /dev/null
@@ -1,72 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Memory.jack
-
-/**
- * This library provides two services: direct access to the computer's main
- * memory (RAM), and allocation and recycling of memory blocks. The Hack RAM
- * consists of 32,768 words, each holding a 16-bit binary number.
- */
-class Memory {
- static Array memory;
- static Array heap;
- static int last;
-
- /** Initializes the class. */
- function void init() {
- let memory = 0;
- let heap = 2048;
- let heap[0] = -1;
- let heap[1] = 14334;
- let last = 0;
- return;
- }
-
- /** Returns the RAM value at the given address. */
- function int peek(int address) {
- return memory[address];
- }
-
- /** Sets the RAM value at the given address to the given value. */
- function void poke(int address, int value) {
- let memory[address] = value;
- return;
- }
-
- /** Finds an available RAM block of the given size and returns
- * a reference to its base address. */
- function int alloc(int size) {
- var int current;
- var int size2;
- var int newLast;
- let current = 0;
- let size2 = size + 2;
- while ((current > -1) & (heap[current + 1] < size2)) {
- let current = heap[current];
- }
- if (current = -1) {
- do String.println("Insufficient space for allocation!");
- do Sys.error(1);
- return -1;
- } else {
- let heap[current + 1] = heap[current + 1] - size2;
- let newLast = current + heap[current + 1] + 2;
- let heap[newLast] = heap[current];
- let heap[current] = newLast;
- let heap[newLast + 1] = size;
- return heap + newLast + 2;
- }
- }
-
- /** De-allocates the given object (cast as an array) by making
- * it available for future allocations. */
- function void deAlloc(Array o) {
- var int oBase;
- let oBase = o - heap - 2;
- let heap[oBase] = -1;
- let heap[last] = oBase;
- let last = oBase;
- return;
- }
-}
diff --git a/projects/12/MemoryTest/Memory.vm b/projects/12/MemoryTest/Memory.vm
deleted file mode 100644
index 0570b46..0000000
--- a/projects/12/MemoryTest/Memory.vm
+++ /dev/null
@@ -1,258 +0,0 @@
-function Memory.init 0
-push constant 0
-pop static 0
-push constant 2048
-pop static 1
-push constant 0
-push static 1
-add
-push constant 1
-neg
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push static 1
-add
-push constant 14334
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-pop static 2
-push constant 0
-return
-function Memory.peek 0
-push argument 0
-push static 0
-add
-pop pointer 1
-push that 0
-return
-function Memory.poke 0
-push argument 0
-push static 0
-add
-push argument 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Memory.alloc 3
-push constant 0
-pop local 0
-push argument 0
-push constant 2
-add
-pop local 1
-label WHILE_EXP0
-push local 0
-push constant 1
-neg
-gt
-push local 0
-push constant 1
-add
-push static 1
-add
-pop pointer 1
-push that 0
-push local 1
-lt
-and
-not
-if-goto WHILE_END0
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-push constant 1
-neg
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 34
-call String.new 1
-push constant 73
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call String.println 1
-pop temp 0
-push constant 1
-call Sys.error 1
-pop temp 0
-push constant 1
-neg
-return
-goto IF_END0
-label IF_FALSE0
-push local 0
-push constant 1
-add
-push static 1
-add
-push local 0
-push constant 1
-add
-push static 1
-add
-pop pointer 1
-push that 0
-push local 1
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push local 0
-push constant 1
-add
-push static 1
-add
-pop pointer 1
-push that 0
-add
-push constant 2
-add
-pop local 2
-push local 2
-push static 1
-add
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push static 1
-add
-push local 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 2
-push constant 1
-add
-push static 1
-add
-push argument 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push static 1
-push local 2
-add
-push constant 2
-add
-return
-label IF_END0
-function Memory.deAlloc 1
-push argument 0
-push static 1
-sub
-push constant 2
-sub
-pop local 0
-push local 0
-push static 1
-add
-push constant 1
-neg
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push static 2
-push static 1
-add
-push local 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-pop static 2
-push constant 0
-return
diff --git a/projects/12/MemoryTest/MemoryTest.cmp b/projects/12/MemoryTest/MemoryTest.cmp
deleted file mode 100644
index 057958b..0000000
--- a/projects/12/MemoryTest/MemoryTest.cmp
+++ /dev/null
@@ -1,2 +0,0 @@
-|RAM[8000]|RAM[8001]|RAM[8002]|RAM[8003]|RAM[8004]|RAM[8005]|
-| 333 | 334 | 222 | 122 | 100 | 10 |
diff --git a/projects/12/MemoryTest/MemoryTest.out b/projects/12/MemoryTest/MemoryTest.out
deleted file mode 100644
index e69de29..0000000
--- a/projects/12/MemoryTest/MemoryTest.out
+++ /dev/null
diff --git a/projects/12/MemoryTest/MemoryTest.tst b/projects/12/MemoryTest/MemoryTest.tst
deleted file mode 100644
index 1da34fd..0000000
--- a/projects/12/MemoryTest/MemoryTest.tst
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/MemoryTest/MemoryTest.tst
-
-load,
-output-file MemoryTest.out,
-compare-to MemoryTest.cmp,
-output-list RAM[8000]%D2.6.1 RAM[8001]%D2.6.1 RAM[8002]%D2.6.1 RAM[8003]%D2.6.1 RAM[8004]%D2.6.1 RAM[8005]%D2.6.1;
-
-repeat 1000000 {
- vmstep;
-}
-
-output;
diff --git a/projects/12/OutputTest/Main.jack b/projects/12/OutputTest/Main.jack
deleted file mode 100644
index f243068..0000000
--- a/projects/12/OutputTest/Main.jack
+++ /dev/null
@@ -1,42 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/OutputTest/Main.jack
-
-/** Test program for the OS Output class. */
-class Main {
-
- /** Outputs the entire character set to the screen using all the
- * methods of the Output class. */
- function void main() {
- var String s;
-
- let s = String.new(1);
- do s.appendChar(String.doubleQuote());
-
- do Output.moveCursor(0, 63);
- do Output.printChar(66);
- do Output.moveCursor(22, 0);
- do Output.printChar(67);
- do Output.moveCursor(22, 63);
- do Output.printChar(68);
- do Output.printChar(65);
-
- do Output.moveCursor(2, 0);
- do Output.printString("0123456789");
- do Output.println();
-
- do Output.printString("ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz");
- do Output.println();
-
- do Output.printString("!#$%&'()*+,-./:;<=>?@[\]^_`{|}~");
- do Output.printString(s);
- do Output.println();
-
- do Output.printInt(-12345);
- do Output.backSpace();
- do Output.printInt(6789);
-
- return;
- }
-}
diff --git a/projects/12/OutputTest/Main.vm b/projects/12/OutputTest/Main.vm
deleted file mode 100644
index 0a4c951..0000000
--- a/projects/12/OutputTest/Main.vm
+++ /dev/null
@@ -1,254 +0,0 @@
-function Main.main 1
-push constant 1
-call String.new 1
-pop local 0
-push local 0
-call String.doubleQuote 0
-call String.appendChar 2
-pop temp 0
-push constant 0
-push constant 63
-call Output.moveCursor 2
-pop temp 0
-push constant 66
-call Output.printChar 1
-pop temp 0
-push constant 22
-push constant 0
-call Output.moveCursor 2
-pop temp 0
-push constant 67
-call Output.printChar 1
-pop temp 0
-push constant 22
-push constant 63
-call Output.moveCursor 2
-pop temp 0
-push constant 68
-call Output.printChar 1
-pop temp 0
-push constant 65
-call Output.printChar 1
-pop temp 0
-push constant 2
-push constant 0
-call Output.moveCursor 2
-pop temp 0
-push constant 10
-call String.new 1
-push constant 48
-call String.appendChar 2
-push constant 49
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-push constant 52
-call String.appendChar 2
-push constant 53
-call String.appendChar 2
-push constant 54
-call String.appendChar 2
-push constant 55
-call String.appendChar 2
-push constant 56
-call String.appendChar 2
-push constant 57
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 53
-call String.new 1
-push constant 65
-call String.appendChar 2
-push constant 66
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 68
-call String.appendChar 2
-push constant 69
-call String.appendChar 2
-push constant 70
-call String.appendChar 2
-push constant 71
-call String.appendChar 2
-push constant 72
-call String.appendChar 2
-push constant 73
-call String.appendChar 2
-push constant 74
-call String.appendChar 2
-push constant 75
-call String.appendChar 2
-push constant 76
-call String.appendChar 2
-push constant 77
-call String.appendChar 2
-push constant 78
-call String.appendChar 2
-push constant 79
-call String.appendChar 2
-push constant 80
-call String.appendChar 2
-push constant 81
-call String.appendChar 2
-push constant 82
-call String.appendChar 2
-push constant 83
-call String.appendChar 2
-push constant 84
-call String.appendChar 2
-push constant 85
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 87
-call String.appendChar 2
-push constant 88
-call String.appendChar 2
-push constant 89
-call String.appendChar 2
-push constant 90
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 106
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 113
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 122
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 30
-call String.new 1
-push constant 33
-call String.appendChar 2
-push constant 35
-call String.appendChar 2
-push constant 36
-call String.appendChar 2
-push constant 37
-call String.appendChar 2
-push constant 38
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 40
-call String.appendChar 2
-push constant 41
-call String.appendChar 2
-push constant 42
-call String.appendChar 2
-push constant 43
-call String.appendChar 2
-push constant 44
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 47
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 59
-call String.appendChar 2
-push constant 60
-call String.appendChar 2
-push constant 61
-call String.appendChar 2
-push constant 62
-call String.appendChar 2
-push constant 63
-call String.appendChar 2
-push constant 64
-call String.appendChar 2
-push constant 91
-call String.appendChar 2
-push constant 93
-call String.appendChar 2
-push constant 94
-call String.appendChar 2
-push constant 95
-call String.appendChar 2
-push constant 96
-call String.appendChar 2
-push constant 123
-call String.appendChar 2
-push constant 124
-call String.appendChar 2
-push constant 125
-call String.appendChar 2
-push constant 126
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 12345
-neg
-call Output.printInt 1
-pop temp 0
-call Output.backSpace 0
-pop temp 0
-push constant 6789
-call Output.printInt 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/OutputTest/Output.jack b/projects/12/OutputTest/Output.jack
deleted file mode 100644
index 61b24de..0000000
--- a/projects/12/OutputTest/Output.jack
+++ /dev/null
@@ -1,281 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Output.jack
-
-/**
- * A library of functions for writing text on the screen.
- * The Hack physical screen consists of 512 rows of 256 pixels each.
- * The library uses a fixed font, in which each character is displayed
- * within a frame which is 11 pixels high (including 1 pixel for inter-line
- * spacing) and 8 pixels wide (including 2 pixels for inter-character spacing).
- * The resulting grid accommodates 23 rows (indexed 0..22, top to bottom)
- * of 64 characters each (indexed 0..63, left to right). The top left
- * character position on the screen is indexed (0,0). A cursor, implemented
- * as a small filled square, indicates where the next character will be displayed.
- */
-class Output {
-
- // Character map for displaying characters
- static Array charMaps;
- static int cursorI, cursorJ;
-
- /** Initializes the screen, and locates the cursor at the screen's top-left. */
- function void init() {
- do Output.initMap();
- do Output.moveCursor(0, 0);
- return;
- }
-
- // Initializes the character map array
- function void initMap() {
- var int i;
-
- let charMaps = Array.new(127);
-
- // Black square, used for displaying non-printable characters.
- do Output.create(0,63,63,63,63,63,63,63,63,63,0,0);
-
- // Assigns the bitmap for each character in the charachter set.
- // The first parameter is the character index, the next 11 numbers
- // are the values of each row in the frame that represents this character.
- do Output.create(32,0,0,0,0,0,0,0,0,0,0,0); //
- do Output.create(33,12,30,30,30,12,12,0,12,12,0,0); // !
- do Output.create(34,54,54,20,0,0,0,0,0,0,0,0); // "
- do Output.create(35,0,18,18,63,18,18,63,18,18,0,0); // #
- do Output.create(36,12,30,51,3,30,48,51,30,12,12,0); // $
- do Output.create(37,0,0,35,51,24,12,6,51,49,0,0); // %
- do Output.create(38,12,30,30,12,54,27,27,27,54,0,0); // &
- do Output.create(39,12,12,6,0,0,0,0,0,0,0,0); // '
- do Output.create(40,24,12,6,6,6,6,6,12,24,0,0); // (
- do Output.create(41,6,12,24,24,24,24,24,12,6,0,0); // )
- do Output.create(42,0,0,0,51,30,63,30,51,0,0,0); // *
- do Output.create(43,0,0,0,12,12,63,12,12,0,0,0); // +
- do Output.create(44,0,0,0,0,0,0,0,12,12,6,0); // ,
- do Output.create(45,0,0,0,0,0,63,0,0,0,0,0); // -
- do Output.create(46,0,0,0,0,0,0,0,12,12,0,0); // .
- do Output.create(47,0,0,32,48,24,12,6,3,1,0,0); // /
-
- do Output.create(48,12,30,51,51,51,51,51,30,12,0,0); // 0
- do Output.create(49,12,14,15,12,12,12,12,12,63,0,0); // 1
- do Output.create(50,30,51,48,24,12,6,3,51,63,0,0); // 2
- do Output.create(51,30,51,48,48,28,48,48,51,30,0,0); // 3
- do Output.create(52,16,24,28,26,25,63,24,24,60,0,0); // 4
- do Output.create(53,63,3,3,31,48,48,48,51,30,0,0); // 5
- do Output.create(54,28,6,3,3,31,51,51,51,30,0,0); // 6
- do Output.create(55,63,49,48,48,24,12,12,12,12,0,0); // 7
- do Output.create(56,30,51,51,51,30,51,51,51,30,0,0); // 8
- do Output.create(57,30,51,51,51,62,48,48,24,14,0,0); // 9
-
- do Output.create(58,0,0,12,12,0,0,12,12,0,0,0); // :
- do Output.create(59,0,0,12,12,0,0,12,12,6,0,0); // ;
- do Output.create(60,0,0,24,12,6,3,6,12,24,0,0); // <
- do Output.create(61,0,0,0,63,0,0,63,0,0,0,0); // =
- do Output.create(62,0,0,3,6,12,24,12,6,3,0,0); // >
- do Output.create(64,30,51,51,59,59,59,27,3,30,0,0); // @
- do Output.create(63,30,51,51,24,12,12,0,12,12,0,0); // ?
-
- do Output.create(65,12,12,30,30,51,51,63,51,51,0,0); // A
- do Output.create(66,31,51,51,51,31,51,51,51,31,0,0); // B
- do Output.create(67,28,54,35,3,3,3,35,54,28,0,0); // C
- do Output.create(68,15,27,51,51,51,51,51,27,15,0,0); // D
- do Output.create(69,63,51,35,11,15,11,35,51,63,0,0); // E
- do Output.create(70,63,51,35,11,15,11,3,3,3,0,0); // F
- do Output.create(71,28,54,35,3,59,51,51,54,44,0,0); // G
- do Output.create(72,51,51,51,51,63,51,51,51,51,0,0); // H
- do Output.create(73,30,12,12,12,12,12,12,12,30,0,0); // I
- do Output.create(74,60,24,24,24,24,24,27,27,14,0,0); // J
- do Output.create(75,51,51,51,27,15,27,51,51,51,0,0); // K
- do Output.create(76,3,3,3,3,3,3,35,51,63,0,0); // L
- do Output.create(77,33,51,63,63,51,51,51,51,51,0,0); // M
- do Output.create(78,51,51,55,55,63,59,59,51,51,0,0); // N
- do Output.create(79,30,51,51,51,51,51,51,51,30,0,0); // O
- do Output.create(80,31,51,51,51,31,3,3,3,3,0,0); // P
- do Output.create(81,30,51,51,51,51,51,63,59,30,48,0);// Q
- do Output.create(82,31,51,51,51,31,27,51,51,51,0,0); // R
- do Output.create(83,30,51,51,6,28,48,51,51,30,0,0); // S
- do Output.create(84,63,63,45,12,12,12,12,12,30,0,0); // T
- do Output.create(85,51,51,51,51,51,51,51,51,30,0,0); // U
- do Output.create(86,51,51,51,51,51,30,30,12,12,0,0); // V
- do Output.create(87,51,51,51,51,51,63,63,63,18,0,0); // W
- do Output.create(88,51,51,30,30,12,30,30,51,51,0,0); // X
- do Output.create(89,51,51,51,51,30,12,12,12,30,0,0); // Y
- do Output.create(90,63,51,49,24,12,6,35,51,63,0,0); // Z
-
- do Output.create(91,30,6,6,6,6,6,6,6,30,0,0); // [
- do Output.create(92,0,0,1,3,6,12,24,48,32,0,0); // \
- do Output.create(93,30,24,24,24,24,24,24,24,30,0,0); // ]
- do Output.create(94,8,28,54,0,0,0,0,0,0,0,0); // ^
- do Output.create(95,0,0,0,0,0,0,0,0,0,63,0); // _
- do Output.create(96,6,12,24,0,0,0,0,0,0,0,0); // `
-
- do Output.create(97,0,0,0,14,24,30,27,27,54,0,0); // a
- do Output.create(98,3,3,3,15,27,51,51,51,30,0,0); // b
- do Output.create(99,0,0,0,30,51,3,3,51,30,0,0); // c
- do Output.create(100,48,48,48,60,54,51,51,51,30,0,0); // d
- do Output.create(101,0,0,0,30,51,63,3,51,30,0,0); // e
- do Output.create(102,28,54,38,6,15,6,6,6,15,0,0); // f
- do Output.create(103,0,0,30,51,51,51,62,48,51,30,0); // g
- do Output.create(104,3,3,3,27,55,51,51,51,51,0,0); // h
- do Output.create(105,12,12,0,14,12,12,12,12,30,0,0); // i
- do Output.create(106,48,48,0,56,48,48,48,48,51,30,0); // j
- do Output.create(107,3,3,3,51,27,15,15,27,51,0,0); // k
- do Output.create(108,14,12,12,12,12,12,12,12,30,0,0); // l
- do Output.create(109,0,0,0,29,63,43,43,43,43,0,0); // m
- do Output.create(110,0,0,0,29,51,51,51,51,51,0,0); // n
- do Output.create(111,0,0,0,30,51,51,51,51,30,0,0); // o
- do Output.create(112,0,0,0,30,51,51,51,31,3,3,0); // p
- do Output.create(113,0,0,0,30,51,51,51,62,48,48,0); // q
- do Output.create(114,0,0,0,29,55,51,3,3,7,0,0); // r
- do Output.create(115,0,0,0,30,51,6,24,51,30,0,0); // s
- do Output.create(116,4,6,6,15,6,6,6,54,28,0,0); // t
- do Output.create(117,0,0,0,27,27,27,27,27,54,0,0); // u
- do Output.create(118,0,0,0,51,51,51,51,30,12,0,0); // v
- do Output.create(119,0,0,0,51,51,51,63,63,18,0,0); // w
- do Output.create(120,0,0,0,51,30,12,12,30,51,0,0); // x
- do Output.create(121,0,0,0,51,51,51,62,48,24,15,0); // y
- do Output.create(122,0,0,0,63,27,12,6,51,63,0,0); // z
-
- do Output.create(123,56,12,12,12,7,12,12,12,56,0,0); // {
- do Output.create(124,12,12,12,12,12,12,12,12,12,0,0); // |
- do Output.create(125,7,12,12,12,56,12,12,12,7,0,0); // }
- do Output.create(126,38,45,25,0,0,0,0,0,0,0,0); // ~
-
- return;
- }
-
- // Creates the character map array of the given character index, using the given values.
- function void create(int index, int a, int b, int c, int d, int e,
- int f, int g, int h, int i, int j, int k) {
- var Array map;
-
- let map = Array.new(11);
- let charMaps[index] = map;
-
- let map[0] = a;
- let map[1] = b;
- let map[2] = c;
- let map[3] = d;
- let map[4] = e;
- let map[5] = f;
- let map[6] = g;
- let map[7] = h;
- let map[8] = i;
- let map[9] = j;
- let map[10] = k;
-
- return;
- }
-
- // Returns the character map (array of size 11) of the given character.
- // If the given character is invalid or non-printable, returns the
- // character map of a black square.
- function Array getMap(char c) {
- if ((c < 32) | (c > 126)) {
- let c = 0;
- }
- return charMaps[c];
- }
-
- /** Moves the cursor to the j-th column of the i-th row,
- * and erases the character displayed there. */
- function void moveCursor(int i, int j) {
- var int x, y;
- let x = cursorJ * 8;
- let y = cursorI * 11;
- do Screen.setColor(false);
- do Screen.drawRectangle(x, y, x + 7, y + 10);
- let x = j * 8;
- let y = i * 11;
- do Screen.setColor(true);
- do Screen.drawRectangle(x, y, x + 7, y + 10);
- let cursorI = i;
- let cursorJ = j;
- return;
- }
-
- /** Displays the given character at the cursor location,
- * and advances the cursor one column forward. */
- function void printChar(char c) {
- var int k, x, y, addr;
- var Array cm;
- if (c = 129) {
- do Output.backSpace();
- return;
- }
- if (cursorI = 22) {
- if (c = 128) {
- return;
- }
- if (cursorJ = 63) {
- return;
- }
- }
- if (c = 128) {
- do Output.println();
- return;
- }
- let k = 0;
- let x = cursorJ / 2;
- let y = cursorJ - (x * 2); // y = 0: lsb, y = 1: msb
- let addr = cursorI * 352 + x + 16384;
- let cm = Output.getMap(c);
- if (cursorJ = 63) {
- do Output.moveCursor(cursorI + 1, 0);
- } else {
- do Output.moveCursor(cursorI, cursorJ + 1);
- }
- while (k < 11) {
- if (y = 0){
- do Memory.poke(addr, Memory.peek(addr) & (-128) + cm[k]);
- } else {
- do Memory.poke(addr, Memory.peek(addr) & 255 + (cm[k] * 256));
- }
- let k = k + 1;
- let addr = addr + 32;
- }
- return;
- }
-
- /** displays the given string starting at the cursor location,
- * and advances the cursor appropriately. */
- function void printString(String s) {
- var int i;
- var int n;
- let i = 0;
- let n = s.length();
- while (i < n) {
- do Output.printChar(s.charAt(i));
- let i = i + 1;
- }
- return;
- }
-
- /** Displays the given integer starting at the cursor location,
- * and advances the cursor appropriately. */
- function void printInt(int i) {
- var String s;
- let s = String.new(6);
- do s.setInt(i);
- do Output.printString(s);
- return;
- }
-
- /** Advances the cursor to the beginning of the next line. */
- function void println() {
- if (cursorI < 22) {
- do Output.moveCursor(cursorI + 1, 0);
- }
- return;
- }
-
- /** Moves the cursor one column back. */
- function void backSpace() {
- if (cursorJ > 0) {
- do Output.moveCursor(cursorI, cursorJ - 1);
- } else {
- do Output.moveCursor(cursorI - 1, 63);
- }
- return;
- }
-}
diff --git a/projects/12/OutputTest/Output.vm b/projects/12/OutputTest/Output.vm
deleted file mode 100644
index dd83b63..0000000
--- a/projects/12/OutputTest/Output.vm
+++ /dev/null
@@ -1,1757 +0,0 @@
-function Output.init 0
-call Output.initMap 0
-pop temp 0
-push constant 0
-push constant 0
-call Output.moveCursor 2
-pop temp 0
-push constant 0
-return
-function Output.initMap 1
-push constant 127
-call Array.new 1
-pop static 0
-push constant 0
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 32
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 33
-push constant 12
-push constant 30
-push constant 30
-push constant 30
-push constant 12
-push constant 12
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 34
-push constant 54
-push constant 54
-push constant 20
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 35
-push constant 0
-push constant 18
-push constant 18
-push constant 63
-push constant 18
-push constant 18
-push constant 63
-push constant 18
-push constant 18
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 36
-push constant 12
-push constant 30
-push constant 51
-push constant 3
-push constant 30
-push constant 48
-push constant 51
-push constant 30
-push constant 12
-push constant 12
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 37
-push constant 0
-push constant 0
-push constant 35
-push constant 51
-push constant 24
-push constant 12
-push constant 6
-push constant 51
-push constant 49
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 38
-push constant 12
-push constant 30
-push constant 30
-push constant 12
-push constant 54
-push constant 27
-push constant 27
-push constant 27
-push constant 54
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 39
-push constant 12
-push constant 12
-push constant 6
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 40
-push constant 24
-push constant 12
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 12
-push constant 24
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 41
-push constant 6
-push constant 12
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 12
-push constant 6
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 42
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 30
-push constant 63
-push constant 30
-push constant 51
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 43
-push constant 0
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 63
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 44
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 6
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 45
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 46
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 47
-push constant 0
-push constant 0
-push constant 32
-push constant 48
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 1
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 48
-push constant 12
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 49
-push constant 12
-push constant 14
-push constant 15
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 50
-push constant 30
-push constant 51
-push constant 48
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 51
-push constant 30
-push constant 51
-push constant 48
-push constant 48
-push constant 28
-push constant 48
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 52
-push constant 16
-push constant 24
-push constant 28
-push constant 26
-push constant 25
-push constant 63
-push constant 24
-push constant 24
-push constant 60
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 53
-push constant 63
-push constant 3
-push constant 3
-push constant 31
-push constant 48
-push constant 48
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 54
-push constant 28
-push constant 6
-push constant 3
-push constant 3
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 55
-push constant 63
-push constant 49
-push constant 48
-push constant 48
-push constant 24
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 56
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 57
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 48
-push constant 24
-push constant 14
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 58
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 59
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 6
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 60
-push constant 0
-push constant 0
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 6
-push constant 12
-push constant 24
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 61
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 62
-push constant 0
-push constant 0
-push constant 3
-push constant 6
-push constant 12
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 64
-push constant 30
-push constant 51
-push constant 51
-push constant 59
-push constant 59
-push constant 59
-push constant 27
-push constant 3
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 63
-push constant 30
-push constant 51
-push constant 51
-push constant 24
-push constant 12
-push constant 12
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 65
-push constant 12
-push constant 12
-push constant 30
-push constant 30
-push constant 51
-push constant 51
-push constant 63
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 66
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 67
-push constant 28
-push constant 54
-push constant 35
-push constant 3
-push constant 3
-push constant 3
-push constant 35
-push constant 54
-push constant 28
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 68
-push constant 15
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 27
-push constant 15
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 69
-push constant 63
-push constant 51
-push constant 35
-push constant 11
-push constant 15
-push constant 11
-push constant 35
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 70
-push constant 63
-push constant 51
-push constant 35
-push constant 11
-push constant 15
-push constant 11
-push constant 3
-push constant 3
-push constant 3
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 71
-push constant 28
-push constant 54
-push constant 35
-push constant 3
-push constant 59
-push constant 51
-push constant 51
-push constant 54
-push constant 44
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 72
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 73
-push constant 30
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 74
-push constant 60
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 27
-push constant 27
-push constant 14
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 75
-push constant 51
-push constant 51
-push constant 51
-push constant 27
-push constant 15
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 76
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 35
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 77
-push constant 33
-push constant 51
-push constant 63
-push constant 63
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 78
-push constant 51
-push constant 51
-push constant 55
-push constant 55
-push constant 63
-push constant 59
-push constant 59
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 79
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 80
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 81
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 59
-push constant 30
-push constant 48
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 82
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 83
-push constant 30
-push constant 51
-push constant 51
-push constant 6
-push constant 28
-push constant 48
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 84
-push constant 63
-push constant 63
-push constant 45
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 85
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 86
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 30
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 87
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 63
-push constant 63
-push constant 18
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 88
-push constant 51
-push constant 51
-push constant 30
-push constant 30
-push constant 12
-push constant 30
-push constant 30
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 89
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 90
-push constant 63
-push constant 51
-push constant 49
-push constant 24
-push constant 12
-push constant 6
-push constant 35
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 91
-push constant 30
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 92
-push constant 0
-push constant 0
-push constant 1
-push constant 3
-push constant 6
-push constant 12
-push constant 24
-push constant 48
-push constant 32
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 93
-push constant 30
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 94
-push constant 8
-push constant 28
-push constant 54
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 95
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 96
-push constant 6
-push constant 12
-push constant 24
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 97
-push constant 0
-push constant 0
-push constant 0
-push constant 14
-push constant 24
-push constant 30
-push constant 27
-push constant 27
-push constant 54
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 98
-push constant 3
-push constant 3
-push constant 3
-push constant 15
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 99
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 3
-push constant 3
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 100
-push constant 48
-push constant 48
-push constant 48
-push constant 60
-push constant 54
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 101
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 63
-push constant 3
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 102
-push constant 28
-push constant 54
-push constant 38
-push constant 6
-push constant 15
-push constant 6
-push constant 6
-push constant 6
-push constant 15
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 103
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 104
-push constant 3
-push constant 3
-push constant 3
-push constant 27
-push constant 55
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 105
-push constant 12
-push constant 12
-push constant 0
-push constant 14
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 106
-push constant 48
-push constant 48
-push constant 0
-push constant 56
-push constant 48
-push constant 48
-push constant 48
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 107
-push constant 3
-push constant 3
-push constant 3
-push constant 51
-push constant 27
-push constant 15
-push constant 15
-push constant 27
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 108
-push constant 14
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 109
-push constant 0
-push constant 0
-push constant 0
-push constant 29
-push constant 63
-push constant 43
-push constant 43
-push constant 43
-push constant 43
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 110
-push constant 0
-push constant 0
-push constant 0
-push constant 29
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 111
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 112
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 3
-push constant 3
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 113
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 48
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 114
-push constant 0
-push constant 0
-push constant 0
-push constant 29
-push constant 55
-push constant 51
-push constant 3
-push constant 3
-push constant 7
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 115
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 6
-push constant 24
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 116
-push constant 4
-push constant 6
-push constant 6
-push constant 15
-push constant 6
-push constant 6
-push constant 6
-push constant 54
-push constant 28
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 117
-push constant 0
-push constant 0
-push constant 0
-push constant 27
-push constant 27
-push constant 27
-push constant 27
-push constant 27
-push constant 54
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 118
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 119
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 63
-push constant 18
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 120
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 30
-push constant 12
-push constant 12
-push constant 30
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 121
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 24
-push constant 15
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 122
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 27
-push constant 12
-push constant 6
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 123
-push constant 56
-push constant 12
-push constant 12
-push constant 12
-push constant 7
-push constant 12
-push constant 12
-push constant 12
-push constant 56
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 124
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 125
-push constant 7
-push constant 12
-push constant 12
-push constant 12
-push constant 56
-push constant 12
-push constant 12
-push constant 12
-push constant 7
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 126
-push constant 38
-push constant 45
-push constant 25
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 0
-return
-function Output.create 1
-push constant 11
-call Array.new 1
-pop local 0
-push argument 0
-push static 0
-add
-push local 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push local 0
-add
-push argument 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push local 0
-add
-push argument 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push local 0
-add
-push argument 3
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push local 0
-add
-push argument 4
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 4
-push local 0
-add
-push argument 5
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 5
-push local 0
-add
-push argument 6
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 6
-push local 0
-add
-push argument 7
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 7
-push local 0
-add
-push argument 8
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8
-push local 0
-add
-push argument 9
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 9
-push local 0
-add
-push argument 10
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 10
-push local 0
-add
-push argument 11
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Output.getMap 0
-push argument 0
-push constant 32
-lt
-push argument 0
-push constant 126
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-pop argument 0
-label IF_FALSE0
-push argument 0
-push static 0
-add
-pop pointer 1
-push that 0
-return
-function Output.moveCursor 2
-push static 2
-push constant 8
-call Math.multiply 2
-pop local 0
-push static 1
-push constant 11
-call Math.multiply 2
-pop local 1
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push local 0
-push local 1
-push local 0
-push constant 7
-add
-push local 1
-push constant 10
-add
-call Screen.drawRectangle 4
-pop temp 0
-push argument 1
-push constant 8
-call Math.multiply 2
-pop local 0
-push argument 0
-push constant 11
-call Math.multiply 2
-pop local 1
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push local 0
-push local 1
-push local 0
-push constant 7
-add
-push local 1
-push constant 10
-add
-call Screen.drawRectangle 4
-pop temp 0
-push argument 0
-pop static 1
-push argument 1
-pop static 2
-push constant 0
-return
-function Output.printChar 5
-push argument 0
-push constant 129
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-call Output.backSpace 0
-pop temp 0
-push constant 0
-return
-label IF_FALSE0
-push static 1
-push constant 22
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push argument 0
-push constant 128
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 0
-return
-label IF_FALSE2
-push static 2
-push constant 63
-eq
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push constant 0
-return
-label IF_FALSE3
-label IF_FALSE1
-push argument 0
-push constant 128
-eq
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-call Output.println 0
-pop temp 0
-push constant 0
-return
-label IF_FALSE4
-push constant 0
-pop local 0
-push static 2
-push constant 2
-call Math.divide 2
-pop local 1
-push static 2
-push local 1
-push constant 2
-call Math.multiply 2
-sub
-pop local 2
-push static 1
-push constant 352
-call Math.multiply 2
-push local 1
-add
-push constant 16384
-add
-pop local 3
-push argument 0
-call Output.getMap 1
-pop local 4
-push static 2
-push constant 63
-eq
-if-goto IF_TRUE5
-goto IF_FALSE5
-label IF_TRUE5
-push static 1
-push constant 1
-add
-push constant 0
-call Output.moveCursor 2
-pop temp 0
-goto IF_END5
-label IF_FALSE5
-push static 1
-push static 2
-push constant 1
-add
-call Output.moveCursor 2
-pop temp 0
-label IF_END5
-label WHILE_EXP0
-push local 0
-push constant 11
-lt
-not
-if-goto WHILE_END0
-push local 2
-push constant 0
-eq
-if-goto IF_TRUE6
-goto IF_FALSE6
-label IF_TRUE6
-push local 3
-push local 3
-call Memory.peek 1
-push constant 128
-neg
-and
-push local 0
-push local 4
-add
-pop pointer 1
-push that 0
-add
-call Memory.poke 2
-pop temp 0
-goto IF_END6
-label IF_FALSE6
-push local 3
-push local 3
-call Memory.peek 1
-push constant 255
-and
-push local 0
-push local 4
-add
-pop pointer 1
-push that 0
-push constant 256
-call Math.multiply 2
-add
-call Memory.poke 2
-pop temp 0
-label IF_END6
-push local 0
-push constant 1
-add
-pop local 0
-push local 3
-push constant 32
-add
-pop local 3
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Output.printString 2
-push constant 0
-pop local 0
-push argument 0
-call String.length 1
-pop local 1
-label WHILE_EXP0
-push local 0
-push local 1
-lt
-not
-if-goto WHILE_END0
-push argument 0
-push local 0
-call String.charAt 2
-call Output.printChar 1
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Output.printInt 1
-push constant 6
-call String.new 1
-pop local 0
-push local 0
-push argument 0
-call String.setInt 2
-pop temp 0
-push local 0
-call Output.printString 1
-pop temp 0
-push constant 0
-return
-function Output.println 0
-push static 1
-push constant 22
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push static 1
-push constant 1
-add
-push constant 0
-call Output.moveCursor 2
-pop temp 0
-label IF_FALSE0
-push constant 0
-return
-function Output.backSpace 0
-push static 2
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push static 1
-push static 2
-push constant 1
-sub
-call Output.moveCursor 2
-pop temp 0
-goto IF_END0
-label IF_FALSE0
-push static 1
-push constant 1
-sub
-push constant 63
-call Output.moveCursor 2
-pop temp 0
-label IF_END0
-push constant 0
-return
diff --git a/projects/12/OutputTest/OutputTestOutput.gif b/projects/12/OutputTest/OutputTestOutput.gif
deleted file mode 100644
index b8ec2c0..0000000
--- a/projects/12/OutputTest/OutputTestOutput.gif
+++ /dev/null
Binary files differ
diff --git a/projects/12/ScreenTest/Main.jack b/projects/12/ScreenTest/Main.jack
deleted file mode 100644
index 00f36bd..0000000
--- a/projects/12/ScreenTest/Main.jack
+++ /dev/null
@@ -1,36 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/ScreenTest/Main.jack
-
-/** Test program for the OS Screen class. */
-class Main {
-
- /** Draws a sample pictue on the screen using lines and circles. */
- function void main() {
-
- do Screen.drawLine(0,220,511,220); // base line
- do Screen.drawRectangle(280,90,410,220); // house
-
- do Screen.setColor(false);
- do Screen.drawRectangle(350,120,390,219); // door
- do Screen.drawRectangle(292,120,332,150); // window
-
- do Screen.setColor(true);
- do Screen.drawCircle(360,170,3); // door handle
- do Screen.drawLine(280,90,345,35); // roof
- do Screen.drawLine(345,35,410,90); // roof
-
- do Screen.drawCircle(140,60,30); // sun
- do Screen.drawLine(140,26, 140, 6);
- do Screen.drawLine(163,35,178,20);
- do Screen.drawLine(174,60,194,60);
- do Screen.drawLine(163,85,178,100);
- do Screen.drawLine(140,94,140,114);
- do Screen.drawLine(117,85,102,100);
- do Screen.drawLine(106,60,86,60);
- do Screen.drawLine(117,35,102,20);
-
- return;
- }
-}
diff --git a/projects/12/ScreenTest/Main.vm b/projects/12/ScreenTest/Main.vm
deleted file mode 100644
index 69e860f..0000000
--- a/projects/12/ScreenTest/Main.vm
+++ /dev/null
@@ -1,104 +0,0 @@
-function Main.main 0
-push constant 0
-push constant 220
-push constant 511
-push constant 220
-call Screen.drawLine 4
-pop temp 0
-push constant 280
-push constant 90
-push constant 410
-push constant 220
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-call Screen.setColor 1
-pop temp 0
-push constant 350
-push constant 120
-push constant 390
-push constant 219
-call Screen.drawRectangle 4
-pop temp 0
-push constant 292
-push constant 120
-push constant 332
-push constant 150
-call Screen.drawRectangle 4
-pop temp 0
-push constant 0
-not
-call Screen.setColor 1
-pop temp 0
-push constant 360
-push constant 170
-push constant 3
-call Screen.drawCircle 3
-pop temp 0
-push constant 280
-push constant 90
-push constant 345
-push constant 35
-call Screen.drawLine 4
-pop temp 0
-push constant 345
-push constant 35
-push constant 410
-push constant 90
-call Screen.drawLine 4
-pop temp 0
-push constant 140
-push constant 60
-push constant 30
-call Screen.drawCircle 3
-pop temp 0
-push constant 140
-push constant 26
-push constant 140
-push constant 6
-call Screen.drawLine 4
-pop temp 0
-push constant 163
-push constant 35
-push constant 178
-push constant 20
-call Screen.drawLine 4
-pop temp 0
-push constant 174
-push constant 60
-push constant 194
-push constant 60
-call Screen.drawLine 4
-pop temp 0
-push constant 163
-push constant 85
-push constant 178
-push constant 100
-call Screen.drawLine 4
-pop temp 0
-push constant 140
-push constant 94
-push constant 140
-push constant 114
-call Screen.drawLine 4
-pop temp 0
-push constant 117
-push constant 85
-push constant 102
-push constant 100
-call Screen.drawLine 4
-pop temp 0
-push constant 106
-push constant 60
-push constant 86
-push constant 60
-call Screen.drawLine 4
-pop temp 0
-push constant 117
-push constant 35
-push constant 102
-push constant 20
-call Screen.drawLine 4
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/ScreenTest/Math.jack b/projects/12/ScreenTest/Math.jack
deleted file mode 100644
index 01bce8f..0000000
--- a/projects/12/ScreenTest/Math.jack
+++ /dev/null
@@ -1,158 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Math.jack
-
-/**
- * A library of commonly used mathematical functions.
- * Note: Jack compilers implement multiplication and division using OS method calls.
- */
-class Math {
- static Array twoToThe;
-
- /** Initializes the library. */
- function void init() {
- var int i, x;
- let x = 1;
- let i = 0;
- let twoToThe = Array.new(16);
- while (i < 16){
- let twoToThe[i] = x;
- let x = x + x;
- let i = i + 1;
- }
- return;
- }
-
- function boolean bit(int x, int i) {
- return ~(x & twoToThe[i] = 0);
- }
-
- function int sign(int x) {
- if (x > 0) {
- return 1;
- } else {
- if (x < 0) {
- return -1;
- } else {
- return 0;
- }
- }
- }
-
- /** Returns the absolute value of x. */
- function int abs(int x) {
- if (x > 0){
- return x;
- } else {
- return -x;
- }
- }
-
- /** Returns the product of x and y.
- * When a Jack compiler detects the multiplication operator '*' in the
- * program's code, it handles it by invoking this method. In other words,
- * the Jack expressions x*y and multiply(x,y) return the same value.
- */
- function int multiply(int x, int y) {
- var int res, shiftedX, i;
- let shiftedX = x;
- let i = 0;
- let res = 0;
- //while ((~(twoToThe[i] > y)) & (i < 16)) {
- while (i < 16) {
- if (Math.bit(y, i)){
- let res = res + shiftedX;
- }
- let shiftedX = shiftedX + shiftedX;
- let i = i + 1;
- }
- return res;
- }
-
- /** Returns the integer part of x/y.
- * When a Jack compiler detects the multiplication operator '/' in the
- * program's code, it handles it by invoking this method. In other words,
- * the Jack expressions x/y and divide(x,y) return the same value.
- */
- function int divide(int x, int y) {
- var int ax, ay;
- if (x > 0) {
- if (y > 0) {
- return Math.divide1(x, y);
- } else {
- return -Math.divide1(x, -y);
- }
- } else {
- if (y > 0) {
- return -Math.divide1(-x, y);
- } else {
- return Math.divide1(-x, -y);
- }
- }
- }
-
- function int divide1(int x, int y) {
- var int q;
- if (y = 0) {
- do Output.printString("Error: division by zero.");
- do Sys.error(0);
- }
- if ((y > x) | (y < 0)) {
- return 0;
- }
- let q = Math.divide1(x, y * 2);
- if (x - (2 * q * y) < y) {
- return 2 * q;
- } else {
- return 2 * q + 1;
- }
- }
-
- function int length(int x){
- var int n;
- let n = 14;
- while (twoToThe[n] > x){
- let n = n - 1;
- }
- return n;
- }
-
- /** Returns the integer part of the square root of x. */
- function int sqrt(int x) {
- var int y, k, z, w;
- if (x < 0) {
- do Output.printString("Error: square rooting a negative number.");
- do Sys.error(0);
- }
- let k = Math.length(x) / 2;
- let y = 0;
- while (~(k < 0)) {
- let z = y + twoToThe[k];
- let w = z * z;
- if ((~(w > x)) & (w > 0)) {
- let y = z;
- }
- let k = k - 1;
- }
- return y;
- }
-
- /** Returns the greater number. */
- function int max(int a, int b) {
- if (a > b) {
- return a;
- } else {
- return b;
- }
- }
-
- /** Returns the smaller number. */
- function int min(int a, int b) {
- if (a < b) {
- return a;
- } else {
- return b;
- }
- }
-}
diff --git a/projects/12/ScreenTest/Math.vm b/projects/12/ScreenTest/Math.vm
deleted file mode 100644
index 513fc1a..0000000
--- a/projects/12/ScreenTest/Math.vm
+++ /dev/null
@@ -1,472 +0,0 @@
-function Math.init 2
-push constant 1
-pop local 1
-push constant 0
-pop local 0
-push constant 16
-call Array.new 1
-pop static 0
-label WHILE_EXP0
-push local 0
-push constant 16
-lt
-not
-if-goto WHILE_END0
-push local 0
-push static 0
-add
-push local 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push local 1
-add
-pop local 1
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Math.bit 0
-push argument 0
-push argument 1
-push static 0
-add
-pop pointer 1
-push that 0
-and
-push constant 0
-eq
-not
-return
-function Math.sign 0
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 1
-return
-goto IF_END0
-label IF_FALSE0
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 1
-neg
-return
-goto IF_END1
-label IF_FALSE1
-push constant 0
-return
-label IF_END1
-label IF_END0
-function Math.abs 0
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-return
-goto IF_END0
-label IF_FALSE0
-push argument 0
-neg
-return
-label IF_END0
-function Math.multiply 3
-push argument 0
-pop local 1
-push constant 0
-pop local 2
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 2
-push constant 16
-lt
-not
-if-goto WHILE_END0
-push argument 1
-push local 2
-call Math.bit 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-push local 1
-add
-pop local 0
-label IF_FALSE0
-push local 1
-push local 1
-add
-pop local 1
-push local 2
-push constant 1
-add
-pop local 2
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-return
-function Math.divide 2
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 1
-push constant 0
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push argument 0
-push argument 1
-call Math.divide1 2
-return
-goto IF_END1
-label IF_FALSE1
-push argument 0
-push argument 1
-neg
-call Math.divide1 2
-neg
-return
-label IF_END1
-goto IF_END0
-label IF_FALSE0
-push argument 1
-push constant 0
-gt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push argument 0
-neg
-push argument 1
-call Math.divide1 2
-neg
-return
-goto IF_END2
-label IF_FALSE2
-push argument 0
-neg
-push argument 1
-neg
-call Math.divide1 2
-return
-label IF_END2
-label IF_END0
-function Math.divide1 1
-push argument 1
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 24
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 122
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push argument 0
-gt
-push argument 1
-push constant 0
-lt
-or
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-return
-label IF_FALSE1
-push argument 0
-push argument 1
-push constant 2
-call Math.multiply 2
-call Math.divide1 2
-pop local 0
-push argument 0
-push constant 2
-push local 0
-call Math.multiply 2
-push argument 1
-call Math.multiply 2
-sub
-push argument 1
-lt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 2
-push local 0
-call Math.multiply 2
-return
-goto IF_END2
-label IF_FALSE2
-push constant 2
-push local 0
-call Math.multiply 2
-push constant 1
-add
-return
-label IF_END2
-function Math.length 1
-push constant 14
-pop local 0
-label WHILE_EXP0
-push local 0
-push static 0
-add
-pop pointer 1
-push that 0
-push argument 0
-gt
-not
-if-goto WHILE_END0
-push local 0
-push constant 1
-sub
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-return
-function Math.sqrt 4
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 40
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 113
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-call Math.length 1
-push constant 2
-call Math.divide 2
-pop local 1
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 1
-push constant 0
-lt
-not
-not
-if-goto WHILE_END0
-push local 0
-push local 1
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop local 2
-push local 2
-push local 2
-call Math.multiply 2
-pop local 3
-push local 3
-push argument 0
-gt
-not
-push local 3
-push constant 0
-gt
-and
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 2
-pop local 0
-label IF_FALSE1
-push local 1
-push constant 1
-sub
-pop local 1
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-return
-function Math.max 0
-push argument 0
-push argument 1
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-return
-goto IF_END0
-label IF_FALSE0
-push argument 1
-return
-label IF_END0
-function Math.min 0
-push argument 0
-push argument 1
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-return
-goto IF_END0
-label IF_FALSE0
-push argument 1
-return
-label IF_END0
diff --git a/projects/12/ScreenTest/Screen.jack b/projects/12/ScreenTest/Screen.jack
deleted file mode 100644
index a370ab9..0000000
--- a/projects/12/ScreenTest/Screen.jack
+++ /dev/null
@@ -1,138 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Screen.jack
-
-/**
- * A library of functions for displaying graphics on the screen.
- * The Hack physical screen consists of 512 rows (indexed 0..511, top to bottom)
- * of 256 pixels each (indexed 0..255, left to right). The top left pixel on
- * the screen is indexed (0,0).
- */
-class Screen {
- static Array twoToThe;
- static Array screen;
- static boolean color;
-
- /** Initializes the Screen. */
- function void init() {
- var int i, x;
- let x = 1;
- let i = 0;
- let twoToThe = Array.new(16);
- while (i < 16){
- let twoToThe[i] = x;
- let x = x + x;
- let i = i + 1;
- }
- let screen = 16384;
- let color = true;
- return;
- }
-
- /** Erases the entire screen. */
- function void clearScreen() {
- var boolean c;
- let c = color;
- let color = false;
- do Screen.drawRectangle(0, 0, 511, 255);
- let color = c;
- return;
- }
-
- /** Sets the current color, to be used for all subsequent drawXXX commands.
- * Black is represented by true, white by false. */
- function void setColor(boolean b) {
- let color = b;
- return;
- }
-
- /** Draws the (x,y) pixel, using the current color. */
- function void drawPixel(int x, int y) {
- var int addr, t;
- if ((x < 0) | (y < 0) | (x > 511) | (y > 255)) {
- //String.println("drawPixel: coordinates out of range!");
- //Sys.error(2);
- return;
- }
- let t = x / 16;
- let addr = 32 * y + t;
- if (color) {
- let screen[addr] = screen[addr] | twoToThe[x - (t * 16)];
- } else {
- let screen[addr] = screen[addr] & (- (twoToThe[x - (t * 16)] + 1));
- }
- return;
- }
-
- /** Draws a line from pixel (x1,y1) to pixel (x2,y2), using the current color. */
- function void drawLine(int x1, int y1, int x2, int y2) {
- var int dx, dy, x, y, a, b, diff;
- let x = x1;
- let y = y1;
- do Screen.drawPixel(x, y);
- if (x1 = x2) {
- if (y1 = y2) {
- return;
- } else {
- let diff = 1;
- }
- } else {
- if (y1 = y2) {
- let diff = -1;
- } else {
- let diff = 0;
- }
- }
- let dx = x2 - x1;
- let dy = y2 - y1;
- let a = Math.sign(dx);
- let b = Math.sign(dy);
- let dx = Math.abs(dx);
- let dy = Math.abs(dy);
- while (~((x = x2) & (y = y2))) {
- if (diff < 0){
- let x = x + a;
- let diff = diff + dy;
- } else {
- let y = y + b;
- let diff = diff - dx;
- }
- do Screen.drawPixel(x, y);
- }
- return;
- }
-
- /** Draws a filled rectangle whose top left corner is (x1, y1)
- * and bottom right corner is (x2,y2), using the current color. */
- function void drawRectangle(int x1, int y1, int x2, int y2) {
- var int x;
- if ((x1 > x2) | (y1 > y2)) {
- return;
- }
- let x = x1;
- while (~(x > x2)) {
- do Screen.drawLine(x, y1, x, y2);
- let x = x + 1;
- }
- return;
- }
-
- /** Draws a filled circle of radius r<=181 around (x,y), using the current color. */
- function void drawCircle(int x, int y, int r) {
- var int dx, dy, r2;
- if (r > 181) {
- do String.println("drawCircle: radius too big!");
- do Sys.error(2);
- return;
- }
- let dy = -r;
- let r2 = r * r;
- while (~(dy > r)) {
- let dx = Math.sqrt(r2 - (dy * dy));
- do Screen.drawLine(x - dx, y + dy, x + dx, y + dy);
- let dy = dy + 1;
- }
- return;
- }
-}
diff --git a/projects/12/ScreenTest/Screen.vm b/projects/12/ScreenTest/Screen.vm
deleted file mode 100644
index 8468225..0000000
--- a/projects/12/ScreenTest/Screen.vm
+++ /dev/null
@@ -1,407 +0,0 @@
-function Screen.init 2
-push constant 1
-pop local 1
-push constant 0
-pop local 0
-push constant 16
-call Array.new 1
-pop static 0
-label WHILE_EXP0
-push local 0
-push constant 16
-lt
-not
-if-goto WHILE_END0
-push local 0
-push static 0
-add
-push local 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 1
-push local 1
-add
-pop local 1
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 16384
-pop static 1
-push constant 0
-not
-pop static 2
-push constant 0
-return
-function Screen.clearScreen 1
-push static 2
-pop local 0
-push constant 0
-pop static 2
-push constant 0
-push constant 0
-push constant 511
-push constant 255
-call Screen.drawRectangle 4
-pop temp 0
-push local 0
-pop static 2
-push constant 0
-return
-function Screen.setColor 0
-push argument 0
-pop static 2
-push constant 0
-return
-function Screen.drawPixel 2
-push argument 0
-push constant 0
-lt
-push argument 1
-push constant 0
-lt
-or
-push argument 0
-push constant 511
-gt
-or
-push argument 1
-push constant 255
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-return
-label IF_FALSE0
-push argument 0
-push constant 16
-call Math.divide 2
-pop local 1
-push constant 32
-push argument 1
-call Math.multiply 2
-push local 1
-add
-pop local 0
-push static 2
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 0
-push static 1
-add
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-push argument 0
-push local 1
-push constant 16
-call Math.multiply 2
-sub
-push static 0
-add
-pop pointer 1
-push that 0
-or
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END1
-label IF_FALSE1
-push local 0
-push static 1
-add
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-push argument 0
-push local 1
-push constant 16
-call Math.multiply 2
-sub
-push static 0
-add
-pop pointer 1
-push that 0
-push constant 1
-add
-neg
-and
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END1
-push constant 0
-return
-function Screen.drawLine 7
-push argument 0
-pop local 2
-push argument 1
-pop local 3
-push local 2
-push local 3
-call Screen.drawPixel 2
-pop temp 0
-push argument 0
-push argument 2
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 1
-push argument 3
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-return
-goto IF_END1
-label IF_FALSE1
-push constant 1
-pop local 6
-label IF_END1
-goto IF_END0
-label IF_FALSE0
-push argument 1
-push argument 3
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 1
-neg
-pop local 6
-goto IF_END2
-label IF_FALSE2
-push constant 0
-pop local 6
-label IF_END2
-label IF_END0
-push argument 2
-push argument 0
-sub
-pop local 0
-push argument 3
-push argument 1
-sub
-pop local 1
-push local 0
-call Math.sign 1
-pop local 4
-push local 1
-call Math.sign 1
-pop local 5
-push local 0
-call Math.abs 1
-pop local 0
-push local 1
-call Math.abs 1
-pop local 1
-label WHILE_EXP0
-push local 2
-push argument 2
-eq
-push local 3
-push argument 3
-eq
-and
-not
-not
-if-goto WHILE_END0
-push local 6
-push constant 0
-lt
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push local 2
-push local 4
-add
-pop local 2
-push local 6
-push local 1
-add
-pop local 6
-goto IF_END3
-label IF_FALSE3
-push local 3
-push local 5
-add
-pop local 3
-push local 6
-push local 0
-sub
-pop local 6
-label IF_END3
-push local 2
-push local 3
-call Screen.drawPixel 2
-pop temp 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Screen.drawRectangle 1
-push argument 0
-push argument 2
-gt
-push argument 1
-push argument 3
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-return
-label IF_FALSE0
-push argument 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push argument 2
-gt
-not
-not
-if-goto WHILE_END0
-push local 0
-push argument 1
-push local 0
-push argument 3
-call Screen.drawLine 4
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Screen.drawCircle 3
-push argument 2
-push constant 181
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 27
-call String.new 1
-push constant 100
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call String.println 1
-pop temp 0
-push constant 2
-call Sys.error 1
-pop temp 0
-push constant 0
-return
-label IF_FALSE0
-push argument 2
-neg
-pop local 1
-push argument 2
-push argument 2
-call Math.multiply 2
-pop local 2
-label WHILE_EXP0
-push local 1
-push argument 2
-gt
-not
-not
-if-goto WHILE_END0
-push local 2
-push local 1
-push local 1
-call Math.multiply 2
-sub
-call Math.sqrt 1
-pop local 0
-push argument 0
-push local 0
-sub
-push argument 1
-push local 1
-add
-push argument 0
-push local 0
-add
-push argument 1
-push local 1
-add
-call Screen.drawLine 4
-pop temp 0
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
diff --git a/projects/12/ScreenTest/ScreenTestOutput.gif b/projects/12/ScreenTest/ScreenTestOutput.gif
deleted file mode 100644
index f1742cc..0000000
--- a/projects/12/ScreenTest/ScreenTestOutput.gif
+++ /dev/null
Binary files differ
diff --git a/projects/12/StringTest/Main.jack b/projects/12/StringTest/Main.jack
deleted file mode 100644
index 2848548..0000000
--- a/projects/12/StringTest/Main.jack
+++ /dev/null
@@ -1,83 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/StringTest/Main.jack
-
-/** Test program for the OS String class. */
-class Main {
-
- /** Performs various string manipulations and displays their results. */
- function void main() {
- var String s;
- var String i;
-
- let s = String.new(0); // a zero-capacity string should be supported
- do s.dispose();
-
- let s = String.new(6); // capacity 6, make sure that length 5 is displayed
- let s = s.appendChar(97);
- let s = s.appendChar(98);
- let s = s.appendChar(99);
- let s = s.appendChar(100);
- let s = s.appendChar(101);
- do Output.printString("new,appendChar: ");
- do Output.printString(s); // new, appendChar: abcde
- do Output.println();
-
- let i = String.new(6);
- do i.setInt(12345);
- do Output.printString("setInt: ");
- do Output.printString(i); // setInt: 12345
- do Output.println();
-
- do i.setInt(-32767);
- do Output.printString("setInt: ");
- do Output.printString(i); // setInt: -32767
- do Output.println();
-
- do Output.printString("length: ");
- do Output.printInt(s.length()); // length: 5
- do Output.println();
-
- do Output.printString("charAt[2]: ");
- do Output.printInt(s.charAt(2)); // charAt[2]: 99
- do Output.println();
-
- do s.setCharAt(2, 45);
- do Output.printString("setCharAt(2,'-'): ");
- do Output.printString(s); // setCharAt(2,'-'): ab-de
- do Output.println();
-
- do s.eraseLastChar();
- do Output.printString("eraseLastChar: ");
- do Output.printString(s); // eraseLastChar: ab-d
- do Output.println();
-
- let s = "456";
- do Output.printString("intValue: ");
- do Output.printInt(s.intValue()); // intValue: 456
- do Output.println();
-
- let s = "-32123";
- do Output.printString("intValue: ");
- do Output.printInt(s.intValue()); // intValue: -32123
- do Output.println();
-
- do Output.printString("backSpace: ");
- do Output.printInt(String.backSpace()); // backSpace: 129
- do Output.println();
-
- do Output.printString("doubleQuote: ");
- do Output.printInt(String.doubleQuote());// doubleQuote: 34
- do Output.println();
-
- do Output.printString("newLine: ");
- do Output.printInt(String.newLine()); // newLine: 128
- do Output.println();
-
- do i.dispose();
- do s.dispose();
-
- return;
- }
-}
diff --git a/projects/12/StringTest/Main.vm b/projects/12/StringTest/Main.vm
deleted file mode 100644
index 2c9fb9f..0000000
--- a/projects/12/StringTest/Main.vm
+++ /dev/null
@@ -1,469 +0,0 @@
-function Main.main 2
-push constant 0
-call String.new 1
-pop local 0
-push local 0
-call String.dispose 1
-pop temp 0
-push constant 6
-call String.new 1
-pop local 0
-push local 0
-push constant 97
-call String.appendChar 2
-pop local 0
-push local 0
-push constant 98
-call String.appendChar 2
-pop local 0
-push local 0
-push constant 99
-call String.appendChar 2
-pop local 0
-push local 0
-push constant 100
-call String.appendChar 2
-pop local 0
-push local 0
-push constant 101
-call String.appendChar 2
-pop local 0
-push constant 16
-call String.new 1
-push constant 110
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 44
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 6
-call String.new 1
-pop local 1
-push local 1
-push constant 12345
-call String.setInt 2
-pop temp 0
-push constant 8
-call String.new 1
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 73
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 1
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push local 1
-push constant 32767
-neg
-call String.setInt 2
-pop temp 0
-push constant 8
-call String.new 1
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 73
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 1
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 8
-call String.new 1
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call String.length 1
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 11
-call String.new 1
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 65
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 91
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 93
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-push constant 2
-call String.charAt 2
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push local 0
-push constant 2
-push constant 45
-call String.setCharAt 3
-pop temp 0
-push constant 18
-call String.new 1
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 65
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 40
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 44
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 45
-call String.appendChar 2
-push constant 39
-call String.appendChar 2
-push constant 41
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push local 0
-call String.eraseLastChar 1
-pop temp 0
-push constant 15
-call String.new 1
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 76
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 3
-call String.new 1
-push constant 52
-call String.appendChar 2
-push constant 53
-call String.appendChar 2
-push constant 54
-call String.appendChar 2
-pop local 0
-push constant 10
-call String.new 1
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call String.intValue 1
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 6
-call String.new 1
-push constant 45
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 49
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 51
-call String.appendChar 2
-pop local 0
-push constant 10
-call String.new 1
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push local 0
-call String.intValue 1
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 11
-call String.new 1
-push constant 98
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 83
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call String.backSpace 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 13
-call String.new 1
-push constant 100
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 81
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call String.doubleQuote 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 9
-call String.new 1
-push constant 110
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 76
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call String.newLine 0
-call Output.printInt 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push local 1
-call String.dispose 1
-pop temp 0
-push local 0
-call String.dispose 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/StringTest/String.jack b/projects/12/StringTest/String.jack
deleted file mode 100644
index 3ef40b2..0000000
--- a/projects/12/StringTest/String.jack
+++ /dev/null
@@ -1,176 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/String.jack
-
-/**
- * Represents character strings. In addition for constructing and disposing
- * strings, the class features methods for getting and setting individual
- * characters of the string, for erasing the string's last character,
- * for appending a character to the string's end, and more typical
- * string-oriented operations.
- */
-class String {
- field int maxLen;
- field int len;
- field Array s;
-
- /** constructs a new empty string with a maximum length of maxLength
- * and initial length of 0. */
- constructor String new(int maxLength) {
- if (maxLength > 0) {
- let s = Array.new(maxLength);
- }
- let maxLen = maxLength;
- let len = 0;
- return this;
- }
-
- /** Disposes this string. */
- method void dispose() {
- if (maxLen > 0) {
- do s.dispose();
- }
- do Memory.deAlloc(this);
- return;
- }
-
- /** Returns the current length of this string. */
- method int length() {
- return len;
- }
-
- /** Returns the character at the j-th location of this string. */
- method char charAt(int j) {
- if ((j < 0) | (j + 1 > len)){
- do Output.printString("String.charAt: index out of range!");
- do Sys.error(5);
- }
- return s[j];
- }
-
- /** Sets the character at the j-th location of this string to c. */
- method void setCharAt(int j, char c) {
- if ((j < 0) | (j + 1 > len)){
- do Output.printString("String.setCharAt: index out of range!");
- do Sys.error(5);
- }
- let s[j] = c;
- return;
- }
-
- /** Appends c to this string's end and returns this string. */
- method String appendChar(char c) {
- if (len = maxLen) {
- do Output.printString("String.appendChar: reached max length!");
- do Sys.error(5);
- }
- let s[len] = c;
- let len = len + 1;
- return this;
- }
-
- /** Erases the last character from this string. */
- method void eraseLastChar() {
- if (len = 0){
- do Output.printString("String.eraseLastChar: string is already empty!");
- do Sys.error(5);
- }
- let len = len - 1;
- return;
- }
-
- /** Returns the integer value of this string,
- * until a non-digit character is detected. */
- method int intValue() {
- var int n, i;
- var char c;
- var boolean neg, done;
- let n = 0;
- if (s[0] = 45) {
- let i = 1;
- let neg = true;
- } else {
- let i = 0;
- let neg = false;
- }
- let c = s[i];
- if ((c < 48) | (c > 57)) {
- do Sys.error(3);
- do Output.printString("String.intValue: the input data is not number!");
- }
- let done = false;
- while ((~done) & (i < len)) {
- let c = s[i];
- if ((c > 47) & (c < 58)) {
- let n = n * 10 + (c - 48);
- } else {
- let done = true;
- }
- let i = i + 1;
- }
- if (neg) {
- return -n;
- } else {
- return n;
- }
-
- }
-
- /** Sets this string to hold a representation of the given value. */
- method void setInt(int val) { //change Output.printInt after this
- var int x, i, y;
- var boolean neg;
- if (val < 0) {
- let neg = true;
- let len = 2;
- } else {
- let neg = false;
- let len = 1;
- }
- let x = Math.abs(val);
- if (x > 9999) {
- let len = len + 4;
- } else { if (x > 999) {
- let len = len + 3;
- } else { if (x > 99) {
- let len = len + 2;
- } else { if (x > 9) {
- let len = len + 1;
- }}}}
- if (len > maxLen) {
- do Output.printString("String.setInt: val is too big for the string!");
- do Sys.error(5);
- }
- if (x = 0) {
- do setCharAt(0, 48);
- return;
- }
- if (neg) {
- do setCharAt(0, 45);
- }
- let i = len - 1;
- while (x > 0) {
- let y = x / 10;
- do setCharAt(i, x - (y * 10) + 48);
- let x = y;
- let i = i - 1;
- }
- return;
- }
-
- /** Returns the new line character. */
- function char newLine() {
- return 128;
- }
-
- /** Returns the backspace character. */
- function char backSpace() {
- return 129;
- }
-
- /** Returns the double quote (") character. */
- function char doubleQuote() {
- return 34;
- }
-}
diff --git a/projects/12/StringTest/String.vm b/projects/12/StringTest/String.vm
deleted file mode 100644
index 36664c1..0000000
--- a/projects/12/StringTest/String.vm
+++ /dev/null
@@ -1,917 +0,0 @@
-function String.new 0
-push constant 3
-call Memory.alloc 1
-pop pointer 0
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-call Array.new 1
-pop this 2
-label IF_FALSE0
-push argument 0
-pop this 0
-push constant 0
-pop this 1
-push pointer 0
-return
-function String.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push this 2
-call Array.dispose 1
-pop temp 0
-label IF_FALSE0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function String.length 0
-push argument 0
-pop pointer 0
-push this 1
-return
-function String.charAt 0
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-lt
-push argument 1
-push constant 1
-add
-push this 1
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 34
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 65
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 5
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push this 2
-add
-pop pointer 1
-push that 0
-return
-function String.setCharAt 0
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-lt
-push argument 1
-push constant 1
-add
-push this 1
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 37
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 65
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 5
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push this 2
-add
-push argument 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function String.appendChar 0
-push argument 0
-pop pointer 0
-push this 1
-push this 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 38
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 120
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 5
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push this 1
-push this 2
-add
-push argument 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push this 1
-push constant 1
-add
-pop this 1
-push pointer 0
-return
-function String.eraseLastChar 0
-push argument 0
-pop pointer 0
-push this 1
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 46
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 76
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 67
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 5
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push this 1
-push constant 1
-sub
-pop this 1
-push constant 0
-return
-function String.intValue 5
-push argument 0
-pop pointer 0
-push constant 0
-pop local 0
-push constant 0
-push this 2
-add
-pop pointer 1
-push that 0
-push constant 45
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 1
-pop local 1
-push constant 0
-not
-pop local 3
-goto IF_END0
-label IF_FALSE0
-push constant 0
-pop local 1
-push constant 0
-pop local 3
-label IF_END0
-push local 1
-push this 2
-add
-pop pointer 1
-push that 0
-pop local 2
-push local 2
-push constant 48
-lt
-push local 2
-push constant 57
-gt
-or
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 3
-call Sys.error 1
-pop temp 0
-push constant 46
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 86
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-label IF_FALSE1
-push constant 0
-pop local 4
-label WHILE_EXP0
-push local 4
-not
-push local 1
-push this 1
-lt
-and
-not
-if-goto WHILE_END0
-push local 1
-push this 2
-add
-pop pointer 1
-push that 0
-pop local 2
-push local 2
-push constant 47
-gt
-push local 2
-push constant 58
-lt
-and
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 0
-push constant 10
-call Math.multiply 2
-push local 2
-push constant 48
-sub
-add
-pop local 0
-goto IF_END2
-label IF_FALSE2
-push constant 0
-not
-pop local 4
-label IF_END2
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP0
-label WHILE_END0
-push local 3
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push local 0
-neg
-return
-goto IF_END3
-label IF_FALSE3
-push local 0
-return
-label IF_END3
-function String.setInt 4
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-not
-pop local 3
-push constant 2
-pop this 1
-goto IF_END0
-label IF_FALSE0
-push constant 0
-pop local 3
-push constant 1
-pop this 1
-label IF_END0
-push argument 1
-call Math.abs 1
-pop local 0
-push local 0
-push constant 9999
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push this 1
-push constant 4
-add
-pop this 1
-goto IF_END1
-label IF_FALSE1
-push local 0
-push constant 999
-gt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push this 1
-push constant 3
-add
-pop this 1
-goto IF_END2
-label IF_FALSE2
-push local 0
-push constant 99
-gt
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push this 1
-push constant 2
-add
-pop this 1
-goto IF_END3
-label IF_FALSE3
-push local 0
-push constant 9
-gt
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push this 1
-push constant 1
-add
-pop this 1
-label IF_FALSE4
-label IF_END3
-label IF_END2
-label IF_END1
-push this 1
-push this 0
-gt
-if-goto IF_TRUE5
-goto IF_FALSE5
-label IF_TRUE5
-push constant 45
-call String.new 1
-push constant 83
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 73
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 118
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 33
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 5
-call Sys.error 1
-pop temp 0
-label IF_FALSE5
-push local 0
-push constant 0
-eq
-if-goto IF_TRUE6
-goto IF_FALSE6
-label IF_TRUE6
-push pointer 0
-push constant 0
-push constant 48
-call String.setCharAt 3
-pop temp 0
-push constant 0
-return
-label IF_FALSE6
-push local 3
-if-goto IF_TRUE7
-goto IF_FALSE7
-label IF_TRUE7
-push pointer 0
-push constant 0
-push constant 45
-call String.setCharAt 3
-pop temp 0
-label IF_FALSE7
-push this 1
-push constant 1
-sub
-pop local 1
-label WHILE_EXP0
-push local 0
-push constant 0
-gt
-not
-if-goto WHILE_END0
-push local 0
-push constant 10
-call Math.divide 2
-pop local 2
-push pointer 0
-push local 1
-push local 0
-push local 2
-push constant 10
-call Math.multiply 2
-sub
-push constant 48
-add
-call String.setCharAt 3
-pop temp 0
-push local 2
-pop local 0
-push local 1
-push constant 1
-sub
-pop local 1
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function String.newLine 0
-push constant 128
-return
-function String.backSpace 0
-push constant 129
-return
-function String.doubleQuote 0
-push constant 34
-return
diff --git a/projects/12/StringTest/StringTestOutput.gif b/projects/12/StringTest/StringTestOutput.gif
deleted file mode 100644
index 5c2932c..0000000
--- a/projects/12/StringTest/StringTestOutput.gif
+++ /dev/null
Binary files differ
diff --git a/projects/12/SysTest/Main.jack b/projects/12/SysTest/Main.jack
deleted file mode 100644
index a153b25..0000000
--- a/projects/12/SysTest/Main.jack
+++ /dev/null
@@ -1,31 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/SysTest/Main.jack
-
-/** Test program for the OS Sys class. */
-class Main {
-
- /** Tests the wait method of the Sys class. */
- function void main() {
- var char key;
-
- do Output.printString("Wait test:");
- do Output.println();
- do Output.printString("Press any key. After 2 seconds, another message will be printed:");
-
- while (key = 0) {
- let key = Keyboard.keyPressed();
- }
- while (~(key = 0)) {
- let key = Keyboard.keyPressed();
- }
-
- do Sys.wait(2000);
-
- do Output.println();
- do Output.printString("Time is up. Make sure that 2 seconds elapsed.");
-
- return;
- }
-}
diff --git a/projects/12/SysTest/Main.vm b/projects/12/SysTest/Main.vm
deleted file mode 100644
index 4890e2f..0000000
--- a/projects/12/SysTest/Main.vm
+++ /dev/null
@@ -1,281 +0,0 @@
-function Main.main 1
-push constant 10
-call String.new 1
-push constant 87
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 64
-call String.new 1
-push constant 80
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 121
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 65
-call String.appendChar 2
-push constant 102
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 44
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 103
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 119
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 98
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 58
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-label WHILE_EXP0
-push local 0
-push constant 0
-eq
-not
-if-goto WHILE_END0
-call Keyboard.keyPressed 0
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-label WHILE_EXP1
-push local 0
-push constant 0
-eq
-not
-not
-if-goto WHILE_END1
-call Keyboard.keyPressed 0
-pop local 0
-goto WHILE_EXP1
-label WHILE_END1
-push constant 2000
-call Sys.wait 1
-pop temp 0
-call Output.println 0
-pop temp 0
-push constant 45
-call String.new 1
-push constant 84
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 109
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 105
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 77
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 107
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 117
-call String.appendChar 2
-push constant 114
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 104
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 116
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 50
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 99
-call String.appendChar 2
-push constant 111
-call String.appendChar 2
-push constant 110
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 32
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 108
-call String.appendChar 2
-push constant 97
-call String.appendChar 2
-push constant 112
-call String.appendChar 2
-push constant 115
-call String.appendChar 2
-push constant 101
-call String.appendChar 2
-push constant 100
-call String.appendChar 2
-push constant 46
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/12/SysTest/Sys.jack b/projects/12/SysTest/Sys.jack
deleted file mode 100644
index 53c078c..0000000
--- a/projects/12/SysTest/Sys.jack
+++ /dev/null
@@ -1,51 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/12/Sys.jack
-
-/**
- * A library that supports various program execution services.
- */
-class Sys {
-
- /** Performs all the initializations required by the OS. */
- function void init() {
- do Keyboard.init();
- do Math.init();
- do Memory.init();
- do Output.init();
- do Screen.init();
- do Main.main();
- do Sys.halt();
- return;
- }
-
- /** Halts the program execution. */
- function void halt() {
- while (true){
- }
- return;
- }
-
- /** Waits approximately duration milliseconds and returns. */
- function void wait(int duration) {
- var int i, j;
- let i = 0;
- while (i < duration){
- let i = i + 1;
- let j = 0;
- while (j < 318){
- let j = j + 1;
- }
- }
- return;
- }
-
- /** Displays the given error code in the form "ERR<errorCode>",
- * and halts the program's execution. */
- function void error(int errorCode) {
- do Output.printString("ERR");
- do Output.printInt(errorCode);
- return;
- }
-}
diff --git a/projects/12/SysTest/Sys.vm b/projects/12/SysTest/Sys.vm
deleted file mode 100644
index fec2862..0000000
--- a/projects/12/SysTest/Sys.vm
+++ /dev/null
@@ -1,74 +0,0 @@
-function Sys.init 0
-call Keyboard.init 0
-pop temp 0
-call Math.init 0
-pop temp 0
-call Memory.init 0
-pop temp 0
-call Output.init 0
-pop temp 0
-call Screen.init 0
-pop temp 0
-call Main.main 0
-pop temp 0
-call Sys.halt 0
-pop temp 0
-push constant 0
-return
-function Sys.halt 0
-label WHILE_EXP0
-push constant 0
-not
-not
-if-goto WHILE_END0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Sys.wait 2
-push constant 0
-pop local 0
-label WHILE_EXP0
-push local 0
-push argument 0
-lt
-not
-if-goto WHILE_END0
-push local 0
-push constant 1
-add
-pop local 0
-push constant 0
-pop local 1
-label WHILE_EXP1
-push local 1
-push constant 318
-lt
-not
-if-goto WHILE_END1
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP1
-label WHILE_END1
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Sys.error 0
-push constant 3
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 82
-call String.appendChar 2
-push constant 82
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push argument 0
-call Output.printInt 1
-pop temp 0
-push constant 0
-return
diff --git a/projects/13/more fun to go.txt b/projects/13/more fun to go.txt
deleted file mode 100644
index a7f066e..0000000
--- a/projects/13/more fun to go.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-See Chapter 13. It's your call!
-
-And, if you develop something cool, please let us know about it.
-
-We hope that you enjoyed the course!
-
--- Noam and Shimon
-
-www.nand2tetris.org \ No newline at end of file
diff --git a/projects/demo/Xor.cmp b/projects/demo/Xor.cmp
deleted file mode 100644
index a1e07b2..0000000
--- a/projects/demo/Xor.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | out |
-| 0 | 0 | 0 |
-| 0 | 1 | 1 |
-| 1 | 0 | 1 |
-| 1 | 1 | 0 |
diff --git a/projects/demo/Xor.hdl b/projects/demo/Xor.hdl
deleted file mode 100644
index db49351..0000000
--- a/projects/demo/Xor.hdl
+++ /dev/null
@@ -1,25 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/demo/Xor.hdl
-
-/**
- * Exclusive-or gate: true if either a is true and b is false, or
- * a is false and b is true; false otherwise.
- * QUESTION: how can the simulator execute this program properly without
- * HDL implementations of the underlying Not, And, and Or chip-parts?
- * Answer: since the demo folder contains no Not.hdl, And.hdl and Or.hdl
- * files, the simulator reverts to using their built-in implementations.
- */
-
-CHIP Xor {
- IN a, b;
- OUT out;
-
- PARTS:
- Not (in=a, out=nota);
- Not (in=b, out=notb);
- And (a=a, b=notb, out=x);
- And (a=nota, b=b, out=y);
- Or (a=x, b=y, out=out);
-} \ No newline at end of file
diff --git a/projects/demo/Xor.out b/projects/demo/Xor.out
deleted file mode 100644
index e69de29..0000000
--- a/projects/demo/Xor.out
+++ /dev/null
diff --git a/projects/demo/Xor.tst b/projects/demo/Xor.tst
deleted file mode 100644
index 658cbe5..0000000
--- a/projects/demo/Xor.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/01/Xor.tst
-
-load Xor.hdl,
-output-file Xor.out,
-compare-to Xor.cmp,
-output-list a%B3.1.3 b%B3.1.3 out%B3.1.3;
-
-set a 0,
-set b 0,
-eval,
-output;
-
-set a 0,
-set b 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-eval,
-output;
-
-set a 1,
-set b 1,
-eval,
-output;
diff --git a/tools/.DS_Store b/tools/.DS_Store
deleted file mode 100644
index 80fb89e..0000000
--- a/tools/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/tools/Assembler.bat b/tools/Assembler.bat
deleted file mode 100644
index 93260ec..0000000
--- a/tools/Assembler.bat
+++ /dev/null
@@ -1,27 +0,0 @@
-@echo off
-
-rem $Id: Assembler.bat,v 1.2 2014/05/10 00:52:43 marka Exp $
-rem mark.armbrust@pobox.com
-
-setlocal
-if not "%2"=="" goto :USAGE
-if "%~1"=="/?" (
-:USAGE
- echo Usage:
- echo Assembler Starts the assembler in interactive mode.
- echo Assembler FILE[.asm] Assembles FILE.asm to FILE.hack.
- exit -b
-)
-if not "%~1"=="" (
- set "_arg1=%~f1"
-)
-pushd "%~dp0"
-if "%~1"=="" (
- start javaw -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Compilers.jar;bin/lib/AssemblerGUI.jar;bin/lib/TranslatorsGUI.jar" ^
- HackAssemblerMain
-) else (
- echo Assembling "%_arg1%"
- java -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Compilers.jar;bin/lib/AssemblerGUI.jar;bin/lib/TranslatorsGUI.jar" ^
- HackAssemblerMain "%_arg1%"
-)
-popd
diff --git a/tools/Assembler.sh b/tools/Assembler.sh
deleted file mode 100755
index 70db569..0000000
--- a/tools/Assembler.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env sh
-
-# $Id: Assembler.sh,v 1.1 2014/06/17 21:14:01 marka Exp $
-# mark.armbrust@pobox.com
-
-# User's CDPATH can interfere with cd in this script
-unset CDPATH
-# Get the true name of this script
-script="`test -L "$0" && readlink -n "$0" || echo "$0"`"
-dir="$PWD"
-cd "`dirname "$script"`"
-if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ]
-then
- echo "Usage:"
- echo " `basename "$0"` Starts the assembler in interactive mode."
- echo " `basename "$0"` FILE[.asm] Assembles FILE.asm to FILE.hack."
-elif [ $# -eq 0 ]
-then
- # Run assembler in interactive mode
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Compilers.jar:bin/lib/AssemblerGUI.jar:bin/lib/TranslatorsGUI.jar" HackAssemblerMain &
-else
- # Convert arg1 to an absolute path and run assembler with arg1.
- if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg1="$1"
- else
- arg1="${dir}/$1"
- fi
- echo Assembling "$arg1"
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Compilers.jar:bin/lib/AssemblerGUI.jar:bin/lib/TranslatorsGUI.jar" HackAssemblerMain "$arg1"
-fi
-
diff --git a/tools/CPUEmulator.bat b/tools/CPUEmulator.bat
deleted file mode 100644
index f92cf40..0000000
--- a/tools/CPUEmulator.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-rem $Id: CPUEmulator.bat,v 1.3 2014/05/10 00:52:43 marka Exp $
-rem mark.armbrust@pobox.com
-
-setlocal
-if not "%2"=="" goto :USAGE
-if "%~1"=="/?" (
-:USAGE
- echo Usage:
- echo CPUEmulator Starts the CPU Emulator in interactive mode.
- echo CPUEmulator FILE.tst Starts the CPU Emulator and runs the FILE.tst
- echo test script. The success/failure message
- echo is printed to the command console.
- exit -b
-)
-if not "%~1"=="" (
- set "_arg1=%~f1"
-)
-pushd "%~dp0"
-if "%~1"=="" (
- start javaw -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^
- CPUEmulatorMain
-) else (
-rem echo Running "%_arg1%"
- java -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^
- CPUEmulatorMain "%_arg1%"
-)
-popd
diff --git a/tools/CPUEmulator.sh b/tools/CPUEmulator.sh
deleted file mode 100755
index 033d9d7..0000000
--- a/tools/CPUEmulator.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env sh
-
-# $Id: CPUEmulator.sh,v 1.1 2014/06/17 21:14:01 marka Exp $
-# mark.armbrust@pobox.com
-
-# User's CDPATH can interfere with cd in this script
-unset CDPATH
-# Get the true name of this script
-script="`test -L "$0" && readlink -n "$0" || echo "$0"`"
-dir="$PWD"
-cd "`dirname "$script"`"
-if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ]
-then
- echo "Usage:"
- echo " `basename "$0"` Starts the CPU Emulator in interactive mode."
- echo " `basename "$0"` FILE.tst Starts the CPU Emulator and runs the File.tst"
- echo " test script. The success/failure message"
- echo " is printed to the command console."
-elif [ $# -eq 0 ]
-then
- # Run CPU emulator in interactive mode
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" CPUEmulatorMain &
-else
- # Convert arg1 to an absolute path and run CPU emulator with arg1
- if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg1="$1"
- else
- arg1="${dir}/$1"
- fi
-# echo Running "$arg1"
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" CPUEmulatorMain "$arg1"
-fi
diff --git a/tools/HardwareSimulator.bat b/tools/HardwareSimulator.bat
deleted file mode 100644
index 76baa31..0000000
--- a/tools/HardwareSimulator.bat
+++ /dev/null
@@ -1,30 +0,0 @@
-@echo off
-
-rem $Id: HardwareSimulator.bat,v 1.3 2014/05/10 00:52:43 marka Exp $
-rem mark.armbrust@pobox.com
-
-setlocal
-if not "%2"=="" goto :USAGE
-if "%~1"=="/?" (
-:USAGE
- echo Usage:
- echo HardwareSimulator Starts the Hardware Simulator in
- echo interactive mode.
- echo HardwareSimulator FILE.tst Starts the Hardware Simulator and runs the
- echo FILE.tst test script. The success/failure
- echo message is printed to the command console.
- exit -b
-)
-if not "%~1"=="" (
- set "_arg1=%~f1"
-)
-pushd "%~dp0"
-if "%~1"=="" (
- start javaw -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^
- HardwareSimulatorMain
-) else (
-rem echo Running "%_arg1%"
- java -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^
- HardwareSimulatorMain "%_arg1%"
-)
-popd
diff --git a/tools/HardwareSimulator.sh b/tools/HardwareSimulator.sh
deleted file mode 100755
index 47e7482..0000000
--- a/tools/HardwareSimulator.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env sh
-
-# $Id: HardwareSimulator.sh,v 1.1 2014/06/17 21:14:01 marka Exp $
-# mark.armbrust@pobox.com
-
-# User's CDPATH can interfere with cd in this script
-unset CDPATH
-# Get the true name of this script
-script="`test -L "$0" && readlink -n "$0" || echo "$0"`"
-dir="$PWD"
-cd "`dirname "$script"`"
-if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ]
-then
- echo "Usage:"
- echo " `basename "$0"` Starts the Hardware Simulator in"
- echo " interactive mode."
- echo " `basename "$0"` FILE.tst Starts the Hardware Simulator and runs the"
- echo " FILE.tst test script. The success/failure"
- echo " message is printed to the command console."
-elif [ $# -eq 0 ]
-then
- # Run hardware simulator in interactive mode
- java -classpath "${CLASSPATH}:bin/classes:BuiltIn:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" HardwareSimulatorMain &
-else
- # Convert arg1 to an absolute path and run hardware simulator with arg1
- if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg1="$1"
- else
- arg1="${dir}/$1"
- fi
-# echo Running "$arg1"
- java -classpath "${CLASSPATH}:bin/classes:BuiltIn:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" HardwareSimulatorMain "$arg1"
-fi
diff --git a/tools/JackCompiler.bat b/tools/JackCompiler.bat
deleted file mode 100644
index 9399b94..0000000
--- a/tools/JackCompiler.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-@echo off
-
-rem $Id: JackCompiler.bat,v 1.2 2014/05/10 00:52:43 marka Exp $
-rem mark.armbrust@pobox.com
-
-setlocal
-if not "%2"=="" goto :USAGE
-if "%~1"=="/?" (
-:USAGE
- echo Usage:
- echo JackCompiler Compiles all .jack files in the current
- echo working directory.
- echo JackCompiler DIRECTORY Compiles all .jack files in DIRECTORY.
- echo JackCompiler FILE.jack Compiles FILE.jack to FILE.vm.
- exit -b
-)
-if not "%~1"=="" (
- set "_arg1=%~f1"
-) else (
- set "_arg1=%CD%"
-)
-pushd "%~dp0"
-echo Compiling "%_arg1%"
-java -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/Compilers.jar" ^
- Hack.Compiler.JackCompiler "%_arg1%"
-popd
diff --git a/tools/JackCompiler.sh b/tools/JackCompiler.sh
deleted file mode 100755
index 699dfb8..0000000
--- a/tools/JackCompiler.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env sh
-
-# $Id: JackCompiler.sh,v 1.1 2014/06/17 21:14:01 marka Exp $
-# mark.armbrust@pobox.com
-
-# User's CDPATH can interfere with cd in this script
-unset CDPATH
-# Get the true name of this script
-script="`test -L "$0" && readlink -n "$0" || echo "$0"`"
-dir="$PWD"
-cd "`dirname "$script"`"
-if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ]
-then
- echo "Usage:"
- echo " `basename "$0"` Compiles all .jack files in the current"
- echo " working directory."
- echo " `basename "$0"` DIRECTORY Compiles all .jack files in DIRECTORY."
- echo " `basename "$0"` FILE.jack Compiles FILE.jack to FILE.vm."
-else
- if [ $# -eq 0 ]
- then
- # Use current directory as arg1
- arg1="$dir"
- else
- # Convert arg1 to an absolute path
- if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg1="$1"
- else
- arg1="$dir/$1"
- fi
- fi
- echo Compiling "$arg1"
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/Compilers.jar" Hack.Compiler.JackCompiler "$arg1"
-fi
diff --git a/tools/OS/Array.vm b/tools/OS/Array.vm
deleted file mode 100644
index aa4c9e8..0000000
--- a/tools/OS/Array.vm
+++ /dev/null
@@ -1,23 +0,0 @@
-function Array.new 0
-push argument 0
-push constant 0
-gt
-not
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 2
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-call Memory.alloc 1
-return
-function Array.dispose 0
-push argument 0
-pop pointer 0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
diff --git a/tools/OS/Keyboard.vm b/tools/OS/Keyboard.vm
deleted file mode 100644
index a806c4e..0000000
--- a/tools/OS/Keyboard.vm
+++ /dev/null
@@ -1,102 +0,0 @@
-function Keyboard.init 0
-push constant 0
-return
-function Keyboard.keyPressed 0
-push constant 24576
-call Memory.peek 1
-return
-function Keyboard.readChar 2
-push constant 0
-call Output.printChar 1
-pop temp 0
-label WHILE_EXP0
-push local 1
-push constant 0
-eq
-push local 0
-push constant 0
-gt
-or
-not
-if-goto WHILE_END0
-call Keyboard.keyPressed 0
-pop local 0
-push local 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-pop local 1
-label IF_FALSE0
-goto WHILE_EXP0
-label WHILE_END0
-call String.backSpace 0
-call Output.printChar 1
-pop temp 0
-push local 1
-call Output.printChar 1
-pop temp 0
-push local 1
-return
-function Keyboard.readLine 5
-push constant 80
-call String.new 1
-pop local 3
-push argument 0
-call Output.printString 1
-pop temp 0
-call String.newLine 0
-pop local 1
-call String.backSpace 0
-pop local 2
-label WHILE_EXP0
-push local 4
-not
-not
-if-goto WHILE_END0
-call Keyboard.readChar 0
-pop local 0
-push local 0
-push local 1
-eq
-pop local 4
-push local 4
-not
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-push local 2
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 3
-call String.eraseLastChar 1
-pop temp 0
-goto IF_END1
-label IF_FALSE1
-push local 3
-push local 0
-call String.appendChar 2
-pop local 3
-label IF_END1
-label IF_FALSE0
-goto WHILE_EXP0
-label WHILE_END0
-push local 3
-return
-function Keyboard.readInt 2
-push argument 0
-call Keyboard.readLine 1
-pop local 0
-push local 0
-call String.intValue 1
-pop local 1
-push local 0
-call String.dispose 1
-pop temp 0
-push local 1
-return
diff --git a/tools/OS/Math.vm b/tools/OS/Math.vm
deleted file mode 100644
index b660688..0000000
--- a/tools/OS/Math.vm
+++ /dev/null
@@ -1,408 +0,0 @@
-function Math.init 1
-push constant 16
-call Array.new 1
-pop static 1
-push constant 16
-call Array.new 1
-pop static 0
-push constant 0
-push static 0
-add
-push constant 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label WHILE_EXP0
-push local 0
-push constant 15
-lt
-not
-if-goto WHILE_END0
-push local 0
-push constant 1
-add
-pop local 0
-push local 0
-push static 0
-add
-push local 0
-push constant 1
-sub
-push static 0
-add
-pop pointer 1
-push that 0
-push local 0
-push constant 1
-sub
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Math.abs 0
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-neg
-pop argument 0
-label IF_FALSE0
-push argument 0
-return
-function Math.multiply 5
-push argument 0
-push constant 0
-lt
-push argument 1
-push constant 0
-gt
-and
-push argument 0
-push constant 0
-gt
-push argument 1
-push constant 0
-lt
-and
-or
-pop local 4
-push argument 0
-call Math.abs 1
-pop argument 0
-push argument 1
-call Math.abs 1
-pop argument 1
-push argument 0
-push argument 1
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-pop local 1
-push argument 1
-pop argument 0
-push local 1
-pop argument 1
-label IF_FALSE0
-label WHILE_EXP0
-push local 2
-push constant 1
-sub
-push argument 1
-push constant 1
-sub
-lt
-not
-if-goto WHILE_END0
-push local 3
-push static 0
-add
-pop pointer 1
-push that 0
-push argument 1
-and
-push constant 0
-eq
-not
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 0
-push argument 0
-add
-pop local 0
-push local 2
-push local 3
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop local 2
-label IF_FALSE1
-push argument 0
-push argument 0
-add
-pop argument 0
-push local 3
-push constant 1
-add
-pop local 3
-goto WHILE_EXP0
-label WHILE_END0
-push local 4
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 0
-neg
-pop local 0
-label IF_FALSE2
-push local 0
-return
-function Math.divide 4
-push argument 1
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 3
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-push constant 0
-lt
-push argument 1
-push constant 0
-gt
-and
-push argument 0
-push constant 0
-gt
-push argument 1
-push constant 0
-lt
-and
-or
-pop local 2
-push constant 0
-push static 1
-add
-push argument 1
-call Math.abs 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push argument 0
-call Math.abs 1
-pop argument 0
-label WHILE_EXP0
-push local 0
-push constant 15
-lt
-push local 3
-not
-and
-not
-if-goto WHILE_END0
-push constant 32767
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-sub
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-lt
-pop local 3
-push local 3
-not
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 0
-push constant 1
-add
-push static 1
-add
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 1
-add
-push static 1
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-push argument 0
-push constant 1
-sub
-gt
-pop local 3
-push local 3
-not
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 0
-push constant 1
-add
-pop local 0
-label IF_FALSE2
-label IF_FALSE1
-goto WHILE_EXP0
-label WHILE_END0
-label WHILE_EXP1
-push local 0
-push constant 1
-neg
-gt
-not
-if-goto WHILE_END1
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-push argument 0
-push constant 1
-sub
-gt
-not
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push local 1
-push local 0
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop local 1
-push argument 0
-push local 0
-push static 1
-add
-pop pointer 1
-push that 0
-sub
-pop argument 0
-label IF_FALSE3
-push local 0
-push constant 1
-sub
-pop local 0
-goto WHILE_EXP1
-label WHILE_END1
-push local 2
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push local 1
-neg
-pop local 1
-label IF_FALSE4
-push local 1
-return
-function Math.sqrt 4
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 4
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push constant 7
-pop local 0
-label WHILE_EXP0
-push local 0
-push constant 1
-neg
-gt
-not
-if-goto WHILE_END0
-push local 3
-push local 0
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop local 1
-push local 1
-push local 1
-call Math.multiply 2
-pop local 2
-push local 2
-push argument 0
-gt
-not
-push local 2
-push constant 0
-lt
-not
-and
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 1
-pop local 3
-label IF_FALSE1
-push local 0
-push constant 1
-sub
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 3
-return
-function Math.max 0
-push argument 0
-push argument 1
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-pop argument 1
-label IF_FALSE0
-push argument 1
-return
-function Math.min 0
-push argument 0
-push argument 1
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-pop argument 1
-label IF_FALSE0
-push argument 1
-return
diff --git a/tools/OS/Memory.vm b/tools/OS/Memory.vm
deleted file mode 100644
index 5d42aad..0000000
--- a/tools/OS/Memory.vm
+++ /dev/null
@@ -1,279 +0,0 @@
-function Memory.init 0
-push constant 0
-pop static 0
-push constant 2048
-push static 0
-add
-push constant 14334
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2049
-push static 0
-add
-push constant 2050
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Memory.peek 0
-push argument 0
-push static 0
-add
-pop pointer 1
-push that 0
-return
-function Memory.poke 0
-push argument 0
-push static 0
-add
-push argument 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Memory.alloc 1
-push argument 0
-push constant 1
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 5
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push constant 2048
-pop local 0
-label WHILE_EXP0
-push constant 0
-push local 0
-add
-pop pointer 1
-push that 0
-push argument 0
-lt
-not
-if-goto WHILE_END0
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 0
-push argument 0
-add
-push constant 16379
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 6
-call Sys.error 1
-pop temp 0
-label IF_FALSE1
-push constant 0
-push local 0
-add
-pop pointer 1
-push that 0
-push argument 0
-push constant 2
-add
-gt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push argument 0
-push constant 2
-add
-push local 0
-add
-push constant 0
-push local 0
-add
-pop pointer 1
-push that 0
-push argument 0
-sub
-push constant 2
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-push local 0
-push constant 2
-add
-eq
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push argument 0
-push constant 3
-add
-push local 0
-add
-push local 0
-push argument 0
-add
-push constant 4
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END3
-label IF_FALSE3
-push argument 0
-push constant 3
-add
-push local 0
-add
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END3
-push constant 1
-push local 0
-add
-push local 0
-push argument 0
-add
-push constant 2
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_FALSE2
-push constant 0
-push local 0
-add
-push constant 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 2
-add
-return
-function Memory.deAlloc 2
-push argument 0
-push constant 2
-sub
-pop local 0
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-pop local 1
-push constant 0
-push local 1
-add
-pop pointer 1
-push that 0
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-push local 0
-add
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-push local 0
-sub
-push constant 2
-sub
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END0
-label IF_FALSE0
-push constant 0
-push local 0
-add
-push constant 1
-push local 0
-add
-pop pointer 1
-push that 0
-push local 0
-sub
-push constant 0
-push local 1
-add
-pop pointer 1
-push that 0
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push local 1
-add
-pop pointer 1
-push that 0
-push local 1
-push constant 2
-add
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 1
-push local 0
-add
-push local 0
-push constant 2
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END1
-label IF_FALSE1
-push constant 1
-push local 0
-add
-push constant 1
-push local 1
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END1
-label IF_END0
-push constant 0
-return
diff --git a/tools/OS/Output.vm b/tools/OS/Output.vm
deleted file mode 100644
index b8addd7..0000000
--- a/tools/OS/Output.vm
+++ /dev/null
@@ -1,1852 +0,0 @@
-function Output.init 0
-push constant 16384
-pop static 4
-push constant 0
-not
-pop static 2
-push constant 32
-pop static 1
-push constant 0
-pop static 0
-push constant 6
-call String.new 1
-pop static 3
-call Output.initMap 0
-pop temp 0
-call Output.createShiftedMap 0
-pop temp 0
-push constant 0
-return
-function Output.initMap 0
-push constant 127
-call Array.new 1
-pop static 5
-push constant 0
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 32
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 33
-push constant 12
-push constant 30
-push constant 30
-push constant 30
-push constant 12
-push constant 12
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 34
-push constant 54
-push constant 54
-push constant 20
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 35
-push constant 0
-push constant 18
-push constant 18
-push constant 63
-push constant 18
-push constant 18
-push constant 63
-push constant 18
-push constant 18
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 36
-push constant 12
-push constant 30
-push constant 51
-push constant 3
-push constant 30
-push constant 48
-push constant 51
-push constant 30
-push constant 12
-push constant 12
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 37
-push constant 0
-push constant 0
-push constant 35
-push constant 51
-push constant 24
-push constant 12
-push constant 6
-push constant 51
-push constant 49
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 38
-push constant 12
-push constant 30
-push constant 30
-push constant 12
-push constant 54
-push constant 27
-push constant 27
-push constant 27
-push constant 54
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 39
-push constant 12
-push constant 12
-push constant 6
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 40
-push constant 24
-push constant 12
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 12
-push constant 24
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 41
-push constant 6
-push constant 12
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 12
-push constant 6
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 42
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 30
-push constant 63
-push constant 30
-push constant 51
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 43
-push constant 0
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 63
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 44
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 6
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 45
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 46
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 47
-push constant 0
-push constant 0
-push constant 32
-push constant 48
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 1
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 48
-push constant 12
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 49
-push constant 12
-push constant 14
-push constant 15
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 50
-push constant 30
-push constant 51
-push constant 48
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 51
-push constant 30
-push constant 51
-push constant 48
-push constant 48
-push constant 28
-push constant 48
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 52
-push constant 16
-push constant 24
-push constant 28
-push constant 26
-push constant 25
-push constant 63
-push constant 24
-push constant 24
-push constant 60
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 53
-push constant 63
-push constant 3
-push constant 3
-push constant 31
-push constant 48
-push constant 48
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 54
-push constant 28
-push constant 6
-push constant 3
-push constant 3
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 55
-push constant 63
-push constant 49
-push constant 48
-push constant 48
-push constant 24
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 56
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 57
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 48
-push constant 24
-push constant 14
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 58
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 59
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-push constant 12
-push constant 12
-push constant 6
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 60
-push constant 0
-push constant 0
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 6
-push constant 12
-push constant 24
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 61
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 62
-push constant 0
-push constant 0
-push constant 3
-push constant 6
-push constant 12
-push constant 24
-push constant 12
-push constant 6
-push constant 3
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 64
-push constant 30
-push constant 51
-push constant 51
-push constant 59
-push constant 59
-push constant 59
-push constant 27
-push constant 3
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 63
-push constant 30
-push constant 51
-push constant 51
-push constant 24
-push constant 12
-push constant 12
-push constant 0
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 65
-push constant 12
-push constant 30
-push constant 51
-push constant 51
-push constant 63
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 66
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 67
-push constant 28
-push constant 54
-push constant 35
-push constant 3
-push constant 3
-push constant 3
-push constant 35
-push constant 54
-push constant 28
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 68
-push constant 15
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 27
-push constant 15
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 69
-push constant 63
-push constant 51
-push constant 35
-push constant 11
-push constant 15
-push constant 11
-push constant 35
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 70
-push constant 63
-push constant 51
-push constant 35
-push constant 11
-push constant 15
-push constant 11
-push constant 3
-push constant 3
-push constant 3
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 71
-push constant 28
-push constant 54
-push constant 35
-push constant 3
-push constant 59
-push constant 51
-push constant 51
-push constant 54
-push constant 44
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 72
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 73
-push constant 30
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 74
-push constant 60
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 27
-push constant 27
-push constant 14
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 75
-push constant 51
-push constant 51
-push constant 51
-push constant 27
-push constant 15
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 76
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 35
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 77
-push constant 33
-push constant 51
-push constant 63
-push constant 63
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 78
-push constant 51
-push constant 51
-push constant 55
-push constant 55
-push constant 63
-push constant 59
-push constant 59
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 79
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 80
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 3
-push constant 3
-push constant 3
-push constant 3
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 81
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 59
-push constant 30
-push constant 48
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 82
-push constant 31
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 83
-push constant 30
-push constant 51
-push constant 51
-push constant 6
-push constant 28
-push constant 48
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 84
-push constant 63
-push constant 63
-push constant 45
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 85
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 86
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 30
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 87
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 63
-push constant 63
-push constant 18
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 88
-push constant 51
-push constant 51
-push constant 30
-push constant 30
-push constant 12
-push constant 30
-push constant 30
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 89
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 90
-push constant 63
-push constant 51
-push constant 49
-push constant 24
-push constant 12
-push constant 6
-push constant 35
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 91
-push constant 30
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 6
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 92
-push constant 0
-push constant 0
-push constant 1
-push constant 3
-push constant 6
-push constant 12
-push constant 24
-push constant 48
-push constant 32
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 93
-push constant 30
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 24
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 94
-push constant 8
-push constant 28
-push constant 54
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 95
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 96
-push constant 6
-push constant 12
-push constant 24
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 97
-push constant 0
-push constant 0
-push constant 0
-push constant 14
-push constant 24
-push constant 30
-push constant 27
-push constant 27
-push constant 54
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 98
-push constant 3
-push constant 3
-push constant 3
-push constant 15
-push constant 27
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 99
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 3
-push constant 3
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 100
-push constant 48
-push constant 48
-push constant 48
-push constant 60
-push constant 54
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 101
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 63
-push constant 3
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 102
-push constant 28
-push constant 54
-push constant 38
-push constant 6
-push constant 15
-push constant 6
-push constant 6
-push constant 6
-push constant 15
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 103
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 104
-push constant 3
-push constant 3
-push constant 3
-push constant 27
-push constant 55
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 105
-push constant 12
-push constant 12
-push constant 0
-push constant 14
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 106
-push constant 48
-push constant 48
-push constant 0
-push constant 56
-push constant 48
-push constant 48
-push constant 48
-push constant 48
-push constant 51
-push constant 30
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 107
-push constant 3
-push constant 3
-push constant 3
-push constant 51
-push constant 27
-push constant 15
-push constant 15
-push constant 27
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 108
-push constant 14
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 109
-push constant 0
-push constant 0
-push constant 0
-push constant 29
-push constant 63
-push constant 43
-push constant 43
-push constant 43
-push constant 43
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 110
-push constant 0
-push constant 0
-push constant 0
-push constant 29
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 111
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 112
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 31
-push constant 3
-push constant 3
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 113
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 48
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 114
-push constant 0
-push constant 0
-push constant 0
-push constant 29
-push constant 55
-push constant 51
-push constant 3
-push constant 3
-push constant 7
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 115
-push constant 0
-push constant 0
-push constant 0
-push constant 30
-push constant 51
-push constant 6
-push constant 24
-push constant 51
-push constant 30
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 116
-push constant 4
-push constant 6
-push constant 6
-push constant 15
-push constant 6
-push constant 6
-push constant 6
-push constant 54
-push constant 28
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 117
-push constant 0
-push constant 0
-push constant 0
-push constant 27
-push constant 27
-push constant 27
-push constant 27
-push constant 27
-push constant 54
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 118
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 51
-push constant 51
-push constant 51
-push constant 30
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 119
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 51
-push constant 51
-push constant 63
-push constant 63
-push constant 18
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 120
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 30
-push constant 12
-push constant 12
-push constant 30
-push constant 51
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 121
-push constant 0
-push constant 0
-push constant 0
-push constant 51
-push constant 51
-push constant 51
-push constant 62
-push constant 48
-push constant 24
-push constant 15
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 122
-push constant 0
-push constant 0
-push constant 0
-push constant 63
-push constant 27
-push constant 12
-push constant 6
-push constant 51
-push constant 63
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 123
-push constant 56
-push constant 12
-push constant 12
-push constant 12
-push constant 7
-push constant 12
-push constant 12
-push constant 12
-push constant 56
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 124
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 12
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 125
-push constant 7
-push constant 12
-push constant 12
-push constant 12
-push constant 56
-push constant 12
-push constant 12
-push constant 12
-push constant 7
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 126
-push constant 38
-push constant 45
-push constant 25
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-push constant 0
-call Output.create 12
-pop temp 0
-push constant 0
-return
-function Output.create 1
-push constant 11
-call Array.new 1
-pop local 0
-push argument 0
-push static 5
-add
-push local 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-push local 0
-add
-push argument 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-push local 0
-add
-push argument 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 2
-push local 0
-add
-push argument 3
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 3
-push local 0
-add
-push argument 4
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 4
-push local 0
-add
-push argument 5
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 5
-push local 0
-add
-push argument 6
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 6
-push local 0
-add
-push argument 7
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 7
-push local 0
-add
-push argument 8
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 8
-push local 0
-add
-push argument 9
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 9
-push local 0
-add
-push argument 10
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 10
-push local 0
-add
-push argument 11
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function Output.createShiftedMap 4
-push constant 127
-call Array.new 1
-pop static 6
-push constant 0
-pop local 2
-label WHILE_EXP0
-push local 2
-push constant 127
-lt
-not
-if-goto WHILE_END0
-push local 2
-push static 5
-add
-pop pointer 1
-push that 0
-pop local 0
-push constant 11
-call Array.new 1
-pop local 1
-push local 2
-push static 6
-add
-push local 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-pop local 3
-label WHILE_EXP1
-push local 3
-push constant 11
-lt
-not
-if-goto WHILE_END1
-push local 3
-push local 1
-add
-push local 3
-push local 0
-add
-pop pointer 1
-push that 0
-push constant 256
-call Math.multiply 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 3
-push constant 1
-add
-pop local 3
-goto WHILE_EXP1
-label WHILE_END1
-push local 2
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 32
-pop local 2
-goto IF_END0
-label IF_FALSE0
-push local 2
-push constant 1
-add
-pop local 2
-label IF_END0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Output.getMap 1
-push argument 0
-push constant 32
-lt
-push argument 0
-push constant 126
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-pop argument 0
-label IF_FALSE0
-push static 2
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push argument 0
-push static 5
-add
-pop pointer 1
-push that 0
-pop local 0
-goto IF_END1
-label IF_FALSE1
-push argument 0
-push static 6
-add
-pop pointer 1
-push that 0
-pop local 0
-label IF_END1
-push local 0
-return
-function Output.drawChar 4
-push argument 0
-call Output.getMap 1
-pop local 2
-push static 1
-pop local 0
-label WHILE_EXP0
-push local 1
-push constant 11
-lt
-not
-if-goto WHILE_END0
-push static 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 0
-push static 4
-add
-pop pointer 1
-push that 0
-push constant 256
-neg
-and
-pop local 3
-goto IF_END0
-label IF_FALSE0
-push local 0
-push static 4
-add
-pop pointer 1
-push that 0
-push constant 255
-and
-pop local 3
-label IF_END0
-push local 0
-push static 4
-add
-push local 1
-push local 2
-add
-pop pointer 1
-push that 0
-push local 3
-or
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 32
-add
-pop local 0
-push local 1
-push constant 1
-add
-pop local 1
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Output.moveCursor 0
-push argument 0
-push constant 0
-lt
-push argument 0
-push constant 22
-gt
-or
-push argument 1
-push constant 0
-lt
-or
-push argument 1
-push constant 63
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 20
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push constant 2
-call Math.divide 2
-pop static 0
-push constant 32
-push argument 0
-push constant 352
-call Math.multiply 2
-add
-push static 0
-add
-pop static 1
-push argument 1
-push static 0
-push constant 2
-call Math.multiply 2
-eq
-pop static 2
-push constant 32
-call Output.drawChar 1
-pop temp 0
-push constant 0
-return
-function Output.printChar 0
-push argument 0
-call String.newLine 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-call Output.println 0
-pop temp 0
-goto IF_END0
-label IF_FALSE0
-push argument 0
-call String.backSpace 0
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-call Output.backSpace 0
-pop temp 0
-goto IF_END1
-label IF_FALSE1
-push argument 0
-call Output.drawChar 1
-pop temp 0
-push static 2
-not
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push static 0
-push constant 1
-add
-pop static 0
-push static 1
-push constant 1
-add
-pop static 1
-label IF_FALSE2
-push static 0
-push constant 32
-eq
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-call Output.println 0
-pop temp 0
-goto IF_END3
-label IF_FALSE3
-push static 2
-not
-pop static 2
-label IF_END3
-label IF_END1
-label IF_END0
-push constant 0
-return
-function Output.printString 2
-push argument 0
-call String.length 1
-pop local 1
-label WHILE_EXP0
-push local 0
-push local 1
-lt
-not
-if-goto WHILE_END0
-push argument 0
-push local 0
-call String.charAt 2
-call Output.printChar 1
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Output.printInt 0
-push static 3
-push argument 0
-call String.setInt 2
-pop temp 0
-push static 3
-call Output.printString 1
-pop temp 0
-push constant 0
-return
-function Output.println 0
-push static 1
-push constant 352
-add
-push static 0
-sub
-pop static 1
-push constant 0
-pop static 0
-push constant 0
-not
-pop static 2
-push static 1
-push constant 8128
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 32
-pop static 1
-label IF_FALSE0
-push constant 0
-return
-function Output.backSpace 0
-push static 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push static 0
-push constant 0
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push static 0
-push constant 1
-sub
-pop static 0
-push static 1
-push constant 1
-sub
-pop static 1
-goto IF_END1
-label IF_FALSE1
-push constant 31
-pop static 0
-push static 1
-push constant 32
-eq
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push constant 8128
-pop static 1
-label IF_FALSE2
-push static 1
-push constant 321
-sub
-pop static 1
-label IF_END1
-push constant 0
-pop static 2
-goto IF_END0
-label IF_FALSE0
-push constant 0
-not
-pop static 2
-label IF_END0
-push constant 32
-call Output.drawChar 1
-pop temp 0
-push constant 0
-return
diff --git a/tools/OS/Screen.vm b/tools/OS/Screen.vm
deleted file mode 100644
index fccafb5..0000000
--- a/tools/OS/Screen.vm
+++ /dev/null
@@ -1,806 +0,0 @@
-function Screen.init 1
-push constant 16384
-pop static 1
-push constant 0
-not
-pop static 2
-push constant 17
-call Array.new 1
-pop static 0
-push constant 0
-push static 0
-add
-push constant 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label WHILE_EXP0
-push local 0
-push constant 16
-lt
-not
-if-goto WHILE_END0
-push local 0
-push constant 1
-add
-pop local 0
-push local 0
-push static 0
-add
-push local 0
-push constant 1
-sub
-push static 0
-add
-pop pointer 1
-push that 0
-push local 0
-push constant 1
-sub
-push static 0
-add
-pop pointer 1
-push that 0
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Screen.clearScreen 1
-label WHILE_EXP0
-push local 0
-push constant 8192
-lt
-not
-if-goto WHILE_END0
-push local 0
-push static 1
-add
-push constant 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Screen.updateLocation 0
-push static 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 0
-push static 1
-add
-push argument 0
-push static 1
-add
-pop pointer 1
-push that 0
-push argument 1
-or
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-goto IF_END0
-label IF_FALSE0
-push argument 0
-push static 1
-add
-push argument 0
-push static 1
-add
-pop pointer 1
-push that 0
-push argument 1
-not
-and
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-label IF_END0
-push constant 0
-return
-function Screen.setColor 0
-push argument 0
-pop static 2
-push constant 0
-return
-function Screen.drawPixel 3
-push argument 0
-push constant 0
-lt
-push argument 0
-push constant 511
-gt
-or
-push argument 1
-push constant 0
-lt
-or
-push argument 1
-push constant 255
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 7
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-push constant 16
-call Math.divide 2
-pop local 0
-push argument 0
-push local 0
-push constant 16
-call Math.multiply 2
-sub
-pop local 1
-push argument 1
-push constant 32
-call Math.multiply 2
-push local 0
-add
-pop local 2
-push local 2
-push local 1
-push static 0
-add
-pop pointer 1
-push that 0
-call Screen.updateLocation 2
-pop temp 0
-push constant 0
-return
-function Screen.drawConditional 0
-push argument 2
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push argument 1
-push argument 0
-call Screen.drawPixel 2
-pop temp 0
-goto IF_END0
-label IF_FALSE0
-push argument 0
-push argument 1
-call Screen.drawPixel 2
-pop temp 0
-label IF_END0
-push constant 0
-return
-function Screen.drawLine 11
-push argument 0
-push constant 0
-lt
-push argument 2
-push constant 511
-gt
-or
-push argument 1
-push constant 0
-lt
-or
-push argument 3
-push constant 255
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 8
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 2
-push argument 0
-sub
-call Math.abs 1
-pop local 3
-push argument 3
-push argument 1
-sub
-call Math.abs 1
-pop local 2
-push local 3
-push local 2
-lt
-pop local 6
-push local 6
-push argument 3
-push argument 1
-lt
-and
-push local 6
-not
-push argument 2
-push argument 0
-lt
-and
-or
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push argument 0
-pop local 4
-push argument 2
-pop argument 0
-push local 4
-pop argument 2
-push argument 1
-pop local 4
-push argument 3
-pop argument 1
-push local 4
-pop argument 3
-label IF_FALSE1
-push local 6
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 3
-pop local 4
-push local 2
-pop local 3
-push local 4
-pop local 2
-push argument 1
-pop local 1
-push argument 0
-pop local 0
-push argument 3
-pop local 8
-push argument 0
-push argument 2
-gt
-pop local 7
-goto IF_END2
-label IF_FALSE2
-push argument 0
-pop local 1
-push argument 1
-pop local 0
-push argument 2
-pop local 8
-push argument 1
-push argument 3
-gt
-pop local 7
-label IF_END2
-push constant 2
-push local 2
-call Math.multiply 2
-push local 3
-sub
-pop local 5
-push constant 2
-push local 2
-call Math.multiply 2
-pop local 9
-push constant 2
-push local 2
-push local 3
-sub
-call Math.multiply 2
-pop local 10
-push local 1
-push local 0
-push local 6
-call Screen.drawConditional 3
-pop temp 0
-label WHILE_EXP0
-push local 1
-push local 8
-lt
-not
-if-goto WHILE_END0
-push local 5
-push constant 0
-lt
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push local 5
-push local 9
-add
-pop local 5
-goto IF_END3
-label IF_FALSE3
-push local 5
-push local 10
-add
-pop local 5
-push local 7
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push local 0
-push constant 1
-sub
-pop local 0
-goto IF_END4
-label IF_FALSE4
-push local 0
-push constant 1
-add
-pop local 0
-label IF_END4
-label IF_END3
-push local 1
-push constant 1
-add
-pop local 1
-push local 1
-push local 0
-push local 6
-call Screen.drawConditional 3
-pop temp 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Screen.drawRectangle 9
-push argument 0
-push argument 2
-gt
-push argument 1
-push argument 3
-gt
-or
-push argument 0
-push constant 0
-lt
-or
-push argument 2
-push constant 511
-gt
-or
-push argument 1
-push constant 0
-lt
-or
-push argument 3
-push constant 255
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 9
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-push constant 16
-call Math.divide 2
-pop local 3
-push argument 0
-push local 3
-push constant 16
-call Math.multiply 2
-sub
-pop local 7
-push argument 2
-push constant 16
-call Math.divide 2
-pop local 4
-push argument 2
-push local 4
-push constant 16
-call Math.multiply 2
-sub
-pop local 8
-push local 7
-push static 0
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-not
-pop local 6
-push local 8
-push constant 1
-add
-push static 0
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-pop local 5
-push argument 1
-push constant 32
-call Math.multiply 2
-push local 3
-add
-pop local 0
-push local 4
-push local 3
-sub
-pop local 2
-label WHILE_EXP0
-push argument 1
-push argument 3
-gt
-not
-not
-if-goto WHILE_END0
-push local 0
-push local 2
-add
-pop local 1
-push local 2
-push constant 0
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 0
-push local 5
-push local 6
-and
-call Screen.updateLocation 2
-pop temp 0
-goto IF_END1
-label IF_FALSE1
-push local 0
-push local 6
-call Screen.updateLocation 2
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-label WHILE_EXP1
-push local 0
-push local 1
-lt
-not
-if-goto WHILE_END1
-push local 0
-push constant 1
-neg
-call Screen.updateLocation 2
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP1
-label WHILE_END1
-push local 1
-push local 5
-call Screen.updateLocation 2
-pop temp 0
-label IF_END1
-push argument 1
-push constant 1
-add
-pop argument 1
-push local 1
-push constant 32
-add
-push local 2
-sub
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Screen.drawHorizontal 11
-push argument 1
-push argument 2
-call Math.min 2
-pop local 7
-push argument 1
-push argument 2
-call Math.max 2
-pop local 8
-push argument 0
-push constant 1
-neg
-gt
-push argument 0
-push constant 256
-lt
-and
-push local 7
-push constant 512
-lt
-and
-push local 8
-push constant 1
-neg
-gt
-and
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push local 7
-push constant 0
-call Math.max 2
-pop local 7
-push local 8
-push constant 511
-call Math.min 2
-pop local 8
-push local 7
-push constant 16
-call Math.divide 2
-pop local 1
-push local 7
-push local 1
-push constant 16
-call Math.multiply 2
-sub
-pop local 9
-push local 8
-push constant 16
-call Math.divide 2
-pop local 2
-push local 8
-push local 2
-push constant 16
-call Math.multiply 2
-sub
-pop local 10
-push local 9
-push static 0
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-not
-pop local 5
-push local 10
-push constant 1
-add
-push static 0
-add
-pop pointer 1
-push that 0
-push constant 1
-sub
-pop local 4
-push argument 0
-push constant 32
-call Math.multiply 2
-push local 1
-add
-pop local 0
-push local 2
-push local 1
-sub
-pop local 6
-push local 0
-push local 6
-add
-pop local 3
-push local 6
-push constant 0
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push local 0
-push local 4
-push local 5
-and
-call Screen.updateLocation 2
-pop temp 0
-goto IF_END1
-label IF_FALSE1
-push local 0
-push local 5
-call Screen.updateLocation 2
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-label WHILE_EXP0
-push local 0
-push local 3
-lt
-not
-if-goto WHILE_END0
-push local 0
-push constant 1
-neg
-call Screen.updateLocation 2
-pop temp 0
-push local 0
-push constant 1
-add
-pop local 0
-goto WHILE_EXP0
-label WHILE_END0
-push local 3
-push local 4
-call Screen.updateLocation 2
-pop temp 0
-label IF_END1
-label IF_FALSE0
-push constant 0
-return
-function Screen.drawSymetric 0
-push argument 1
-push argument 3
-sub
-push argument 0
-push argument 2
-add
-push argument 0
-push argument 2
-sub
-call Screen.drawHorizontal 3
-pop temp 0
-push argument 1
-push argument 3
-add
-push argument 0
-push argument 2
-add
-push argument 0
-push argument 2
-sub
-call Screen.drawHorizontal 3
-pop temp 0
-push argument 1
-push argument 2
-sub
-push argument 0
-push argument 3
-sub
-push argument 0
-push argument 3
-add
-call Screen.drawHorizontal 3
-pop temp 0
-push argument 1
-push argument 2
-add
-push argument 0
-push argument 3
-sub
-push argument 0
-push argument 3
-add
-call Screen.drawHorizontal 3
-pop temp 0
-push constant 0
-return
-function Screen.drawCircle 3
-push argument 0
-push constant 0
-lt
-push argument 0
-push constant 511
-gt
-or
-push argument 1
-push constant 0
-lt
-or
-push argument 1
-push constant 255
-gt
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 12
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-push argument 2
-sub
-push constant 0
-lt
-push argument 0
-push argument 2
-add
-push constant 511
-gt
-or
-push argument 1
-push argument 2
-sub
-push constant 0
-lt
-or
-push argument 1
-push argument 2
-add
-push constant 255
-gt
-or
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 13
-call Sys.error 1
-pop temp 0
-label IF_FALSE1
-push argument 2
-pop local 1
-push constant 1
-push argument 2
-sub
-pop local 2
-push argument 0
-push argument 1
-push local 0
-push local 1
-call Screen.drawSymetric 4
-pop temp 0
-label WHILE_EXP0
-push local 1
-push local 0
-gt
-not
-if-goto WHILE_END0
-push local 2
-push constant 0
-lt
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 2
-push constant 2
-push local 0
-call Math.multiply 2
-add
-push constant 3
-add
-pop local 2
-goto IF_END2
-label IF_FALSE2
-push local 2
-push constant 2
-push local 0
-push local 1
-sub
-call Math.multiply 2
-add
-push constant 5
-add
-pop local 2
-push local 1
-push constant 1
-sub
-pop local 1
-label IF_END2
-push local 0
-push constant 1
-add
-pop local 0
-push argument 0
-push argument 1
-push local 0
-push local 1
-call Screen.drawSymetric 4
-pop temp 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
diff --git a/tools/OS/String.vm b/tools/OS/String.vm
deleted file mode 100644
index 9b7577e..0000000
--- a/tools/OS/String.vm
+++ /dev/null
@@ -1,393 +0,0 @@
-function String.new 0
-push constant 3
-call Memory.alloc 1
-pop pointer 0
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 14
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 0
-push constant 0
-gt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push argument 0
-call Array.new 1
-pop this 1
-label IF_FALSE1
-push argument 0
-pop this 0
-push constant 0
-pop this 2
-push pointer 0
-return
-function String.dispose 0
-push argument 0
-pop pointer 0
-push this 0
-push constant 0
-gt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push this 1
-call Array.dispose 1
-pop temp 0
-label IF_FALSE0
-push pointer 0
-call Memory.deAlloc 1
-pop temp 0
-push constant 0
-return
-function String.length 0
-push argument 0
-pop pointer 0
-push this 2
-return
-function String.charAt 0
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-lt
-push argument 1
-push this 2
-gt
-or
-push argument 1
-push this 2
-eq
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 15
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push this 1
-add
-pop pointer 1
-push that 0
-return
-function String.setCharAt 0
-push argument 0
-pop pointer 0
-push argument 1
-push constant 0
-lt
-push argument 1
-push this 2
-gt
-or
-push argument 1
-push this 2
-eq
-or
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 16
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push argument 1
-push this 1
-add
-push argument 2
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 0
-return
-function String.appendChar 0
-push argument 0
-pop pointer 0
-push this 2
-push this 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 17
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push this 2
-push this 1
-add
-push argument 1
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push this 2
-push constant 1
-add
-pop this 2
-push pointer 0
-return
-function String.eraseLastChar 0
-push argument 0
-pop pointer 0
-push this 2
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 18
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push this 2
-push constant 1
-sub
-pop this 2
-push constant 0
-return
-function String.intValue 5
-push argument 0
-pop pointer 0
-push this 2
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 0
-return
-label IF_FALSE0
-push constant 0
-not
-pop local 3
-push constant 0
-push this 1
-add
-pop pointer 1
-push that 0
-push constant 45
-eq
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-not
-pop local 4
-push constant 1
-pop local 0
-label IF_FALSE1
-label WHILE_EXP0
-push local 0
-push this 2
-lt
-push local 3
-and
-not
-if-goto WHILE_END0
-push local 0
-push this 1
-add
-pop pointer 1
-push that 0
-push constant 48
-sub
-pop local 2
-push local 2
-push constant 0
-lt
-push local 2
-push constant 9
-gt
-or
-not
-pop local 3
-push local 3
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 1
-push constant 10
-call Math.multiply 2
-push local 2
-add
-pop local 1
-push local 0
-push constant 1
-add
-pop local 0
-label IF_FALSE2
-goto WHILE_EXP0
-label WHILE_END0
-push local 4
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push local 1
-neg
-pop local 1
-label IF_FALSE3
-push local 1
-return
-function String.setInt 4
-push argument 0
-pop pointer 0
-push this 0
-push constant 0
-eq
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 19
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-push constant 6
-call Array.new 1
-pop local 2
-push argument 1
-push constant 0
-lt
-if-goto IF_TRUE1
-goto IF_FALSE1
-label IF_TRUE1
-push constant 0
-not
-pop local 3
-push argument 1
-neg
-pop argument 1
-label IF_FALSE1
-push argument 1
-pop local 1
-label WHILE_EXP0
-push local 1
-push constant 0
-gt
-not
-if-goto WHILE_END0
-push argument 1
-push constant 10
-call Math.divide 2
-pop local 1
-push local 0
-push local 2
-add
-push constant 48
-push argument 1
-push local 1
-push constant 10
-call Math.multiply 2
-sub
-add
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 1
-add
-pop local 0
-push local 1
-pop argument 1
-goto WHILE_EXP0
-label WHILE_END0
-push local 3
-if-goto IF_TRUE2
-goto IF_FALSE2
-label IF_TRUE2
-push local 0
-push local 2
-add
-push constant 45
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push local 0
-push constant 1
-add
-pop local 0
-label IF_FALSE2
-push this 0
-push local 0
-lt
-if-goto IF_TRUE3
-goto IF_FALSE3
-label IF_TRUE3
-push constant 19
-call Sys.error 1
-pop temp 0
-label IF_FALSE3
-push local 0
-push constant 0
-eq
-if-goto IF_TRUE4
-goto IF_FALSE4
-label IF_TRUE4
-push constant 0
-push this 1
-add
-push constant 48
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push constant 1
-pop this 2
-goto IF_END4
-label IF_FALSE4
-push constant 0
-pop this 2
-label WHILE_EXP1
-push this 2
-push local 0
-lt
-not
-if-goto WHILE_END1
-push this 2
-push this 1
-add
-push local 0
-push this 2
-push constant 1
-add
-sub
-push local 2
-add
-pop pointer 1
-push that 0
-pop temp 0
-pop pointer 1
-push temp 0
-pop that 0
-push this 2
-push constant 1
-add
-pop this 2
-goto WHILE_EXP1
-label WHILE_END1
-label IF_END4
-push local 2
-call Array.dispose 1
-pop temp 0
-push constant 0
-return
-function String.newLine 0
-push constant 128
-return
-function String.backSpace 0
-push constant 129
-return
-function String.doubleQuote 0
-push constant 34
-return
diff --git a/tools/OS/Sys.vm b/tools/OS/Sys.vm
deleted file mode 100644
index 3ed7c0c..0000000
--- a/tools/OS/Sys.vm
+++ /dev/null
@@ -1,84 +0,0 @@
-function Sys.init 0
-call Memory.init 0
-pop temp 0
-call Math.init 0
-pop temp 0
-call Screen.init 0
-pop temp 0
-call Output.init 0
-pop temp 0
-call Keyboard.init 0
-pop temp 0
-call Main.main 0
-pop temp 0
-call Sys.halt 0
-pop temp 0
-push constant 0
-return
-function Sys.halt 0
-label WHILE_EXP0
-push constant 0
-not
-not
-if-goto WHILE_END0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Sys.wait 1
-push argument 0
-push constant 0
-lt
-if-goto IF_TRUE0
-goto IF_FALSE0
-label IF_TRUE0
-push constant 1
-call Sys.error 1
-pop temp 0
-label IF_FALSE0
-label WHILE_EXP0
-push argument 0
-push constant 0
-gt
-not
-if-goto WHILE_END0
-push constant 50
-pop local 0
-label WHILE_EXP1
-push local 0
-push constant 0
-gt
-not
-if-goto WHILE_END1
-push local 0
-push constant 1
-sub
-pop local 0
-goto WHILE_EXP1
-label WHILE_END1
-push argument 0
-push constant 1
-sub
-pop argument 0
-goto WHILE_EXP0
-label WHILE_END0
-push constant 0
-return
-function Sys.error 0
-push constant 3
-call String.new 1
-push constant 69
-call String.appendChar 2
-push constant 82
-call String.appendChar 2
-push constant 82
-call String.appendChar 2
-call Output.printString 1
-pop temp 0
-push argument 0
-call Output.printInt 1
-pop temp 0
-call Sys.halt 0
-pop temp 0
-push constant 0
-return
diff --git a/tools/TextComparer.bat b/tools/TextComparer.bat
deleted file mode 100644
index a036d00..0000000
--- a/tools/TextComparer.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-rem $Id: TextComparer.bat,v 1.2 2014/05/10 00:52:43 marka Exp $
-rem mark.armbrust@pobox.com
-
-setlocal
-if not "%3"=="" goto :USAGE
-if "%1"=="/?" goto :USAGE
-if not "%~1"=="" (
- set "_arg1=%~f1"
-)
-if not "%~2"=="" (
- set "_arg2=%~f2"
-)
-pushd "%~dp0"
-if NOT "%~1"=="" (
- if NOT "%~2"=="" (
- java -classpath "%CLASSPATH%;bin/classes" TextComparer ^
- "%_arg1%" "%_arg2%"
- popd
- exit /B
- )
-)
-:USAGE
-echo Usage:
-echo TextComparer FILE1 FILE2 Compares FILE1 and FILE2. The success
-echo message or the first miscompared line
-echo is printed to the command console.
-popd
diff --git a/tools/TextComparer.sh b/tools/TextComparer.sh
deleted file mode 100755
index c8b08af..0000000
--- a/tools/TextComparer.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env sh
-
-# $Id: TextComparer.sh,v 1.1 2014/06/17 21:14:01 marka Exp $
-# mark.armbrust@pobox.com
-
-# User's CDPATH can interfere with cd in this script
-unset CDPATH
-# Get the true name of this script
-script="`test -L "$0" && readlink -n "$0" || echo "$0"`"
-dir="$PWD"
-cd "`dirname "$script"`"
-if [ \( $# -ne 2 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ]
-then
- # print usage
- echo "Usage:"
- echo " `basename "$0"` FILE1 FILE2 Compares FILE1 and FILE2. The success"
- echo " message or the first miscompared line"
- echo " is printed to the command console."
-else
- # Convert arg1 to an absolute path
- if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg1="$1"
- else
- arg1="$dir/$1"
- fi
- # Convert arg2 to an absolute path
- if [ `echo "$2" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg2="$2"
- else
- arg2="$dir/$2"
- fi
-# echo Comparing "$arg1" "$arg2"
- java -classpath "${CLASSPATH}:bin/classes" TextComparer "$arg1" "$arg2"
-fi
diff --git a/tools/VMEmulator.bat b/tools/VMEmulator.bat
deleted file mode 100644
index 1b15b72..0000000
--- a/tools/VMEmulator.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-rem $Id: VMEmulator.bat,v 1.3 2014/05/10 00:51:55 marka Exp $
-rem mark.armbrust@pobox.com
-
-setlocal
-if not "%2"=="" goto :USAGE
-if "%~1"=="/?" (
-:USAGE
- echo Usage:
- echo VMEmulator Starts the VM Emulator in interactive mode.
- echo VMEmulator FILE.tst Starts the VM Emulator and runs the FILE.tst test
- echo script. The success/failure message is
- echo printed to the command console.
- exit -b
-)
-if not "%~1"=="" (
- set "_arg1=%~f1"
-)
-pushd "%~dp0"
-if "%~1"=="" (
- start javaw -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^
- VMEmulatorMain
-) else (
-rem echo Running "%_arg1%"
- java -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^
- VMEmulatorMain "%_arg1%"
-)
-popd
diff --git a/tools/VMEmulator.sh b/tools/VMEmulator.sh
deleted file mode 100755
index 48f4f0f..0000000
--- a/tools/VMEmulator.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env sh
-
-# $Id: VMEmulator.sh,v 1.1 2014/06/17 21:14:01 marka Exp $
-# mark.armbrust@pobox.com
-
-# User's CDPATH can interfere with cd in this script
-unset CDPATH
-# Get the true name of this script
-script="`test -L "$0" && readlink -n "$0" || echo "$0"`"
-dir="$PWD"
-cd "`dirname "$script"`"
-if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ]
-then
- echo "Usage:"
- echo " `basename "$0"` Starts the VM Emulator in interactive mode."
- echo " `basename "$0"` FILE.tst Starts the VM Emulator and runs the FILE.tst test"
- echo " script. The success/failure message is"
- echo " printed to the command console."
-elif [ $# -eq 0 ]
-then
- # Run VM emulator in interactive mode
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" VMEmulatorMain &
-else
- # Convert arg1 to an absolute path and run VM emulator with arg1
- if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ]
- then
- arg1="$1"
- else
- arg1="${dir}/$1"
- fi
-# echo Running "$arg1"
- java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" VMEmulatorMain "$arg1"
-fi
diff --git a/tools/bin/classes/CPUEmulatorMain.class b/tools/bin/classes/CPUEmulatorMain.class
deleted file mode 100644
index 2c5b68f..0000000
--- a/tools/bin/classes/CPUEmulatorMain.class
+++ /dev/null
Binary files differ
diff --git a/tools/bin/classes/HackAssemblerMain.class b/tools/bin/classes/HackAssemblerMain.class
deleted file mode 100644
index b912391..0000000
--- a/tools/bin/classes/HackAssemblerMain.class
+++ /dev/null
Binary files differ
diff --git a/tools/bin/classes/HardwareSimulatorMain.class b/tools/bin/classes/HardwareSimulatorMain.class
deleted file mode 100644
index 5786077..0000000
--- a/tools/bin/classes/HardwareSimulatorMain.class
+++ /dev/null
Binary files differ
diff --git a/tools/bin/classes/TextComparer.class b/tools/bin/classes/TextComparer.class
deleted file mode 100644
index f2e076e..0000000
--- a/tools/bin/classes/TextComparer.class
+++ /dev/null
Binary files differ
diff --git a/tools/bin/classes/VMEmulatorMain.class b/tools/bin/classes/VMEmulatorMain.class
deleted file mode 100644
index aa6b7ff..0000000
--- a/tools/bin/classes/VMEmulatorMain.class
+++ /dev/null
Binary files differ
diff --git a/tools/bin/help/asmAbout.html b/tools/bin/help/asmAbout.html
deleted file mode 100644
index 919e539..0000000
--- a/tools/bin/help/asmAbout.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 10">
-<meta name=Originator content="Microsoft Word 10">
-<link rel=File-List href="asmAbout_files/filelist.xml">
-<title>About Assembler</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0in 5.4pt 0in 5.4pt;
- mso-para-margin:0in;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>Assembler, Version 2.5</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'>This program is
-part of www.nand2tetris.org<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>and</span>
-the book &quot;The Elements of Computing Systems&quot;<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>by</span>
-Nisan and Schocken, MIT Press.</p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/asmUsage.html b/tools/bin/help/asmUsage.html
deleted file mode 100644
index 1e18db2..0000000
--- a/tools/bin/help/asmUsage.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 11">
-<meta name=Originator content="Microsoft Word 11">
-<link rel=File-List href="asmUsage_files/filelist.xml">
-<title>Usage instruction and tips can be found in:</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:ValidateAgainstSchemas/>
- <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
- <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
- <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
- </w:LatentStyles>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:612.0pt 792.0pt;
- margin:72.0pt 90.0pt 72.0pt 90.0pt;
- mso-header-margin:36.0pt;
- mso-footer-margin:36.0pt;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
- mso-para-margin:0cm;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";
- mso-ansi-language:#0400;
- mso-fareast-language:#0400;
- mso-bidi-language:#0400;}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:36.0pt'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Usage instruction and tips can be found in:</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The Assembler Tutorial</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>&nbsp;</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Available in www.nand2tetris.org</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>And in relevant book chapters from </span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The Elements of Computing Systems,<o:p></o:p></span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>by Noam Nisan and Shimon Schocken</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>MIT Press</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/compiler.txt b/tools/bin/help/compiler.txt
deleted file mode 100644
index 07bbba9..0000000
--- a/tools/bin/help/compiler.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Jack Compiler, Version 2.5
-
-This program is part of www.nand2tetris.org
-and the book "The Elements of Computing Systems"
-by Nisan and Schocken, MIT Press.
-
-Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski
-
-Usage instruction and tips can be found in the relevant book chapters.
diff --git a/tools/bin/help/cpuAbout.html b/tools/bin/help/cpuAbout.html
deleted file mode 100644
index f806d5e..0000000
--- a/tools/bin/help/cpuAbout.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 10">
-<meta name=Originator content="Microsoft Word 10">
-<link rel=File-List href="cpuAbout_files/filelist.xml">
-<title>About CPU Emulator</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0in 5.4pt 0in 5.4pt;
- mso-para-margin:0in;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>CPU Emulator, Version 2.5</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'>This program is
-part of www.nand2tetris.org<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>and</span>
-the book &quot;The Elements of Computing Systems&quot;<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>by</span>
-Nisan and Schocken, MIT Press.</p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/cpuUsage.html b/tools/bin/help/cpuUsage.html
deleted file mode 100644
index 7e69482..0000000
--- a/tools/bin/help/cpuUsage.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 11">
-<meta name=Originator content="Microsoft Word 11">
-<link rel=File-List href="cpuUsage_files/filelist.xml">
-<title>Usage instruction and tips can be found in:</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:ValidateAgainstSchemas/>
- <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
- <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
- <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
- </w:LatentStyles>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:612.0pt 792.0pt;
- margin:72.0pt 90.0pt 72.0pt 90.0pt;
- mso-header-margin:36.0pt;
- mso-footer-margin:36.0pt;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
- mso-para-margin:0cm;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";
- mso-ansi-language:#0400;
- mso-fareast-language:#0400;
- mso-bidi-language:#0400;}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:36.0pt'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Usage instruction and tips can be found in:</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The CPU Emulator Tutorial</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>&nbsp;</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Available in www.nand2tetris.org</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>And in relevant book chapters from </span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The Elements of Computing Systems,<o:p></o:p></span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>by Noam Nisan and Shimon Schocken</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>MIT Press</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/hwAbout.html b/tools/bin/help/hwAbout.html
deleted file mode 100644
index 67ad89b..0000000
--- a/tools/bin/help/hwAbout.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 10">
-<meta name=Originator content="Microsoft Word 10">
-<link rel=File-List href="hwAbout_files/filelist.xml">
-<title>About Hardware Simulator</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0in 5.4pt 0in 5.4pt;
- mso-para-margin:0in;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>Hardware Simulator, Version 2.5</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'>This program is
-part of www.nand2tetris.org<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>and</span>
-the book &quot;The Elements of Computing Systems&quot;<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>by</span>
-Nisan and Schocken, MIT Press.</p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/hwUsage.html b/tools/bin/help/hwUsage.html
deleted file mode 100644
index 4663f53..0000000
--- a/tools/bin/help/hwUsage.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 11">
-<meta name=Originator content="Microsoft Word 11">
-<link rel=File-List href="hwUsage_files/filelist.xml">
-<title>Usage instruction and tips can be found in:</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:ValidateAgainstSchemas/>
- <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
- <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
- <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
- </w:LatentStyles>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:612.0pt 792.0pt;
- margin:72.0pt 90.0pt 72.0pt 90.0pt;
- mso-header-margin:36.0pt;
- mso-footer-margin:36.0pt;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
- mso-para-margin:0cm;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";
- mso-ansi-language:#0400;
- mso-fareast-language:#0400;
- mso-bidi-language:#0400;}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:36.0pt'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Usage instruction and tips can be found in:</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The Hardware Simulator Tutorial</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>&nbsp;</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Available in www.nand2tetris.org</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>And in relevant book chapters from </span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The Elements of Computing Systems,<o:p></o:p></span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>by Noam Nisan and Shimon Schocken</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>MIT Press</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/vmAbout.html b/tools/bin/help/vmAbout.html
deleted file mode 100644
index c5b296a..0000000
--- a/tools/bin/help/vmAbout.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 11">
-<meta name=Originator content="Microsoft Word 11">
-<link rel=File-List href="vmAbout_files/filelist.xml">
-<title>About Virtual Machine Emulator</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:ValidateAgainstSchemas/>
- <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
- <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
- <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
- </w:LatentStyles>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-span.GramE
- {mso-style-name:"";
- mso-gram-e:yes;}
-@page Section1
- {size:612.0pt 792.0pt;
- margin:72.0pt 90.0pt 72.0pt 90.0pt;
- mso-header-margin:36.0pt;
- mso-footer-margin:36.0pt;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
- mso-para-margin:0cm;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";
- mso-ansi-language:#0400;
- mso-fareast-language:#0400;
- mso-bidi-language:#0400;}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:36.0pt'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>Virtual Machine Emulator, Version 2.5</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'>This program is
-part of www.nand2tetris.org<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>and</span>
-the book &quot;The Elements of Computing Systems&quot;<o:p></o:p></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span class=GramE>by</span>
-Nisan and Schocken, MIT Press.</p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Software Architects: Yaron Ukrainitz and Yannai A.
-Gonczarowski</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/help/vmUsage.html b/tools/bin/help/vmUsage.html
deleted file mode 100644
index 611662b..0000000
--- a/tools/bin/help/vmUsage.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 11">
-<meta name=Originator content="Microsoft Word 11">
-<link rel=File-List href="vmUsage_files/filelist.xml">
-<title>Usage instruction and tips can be found in:</title>
-<!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:GrammarState>Clean</w:GrammarState>
- <w:ValidateAgainstSchemas/>
- <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
- <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
- <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
- <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
- </w:WordDocument>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
- </w:LatentStyles>
-</xml><![endif]-->
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
- {margin:0cm;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:13.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:612.0pt 792.0pt;
- margin:72.0pt 90.0pt 72.0pt 90.0pt;
- mso-header-margin:36.0pt;
- mso-footer-margin:36.0pt;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
- table.MsoNormalTable
- {mso-style-name:"Table Normal";
- mso-tstyle-rowband-size:0;
- mso-tstyle-colband-size:0;
- mso-style-noshow:yes;
- mso-style-parent:"";
- mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
- mso-para-margin:0cm;
- mso-para-margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:10.0pt;
- font-family:"Times New Roman";
- mso-ansi-language:#0400;
- mso-fareast-language:#0400;
- mso-bidi-language:#0400;}
-</style>
-<![endif]-->
-</head>
-
-<body lang=EN-US style='tab-interval:36.0pt'>
-
-<div class=Section1>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Usage instruction and tips can be found in:</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The VM Emulator Tutorial</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>&nbsp;</span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>Available in www.nand2tetris.org</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>&nbsp;</span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>And in relevant book chapters from </span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><b><span
-style='font-size:12.0pt'>The Elements of Computing Systems,<o:p></o:p></span></b></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>by Noam Nisan and Shimon Schocken<b><o:p></o:p></b></span></p>
-
-<p class=MsoBodyText align=center style='text-align:center'><span
-style='font-size:12.0pt'>MIT Press</span></p>
-
-<p class=MsoNormal>&nbsp;</p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tools/bin/images/arrow2.gif b/tools/bin/images/arrow2.gif
deleted file mode 100644
index c744eab..0000000
--- a/tools/bin/images/arrow2.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/calculator2.gif b/tools/bin/images/calculator2.gif
deleted file mode 100644
index 834cb05..0000000
--- a/tools/bin/images/calculator2.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/cancel.gif b/tools/bin/images/cancel.gif
deleted file mode 100644
index a8509fa..0000000
--- a/tools/bin/images/cancel.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/chip.gif b/tools/bin/images/chip.gif
deleted file mode 100644
index fbfbb02..0000000
--- a/tools/bin/images/chip.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/clock2.gif b/tools/bin/images/clock2.gif
deleted file mode 100644
index addcf78..0000000
--- a/tools/bin/images/clock2.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/equal.gif b/tools/bin/images/equal.gif
deleted file mode 100644
index 3402556..0000000
--- a/tools/bin/images/equal.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/find.gif b/tools/bin/images/find.gif
deleted file mode 100644
index e3f4c9d..0000000
--- a/tools/bin/images/find.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/hex.gif b/tools/bin/images/hex.gif
deleted file mode 100644
index 68a851b..0000000
--- a/tools/bin/images/hex.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/keyboard.gif b/tools/bin/images/keyboard.gif
deleted file mode 100644
index 823aaf8..0000000
--- a/tools/bin/images/keyboard.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/ok.gif b/tools/bin/images/ok.gif
deleted file mode 100644
index fe6ed8d..0000000
--- a/tools/bin/images/ok.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/ok2.gif b/tools/bin/images/ok2.gif
deleted file mode 100644
index 083909b..0000000
--- a/tools/bin/images/ok2.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/open.gif b/tools/bin/images/open.gif
deleted file mode 100644
index f69a024..0000000
--- a/tools/bin/images/open.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/open2.gif b/tools/bin/images/open2.gif
deleted file mode 100644
index 2b94682..0000000
--- a/tools/bin/images/open2.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/opendoc.gif b/tools/bin/images/opendoc.gif
deleted file mode 100644
index e84f0d6..0000000
--- a/tools/bin/images/opendoc.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/redflag.gif b/tools/bin/images/redflag.gif
deleted file mode 100644
index 1b1a6b1..0000000
--- a/tools/bin/images/redflag.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/save.gif b/tools/bin/images/save.gif
deleted file mode 100644
index 7b5d5b9..0000000
--- a/tools/bin/images/save.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/scroll.gif b/tools/bin/images/scroll.gif
deleted file mode 100644
index e00a9a1..0000000
--- a/tools/bin/images/scroll.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/smallcancel.gif b/tools/bin/images/smallcancel.gif
deleted file mode 100644
index 1f8cddc..0000000
--- a/tools/bin/images/smallcancel.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/smallequal.gif b/tools/bin/images/smallequal.gif
deleted file mode 100644
index a1db606..0000000
--- a/tools/bin/images/smallequal.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/smallminus.gif b/tools/bin/images/smallminus.gif
deleted file mode 100644
index 06492f5..0000000
--- a/tools/bin/images/smallminus.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/smallnew.gif b/tools/bin/images/smallnew.gif
deleted file mode 100644
index c3137e5..0000000
--- a/tools/bin/images/smallnew.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/smallok.gif b/tools/bin/images/smallok.gif
deleted file mode 100644
index 9bef2b2..0000000
--- a/tools/bin/images/smallok.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/smallplus.gif b/tools/bin/images/smallplus.gif
deleted file mode 100644
index 9030b0b..0000000
--- a/tools/bin/images/smallplus.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/vcrfastforward.gif b/tools/bin/images/vcrfastforward.gif
deleted file mode 100644
index 11c7235..0000000
--- a/tools/bin/images/vcrfastforward.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/vcrforward.gif b/tools/bin/images/vcrforward.gif
deleted file mode 100644
index b58d649..0000000
--- a/tools/bin/images/vcrforward.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/vcrrewind.gif b/tools/bin/images/vcrrewind.gif
deleted file mode 100644
index e55b4d6..0000000
--- a/tools/bin/images/vcrrewind.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/images/vcrstop.gif b/tools/bin/images/vcrstop.gif
deleted file mode 100644
index abe2082..0000000
--- a/tools/bin/images/vcrstop.gif
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/AssemblerGUI.jar b/tools/bin/lib/AssemblerGUI.jar
deleted file mode 100644
index c40d455..0000000
--- a/tools/bin/lib/AssemblerGUI.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/Compilers.jar b/tools/bin/lib/Compilers.jar
deleted file mode 100644
index 9a78b05..0000000
--- a/tools/bin/lib/Compilers.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/Hack.jar b/tools/bin/lib/Hack.jar
deleted file mode 100644
index 9d57398..0000000
--- a/tools/bin/lib/Hack.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/HackGUI.jar b/tools/bin/lib/HackGUI.jar
deleted file mode 100644
index 22d4ff3..0000000
--- a/tools/bin/lib/HackGUI.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/Simulators.jar b/tools/bin/lib/Simulators.jar
deleted file mode 100644
index 72b5db7..0000000
--- a/tools/bin/lib/Simulators.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/SimulatorsGUI.jar b/tools/bin/lib/SimulatorsGUI.jar
deleted file mode 100644
index 4d36e64..0000000
--- a/tools/bin/lib/SimulatorsGUI.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/lib/TranslatorsGUI.jar b/tools/bin/lib/TranslatorsGUI.jar
deleted file mode 100644
index f29f926..0000000
--- a/tools/bin/lib/TranslatorsGUI.jar
+++ /dev/null
Binary files differ
diff --git a/tools/bin/scripts/defaultCPU.txt b/tools/bin/scripts/defaultCPU.txt
deleted file mode 100644
index 43b2720..0000000
--- a/tools/bin/scripts/defaultCPU.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-repeat {
- ticktock;
-} \ No newline at end of file
diff --git a/tools/bin/scripts/defaultHW.txt b/tools/bin/scripts/defaultHW.txt
deleted file mode 100644
index bdb2261..0000000
--- a/tools/bin/scripts/defaultHW.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-repeat {
- tick,
- tock;
-} \ No newline at end of file
diff --git a/tools/bin/scripts/defaultVM.txt b/tools/bin/scripts/defaultVM.txt
deleted file mode 100644
index dbc64c4..0000000
--- a/tools/bin/scripts/defaultVM.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-repeat {
- vmstep;
-} \ No newline at end of file
diff --git a/tools/builtInChips/ALU.class b/tools/builtInChips/ALU.class
deleted file mode 100644
index 03f95dc..0000000
--- a/tools/builtInChips/ALU.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/ALU.hdl b/tools/builtInChips/ALU.hdl
deleted file mode 100644
index e5fd1f0..0000000
--- a/tools/builtInChips/ALU.hdl
+++ /dev/null
@@ -1,55 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/ALU.hdl
-
-/**
- * The ALU. Computes one of the following functions:
- * x+y, x-y, y–x, 0, 1, -1, x, y, -x, -y, !x, !y,
- * x+1, y+1, x-1, y-1, x&y, x|y on two 16-bit inputs.
- * Which function to compute is determined by 6 input bits
- * denoted zx, nx, zy, ny, f, no.
- * The computed function's value is called "out".
- * In addition to computing out, the ALU computes two
- * 1-bit outputs called zr and ng:
- * if out == 0, zr = 1; otherwise zr = 0;
- * If out < 0, ng = 1; otherwise ng = 0.
- * The 6-bit combinations (zx,nx,zy,ny,f,no) and
- * their effect are documented in the book.
- */
-
-// Implementation: the ALU manipulates the x and y
-// inputs and then operates on the resulting values,
-// as follows:
-// if (zx == 1) sets x = 0 // 16-bit constant
-// if (nx == 1) sets x = ~x // bitwise "not"
-// if (zy == 1) sets y = 0 // 16-bit constant
-// if (ny == 1) sets y = ~y // bitwise "not"
-// if (f == 1) sets out = x + y // integer 2's-complement addition
-// if (f == 0) sets out = x & y // bitwise And
-// if (no == 1) sets out = ~out // bitwise Not
-// if (out == 0) sets zr = 1
-// if (out < 0) sets ng = 1
-
-
-CHIP ALU {
-
- IN // 16-bit inputs:
- x[16], y[16],
- // Control bits:
- zx, // Zero the x input
- nx, // Negate the x input
- zy, // Zero the y input
- ny, // Negate the y input
- f, // Function code: 1 for add, 0 for and
- no; // Negate the out output
-
- OUT // 16-bit output
- out[16],
-
- // ALU output flags
- zr, // 1 if out=0, 0 otherwise
- ng; // 1 if out<0, 0 otherwise
-
- BUILTIN ALU;
-}
diff --git a/tools/builtInChips/ARegister.class b/tools/builtInChips/ARegister.class
deleted file mode 100644
index ab9aadc..0000000
--- a/tools/builtInChips/ARegister.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/ARegister.hdl b/tools/builtInChips/ARegister.hdl
deleted file mode 100644
index 23aee73..0000000
--- a/tools/builtInChips/ARegister.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/ARegister.hdl
-
-/**
- * A 16-Bit register called "A Register".
- * If load[t-1]=1 then out[t] = in[t-1]
- * else out does not change (out[t] = out[t-1])
- *
- * This built-in chip implementation has the side effect of
- * providing a GUI representation of a 16-bit register
- * called "A register" (typically used to store an address).
- */
-
-CHIP ARegister {
-
- IN in[16], load;
- OUT out[16];
-
- BUILTIN ARegister;
- CLOCKED in, load;
-}
-
diff --git a/tools/builtInChips/Add16.class b/tools/builtInChips/Add16.class
deleted file mode 100644
index c3754ce..0000000
--- a/tools/builtInChips/Add16.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Add16.hdl b/tools/builtInChips/Add16.hdl
deleted file mode 100644
index a494af4..0000000
--- a/tools/builtInChips/Add16.hdl
+++ /dev/null
@@ -1,18 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Add16.hdl
-
-/*
- * Adds two 16-bit values.
- * The most significant carry bit is ignored.
- */
-
-CHIP Add16 {
-
- IN a[16], b[16];
- OUT out[16];
-
- BUILTIN Add16;
-}
-
diff --git a/tools/builtInChips/And.class b/tools/builtInChips/And.class
deleted file mode 100644
index 2c7492b..0000000
--- a/tools/builtInChips/And.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/And.hdl b/tools/builtInChips/And.hdl
deleted file mode 100644
index d2c48b5..0000000
--- a/tools/builtInChips/And.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/And.hdl
-
-/**
- * And gate: out = 1 if {a == 1 and b == 1}, 0 otherwise
- */
-
-CHIP And {
-
- IN a, b;
- OUT out;
-
- BUILTIN And;
-}
diff --git a/tools/builtInChips/And16.hdl b/tools/builtInChips/And16.hdl
deleted file mode 100644
index 4c71874..0000000
--- a/tools/builtInChips/And16.hdl
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/And16.hdl
-
-/**
- * 16-bit-wise And gate: for i = 0..15: out[i] = a[i] and b[i]
- */
-
-CHIP And16 {
-
- IN a[16], b[16];
- OUT out[16];
-
- BUILTIN And;
-}
-
diff --git a/tools/builtInChips/Bit.class b/tools/builtInChips/Bit.class
deleted file mode 100644
index 1e5a3c4..0000000
--- a/tools/builtInChips/Bit.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Bit.hdl b/tools/builtInChips/Bit.hdl
deleted file mode 100644
index a0a76bb..0000000
--- a/tools/builtInChips/Bit.hdl
+++ /dev/null
@@ -1,19 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Bit.hdl
-
-/**
- * 1-bit register.
- * If load[t] == 1 then out[t+1] = in[t]
- * else out[t+1] = out[t] (no change)
- */
-
-CHIP Bit {
-
- IN in, load;
- OUT out;
-
- BUILTIN Bit;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/DFF.class b/tools/builtInChips/DFF.class
deleted file mode 100644
index 49efcf1..0000000
--- a/tools/builtInChips/DFF.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/DFF.hdl b/tools/builtInChips/DFF.hdl
deleted file mode 100644
index c66b796..0000000
--- a/tools/builtInChips/DFF.hdl
+++ /dev/null
@@ -1,18 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/DFF.hdl
-
-/**
- * Data Flip-flop: out(t) = in(t-1)
- * where t is the current time unit, or clock cycle.
- */
-
-CHIP DFF {
-
- IN in;
- OUT out;
-
- BUILTIN DFF;
- CLOCKED in;
-}
diff --git a/tools/builtInChips/DMux.class b/tools/builtInChips/DMux.class
deleted file mode 100644
index 8cf4e0b..0000000
--- a/tools/builtInChips/DMux.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/DMux.hdl b/tools/builtInChips/DMux.hdl
deleted file mode 100644
index 80153d7..0000000
--- a/tools/builtInChips/DMux.hdl
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/DMux.hdl
-
-/**
- * Dmultiplexor.
- * {a,b} = {in,0} if sel == 0
- * {0,in} if sel == 1
- */
-
-
-CHIP DMux {
-
- IN in, sel;
- OUT a, b;
-
- BUILTIN DMux;
-}
-
diff --git a/tools/builtInChips/DMux4Way.class b/tools/builtInChips/DMux4Way.class
deleted file mode 100644
index ab72a17..0000000
--- a/tools/builtInChips/DMux4Way.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/DMux4Way.hdl b/tools/builtInChips/DMux4Way.hdl
deleted file mode 100644
index 110bb4e..0000000
--- a/tools/builtInChips/DMux4Way.hdl
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/DMux4Way.hdl
-
-/**
- * 4-way demultiplexor.
- * {a,b,c,d} = {in,0,0,0} if sel == 00
- * {0,in,0,0} if sel == 01
- * {0,0,in,0} if sel == 10
- * {0,0,0,in} if sel == 11
- */
-
-
-CHIP DMux4Way {
-
- IN in, sel[2];
- OUT a, b, c, d;
-
- BUILTIN DMux4Way;
-}
-
diff --git a/tools/builtInChips/DMux8Way.class b/tools/builtInChips/DMux8Way.class
deleted file mode 100644
index 80e7437..0000000
--- a/tools/builtInChips/DMux8Way.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/DMux8Way.hdl b/tools/builtInChips/DMux8Way.hdl
deleted file mode 100644
index c5536b8..0000000
--- a/tools/builtInChips/DMux8Way.hdl
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/DMux8Way.hdl
-
-/**
- * 8-way demultiplexor.
- * {a,b,c,d,e,f,g,h} = {in,0,0,0,0,0,0,0} if sel == 000
- * {0,in,0,0,0,0,0,0} if sel == 001
- * etc.
- * {0,0,0,0,0,0,0,in} if sel == 111
- */
-
-
-CHIP DMux8Way {
-
- IN in, sel[3];
- OUT a, b, c, d, e, f, g, h;
-
- BUILTIN DMux8Way;
-}
-
diff --git a/tools/builtInChips/DRegister.class b/tools/builtInChips/DRegister.class
deleted file mode 100644
index 74a713d..0000000
--- a/tools/builtInChips/DRegister.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/DRegister.hdl b/tools/builtInChips/DRegister.hdl
deleted file mode 100644
index 6c9a254..0000000
--- a/tools/builtInChips/DRegister.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of the materials accompanying the book
-// "The Elements of Computing Systems" by Nisan and Schocken,
-// MIT Press. Book site: www.idc.ac.il/tecs
-// File name: tools/builtIn/DRegister.hdl
-
-/**
- * A 16-Bit register called "D Register".
- * If load[t-1]=1 then out[t] = in[t-1]
- * else out does not change (out[t] = out[t-1])
- *
- * This built-in chip implementation has the side effect of
- * providing a GUI representation of a 16-bit register
- * called "D register" (typically used to store data).
- */
-
-CHIP DRegister {
-
- IN in[16], load;
- OUT out[16];
-
- BUILTIN DRegister;
- CLOCKED in, load;
-}
-
diff --git a/tools/builtInChips/FullAdder.class b/tools/builtInChips/FullAdder.class
deleted file mode 100644
index 2ed9ead..0000000
--- a/tools/builtInChips/FullAdder.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/FullAdder.hdl b/tools/builtInChips/FullAdder.hdl
deleted file mode 100644
index a4caa56..0000000
--- a/tools/builtInChips/FullAdder.hdl
+++ /dev/null
@@ -1,19 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/FullAdder.hdl
-
-/**
- * Full adder. Computes sum, the least significant bit of
- * a + b + c, and carry, the most significant bit of a + b + c.
- */
-
-CHIP FullAdder {
-
- IN a, b, c;
- OUT sum, // LSB of a + b + c
- carry; // MSB of a + b + c
-
- BUILTIN FullAdder;
-}
-
diff --git a/tools/builtInChips/HalfAdder.class b/tools/builtInChips/HalfAdder.class
deleted file mode 100644
index e7741ed..0000000
--- a/tools/builtInChips/HalfAdder.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/HalfAdder.hdl b/tools/builtInChips/HalfAdder.hdl
deleted file mode 100644
index 1591b96..0000000
--- a/tools/builtInChips/HalfAdder.hdl
+++ /dev/null
@@ -1,18 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/HalfAdder.hdl
-
-/**
- * Half adder. Computes sum, the least significnat bit of a + b,
- * and carry, the most significnat bit of a + b.
- */
-
-CHIP HalfAdder {
-
- IN a, b;
- OUT sum, // LSB of a + b
- carry; // MSB of a + b
-
- BUILTIN HalfAdder;
-}
diff --git a/tools/builtInChips/Inc16.class b/tools/builtInChips/Inc16.class
deleted file mode 100644
index b5b2aeb..0000000
--- a/tools/builtInChips/Inc16.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Inc16.hdl b/tools/builtInChips/Inc16.hdl
deleted file mode 100644
index 9d2d49b..0000000
--- a/tools/builtInChips/Inc16.hdl
+++ /dev/null
@@ -1,18 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Inc16.hdl
-
-/**
- * 16-bit incrementer. out = in + 1 (16-bit addition).
- * Overflow is neither detected nor handled.
- */
-
-CHIP Inc16 {
-
- IN in[16];
- OUT out[16];
-
- BUILTIN Inc16;
-}
-
diff --git a/tools/builtInChips/Keyboard.class b/tools/builtInChips/Keyboard.class
deleted file mode 100644
index 090b7cc..0000000
--- a/tools/builtInChips/Keyboard.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Keyboard.hdl b/tools/builtInChips/Keyboard.hdl
deleted file mode 100644
index 26ca5ed..0000000
--- a/tools/builtInChips/Keyboard.hdl
+++ /dev/null
@@ -1,23 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Keyboard.hdl
-
-/**
- * The keyboard (memory map).
- * Outputs the code of the currently pressed key.
- *
- * The built-in chip implementation has two side effects supplied
- * by the simulator. First, the keyboard memory map is continuously
- * being refreshed from the physical keyboard unit. Second, it
- * displays a keyboard icon and data entry GUI.
- */
-
-CHIP Keyboard {
-
- OUT out[16]; // The ASCII code of the pressed key,
- // or 0 if no key is currently pressed,
- // or one the special codes listed in Figure 5.5.
-
- BUILTIN Keyboard;
-}
diff --git a/tools/builtInChips/Mux.class b/tools/builtInChips/Mux.class
deleted file mode 100644
index 75c6645..0000000
--- a/tools/builtInChips/Mux.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Mux.hdl b/tools/builtInChips/Mux.hdl
deleted file mode 100644
index a0eefbc..0000000
--- a/tools/builtInChips/Mux.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Mux.hdl
-
-/**
- * Multiplexor. If sel == 1 then out = b else out = a.
- */
-
-CHIP Mux {
-
- IN a, b, sel;
- OUT out;
-
- BUILTIN Mux;
-}
diff --git a/tools/builtInChips/Mux16.hdl b/tools/builtInChips/Mux16.hdl
deleted file mode 100644
index 676d1f4..0000000
--- a/tools/builtInChips/Mux16.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Mux16.hdl
-
-/**
- * 16 bit multiplexor. If sel == 1 then out = b else out = a.
- */
-
-CHIP Mux16 {
-
- IN a[16], b[16], sel;
- OUT out[16];
-
- BUILTIN Mux;
-}
diff --git a/tools/builtInChips/Mux4Way16.class b/tools/builtInChips/Mux4Way16.class
deleted file mode 100644
index b2e2ed7..0000000
--- a/tools/builtInChips/Mux4Way16.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Mux4Way16.hdl b/tools/builtInChips/Mux4Way16.hdl
deleted file mode 100644
index 9929e82..0000000
--- a/tools/builtInChips/Mux4Way16.hdl
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Mux4Way16.hdl
-
-/**
- * 4-way 16-bit multiplexor.
- * out = a if sel == 00
- * b if sel == 01
- * c if sel == 10
- * d if sel == 11
- */
-
-
-CHIP Mux4Way16 {
-
- IN a[16], b[16], c[16], d[16], sel[2];
- OUT out[16];
-
- BUILTIN Mux4Way16;
-}
diff --git a/tools/builtInChips/Mux8Way16.class b/tools/builtInChips/Mux8Way16.class
deleted file mode 100644
index d8040ef..0000000
--- a/tools/builtInChips/Mux8Way16.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Mux8Way16.hdl b/tools/builtInChips/Mux8Way16.hdl
deleted file mode 100644
index dc16861..0000000
--- a/tools/builtInChips/Mux8Way16.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Mux8Way16.hdl
-
-/**
- * 8-way 16-bit multiplexor.
- * out = a if sel == 000
- * b if sel == 001
- * etc.
- * h if sel == 111
- */
-
-
-CHIP Mux8Way16 {
-
- IN a[16], b[16], c[16], d[16],
- e[16], f[16], g[16], h[16],
- sel[3];
-
- OUT out[16];
-
- BUILTIN Mux8Way16;
-} \ No newline at end of file
diff --git a/tools/builtInChips/Nand.class b/tools/builtInChips/Nand.class
deleted file mode 100644
index 4b429ba..0000000
--- a/tools/builtInChips/Nand.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Nand.hdl b/tools/builtInChips/Nand.hdl
deleted file mode 100644
index ae0204e..0000000
--- a/tools/builtInChips/Nand.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Nand.hdl
-
-/**
- * Nand gate: out = a Nand b.
- */
-
-CHIP Nand {
-
- IN a, b;
- OUT out;
-
- BUILTIN Nand;
-}
diff --git a/tools/builtInChips/Not.class b/tools/builtInChips/Not.class
deleted file mode 100644
index 4726b67..0000000
--- a/tools/builtInChips/Not.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Not.hdl b/tools/builtInChips/Not.hdl
deleted file mode 100644
index 5b9d897..0000000
--- a/tools/builtInChips/Not.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Not.hdl
-
-/**
- * Not gate: out = not in
- */
-
-CHIP Not {
-
- IN in;
- OUT out;
-
- BUILTIN Not;
-} \ No newline at end of file
diff --git a/tools/builtInChips/Not16.class b/tools/builtInChips/Not16.class
deleted file mode 100644
index ff3e68f..0000000
--- a/tools/builtInChips/Not16.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Not16.hdl b/tools/builtInChips/Not16.hdl
deleted file mode 100644
index c50dab9..0000000
--- a/tools/builtInChips/Not16.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Not16.hdl
-
-/**
- * 16-bit Not gate: for i = 0..15: out[i] = not in[i]
- */
-
-CHIP Not16 {
-
- IN in[16];
- OUT out[16];
-
- BUILTIN Not16;
-} \ No newline at end of file
diff --git a/tools/builtInChips/Or.class b/tools/builtInChips/Or.class
deleted file mode 100644
index a5b64f9..0000000
--- a/tools/builtInChips/Or.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Or.hdl b/tools/builtInChips/Or.hdl
deleted file mode 100644
index 4a3f14b..0000000
--- a/tools/builtInChips/Or.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Or.hdl
-
-/**
- * Or gate: out = 1 if {a == 1 or b == 1}, 0 otherwise
- */
-
-CHIP Or {
-
- IN a, b;
- OUT out;
-
- BUILTIN Or;
-}
diff --git a/tools/builtInChips/Or16.hdl b/tools/builtInChips/Or16.hdl
deleted file mode 100644
index 6c124e8..0000000
--- a/tools/builtInChips/Or16.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Or16.hdl
-
-/**
- * 16-bit bitwise Or gate: for i = 0..15 out[i] = a[i] or b[i].
- */
-
-CHIP Or16 {
-
- IN a[16], b[16];
- OUT out[16];
-
- BUILTIN Or;
-}
diff --git a/tools/builtInChips/Or8Way.class b/tools/builtInChips/Or8Way.class
deleted file mode 100644
index 104804b..0000000
--- a/tools/builtInChips/Or8Way.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Or8Way.hdl b/tools/builtInChips/Or8Way.hdl
deleted file mode 100644
index dccd61d..0000000
--- a/tools/builtInChips/Or8Way.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Or8Way.hdl
-
-/**
- * 8-way Or gate: out = in[0] or in[1] or ... or in[7].
- */
-
-CHIP Or8Way {
-
- IN in[8];
- OUT out;
-
- BUILTIN Or8Way;
-}
diff --git a/tools/builtInChips/PC.class b/tools/builtInChips/PC.class
deleted file mode 100644
index 1e6ada1..0000000
--- a/tools/builtInChips/PC.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/PC.hdl b/tools/builtInChips/PC.hdl
deleted file mode 100644
index f102d99..0000000
--- a/tools/builtInChips/PC.hdl
+++ /dev/null
@@ -1,22 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/PC.hdl
-
-/**
- * 16-bit counter with load and reset controls.
- *
- * If reset(t-1) then out(t) = 0
- * else if load(t-1) then out(t) = in(t-1)
- * else if inc(t-1) then out(t) = out(t-1) + 1 (integer addition)
- * else out(t) = out(t-1)
- */
-
-CHIP PC {
-
- IN in[16], load, inc, reset;
- OUT out[16];
-
- BUILTIN PC;
- CLOCKED in, load, inc, reset;
-}
diff --git a/tools/builtInChips/RAM.class b/tools/builtInChips/RAM.class
deleted file mode 100644
index e17050f..0000000
--- a/tools/builtInChips/RAM.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/RAM16K.class b/tools/builtInChips/RAM16K.class
deleted file mode 100644
index 2f1e3fe..0000000
--- a/tools/builtInChips/RAM16K.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/RAM16K.hdl b/tools/builtInChips/RAM16K.hdl
deleted file mode 100644
index 7031bf9..0000000
--- a/tools/builtInChips/RAM16K.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/RAM16K.hdl
-
-/**
- * Memory of 16K registers, each 16-bit wide.
- * The chip facilitates read and write operations, as follows:
- * Read: out(t) = RAM16K[address(t)](t)
- * Write: If load(t-1) then RAM16K[address(t-1)](t) = in(t-1)
- * In words: the chip always outputs the value stored at the memory
- * location specified by address. If load=1, the in value is loaded
- * into the memory location specified by address. This value becomes
- * available through the out output starting from the next time step.
- */
-
-CHIP RAM16K {
-
- IN in[16], load, address[14];
- OUT out[16];
-
- BUILTIN RAM16K;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/RAM4K.class b/tools/builtInChips/RAM4K.class
deleted file mode 100644
index 164ebf8..0000000
--- a/tools/builtInChips/RAM4K.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/RAM4K.hdl b/tools/builtInChips/RAM4K.hdl
deleted file mode 100644
index 8f1b211..0000000
--- a/tools/builtInChips/RAM4K.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/RAM4K.hdl
-
-/**
- * Memory of 4K registers, each 16-bit wide.
- * The chip facilitates read and write operations, as follows:
- * Read: out(t) = RAM4K[address(t)](t)
- * Write: If load(t-1) then RAM4K[address(t-1)](t) = in(t-1)
- * In words: the chip always outputs the value stored at the memory
- * location specified by address. If load == 1, the in value is loaded
- * into the memory location specified by address. This value becomes
- * available through the out output starting from the next time step.
- */
-
-CHIP RAM4K {
-
- IN in[16], load, address[12];
- OUT out[16];
-
- BUILTIN RAM4K;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/RAM512.class b/tools/builtInChips/RAM512.class
deleted file mode 100644
index 69bff7a..0000000
--- a/tools/builtInChips/RAM512.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/RAM512.hdl b/tools/builtInChips/RAM512.hdl
deleted file mode 100644
index 2a2f433..0000000
--- a/tools/builtInChips/RAM512.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/RAM512.hdl
-
-/**
- * Memory of 512 registers, each 16-bit wide.
- * The chip facilitates read and write operations, as follows:
- * Read: out(t) = RAM512[address(t)](t)
- * Write: If load(t-1) then RAM512[address(t-1)](t) = in(t-1)
- * In words: the chip always outputs the value stored at the memory
- * location specified by address. If load == 1, the in value is loaded
- * into the memory location specified by address. This value becomes
- * available through the out output starting from the next time step.
- */
-
-CHIP RAM512 {
-
- IN in[16], load, address[9];
- OUT out[16];
-
- BUILTIN RAM512;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/RAM64.class b/tools/builtInChips/RAM64.class
deleted file mode 100644
index a1fe78a..0000000
--- a/tools/builtInChips/RAM64.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/RAM64.hdl b/tools/builtInChips/RAM64.hdl
deleted file mode 100644
index 6f32f47..0000000
--- a/tools/builtInChips/RAM64.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/RAM64.hdl
-
-/**
- * Memory of 64 registers, each 16-bit wide.
- * The chip facilitates read and write operations, as follows:
- * Read: out(t) = RAM64[address(t)](t)
- * Write: If load(t-1) then RAM64[address(t-1)](t) = in(t-1)
- * In words: the chip always outputs the value stored at the memory
- * location specified by address. If load == 1, the in value is loaded
- * into the memory location specified by address. This value becomes
- * available through the out output starting from the next time step.
- */
-
-CHIP RAM64 {
-
- IN in[16], load, address[6];
- OUT out[16];
-
- BUILTIN RAM64;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/RAM8.class b/tools/builtInChips/RAM8.class
deleted file mode 100644
index 88f106e..0000000
--- a/tools/builtInChips/RAM8.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/RAM8.hdl b/tools/builtInChips/RAM8.hdl
deleted file mode 100644
index c08d62c..0000000
--- a/tools/builtInChips/RAM8.hdl
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/RAM8.hdl
-
-/**
- * Memory of 8 registers, each 16-bit wide.
- * The chip facilitates read and write operations, as follows:
- * Read: out(t) = RAM8[address(t)](t)
- * Write: If load(t-1) then RAM8[address(t-1)](t) = in(t-1)
- * In words: the chip always outputs the value stored at the memory
- * location specified by address. If load == 1, the in value is loaded
- * into the memory location specified by address. This value becomes
- * available through the out output starting from the next time step.
- */
-
-CHIP RAM8 {
-
- IN in[16], load, address[3];
- OUT out[16];
-
- BUILTIN RAM8;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/ROM32K.class b/tools/builtInChips/ROM32K.class
deleted file mode 100644
index c4320d8..0000000
--- a/tools/builtInChips/ROM32K.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/ROM32K.hdl b/tools/builtInChips/ROM32K.hdl
deleted file mode 100644
index 929f824..0000000
--- a/tools/builtInChips/ROM32K.hdl
+++ /dev/null
@@ -1,30 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/ROM32K.hdl
-
-/**
- * Read-Only memory (ROM) of 16K registers, each 16-bit wide.
- * The chip is designed to facilitate data read, as follows:
- * out(t) = ROM32K[address(t)](t)
- * In words: the chip always outputs the value stored at the
- * memory location specified by address.
- *
- * The built-in chip implementation has a GUI side-effect,
- * showing an array-like component that displays the ROM's
- * contents. The ROM32K chip is supposed to be pre-loaded with
- * a machine language program. To that end, the built-in chip
- * implementation also knows how to handle the "ROM32K load Xxx"
- * script command, where Xxx is the name of a text file containing
- * a program written in the Hack machine language. When the
- * simulator encounters such a command in a test script, the code
- * found in the file is loaded into the simulated ROM32K unit.
- */
-
-CHIP ROM32K {
-
- IN address[15];
- OUT out[16];
-
- BUILTIN ROM32K;
-}
diff --git a/tools/builtInChips/Register.class b/tools/builtInChips/Register.class
deleted file mode 100644
index 3958fcd..0000000
--- a/tools/builtInChips/Register.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Register.hdl b/tools/builtInChips/Register.hdl
deleted file mode 100644
index 3b81e46..0000000
--- a/tools/builtInChips/Register.hdl
+++ /dev/null
@@ -1,19 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Register.hdl
-
-/**
- * 16-Bit register.
- * If load[t-1]=1 then out[t] = in[t-1]
- * else out does not change (out[t] = out[t-1])
- */
-
-CHIP Register {
-
- IN in[16], load;
- OUT out[16];
-
- BUILTIN Register;
- CLOCKED in, load;
-}
diff --git a/tools/builtInChips/RegisterWithGUI.class b/tools/builtInChips/RegisterWithGUI.class
deleted file mode 100644
index c80208c..0000000
--- a/tools/builtInChips/RegisterWithGUI.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Screen.class b/tools/builtInChips/Screen.class
deleted file mode 100644
index 100ed03..0000000
--- a/tools/builtInChips/Screen.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Screen.hdl b/tools/builtInChips/Screen.hdl
deleted file mode 100644
index 5e7837b..0000000
--- a/tools/builtInChips/Screen.hdl
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Screen.hdl
-
-/**
- * The Screen (memory map).
- * Functions exactly like a 16-bit 8K RAM:
- * 1. out(t)=Screen[address(t)](t)
- * 2. If load(t-1) then Screen[address(t-1)](t)=in(t-1)
- *
- * The built-in chip implementation has the side effect of continuously
- * refreshing a visual 256 by 512 black-and-white screen, simulated
- * by the simulator. Each row in the visual screen is represented
- * by 32 consecutive 16-bit words, starting at the top left corner
- * of the visual screen. Thus the pixel at row r from the top and
- * column c from the left (0<=r<=255, 0<=c<=511) reflects the c%16
- * bit (counting from LSB to MSB) of the word found in
- * Screen[r*32+c/16].
- */
-
-CHIP Screen {
-
- IN in[16], // what to write
- load, // write-enable bit
- address[13]; // where to read/write
- OUT out[16]; // Screen value at the given address
-
- BUILTIN Screen;
- CLOCKED in, load;
-}
-
-
-
- \ No newline at end of file
diff --git a/tools/builtInChips/Xor.class b/tools/builtInChips/Xor.class
deleted file mode 100644
index d99ad18..0000000
--- a/tools/builtInChips/Xor.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInChips/Xor.hdl b/tools/builtInChips/Xor.hdl
deleted file mode 100644
index 8452d73..0000000
--- a/tools/builtInChips/Xor.hdl
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: tools/builtIn/Xor.hdl
-
-/**
- * Exclusive-or gate: out = !(a == b).
- */
-
-CHIP Xor {
-
- IN a, b;
- OUT out;
-
- BUILTIN Xor;
-}
diff --git a/tools/builtInVMCode/Array.class b/tools/builtInVMCode/Array.class
deleted file mode 100644
index c76b652..0000000
--- a/tools/builtInVMCode/Array.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/JackOSClass.class b/tools/builtInVMCode/JackOSClass.class
deleted file mode 100644
index 25df72a..0000000
--- a/tools/builtInVMCode/JackOSClass.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/Keyboard.class b/tools/builtInVMCode/Keyboard.class
deleted file mode 100644
index 7366f75..0000000
--- a/tools/builtInVMCode/Keyboard.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/Math.class b/tools/builtInVMCode/Math.class
deleted file mode 100644
index 71aef91..0000000
--- a/tools/builtInVMCode/Math.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/Memory.class b/tools/builtInVMCode/Memory.class
deleted file mode 100644
index e9bb7ad..0000000
--- a/tools/builtInVMCode/Memory.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/Output.class b/tools/builtInVMCode/Output.class
deleted file mode 100644
index 65b25b7..0000000
--- a/tools/builtInVMCode/Output.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/Screen.class b/tools/builtInVMCode/Screen.class
deleted file mode 100644
index 8644e09..0000000
--- a/tools/builtInVMCode/Screen.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/String.class b/tools/builtInVMCode/String.class
deleted file mode 100644
index 98c7f58..0000000
--- a/tools/builtInVMCode/String.class
+++ /dev/null
Binary files differ
diff --git a/tools/builtInVMCode/Sys.class b/tools/builtInVMCode/Sys.class
deleted file mode 100644
index 0c15f1b..0000000
--- a/tools/builtInVMCode/Sys.class
+++ /dev/null
Binary files differ