PK pV6 META-INF/PK pV6|u|META-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.6.2 Created-By: 1.4.2_04-b05 (Sun Microsystems Inc.) Main-Class: angeldemo.Main X-COMMENT: Main-Class will be added automatically by build PK pV6 angeldemo/PK pV6wQQangeldemo/CornerInfo.class1@ *+ * , - . / 01 2 3 456eatenXs_Ljava/util/ArrayList; Signature*Ljava/util/ArrayList;eatenYs_sortedEatenYs_()VCodeLineNumberTableLocalVariableTablethisLangeldemo/CornerInfo; addSquare(II)VxIyindexsz getEatenXs()Ljava/util/ArrayList;,()Ljava/util/ArrayList; getEatenYsgetSortedEatenYs SourceFileCornerInfo.java java/util/ArrayList    78 9:java/lang/Integer ;8 <= >?angeldemo/CornerInfojava/lang/Objectsize()Iget(I)Ljava/lang/Object;intValuevalueOf(I)Ljava/lang/Integer;add(ILjava/lang/Object;)V! `&**Y*Y*Y% &n>*6*  * * >*  * . !" ##$)&5'A)C*[+a-m.4nnn l! c"#$/*1 %&$/*5 %'$/*9 %()PK pV6!angeldemo/GainFunction.class1 ^ _ ` a b c d e fg fhi j kl ^ m n opq rs n ft uv uw xyzxs_Ljava/util/ArrayList; Signature*Ljava/util/ArrayList;values_extras_ gradient1_I gradient2_ breakPoint_ lastIndex_.(Ljava/util/ArrayList;Ljava/util/ArrayList;I)VCodeLineNumberTableLocalVariableTablethisLangeldemo/GainFunction;xsvaluesgradientLocalVariableTypeTableX(Ljava/util/ArrayList;Ljava/util/ArrayList;I)VC(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;I)Vextras(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;I)VE(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;III)V gradient1 breakPoint gradient2(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;III)VZ(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Langeldemo/GainFunction;)VgradientSource(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Langeldemo/GainFunction;)VgetInterestingPoints()Ljava/util/ArrayList;,()Ljava/util/ArrayList;getValuesAtInterestingPointsgetExtrasAtInterestingPoints setIndexFor(I)VxindexszgetValue(I)Ix0y0 getExtraFortoString()Ljava/lang/String;sbLjava/lang/StringBuffer;ingetLargestBestX()IitLjava/util/Iterator;bestXbestY)Ljava/util/Iterator; SourceFileGainFunction.java ){  " &% $% '% (% #| }V ~java/lang/Integer V EFjava/lang/StringBuffer OP ,  - )F/  JKangeldemo/GainFunctionjava/lang/Object()Vjava/util/ArrayListsizeget(I)Ljava/lang/Object;intValueappend(C)Ljava/lang/StringBuffer;,(Ljava/lang/String;)Ljava/lang/StringBuffer;iterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;! !" !# !$%&%'%(% )*+#**+*,**Z**,EF GHIJ"K-*#./#0#1#2%3#0!#1! 4)5+)**+*,**Z**-*,"RS TUVW#X(Y-4)./)0)1)6)2%3 )0!)1!)6! 7)8++**+*,****-*,& ab cdef g%h*i-H+./+0+1+6+9%+:%+;%3 +0!+1!+6! <)=+4**+*,****-*,& qr stu v)w.x3y-44./4041464>/3 40!41!46! ?@A+/*,|- ./ BCA+/*,- ./ BDA+/*,- ./ BEF+g*=* ** > ** d*` *,: #$:@[af-*g./gG%bH%MI%JK+t* =>*'** =** >**dh`**dh`**dh`**dh`,.  "4<GOZ-*t./tG%mL% kM%NK+a!* *** , -!./!G%OP+YL+[W* >=e+(W+* W+W+* W*+W+* W+)W+W**+ Y*WJ+ Y*W+W+ Y*W+W+ Y*W+]W+,^%8?RY`sz-*./QRS%T%UV+@*L=>+,+ 6 * =*>,*  #14;>-4#G%@./8WX 6Y% 4Z%3 8W[\]PK pV6`V&&angeldemo/Game.class1 N                 ( + + $ + + $ + 6 5 5 5 = 5 = = @ @ @ @  $ + L eatenSquares_Langeldemo/SquareSet;evadedSquares_path_Langeldemo/Path;eatingHistory_Ljava/util/Stack; Signature%Ljava/util/Stack;actionHistory_&Ljava/util/Stack;EATI ConstantValueUPDATEADVANCE CHECKPOINT EMPTY_UPDATE()VCodeLineNumberTableLocalVariableTablethisLangeldemo/Game;eat(Langeldemo/Square;Z)ZsLangeldemo/Square; checkpointZupdate()Ljava/lang/String;updLjava/lang/String;advance setCheckpointrestoreCheckpointactiontypeactionItLjava/util/Iterator;eatItreplayLocalVariableTypeTable)Ljava/util/Iterator;(Ljava/util/Iterator; getGameRecordassbLjava/lang/StringBuffer;sitaitg%(Ljava/lang/String;Z)Langeldemo/Game;buf[CxycCeLjava/lang/Exception;filefailreaderLjava/io/BufferedReader; Exceptions SourceFile Game.java fg Z[ ^[ `[ b[ d[angeldemo/SquareSet OP QPangeldemo/Path f RSjava/util/Stack TU XU xg m t wg java/lang/Integer angeldemo/Game angeldemo/Square mn stjava/lang/RuntimeExceptionAarg! fjava/lang/StringBuffer [ , [ tjava/io/BufferedReaderjava/io/FileReader f    java/lang/String f java/lang/StringBuilder Mismatch   and   Missing space   f Unexpected character java/lang/Exception tjava/lang/Objectjava/io/FileNotFoundException(Langeldemo/Game;)Vcontains(Langeldemo/Square;)Zadd(Langeldemo/Square;)Vpush&(Ljava/lang/Object;)Ljava/lang/Object;valueOf(I)Ljava/lang/Integer; updatePathempty()Zpop()Ljava/lang/Object;intValue()Iiterator()Ljava/util/Iterator;java/util/IteratorhasNextnext(Ljava/lang/String;)Vappend(C)Ljava/lang/StringBuffer;x_(I)Ljava/lang/StringBuffer;,(Ljava/lang/String;)Ljava/lang/StringBuffer;y_getAngelPosition()Langeldemo/Square;toString(Ljava/io/Reader;)Vreadyreadlength([C)I([C)Vequals(Ljava/lang/Object;)Z-(Ljava/lang/String;)Ljava/lang/StringBuilder;(C)Ljava/lang/StringBuilder;parseInt(Ljava/lang/String;)I(II)V getMessage! N OPQPRSTUVWXUVYZ[\]^[\_`[\ab[\cd[\efghV*******Y *Y * Y* *Y*Yi2 %  &('3(?)J*U+j Vklmnh<* +** +* +*+W*Wi& . / 1234%5.6:7j <kl<op<qrsths+* L+*W*W+i;<=>?)@j+kl#uvwghF* *WiDEFj klxgh; *Wi L Mj  klygh**<**<*M*N Y!:,"k,#6-#$%WA &W2 '$  (Y)** * * **irP Q RS(T9WAXIYR[[\i]o^_`abcdefhinopqrj>iWz[kl{[A|}I~}RlA|I~thۻ+Y,L*M*N Y!:-"-#6;,#$:+(-./012/)-W%W`=+M-W' 3:+[-./012/]-W  +U-W+&1WN+4iR!*8>Ijs|jRI*op!p8z[kl}}!lhj Y!M5Y6Y*78N-9-:6Ub,,&:N;:-:?)(Y@YABCCDCCE*V(:-:6,#@YACFE:-:6-:6 (YG*:-:6)#@YACFE:-:6,$YHHI%WM,,', 3:+Y,:[-./012/]-WJ:-?3(Y@YABC4CDC=Y>CE*(Y@YAKCFE*9:(YM*,Li0&-17>GNYc &048AJlu|jGBY0ov7RuvvEvApJvuK&vrlPK pV64||angeldemo/GridPoint.class1   x_Iy_(II)VCodeLineNumberTableLocalVariableTablethisLangeldemo/GridPoint;xy SourceFileGridPoint.java   angeldemo/GridPointjava/lang/Object()V!  Y***   PK pV68نangeldemo/HelpWindow$1.class1"   this$0Langeldemo/HelpWindow;+(Langeldemo/HelpWindow;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLangeldemo/HelpWindow$1;x0Ljava/lang/String; SourceFileHelpWindow.javaEnclosingMethod    !angeldemo/HelpWindow$1java/awt/Buttonangeldemo/HelpWindow'(Ljava/lang/String;Ljava/lang/String;)V(Ljava/lang/String;)VaddActionListener"(Ljava/awt/event/ActionListener;)V   G*+*,**    PK pV6 nBangeldemo/HelpWindow$2.class1+     !"this$0Langeldemo/HelpWindow;(Langeldemo/HelpWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLangeldemo/HelpWindow$2; windowClosing(Ljava/awt/event/WindowEvent;)VeLjava/awt/event/WindowEvent; SourceFileHelpWindow.javaEnclosingMethod# $  %& '() *%angeldemo/HelpWindow$2java/awt/event/WindowAdapterangeldemo/HelpWindow'(Ljava/lang/String;Ljava/lang/String;)V()Vjava/awt/event/WindowEvent getWindow()Ljava/awt/Window;java/awt/Windowdispose   4 *+* '   <+ (  PK pV6 0==angeldemo/HelpWindow.class1b 12 3 4 56 1 78 19 :;> ? @A BCD E F G H IJKL'(Ljava/lang/String;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethisLangeldemo/HelpWindow;titleLjava/lang/String;txtpLjava/awt/Panel;textLjava/awt/TextArea;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileHelpWindow.java Mjava/awt/Color N OP QRjava/awt/BorderLayout STjava/awt/PanelSouth UVangeldemo/HelpWindow$1 InnerClassesOK W UXjava/awt/TextArea YCenterangeldemo/HelpWindow$2 Z [\ ]^ _` aMangeldemo/HelpWindowjava/awt/Framejava/awt/event/ActionListener()V(III)V setBackground(Ljava/awt/Color;)VsetTitle(Ljava/lang/String;)V setLayout(Ljava/awt/LayoutManager;)Vadd)(Ljava/awt/Component;Ljava/lang/Object;)V+(Langeldemo/HelpWindow;Ljava/lang/String;)V*(Ljava/awt/Component;)Ljava/awt/Component;(Ljava/lang/String;III)V(Langeldemo/HelpWindow;)VaddWindowListener"(Ljava/awt/event/WindowListener;)V setBounds(IIII)V setVisible(Z)Vdispose!}**Yȷ*+*Y Y N*- - Y*WY,:* *Y**,,* 6 (07F#S$[&g*w+|,!4}"#}$%}&%0M'(S*)*+,=* /0!"#-./0= PK pV6angeldemo/Main.class1I ()* +,- ./ 012 (3 45 6 789:()VCodeLineNumberTableLocalVariableTablethisLangeldemo/Main;main([Ljava/lang/String;)VeLjava/io/FileNotFoundException;args[Ljava/lang/String;fileLjava/lang/String;debugZiIn SourceFile Main.java -debug; <=angeldemo/MainWindow >java/io/FileNotFoundException? @Ajava/lang/StringBuilderCould not find game file ' BC' DEF GHangeldemo/Mainjava/lang/Objectjava/lang/Stringequals(Ljava/lang/Object;)Z(Ljava/lang/String;Z)Vjava/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V!3*   YL=*6>*2=*2LY+W#: Y  +  +586   !"%+%5(8&:'X)>:YV T!" N#$ P%$&'PK pV69G:angeldemo/MainWindow$1.class1+     !"this$0Langeldemo/MainWindow;(Langeldemo/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLangeldemo/MainWindow$1; windowClosing(Ljava/awt/event/WindowEvent;)VeLjava/awt/event/WindowEvent; SourceFileMainWindow.javaEnclosingMethod# $  %& '() *%angeldemo/MainWindow$1java/awt/event/WindowAdapterangeldemo/MainWindow(Ljava/lang/String;Z)V()Vjava/awt/event/WindowEvent getWindow()Ljava/awt/Window;java/awt/Windowdispose   4 *+* _   <+ `  PK pV6f00!angeldemo/MainWindow$Grid$1.class12 " # $ % & '() val$this$0Langeldemo/MainWindow;this$1+Grid InnerClassesLangeldemo/MainWindow$Grid;4(Langeldemo/MainWindow$Grid;Langeldemo/MainWindow;)VCodeLineNumberTableLocalVariableTablethisLangeldemo/MainWindow$Grid$1; mouseClicked(Ljava/awt/event/MouseEvent;)VeLjava/awt/event/MouseEvent; mousePressed mouseReleased SourceFileMainWindow.javaEnclosingMethod ,  - . / 0angeldemo/MainWindow$Grid$1java/awt/event/MouseAdapter1angeldemo/MainWindow$Grid(Langeldemo/MainWindow;)V()V onMouseClick onMousePressonMouseReleaseangeldemo/MainWindow   9*+*,* A *+   A *+   A *+     ! * PK pV6ӚY.GG!angeldemo/MainWindow$Grid$2.class1*    !"# val$this$0Langeldemo/MainWindow;this$1%Grid InnerClassesLangeldemo/MainWindow$Grid;4(Langeldemo/MainWindow$Grid;Langeldemo/MainWindow;)VCodeLineNumberTableLocalVariableTablethisLangeldemo/MainWindow$Grid$2; mouseDragged(Ljava/awt/event/MouseEvent;)VeLjava/awt/event/MouseEvent; SourceFileMainWindow.javaEnclosingMethod &  ' (angeldemo/MainWindow$Grid$2!java/awt/event/MouseMotionAdapter)angeldemo/MainWindow$Grid(Langeldemo/MainWindow;)V()VonMouseDraggedangeldemo/MainWindow  9*+*,* A *+      $ PK pV6+^"^"angeldemo/MainWindow$Grid.class1 e f  e e  e e + e e e   e e e  " " " " e  + + + +  7 +             e   e e  Q Q P  Q [ !" e# e$ e%&' centreSquare_Langeldemo/Square; squareSize_IcentreX_centreY_ dragStart_Ljava/awt/Point; oldCentre_this$0Langeldemo/MainWindow;(Langeldemo/MainWindow;)VCodeLineNumberTableLocalVariableTablethisGrid InnerClassesLangeldemo/MainWindow$Grid;paint(Ljava/awt/Graphics;)VgLjava/awt/Graphics;arLjava/awt/Rectangle;rectminXmaxXminYmaxY drawSquares(Ljava/awt/Graphics;IIII)V RectangleLangeldemo/SquareSet$Rectangle;sevadedZrectsLjava/lang/Iterable;itLjava/util/Iterator;it2LocalVariableTypeTable5Ljava/lang/Iterable;5Ljava/util/Iterator;(Ljava/util/Iterator; drawSquare(Ljava/awt/Graphics;IIIIZZ)Vxywheaten drawLinesi drawAngelxs[Iysdxdydird onMouseClick(Ljava/awt/event/MouseEvent;)VangelPosp mayEatBelowLjava/lang/String;exLjava/lang/Exception;eLjava/awt/event/MouseEvent;bummer(Ljava/lang/String;)Vtype onMousePressonMouseReleaseonMouseDraggedrepaint(Langeldemo/Square;)V SourceFileMainWindow.java pq r(angeldemo/Square r) gh ijangeldemo/MainWindow$Grid$1 r* +,angeldemo/MainWindow$Grid$2 -. /01 23 45 657 8j kj 9j lj :j j ;j j |< =>? @AB CDE FGH IJ KLangeldemo/SquareSet$Rectangle Mj Nj Oj Pj QRS TUjava/awt/Color rV W0 X0 YZ [0 \Z ]^_ `a bc dje fgangeldemo/Segment hj i0 jZ kl ml nZo pq rst u vwx yJ z{ |} ( ~( A (java/lang/Exceptionjava/lang/StringBuilder-An exception has occurred. The message was:  }- To help me track down the bug, please copy %the following record of the game and send it to : } }angeldemo/HelpWindowOoops! r You got the Angel to step on an  square. IThis was not supposed to be possible. There may be a bug in the program. KTo help me track it down, please copy the following record of the game and mn oh Zangeldemo/MainWindow$Gridjava/awt/Canvas()V(II)V4(Langeldemo/MainWindow$Grid;Langeldemo/MainWindow;)VaddMouseListener!(Ljava/awt/event/MouseListener;)VaddMouseMotionListener'(Ljava/awt/event/MouseMotionListener;)VGREENLjava/awt/Color;java/awt/GraphicssetColor(Ljava/awt/Color;)V getClipBounds()Ljava/awt/Rectangle; getBoundsjava/awt/Rectanglewidthheightx_y_angeldemo/MainWindowg_Langeldemo/Game;angeldemo/GameevadedSquares_Langeldemo/SquareSet;angeldemo/SquareSetgetFilledRectangles(IIII)Ljava/lang/Iterable;java/lang/Iterableiterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;minX_minY_maxX_maxY_eatingHistory_Ljava/util/Stack;java/util/Stackcontains(Langeldemo/Square;)Z(III)V DARK_GRAY LIGHT_GRAYfillRect(IIII)VBLACKdrawLinepath_Langeldemo/Path;angeldemo/PathgetAngelPosition()Langeldemo/Square; segments_Ljava/util/ArrayList;currentSegment_java/util/ArrayListget(I)Ljava/lang/Object; direction_YELLOWfillOval fillPolygon([I[II)V drawPolygondrawOvaljava/awt/event/MouseEvent getButton()IgetPoint()Ljava/awt/Point;java/awt/Pointdebug_ startButton_Ljava/awt/Button;java/awt/Button isEnabledeat(Langeldemo/Square;Z)Zupdate()Ljava/lang/String;advance eatenSquares_consumeappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getMessage getGameRecordtoString'(Ljava/lang/String;Ljava/lang/String;)V efghijkjljmnohpq rstu7*+**Y**Y*+ * Y*+ u )6v 7wz{|tj =+ +N*:*l*l*-*d*l`d6*--`*d*l``6**-d-d*l`d6**-d*l``6*+*+*+u: *Dcv\ wz}~jDxjcYj:j jt *:: =!":*+#$%#d`&$d`'*(): `!:     * *6 *+   'u>(4_bq{ !"#$%vz 4+Nh  wz}~jjjjqh qht$++Yd,.+-$++Ydd, +.+***dh`**`d*dhd*h*h/u* () *,#-&.+/@1G36vRwz}~jjjjtP+06\+***dh`***dhd***dh`***dhd16\+***dh`***dhd***dh`***dhd1u"9;<d;jAtBAGvHwz}~jjjj j|t'*23M**,*dh`>**,*dhd66666*24*256786     *6   *6  *`6  *`6+9+``1*`d6 *`d6 * *hl6 + h h`l`h h`l`  : Yh h`lOYh h`lOYh h`lO:  Yh h`lOYh h`lOYh h`lO:+ ; dl6  Yh h` lOYh h` lOYh h` lOYh h` lOYh  h` lOYh  h` lOY h h` lOY h h` lOYh h` lOY h h` lOY h h` lOY h h` lO:  Yh h` lOYh  h` lOYh h` lOYh h` lOY h h` lOYh h` lOYh h` lOY h h` lOYh h` lOY h h` lOY h  h` lOY h h` lO:+  ;++Ydd,+  <+9+h  h` l`h h` l  :++Ydd,+h  h` l`h h` l  =u(JK%L=M@NDOGPJQoR{STUVWXYZ[]^_`bdefNilm_3=MW^vj N?  wz}~h%j=zj@wjDsjGpjJmjoHj j j "j _X 3t\`+>+WX+?M*,@*d*l`>*,A*d*ld6,@*d,A*dY:*B*CD6*E|*B**FG*H*CD *I*23:*J* *KL** *ML*N+OBMQYRST,UTVTWTXT*YTZN[Y\-]W  Puv &>JMY\h  !T_vf 9hn&j>jhhT !>`wz`tAQYR^T+T_T`TaTXT*YTZM[Y\,]Wu5@v AwzA5 tc+>+W*+?b**c+Ou vwztA+>+W9*b2*b**c**c*H+Ou8<@vAwzAt*bz+?M,@*b@d*l>,A*bAd*l6**cd**c`*H*Y*cd*c`+Ou&  1X\z~v4 rn`j1Mjwztu=***+*dh`**+*dhd*`*`du <v=wz=hy"ex"  PK pV61Langeldemo/MainWindow.class1G m   l  l l l  l  l            l    l l 3 l 6 3 : : 6 @ l l l  F F F  L N  l   l    Z Z Y Z  N  N F  Grid InnerClassesg_Langeldemo/Game;grid_Langeldemo/MainWindow$Grid; startButton_Ljava/awt/Button;debug_Z(Ljava/lang/String;Z)VCodeLineNumberTableLocalVariableTablethisLangeldemo/MainWindow; replayGameLjava/lang/String;debug gridOuterLjava/awt/Panel;c1Ljava/awt/GridBagConstraints; gridInner but_pane2but_panebarLjava/awt/MenuBar;gameMenuLjava/awt/Menu;itemLjava/awt/MenuItem; Exceptions addButton5(Ljava/lang/String;Ljava/awt/Panel;)Ljava/awt/Button;textpanelconstrbuttonactionPerformed(Ljava/awt/event/ActionEvent;)VsexLjava/lang/Exception;eLjava/awt/event/ActionEvent; updateButton()VLangeldemo/Square;advance SourceFileMainWindow.java y  angeldemo/Game qr   wxAngel strategy demo   java/awt/BorderLayout java/awt/Color y angeldemo/MainWindow$Grid y st java/awt/Paneljava/awt/GridBagLayoutjava/awt/GridBagConstraintsjava/awt/Insets y    Center   EastNorthHistory AdvanceUpdateStart uvUndoZoom+Zoom-java/awt/MenuBar !" java/awt/MenuGame y #java/awt/MenuItemReset $% &Helpangeldemo/MainWindow$1 '( ) *+ ,java/awt/Button - . /0]Angel strategy demo v1.0 (C) 2007 Oddvar Kloster This program demonstrates a strategy that allows an Angel of power 2 to win in John Conway's Angel/Devil game. You can play the Devil, and the program will play the part of the Angel. For more information about the game and the strategy, see http://home.broadpark.no/~oddvark/angel/ To eat a square, click on it. Eaten squares are shown darker. The squares that are 'evaded'/'forbidden' by the Angel's strategy are coloured red. There are buttons to zoom in and out, and you can pan by dragging anywhere on the board. You are allowed a preparatory phase at the beginning of the game. Until you press the 'Start' button, the Angel will remain motionless, to give you a head start in building a trap. To prevent you from surrounding the Angel entirely, you may only eat squares north of the Angel in this phase.angeldemo/HelpWindow y1angeldemo/Square y2 3 4 5  Game history 60 7 80java/lang/Exceptionjava/lang/StringBuilder-An exception has occurred. The message was: 9: ;0- To help me track down the bug, please copy %the following record of the game and send it to : <0Ooops! = > ?@A BC D E+ 4Fangeldemo/MainWindowjava/awt/Framejava/awt/event/ActionListenerjava/io/FileNotFoundExceptionjava/lang/Stringequals(Ljava/lang/Object;)Zreplay%(Ljava/lang/String;Z)Langeldemo/Game;setTitle(Ljava/lang/String;)V setLayout(Ljava/awt/LayoutManager;)V(III)V setBackground(Ljava/awt/Color;)V(Langeldemo/MainWindow;)V LIGHT_GRAYLjava/awt/Color;(IIII)VinsetsLjava/awt/Insets;fillIweightxDweightyadd)(Ljava/awt/Component;Ljava/lang/Object;)VBLACK setMenuBar(Ljava/awt/MenuBar;)V (Ljava/awt/Menu;)Ljava/awt/Menu;addActionListener"(Ljava/awt/event/ActionListener;)V((Ljava/awt/MenuItem;)Ljava/awt/MenuItem;addWindowListener"(Ljava/awt/event/WindowListener;)V setBounds setVisible(Z)V gridwidthsetActionCommandjava/awt/event/ActionEventgetActionCommand()Ljava/lang/String;'(Ljava/lang/String;Ljava/lang/String;)V(II)V centreSquare_repaint setCheckpoint getGameRecordrestoreCheckpointupdateappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getMessagetoString squareSize_x_path_Langeldemo/Path;angeldemo/PathgetAngelPosition()Langeldemo/Square;y_ setEnabled(Langeldemo/Square;)V!lmnqrstuvwxyz{i *+*Y *+** * Y *Yȷ*Y**YN-YY:Y !"*-#$Y:Y%&-'Y*'Y: Y *($Y:)'Y*!**+W*,+W*-+W**.+/*0+W*1+W*2+W3Y4:*56Y78:  9W:Y;<:  *=  >W:Y*<:  *=  >W:Y?<:  *=  >W*@Y*AB*XXC*D|8 ! "$$&)(/):*N,Z-d/l0w123456789:;<>?@ABC$E+F4G=HFIIJUL^MgNpPyQRSTUVWXYZ[\^abc}p ~xlM yu b {AYN-E- -YFY+G:+H*I,-'|& fg hi!j+k1l7m>n}4A~AA9+v{" +J?KMLY?,MW+J;**Y*NYOP*Q*R+J.*S*T*Q+J*LYU*VMW+J0*W*R*Q+J,*S*T+J-Z*S*X *RMZY[\],^]_]`]a]*V]bNLYc-MW+J1j*Ydhd*PYe*Pe*fgedlde*PYh*Ph*fghdldh*R+J2q*de*Ydld*PYe*Pe*fged`e*PYh*Ph*fghd`h*RY|0s t&1AELMY`dhiu*7`  }4  ; ~ {r.*/*fgL*/+e+hi|-}.~{`***fgj*k**fgj|)} *~plo@PK pV6B{m,,angeldemo/Path.class1 a `  `    ` `              A ` `    H H `   .    9    ` 9 ` 9 `  ` 9 A K A H! H" 9# A A$ K% A&' N N( A) N*+, - . H/ 01 `2 03 04 5 K5 H678game_Langeldemo/Game; segments_Ljava/util/ArrayList; Signature*Ljava/util/ArrayList;currentSegment_IdistAlongSegment_(Langeldemo/Game;)VCodeLineNumberTableLocalVariableTablethisLangeldemo/Path;ggetAngelPosition()Langeldemo/Square;sLangeldemo/Segment;advance()VinextTurnIsClockwise()ZdirThisdirNextnextTurnIsCounterClockwiseretreatrecomputeInfoslendists2s1jsegItLjava/util/Iterator;neatItLocalVariableTypeTable)Ljava/util/Iterator;(Ljava/util/Iterator; updatePath()Ljava/lang/String;Langeldemo/Square;curfLangeldemo/GainFunction;bestXangelYminYmaxYcurSegnextSegmaxDistitnewSeg1newSeg2sideGainbestYs gainIndex segIndicesLjava/util/Stack;offsetsaccumulatedGainsLjava/util/Vector;segIndexsegmentgainfoundZupdatesLjava/lang/String;*Ljava/util/ArrayList;&Ljava/util/Stack;,Ljava/util/Vector; extendSegment(II)Ljava/lang/String;distFrom nextSegmentminDistext2ext1 prevSegmentnewSegoffseteat(Langeldemo/Square;)V addSquare distAlongnexttakenuneat computeCorner`(Langeldemo/GainFunction;Langeldemo/CornerInfo;Langeldemo/GainFunction;)Langeldemo/GainFunction;ymxbestGain laterGains cornerInfoLangeldemo/CornerInfo; sideFunction interestingYscornerXscornerYs interestingXsbestXs bestGains bestGainYscornerAndLaterGain[IbestCornerAndLaterYbestCornerAndLaterGainbestCornerAndLaterIndexcornerEatenIndexresult getMergedListA(Ljava/util/ArrayList;Ljava/util/ArrayList;)Ljava/util/ArrayList;Ljava/lang/Integer;abszl1l2sz1sz2i1i2(Ljava/util/ArrayList;Ljava/util/ArrayList;)Ljava/util/ArrayList; SourceFile Path.java kx bcjava/util/ArrayList deangeldemo/Segmentangeldemo/GridPoint k9 k: ;< hi ji= >?angeldemo/Square@ ;A BC DE Fi GH Ii JKL M{ N Ox Pi QR SR T x UVW XY ZH [\ st ]i ^ijava/lang/RuntimeExceptionMissing eaten squares k_ X` a bc de ;f java/util/Vector ~{ z{ g java/util/Stack hi jk lm n\angeldemo/GainFunctionjava/lang/Integer oH p{java/lang/StringBuilder qr sN tWhat?This was unexpected uv w xmy zm {m |m k} k~angeldemo/Pathjava/lang/Object(II)V(Langeldemo/GridPoint;II)Vadd(Ljava/lang/Object;)Zangeldemo/GameevadedSquares_Langeldemo/SquareSet;angeldemo/SquareSet8(Langeldemo/Square;Langeldemo/Square;)Ljava/lang/String;get(I)Ljava/lang/Object; getSquareAt(II)Langeldemo/Square;length_size()I direction_iterator()Ljava/util/Iterator;java/util/IteratorhasNext()Ljava/lang/Object; clearSquares maxExtension_getDistanceFromOf(Langeldemo/Square;)IgetDistanceAlongOfeatingHistory_ sideInfo_Langeldemo/SideInfo;angeldemo/SideInfo getFunction(I)Langeldemo/GainFunction;getLargestBestXgetValue(I)Iy_x_(Ljava/lang/String;)V(III)Langeldemo/GainFunction; eatenSquares_start_Langeldemo/GridPoint;getGridPointAt(II)Langeldemo/GridPoint;(ILjava/lang/Object;)V cornerInfo_valueOf(I)Ljava/lang/Integer;push&(Ljava/lang/Object;)Ljava/lang/Object;getExtrasAtInterestingPoints()Ljava/util/ArrayList; getExtraForintValueemptyappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;poptoStringcontains(Langeldemo/Square;)Z((Langeldemo/Square;Langeldemo/Segment;)ZgetInterestingPointsangeldemo/CornerInfogetSortedEatenYs getEatenXs getEatenYs(I)VZ(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Langeldemo/GainFunction;)V!`abcdefghijiklmY**+*Y*YY  W* *+YYWn"+, ./0051;3X4oYpqYrcstmQ** L+*n 78opq uvwxmP** L=<*Y`*+!*Y ` *** Lűn& <>? @+A5B:CI>OFo PpqAuv?yiz{mI* *d** <** `=d`pnIJL$M8No $%|i8}iIpq~{mI* *d** <** `=d`pnSTV$W8Xo $%|i8}iIpqxm?<:*Yd*"*Y d *** DZn^_`a#b8^>eo?pq=yixm  *L++M,,*6=*:`>*:d`p[ 6H!65`%  b*"#:*$njhijkl%m(o1p9qFrPs]tpv~wyz}~rpop  uv7i~Ji]kvFvJipq3yi1im f*%&L* *dd** M,'(N-)6 -*&*+,666*"#:H:  -/ ,% ,  ,6 ,  ,6 .Y/0,Ydd*YY  W*YY `d W*YY`  W*YY` d W*YYdL*%* *d** M** `N-',*d1:)6 *&26-34:!-!66ۻY-5- :Y-6-` : --65-Yd** ` 7** `7** `8L*%9Y:M*d>*:'(:6* * *;*d,?:T )6,@d6AYB: AYB:  CDW CDWE: -F F6,GH: IW  IdJKL* `<** `:  '(:    IdJKL*+ M6NYO+P* QKL QKL8PRL*%ȧ+nb&/5CFOSWcmy.Oqu 4?JYhuy47BRUZair{   !#+W"[#^%a&c(o`#y6u &Ov/F5@iO&iS"iWic ivvii\v4Ev v 4ziB,e 'uv  aiiir { ivfpq_>c, r { m * 9*= .YS0*N*`:T6-34:<:-!6- 6 *  6-:--:*=65Ydt65Y`Y-d6--d` : ** ` 7Y-d6-d : ** ` 7-d** `*=*d .YU0*dN*:*`:::t65Y`65-Yd-***-d6-Y`Yt6d : * 7**dN*:*`:::-Y`65*d65Ydt65Y`*n=134?%@4C8DAEKFWG_HgI}JKMNOPQRSTVXY['\/]>`Oa\bfqtrstuwxyz{})8FSbkxoW*u_"igi %v4 v8iANv &v tvvv?iv pqiiFvSvbzvkqxd Am5nopqump*+V* *d**d+WW*d=* * =* \*N:`**`:* -+!6*-+W6n^89CKPXdgtoH idJvgGv pquCoyim5nopqum*X+YZN+[:+\:,XZ:Y]:Y]:Y]: - : 6 6 6 -66A *-KL*O . -KL6  .6 6 666KL6KLrKL6-66 6  6F-KL  \.`O . -KL6  .6 6 x ,*`6C WKY^ W  C W,HY ,_:n- #1? M U X[^dn#$%&'()"*++5,C-J.N(T1W2Z4e6p78:;o]i MiWiie%i eee#e1re?deMVe UN XKi [Hi ^Ei g<yid?iiH #1r?dMV m/ ߻YM*>+666 +K:x*K:`*KL6+KL6  *K:, +K:*K:,6L,dKL , W?,nz?@ ABCD&F,G7H:IDJOKRLUMcNqOxPQRSTUVWX[\]^_o7OcOiqAi ."ieee iiii fPK pV6}i  angeldemo/Segment.class1z "V !W !X !YZ V ![\ V !]^ V !_ !`a b c def gh d b c i !j !k l m nopNORTHI ConstantValueWESTSOUTHEASTstart_Langeldemo/GridPoint; direction_length_ eatenSquares_Ljava/util/Vector; Signature&Ljava/util/Vector; sideInfo_Langeldemo/SideInfo; cornerInfo_Langeldemo/CornerInfo; maxExtension_(Langeldemo/GridPoint;II)VCodeLineNumberTableLocalVariableTablethisLangeldemo/Segment;start directionlength getSquareAt(II)Langeldemo/Square; distAlongdistFromgetGridPointAt(II)Langeldemo/GridPoint;getDistanceFromOf(Langeldemo/Square;)IsLangeldemo/Square;getDistanceAlongOf clearSquares()Veat((Langeldemo/Square;Langeldemo/Segment;)Znext SourceFile Segment.java :P -. /$ 0$angeldemo/SideInfo 56angeldemo/CornerInfo 78java/util/Vector 12 9$angeldemo/Square q$ r$ :sjava/lang/RuntimeExceptionIllegal direction :tangeldemo/GridPoint uP JK NK vs vw xyangeldemo/Segmentjava/lang/Objectx_y_(II)V(Ljava/lang/String;)Vclear addSquare(I)Vadd(Ljava/lang/Object;)Z1!" #$%&'$%()$%*+$%,-./$0$123456789$:;<?**+*`p**Y*Y * Y *=& ;< =>@"A-B8C>D>*??@?A.?B$?C$DE<* >ZtY*`d*`dY*d*`dY*d*dY*`d*dY=H$JBL^NxPR> ?@F$G$HI<* :TnY*`*`Y*d*`Y*d*dY*`*dY=W$Y>[X]r_a> ?@F$G$JK<f*X />K+*d`+*d`*+d*+dY=f$h3jBlOn\p>f?@fLMNK<f*X /<I+*d`*+d*+d+*d`Y=u$w3y@{M}\>f?@fLMOP<T*Y*Y * = > ?@QR<b*+> **+6*',4*d,&* *d** + W=2  "+=OW`>4b?@bLMbS@\G$GF$TUPK pV6n| HB B angeldemo/SideInfo.class1c <= < > ? @ AB C D E F GH < I JK L M N OPQ distances_Ljava/util/ArrayList; Signature*Ljava/util/ArrayList;counts_()VCodeLineNumberTableLocalVariableTablethisLangeldemo/SideInfo; addSquare(I)V x_distanceIindexsum removeSquarec getFunction(I)Langeldemo/GainFunction;gradient(III)Langeldemo/GainFunction; gradient1 breakPoint gradient2templateLangeldemo/GainFunction;valuesinLocalVariableTypeTable SourceFile SideInfo.java java/util/ArrayList   RS TUjava/lang/Integer VS WX YZ & [\java/lang/RuntimeException ]U -0angeldemo/GainFunction ^ _` Ya bangeldemo/SideInfojava/lang/Objectsize()Iget(I)Ljava/lang/Object;intValuevalueOf(I)Ljava/lang/Integer;add(ILjava/lang/Object;)Vset'(ILjava/lang/Object;)Ljava/lang/Object;removeE(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;III)VgetValue(I)I(Ljava/lang/Object;)ZZ(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Langeldemo/GainFunction;)V! Q**Y*Y! !"" #$%& 9=>**  ** B* * **d ` *)*Y* ` Wұ!B%&'!($)'+D,P-T.c0134567"*#$'()(*(+& 8=**  **  Y* >*d *W*W*)*Y* d Wұ!>:;<%>B?JAYB\CtD}EGHIJK"*#$'()(Y_,(-. <*!R"#$/(-0  oY:Y:*666* * ` WɻY*!Z[\!]+^X]^a"Ro#$o1(o2(o3(`45W6$K7(!N8(9 W6:;PK pV6#ssangeldemo/Square.class1   x_Iy_(II)VCodeLineNumberTableLocalVariableTablethisLangeldemo/Square;xy SourceFile Square.java   angeldemo/Squarejava/lang/Object()V!  Y***   PK pV6,[[[angeldemo/SquareSet$Area.class1 b %c d e f g h i j kl km nop q r s t u v Me Md Mg Mf w x Myz { M|~  ! minX_ImaxX_minY_maxY_state_ nOccupiednwSub_Area InnerClassesLangeldemo/SquareSet$Area;neSub_swSub_seSub_this$0Langeldemo/SquareSet;(Langeldemo/SquareSet;IIIII)VCodeLineNumberTableLocalVariableTablethisminXmaxXminYmaxYstatearea()I isHomogeneous()Zcontains(Langeldemo/Square;)ZsLangeldemo/Square;isFullcompact()VperformChange(Langeldemo/SquareSet$Change;)VcLangeldemo/SquareSet$Change;reversechangeexpandmidXmidYaddFilledRectangles(IIIILjava/util/Vector;)VvLjava/util/Vector;LocalVariableTypeTable Rectangle3Ljava/util/Vector; Signature:(IIIILjava/util/Vector;)V SourceFileSquareSet.java 45 6K &' (' )' *' +' ,' AB ' ' EFjava/lang/RuntimeExceptionIllegal square 6 -0 IF 20 10 30 TK LO '+Tried to fill a full square once more. Hmmm JK angeldemo/SquareSet$Area 67angeldemo/SquareSet$Rectangle 6 WXjava/lang/Objectangeldemo/SquareSet$Changeangeldemo/Squarex_y_(Ljava/lang/String;)V stateChange_ getReverse()Langeldemo/SquareSet$Change;angeldemo/SquareSet(IIII)Vjava/util/Vectoradd(Ljava/lang/Object;)Z0% &'(')'*'+','-010203045 6789*+******* ** 9* E FGHIJ%K*L0M8N:>9;09<'9='9>'9?'9@'AB8B**d`**d`h9Q: ;0CD88*9U: ;0EF8f2+ *(+ *+ *+ *9Y:2;02GHIF8s*+ Y**+ *#+ * *+*++ * *+*+96 `abcd#e%f3gAhJjSlamjo:s;0sGHJK8T**<********ZZZ9:tvxyz{!|"}-~.9:?S:T;0D@'LO8{+*+*+*+*+*$+*+*+***I*+*+*+*+***`*`*`7*Y+`* Y** ** *9f #$/0\`hpx:;0PQRO8A *+9 : ;0 SQTK8 ***`dl<**`dl=*Y**`** *Y*`*`** *Y**** *Y*`*** *9*  %De: ;0U'%V'WX8:***** !Y****"#W**$*$*$*$9F $%-JRSao}:>;0<'='>'?'YZ[ Y]^_`a/}.M}N!}\ PK pV6^^ angeldemo/SquareSet$Change.class1J 0 123 456 7 8 9 : ;= > <? @ABminX_ImaxX_minY_maxY_ stateChange_this$0Langeldemo/SquareSet;(Langeldemo/SquareSet;IIIII)VCodeLineNumberTableLocalVariableTablethisChange InnerClassesLangeldemo/SquareSet$Change;minXmaxXminYmaxY stateChange getReverse()Langeldemo/SquareSet$Change;perform()V SourceFileSquareSet.java  -java/lang/RuntimeException!Change is outside board perimeter C+Please coordinate your coordinates properly Illegal state     Dangeldemo/SquareSet$Change  EGH ,Ijava/lang/Object(Ljava/lang/String;)Vangeldemo/SquareSetroot_AreaLangeldemo/SquareSet$Area;angeldemo/SquareSet$Area(Langeldemo/SquareSet$Change;)V0v*+*  Y  Y  Y * * * * *6 #-9COY^ciou >v!$v%v&v'v(v)*+K!Y** * * * *t !!$,-: **    !$./#<"@<FPK pV6JKK#angeldemo/SquareSet$Rectangle.class1&      "#minX_ImaxX_minY_maxY_(IIII)VCodeLineNumberTableLocalVariableTablethis Rectangle InnerClassesLangeldemo/SquareSet$Rectangle;minXmaxXminYmaxY SourceFileSquareSet.java $  %angeldemo/SquareSet$Rectanglejava/lang/Object()Vangeldemo/SquareSet!  *****\] ^_`a4     ! PK pV6m# # angeldemo/SquareSet.class1m JK L MN OP OQ L RS J T UV W X YZ J [\]^ Rectangle InnerClassesChangeAreaMIXEDI ConstantValueEMPTYFULLroot_Langeldemo/SquareSet$Area;()VCodeLineNumberTableLocalVariableTablethisLangeldemo/SquareSet;add(Langeldemo/Square;)VsLangeldemo/Square;remove8(Langeldemo/Square;Langeldemo/Square;)Ljava/lang/String;c1c2minXmaxXminYmaxYsbLjava/lang/StringBuffer;'(Langeldemo/Square;Langeldemo/Square;)Vcontains(Langeldemo/Square;)ZgetFilledRectangles(IIII)Ljava/lang/Iterable;vLjava/util/Vector;LocalVariableTypeTable3Ljava/util/Vector; Signature;(IIII)Ljava/lang/Iterable; SourceFileSquareSet.java ()angeldemo/SquareSet$Area (_ &'angeldemo/SquareSet$Change` a b c)java/lang/StringBuffer de df, dg hi j?java/util/Vector klangeldemo/SquareSetjava/lang/Objectangeldemo/SquareSet$Rectangle(Langeldemo/SquareSet;IIIII)Vangeldemo/Squarex_y_performappend(C)Ljava/lang/StringBuffer;(I)Ljava/lang/StringBuffer;,(Ljava/lang/String;)Ljava/lang/StringBuffer;toString()Ljava/lang/String;isFulladdFilledRectangles(IIIILjava/util/Vector;)V1 !" #$ %&'()*L **Y*+./1, -./0*UY*+++ +  + &',-.1230*UY*+++ +  + *+,-.12/4*0+>,6+ 6, 6,>+6, 6+ 6Y* Y :{}W+:./ 0123"4(6/758;:N;W<>,R-.52627 8{9u:W5;<3=*O+>,6+ 6, 6,>+6, 6+ 6Y* +2 BC DEFG"H(J/K5L;NNO,HO-.O52O62J7 D8>98:>?*= *++R, -. 12@A*Y:*+e fg,>-.789: BCD  BEFGHI PK pV6 AMETA-INF/PK pV6|u|'META-INF/MANIFEST.MFPK pV6 Aangeldemo/PK pV6wQQCangeldemo/CornerInfo.classPK pV6!angeldemo/GainFunction.classPK pV6`V&&!angeldemo/Game.classPK pV64||y.angeldemo/GridPoint.classPK pV68ن,0angeldemo/HelpWindow$1.classPK pV6 nB2angeldemo/HelpWindow$2.classPK pV6 0==96angeldemo/HelpWindow.classPK pV6<angeldemo/Main.classPK pV69G:eAangeldemo/MainWindow$1.classPK pV6f00!Dangeldemo/MainWindow$Grid$1.classPK pV6ӚY.GG!Iangeldemo/MainWindow$Grid$2.classPK pV6+^"^"Langeldemo/MainWindow$Grid.classPK pV61L1oangeldemo/MainWindow.classPK pV6B{m,, angeldemo/Path.classPK pV6}i  angeldemo/Segment.classPK pV6n| HB B  angeldemo/SideInfo.classPK pV6#ssangeldemo/Square.classPK pV6,[[[(angeldemo/SquareSet$Area.classPK pV6^^ angeldemo/SquareSet$Change.classPK pV6JKK#[angeldemo/SquareSet$Rectangle.classPK pV6m# # angeldemo/SquareSet.classPKA