Êþº¾E¯  java/nio/file/FileSystem()V)java/util/concurrent/atomic/AtomicInteger   Bnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem tmpFileIndex+Ljava/util/concurrent/atomic/AtomicInteger;   baseDirectoryLjava/nio/file/Path;   tmpDirectory   skippedPathsLjava/nio/file/PathMatcher;Bnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSProvider  G(Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem;)V ! "#providerDLnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSProvider;%Anet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileStore $' (Y(Ljava/lang/String;Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem;)V * +,storeCLnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileStore;./0java/lang/String 2 34getPathg(Ljava/lang/String;[Ljava/lang/String;)Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSPath; 6 78rootPath@Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSPath; : ;<buildFileTreeFromR(Ljava/nio/file/Path;)Lnet/minecraft/util/filefix/virtualfilesystem/DirectoryNode; > ?@fileTreenet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSPath«(Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem;Ljava/lang/String;[Ljava/lang/String;)Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSPath;Ž'java/lang/UnsupportedOperationException � ‘ ’“incrementAndGet()I• Q–(I)Ljava/lang/String; ˜™š ›œjava/nio/file/Pathresolve((Ljava/lang/String;)Ljava/nio/file/Path; ˜ž Ÿv getFileSystem¡Hnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem$Moves£java/util/ArrayList ¢  ¦ §3(Ljava/util/List;Ljava/util/List;Ljava/util/List;)V © ª«collectMoveOperations�(Ljava/nio/file/Path;Lnet/minecraft/util/filefix/virtualfilesystem/DirectoryNode;Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem$Moves;)V _­ ®¯children()Ljava/util/Collection; ±²³ ´µjava/util/Collectioniterator()Ljava/util/Iterator; ·¸¹ º»java/util/IteratorhasNext()Z ·½ ¾¿next()Ljava/lang/Object;Á1net/minecraft/util/filefix/virtualfilesystem/Node Àà Äzname ÆÇÈ ÉÊjava/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object;Ì ÍÎ typeSwitch7(Lnet/minecraft/util/filefix/virtualfilesystem/Node;I)IÐjava/lang/MatchException ÏÒ Ó*(Ljava/lang/String;Ljava/lang/Throwable;)VÕ5net/minecraft/util/filefix/virtualfilesystem/FileNode×5net/minecraft/util/filefix/virtualfilesystem/FileMove ÔÙ ÚÛ storagePath()Ljava/nio/file/Path; ÖÝ Þ+(Ljava/nio/file/Path;Ljava/nio/file/Path;)V Ôà áâisCopyZ  ä åæ copiedFilesLjava/util/List; è éêadd(Ljava/lang/Object;)Z  ì íæpreexistingFiles  ï ðæ directories ² Öó ôÛto Öö ÷Ûfrom Dù úH isRegularFile Dü ýþ createLink>(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;java/lang/IllegalStateExceptionP ÿTjava/nio/file/CopyOption D moveY(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path; java/io/IOException  T   net/minecraft/util/Util safeMoveFileF(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Z  LOGGERLorg/slf4j/Logger;Reverted move from {} to {}  org/slf4j/Loggerinfo9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V#Failed to revert move from {} to {} ! "error$8Skipping reverting move from {} to {} as it's not a file & '»isEmpty)2Successfully reverted back to previous world state + U-Completed reverting with errors / "U 1 "2F()Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFSProvider;4basic 678 ‚9 java/util/Set#(Ljava/lang/Object;)Ljava/util/Set; ;<= >?com/mojang/logging/LogUtils getLogger()Lorg/slf4j/Logger; Signature#Ljava/util/Set;CodeLineNumberTableLocalVariableTablethisDLnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem;Ljava/lang/String; ExceptionsMethodParameterscreate›(Ljava/lang/String;Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/nio/file/PathMatcher;)Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem; fileSystem StackMapTable resetFileTreeToBaseFolderContentRuntimeInvisibleAnnotations1Lcom/google/common/annotations/VisibleForTesting;closeisOpen isReadOnlygetRootDirectories()Ljava/lang/Iterable;,()Ljava/lang/Iterable; getFileStores1()Ljava/lang/Iterable;supportedFileAttributeViews()Ljava/util/Set;%()Ljava/util/Set;firstmore[Ljava/lang/String;getPathMatcher/(Ljava/lang/String;)Ljava/nio/file/PathMatcher;syntaxAndPatterngetUserPrincipalLookupService6()Ljava/nio/file/attribute/UserPrincipalLookupService;newWatchService()Ljava/nio/file/WatchService;E()Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileStore;>()Lnet/minecraft/util/filefix/virtualfilesystem/DirectoryNode;createTemporaryFilePath`(Ljava/nio/file/Path;)Lnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem$Moves;outPathresultJLnet/minecraft/util/filefix/virtualfilesystem/CopyOnWriteFileSystem$Moves;7Lnet/minecraft/util/filefix/virtualfilesystem/FileMove;fileNode7Lnet/minecraft/util/filefix/virtualfilesystem/FileNode; directoryNodetarget childNode3Lnet/minecraft/util/filefix/virtualfilesystem/Node;foldercreateDirectories(Ljava/util/List;)V directoryLocalVariableTypeTable&Ljava/util/List;)(Ljava/util/List;)V hardLinkFilesmovesILjava/util/List;L(Ljava/util/List;)V moveFilesmoveFilesWithRetry.(Ljava/util/List;[Ljava/nio/file/CopyOption;)Voptionsjava/nio/file/CopyOption;g(Ljava/util/List;[Ljava/nio/file/CopyOption;)VtryRevertMoves=(Ljava/util/List;[Ljava/nio/file/CopyOption;)Ljava/util/List;success failedMoves¯(Ljava/util/List;[Ljava/nio/file/CopyOption;)Ljava/util/List;;(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;(()Ljava/nio/file/spi/FileSystemProvider; SourceFileCopyOnWriteFileSystem.java NestMembersBootstrapMethods’%Temporary directory already exists: ”tmp_–Not a regular file: ˜ ™š› Qœ$java/lang/invoke/StringConcatFactory˜(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;ž Ÿ ¡ Í¢"java/lang/runtime/SwitchBootstraps†(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClasses¥0org/apache/commons/io/file/Counters$PathCounters§#org/apache/commons/io/file/Counters PathCountersMoves«%java/lang/invoke/MethodHandles$Lookup­java/lang/invoke/MethodHandlesLookup!  †‡@A+,"#78?@!XBÆP*·*»Y· µ *,µ*-µ*µ*»Y*·µ *»$Y+*·&µ)**-½/¶1µ5**,¶9µ=±C* .*/012+384F5O6D4PEFPÄGPPPH IÄ JKB 5,½A¸C™»IY,¸KºO·S¿» Y*+,-·V:,½Y¸[W°C9 :<)>2?D45ÄG555) LFMH IÄ;<Bc»_Y*´5·aM+»dY*,+·f¸iW,°CC EnD EF ?@H INB; ***´¶9µ=±C s tD  EFH OP"2B/*´ °CxD EFQBR*´½A¸C™ *´¸mW±C}~€D EFMH R»B,¬C„D EFS»B,¬C‰D EFyzB2*¶s¶w°CŽD EFTUB2*¶{¸~°C“D EF@VWUB2*´)¸~°C˜D EF@XYZB.²„°C�D EF@[�34BE*+,¸ˆ°C¢D EF\G]^I \]_`B<»�Y·�¿C§DEFaGIabcB2»�Y·�¿C¬D EFdeB2»�Y·�¿C±D EF+fB/*´)°CµD EF7}B/*´5°C¹D EF?gB/*´=°C¾D EFÛB/*´°CÂD EFÛB/*´°CÆD EFhÛB@*´*´ ¶�º”¹—°CËD EFuvB4 *´¹�°CÏD  EFªiBo)» Y»¢Y·¤»¢Y·¤»¢Y·¤·¥M*+*´=,¶¨,°CÙÚ'ÛD )EF)j klIjª«BÑ Ë,¶¬¹°:¹¶™¸¹¼ÀÀ:+¶Â¸ÅÀ/¹—:Y¸ÅW:6ºË«%b»ÏY·Ñ¿ÀÔ: »ÖY ¶Ø·Ü:  ´ß™-´ã ¹çW§-´ë ¹çW§À_: -´î¹çW* -¶¨§ÿD±C:ß!à4ánâuã…ä�åœç¨é«ê²ë¾ìÇïÊðD\ …#m u6no ²p@ 4“q!¦rsËEFËjËt@ËklMR ü ·ÿ4  ˜_ ·À˜À# ý-ÔÖú úÿ ˜_ ·úI jtk uvBŠ'*¹ñL+¹¶™+¹¼À˜M,½Y¸[W§ÿä±Cóô#õ&öD w'ðæx 'ðyM ü·úH Ið@z {vBÝ`*¹ñL+¹¶™R+¹¼ÀÖM,¶ò½A¸C™§ÿß,¶õ½A¸ø™,¶ò,¶õ¸ûW§»ÿY,¶õ¸Kº·¿§ÿ«±C"ùú(ü+þ9ÿH\_DBm`|æx `|}Mü·ü#ÖúúH I|@~ vB‘.*¹ñL+¹¶™ +¹¼ÀÖM,¶õ,¶ò½¸W§ÿݱC* - Dm.|æx .|}M ü·ú%H I|@~‰€�Böo*¹ñM,¹¶™a,¹¼ÀÖN-¶õ½A¸Cš-¶ò½A¸C™§ÿÑ-¶õ½A¸ø™-¶õ-¶ò+¸W§» Y-¶õ¸Kº· ¿§ÿœ±C" 69GWknD Qmo|æo‚ƒx o|}Mü·ü1ÖúúH I |‚@„‰…†B¿滢Y·¤M*¹ñN-¹¶™­-¹¼ÀÖ:¶ò½A¸Cš¶õ½A¸C™§ÿζò½A¸ø™Q¶ò¶õ+¸ 6™²¶õ¶ò¹§!²¶õ¶ò¹ ,¹çW§!²#¶õ¶ò¹ ,¹çW§ÿP,¹%™²(¹*§²,¹.,°CJ#AD!S#c$h%€'•(ž*¡+¶,¿.Â/Ë0Ù2ä4D4c;‡â#œmæ|ææ‚ƒÞˆæxæ|}Þˆ}M! ý·ü4Öü;úúú I |‚@‰A3ŠB1*+,¶1°CD EFI \]A"‹B/*¶0°CD EFŒB,3¸5³„¸:³±C  �Ž� d�—‘—“�Ô_—•£"d¤¦¨   ©ª¬®