=  java/lang/Object()Vjava/util/ArrayDeque   zombie/VirtualZombieManagerReusableZombiesLjava/util/ArrayDeque;java/util/HashSet   ReusableZombieSetLjava/util/HashSet;java/util/ArrayList   ReusedThisFrameLjava/util/ArrayList;  RecentlyRemoved " #$MaxRealZombiesI & ' m_tempZombies ) *choices , - bestchoices / 01w#Lzombie/inventory/types/HandWeapon; 3 4$ BLOCKED_N 6 7$ BLOCKED_S 9 :$ BLOCKED_W < =$ BLOCKED_E ? @$ NO_SQUARE_N B C$ NO_SQUARE_S E F$ NO_SQUARE_W H I$ NO_SQUARE_E KLM NOzombie/characters/IsoZombiegetCurrentSquare()Lzombie/iso/IsoGridSquare; KQ RS getEmitter/()Lzombie/characters/BaseCharacterSoundEmitter; UVW X+zombie/characters/BaseCharacterSoundEmitter unregister KZ [removeFromWorld K] ^removeFromSquare ` ab$assertionsDisabledZ def ghzombie/iso/IsoWorldinstanceLzombie/iso/IsoWorld; dj kl CurrentCellLzombie/iso/IsoCell; nop qrzombie/iso/IsoCell getObjectList()Ljava/util/ArrayList; t uvcontains(Ljava/lang/Object;)Zxjava/lang/AssertionError w n{ |r getZombieList ~ rzombie/iso/IsoGridSquaregetMovingObjects isReused (Lzombie/characters/IsoZombie;)Z  $zombie/popman/NetworkZombieSimulator getInstance(()Lzombie/popman/NetworkZombieSimulator; remove (Lzombie/characters/IsoZombie;)V K  resetForReuse  addToReusable t  addLast(Ljava/lang/Object;)V  vadd  bzombie/network/GameClientbClient d getZombiesDisabled()Z K (Lzombie/iso/IsoCell;)V  iterator()Ljava/util/Iterator;  java/util/IteratorhasNext next()Ljava/lang/Object; K  vocalEventJ U stopSoundLocal(J)V  clear    java/lang/SystemcurrentTimeMillis()J  size()I  get(I)Ljava/lang/Object; K  updateEmitter K removedFromWorldMS U stopAll    bzombie/network/GameServerbServer  reuseZombie K b KeepItReal createRealZombieAlways"(IZI)Lzombie/characters/IsoZombie;  gzombie/PersistentOutfitsLzombie/PersistentOutfits;  getOutfit(I)I  bzombie/SystemDisablerdoZombieCreation  isEmpty  zombie/core/RandNextBase.Axe     %zombie/inventory/InventoryItemFactory CreateItem4(Ljava/lang/String;)Lzombie/inventory/InventoryItem;!zombie/inventory/types/HandWeapon  'zombie/characters/ZombiesZoneDefinitionpickPersistentOutfit(Lzombie/iso/IsoGridSquare;)I  K bbDressInRandomOutfit K setPersistentOutfitID(I)V   removeFirst ! v K# $%getHumanVisual/()Lzombie/core/skinnedmodel/visual/HumanVisual; '(+zombie/core/skinnedmodel/visual/HumanVisual K* +clearAttachedItems K- .clearItemsToSpawnAtDeath K0 12setSitAgainstWall(Z)V K4 52setOnDeathDone K7 82 setOnKillDone K: ;2setDoDeathSound K= > setHitTime K@ A2setFallOnFront KC D2 setFakeDead KF G2setReanimatedPlayer KI J2setStateMachineLocked KL MNdirLzombie/iso/IsoDirections; PQR STzombie/iso/IsoDirectionsToVector()Lzombie/iso/Vector2; VWX YZzombie/iso/Vector2xFB? V^ _Zy Va bc normalize()F Ke fgsetForwardDirection(Lzombie/iso/Vector2;)Vi ZombieWalk Kk lm walkVariantLjava/lang/String; Ko p DoZombieStats Kr sisOnFire uvw xy!zombie/iso/objects/IsoFireManagerRemoveBurningCharacter'(Lzombie/characters/IsoGameCharacter;)V K{ |2 setOnFire K~ AttachedAnimSprite K $ thumpFlag K b thumpSent K soundSourceTargetLjava/lang/Object; K Z soundAttract K ZsoundAttractTimeout K  bodyToEat Lzombie/iso/objects/IsoDeadBody; K  eatBodyTargetLzombie/iso/IsoMovingObject; K atlasTex4Lzombie/core/skinnedmodel/DeadBodyAtlas$BodyTexture; K clearVariables K 2setStaggerBack K 2setKnockedDown K 2 setKnifeDeath K 2setJawStabAttach K 2 setCrawler K initializeStates K  actionContext(Lzombie/characters/action/ActionContext;zombie  $zombie/characters/action/ActionGroupgetActionGroup:(Ljava/lang/String;)Lzombie/characters/action/ActionGroup;  &zombie/characters/action/ActionContextsetGroup)(Lzombie/characters/action/ActionGroup;)V K advancedAnimator=Lzombie/core/skinnedmodel/advancedanimation/AdvancedAnimator;  2;zombie/core/skinnedmodel/advancedanimation/AdvancedAnimatorOnAnimDataChanged K setDefaultState K getAnimationPlayer6()Lzombie/core/skinnedmodel/animation/AnimationPlayer;  2zombie/core/skinnedmodel/animation/AnimationPlayerresetBoneModelTransforms P  fromIndex(I)Lzombie/iso/IsoDirections; K  getInventory"()Lzombie/inventory/ItemContainer;  2zombie/inventory/ItemContainer setExplored K targetGP K ZTimeSinceSeenFlesh K  isFakeDead  gzombie/SandboxOptionsLzombie/SandboxOptions;  Lore"Lzombie/SandboxOptions$ZombieLore;   zombie/SandboxOptions$ZombieLore Toughness)Lzombie/SandboxOptions$EnumSandboxOption;  'zombie/SandboxOptions$EnumSandboxOptiongetValue@`>  (FF)F K    setHealth(F)V?  (II)IDz ~ getX ~ getY K  setCurrent(Lzombie/iso/IsoGridSquare;)V K setMovingSquareNow K   setX K" # setY ~% &getZ K( ) setZ K+ ,- networkAI#Lzombie/characters/NetworkZombieAI; /01 2!zombie/characters/NetworkZombieAIreset K4 5b upKillCount K7 89setDir(Lzombie/iso/IsoDirections;)V K; <DoZombieInventory>zombie/iso/objects/IsoDeadBody =@ A((Lzombie/characters/IsoGameCharacter;Z)V UC Dregister KF GbbRemote IJK gLzombie/network/ServerMapLzombie/network/ServerMap; IN OPgetUniqueZombieId()S KR STOnlineIDS ! IW XY ZombieMapLzombie/network/IsoObjectID; [\] ^_zombie/network/IsoObjectIDput(SLjava/lang/Object;)V na bc getGridSquare(DDD)Lzombie/iso/IsoGridSquare; ~e Y$ ~g _$ ~i j$z l mn canSpawnAt(III)Z ~p q HasStairs stu gvzombie/vehicles/PolygonalMap2Lzombie/vehicles/PolygonalMap2; sx yzlineClearCollide&(FFFFILzombie/iso/IsoMovingObject;ZZ)Z =W =^ =~ jZ  pickEatingZombieSquare!(FFFFI)Lzombie/iso/IsoGridSquare;  !(IZ)Lzombie/characters/IsoZombie;  gzombie/ZombieSpawnRecorderLzombie/ZombieSpawnRecorder;createEatingZombies  record2(Lzombie/characters/IsoZombie;Ljava/lang/String;)V K  faceLocationF(FF)V K setEatBodyTarget (Lzombie/iso/IsoMovingObject;Z)V  bzombie/iso/IsoChunk(III)Lzombie/iso/IsoGridSquare; ~ isFree(Z)Z   addBloodSplat(FFFI)V  addZombiesToMap-(ILzombie/iso/RoomDef;Z)Ljava/util/ArrayList;Tutorial  mzombie/core/CoreGameMode  vjava/lang/Stringequals  zombie/iso/RoomDefrects  $levelzombie/iso/RoomDef$RoomRect e  getX2 g  getY2 n  $zombie/characters/IsoPlayer numPlayers  players[Lzombie/characters/IsoPlayer; ~ isSeen(I)Z  java/lang/Mathmin  addAll(Ljava/util/Collection;)Z  buildingLzombie/iso/BuildingDef;  bzombie/iso/BuildingDefbAlarmed  createRealZombie K O getSquare K cA K c  outLjava/io/PrintStream;No choices for zombie.  java/io/PrintStreamprintln(Ljava/lang/String;)VaddIndoorZombies K b bIndoorZombie   zombie/iso/areas/IsoRoom getRoomDef()Lzombie/iso/RoomDef;    getAreaOverlapping(Lzombie/iso/IsoChunk;)F  ceil(D)D  defLzombie/iso/RoomDef;   $wx  max  $wy ! 0$ # $$h & '$ spawnCount ) *+getZombieCountForRoom(Lzombie/iso/areas/IsoRoom;)I - ./addIndoorZombiesToChunkH(Lzombie/iso/IsoChunk;Lzombie/iso/areas/IsoRoom;ILjava/util/ArrayList;)V. 2 3*(Ljava/util/ArrayList;Ljava/lang/String;)V K5 6isReanimatedPlayer 89: g;zombie/ReanimatedPlayersLzombie/ReanimatedPlayers; 8= >removeReanimatedPlayerFromWorld K@ AisDead CDE gF%zombie/popman/ZombiePopulationManager'Lzombie/popman/ZombiePopulationManager; CH IJcreateHordeFromTo(IIIII)V L Mb bLastStand O PZombies e g dT UV getMetaChunk(II)Lzombie/iso/IsoMetaChunk; XYZ [czombie/iso/IsoMetaChunkgetLootZombieIntensity@ ^ _getArea a bc getBuilding ()Lzombie/iso/areas/IsoBuilding; efg hzombie/iso/areas/IsoBuildinggetRoomsNumberj klaccept!()Ljava/util/function/BiConsumer; n op forEachChunk"(Ljava/util/function/BiConsumer;)V er stgetDef()Lzombie/iso/BuildingDef; v wisFullyStreamedIny roomSpotted{ k|X(Lzombie/VirtualZombieManager;Lzombie/iso/areas/IsoRoom;)Ljava/util/function/BiConsumer; ~~ navzombie/iso/IsoGridSquare; P NN P index ~ $ pathMatrix ~  getMatrixBit(IIII)Z P TN P NW P NE I  getBlockedBits   canPathOnlyW(Lzombie/iso/IsoGridSquare;)Z   canPathOnlyE   canPathOnlyN   canPathOnlyS   $ID  addSpawnedRoom  java/lang/ClassdesiredAssertionStatus   gLzombie/VirtualZombieManager; Signature5Ljava/util/ArrayDeque;2Ljava/util/HashSet;4Ljava/util/ArrayList;1Ljava/util/ArrayList;CodeLineNumberTableremoveZombieFromWorld StackMapTableinitResetupdate"(IIZ)Lzombie/characters/IsoZombie;java/lang/Throwable$(Lzombie/iso/objects/IsoDeadBody;I)V AddBloodToMap(ILzombie/iso/IsoChunk;)V,(ILzombie/iso/RoomDef;)Ljava/util/ArrayList;K(ILzombie/iso/RoomDef;)Ljava/util/ArrayList;L(ILzombie/iso/RoomDef;Z)Ljava/util/ArrayList;tryAddIndoorZombies(Lzombie/iso/RoomDef;Z)V(ILzombie/iso/RoomDef;Z)Vg(Lzombie/iso/IsoChunk;Lzombie/iso/areas/IsoRoom;ILjava/util/ArrayList;)V2(Lzombie/iso/IsoChunk;Lzombie/iso/areas/IsoRoom;)VaddDeadZombiesToMap(ILzombie/iso/RoomDef;)V RemoveZombie(FFFFI)V"(FFF)Lzombie/characters/IsoZombie;createRealZombieNow(Lzombie/iso/areas/IsoRoom;)VisBlockedInAllDirectionsreusableZombiesSizelambda$roomSpotted$1F(Lzombie/iso/areas/IsoRoom;Lzombie/iso/RoomDef;Lzombie/iso/IsoChunk;)Vlambda$roomSpotted$0,(Lzombie/iso/RoomDef;Lzombie/iso/IsoChunk;)V SourceFileVirtualZombieManager.javaBootstrapMethods  "java/lang/invoke/LambdaMetafactory metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'(Ljava/lang/Object;Ljava/lang/Object;)V     InnerClasses2zombie/core/skinnedmodel/DeadBodyAtlas$BodyTexture&zombie/core/skinnedmodel/DeadBodyAtlas BodyTexture ZombieLoreEnumSandboxOptionRoomRect%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup1   g#$'*-014$7$:$=$@$C$F$I$ab'**Y *Y*Y*Y*!*Y%*Y(*Y+*.*2*5*8*;*>* A*@D*GJ)+,-%.0051@KV[`ejpv|Q+J=+PT+Y+\5 79:< @~+_cim+s wYy_ciz+s wYy_ +J+J}+s wYy*+++*+. @AC#DAEdHlImJtKxM}N"N!+*+* +*+WQRS U ! *+X;L=*!#KYciL+PT*+۱. \]_ abdh(n/s4d:vK'b*L+)+KM, ,P,, *+*(** **2 z}$/47>ELSZa +.X@*d>a*K:eؔ; P P*W*W 1>*ʢ*K:**>cizʢqcizK:QJIY\_*s wYy_cizs wYy>*ʢ*K:**"$2<IOW`jp|!$*7DJPW4@K #UK# *.6*   K:*( *(*(*(ʸ~:*.* .  >* 8KYci:cimWy* K:* W"&),/369<?BEHKO:YUȸ[n\fbUY]ȸ[n\fb]`WdcimWhjnqtz} }  ϶صKKOd  b b\ b,\ b\ b 8 8n8n8b8b8!$' * *.3Bض6KOdB 3:=Y?WcizY:PBcizW ETHMQQ0cizUWcimUW*WðHVQZð:  ,C-BCCHCy 49;BO[_eo~  9 R X _ nv{ !#$%&'()*+ ,-0#10395=6C8I9Q;Y<i=y>?@ABCEHIJKP!Q,S3T8V?WFXQZe[m^s_wabfghijosuvwy{}~(-=Cq K~ bK K~KqK K~KV{(5(jH/FE Pci%`:!*dfhk or#$%w68KM 6~>+{8+|8F(3>\f8!\b8\f8 \b8*+{+|+}:`*(*(W*:?!+}'+{+|+)z8@CKNVYax}. . ~ K; =8*b >:6 6 6,:d|6  6(66W n8 n8  f8  f8 ,b b$ `C^  &)>CFNRZ^hu) ~0 Z  *,y Y:*(*+:6,ʢ,6,:6  6  Ţoci  :S*  kF*(W6 6  ɢ 2 ҙ6  *+W  vI*(ʸ<*+*(*+W*(*+W6*(,66*:  v n     nb   nb!*( UW*( UW*( UW W :*+*(3 !(/2AGUf w    "#&&(0*8+?,B-_.l/r0x2345679<&@AB~&<-4  ~   ~   ~ K^H *(*+:6,ʢx,6,:6M6  Ţ6ci :* k *(W Ƅ*(ʸ<*+*(*+W*(*+W6*(,66*:sk nb nb!*(UW*(UW*(UW =*+*(&{|}~ &4EVgy~#;S`mz}x~&6-4 ~  ~  ~ y./,+ 8j6*(,66,ʢ,: + h 6 + h ĸ6 +` h   `6 +` h  "`6  6 R 6 A++ hd+ hd:*k *(W5*(,*(ʸ66s*:  \ T     nb   nb!*( UW W*(& !(1@N_p  &0<IOUmaq  >   +KD.r=,%,*,(%*%*+,,%*%,*%01 /< 7>*(*+:6,ʢ,6,:66  Ţqci :UL*(W<6 6  ɢ 2 ҙ6  *+W tG*(ʸ<*+*(*+W*(*+W6"*(6*W*+*(#    " (6GXiw '*,-0 245"0(:/;6<4~&>-b+4$+ +P++ 7+<+?!*+s*+ĵ*+W*+s *+W6 ?@BC E'F(H/J:LAMMRXTaW $I.B#$%G Z[n9*(*(ci#$%`W*(6*_`a(c/d7g7D*(ci#$%`:*(W*(6*& mnopq)r3t:uBx ~"*+YK=N=8N=&N =N= Fc+Q l+R lS:WF%\ % n ff=+]d=+`+]6+`dd+`d_d66N  9N &N N2F ` 6% n fb6+]+]U+`dN 9N &N N66`  B}~(-:?LR_bd %25<?FIPS^eht0:X? $y+im+%+*+(%+%+`qu!*+%+M,x1%*%+*+zm*%x1>*45BS]`gu" *!2=++}2 *>=+ *2=+}2 *A=+ *5=+}2 *D=+ *8=+}2 *G=+ *;=R    -4BLY`nx " n; ѲHci:}26}26}26}26 * '() *%+',K-o./0( K~~ @"@"@"@@D*+=*8*;~*8*;*>~*2~+}2L& 789:(;*<3=5>A?  D*+=*8*;~*8*;*A~*5~+}2L& FGHI(J*K3L5MAN  D*+=*2*5~*2*5*D~*8~+}2L& UVWX(Y*Z3[5\A]  D*+=*2*5~*2*5*G~*;~+}2L& defg(h*i3j5kAl  mnci: *6*2*5*8*;*2*5~*2*5***8*;~*8*;**6 qrst&u>v@wXyj{l~~!++ * **-++%*%, ! +*B _ Y )/ @*