3  java/lang/Object()Vwebsocket/snake/Snake  lengthIjava/util/ArrayDeque   tailLjava/util/Deque;   id  sessionLjavax/websocket/Session;   websocket/snake/SnakeAnnotationgetRandomHexColor()Ljava/lang/String; " #$hexColorLjava/lang/String; & ' resetState )*+ ,-websocket/snake/DirectionNONELwebsocket/snake/Direction; / 0- direction 2 34getRandomLocation()Lwebsocket/snake/Location; 6 78headLwebsocket/snake/Location; :;< =java/util/Dequeclear?{"type": "dead"} A BC sendMessage(Ljava/lang/String;)VE{"type": "kill"} GHI JKjavax/websocket/SessiongetBasicRemote(()Ljavax/websocket/RemoteEndpoint$Basic; MNO PC$javax/websocket/RemoteEndpoint$BasicsendTextRjava/io/IOExceptionTjavax/websocket/CloseReason VWX YZ&javax/websocket/CloseReason$CloseCodesCLOSED_ABNORMALLY(Ljavax/websocket/CloseReason$CloseCodes; Q\ ]  getMessage S_ `<(Ljavax/websocket/CloseReason$CloseCode;Ljava/lang/String;)V Gb cdclose (Ljavax/websocket/CloseReason;)V fgh ijwebsocket/snake/LocationgetAdjacentLocation7(Lwebsocket/snake/Direction;)Lwebsocket/snake/Location; fl m x fo p y :r staddFirst(Ljava/lang/Object;)V :v wxsize()I :z {| removeLast()Ljava/lang/Object; ~ handleCollisions(Ljava/util/Collection;)V  java/util/Collectioniterator()Ljava/util/Iterator;  java/util/IteratorhasNext()Z |next  4getHead f equals(Ljava/lang/Object;)Z  getTail()Ljava/util/Collection; contains  kill  rewardjava/lang/StringBuilder {"x": %d, "y": %d}  java/lang/IntegervalueOf(I)Ljava/lang/Integer;  java/lang/Stringformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; append-(Ljava/lang/String;)Ljava/lang/StringBuilder; : (C)Ljava/lang/StringBuilder;{"id":%d,"body":[%s]} toStringDEFAULT_LENGTH ConstantValue Signature-Ljava/util/Deque;(ILjavax/websocket/Session;)VCodeLineNumberTableLocalVariableTablethisLwebsocket/snake/Snake;crLjavax/websocket/CloseReason;ioeLjava/io/IOException;msg StackMapTableupdatesnakesLjava/util/Collection; nextLocationLocalVariableTypeTable/Ljava/util/Collection;2(Ljava/util/Collection;)V headCollisionZ tailCollisionsnake4()Ljava/util/Collection; setDirection(Lwebsocket/snake/Direction;)VgetLocationsJsonlocationsbLjava/lang/StringBuilder;getId getHexColor SourceFile Snake.java InnerClassesjavax/websocket/RemoteEndpointBasic CloseCodes%javax/websocket/CloseReason$CloseCode CloseCode!  0- 78#$ *** * Y**,*!*%")$ &*+,%-). ** *'W*(.*15*9* 12345 "= *%*>@89 :  "C*Y ` *D@= >? BC2*F+L"MSYU,[^N*-a:Q",/Q& DMEFG"I,L/J1N*"22$RQQSQ!!*5*.eM,k,k,n,n,k ,k,n ,n*.(/**5q*u* *yW*,5*+}BQ RSU%V*X1Y8[?\F^P_]`mawc|fg  v8  f 0j+M,\,N*--*56-*56**--& jk:lImSnWobpfsit4:,ILjj j/@!4/*5w !/*{ !>*+. 0-! YL+Y*5kSY*5nSW*M,9,fN+,W+Y-kSY-nSWY*SY+S6 )0MTaovy M)8:>x/*  /*! M VS@S