class jdk.internal.jrtfs.ExplodedImage extends jdk.internal.jrtfs.SystemImage
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.jrtfs.ExplodedImage
  super_class: jdk.internal.jrtfs.SystemImage
{
  private static final java.lang.String MODULES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/modules/"

  private static final java.lang.String PACKAGES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/packages/"

  private static final int PACKAGES_LEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.nio.file.FileSystem defaultFS;
    descriptor: Ljava/nio/file/FileSystem;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String separator;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, jdk.internal.jrtfs.ExplodedImage$PathNode> nodes;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljdk/internal/jrtfs/ExplodedImage$PathNode;>;

  private final java.nio.file.attribute.BasicFileAttributes modulesDirAttrs;
    descriptor: Ljava/nio/file/attribute/BasicFileAttributes;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc "/packages/"
            invokevirtual java.lang.String.length:()I
            putstatic jdk.internal.jrtfs.ExplodedImage.PACKAGES_LEN:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.nio.file.Path modulesDir
         0: .line 65
            aload 0 /* this */
            invokespecial jdk.internal.jrtfs.SystemImage.<init>:()V
         1: .line 62
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
         2: .line 66
            aload 0 /* this */
            invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
            putfield jdk.internal.jrtfs.ExplodedImage.defaultFS:Ljava/nio/file/FileSystem;
         3: .line 67
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.defaultFS:Ljava/nio/file/FileSystem;
            invokevirtual java.nio.file.FileSystem.getSeparator:()Ljava/lang/String;
            astore 2 /* str */
        start local 2 // java.lang.String str
         4: .line 68
            aload 0 /* this */
            aload 2 /* str */
            ldc "/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            aconst_null
            goto 6
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.nio.file.Path java.lang.String
      StackMap stack: jdk.internal.jrtfs.ExplodedImage
         5: aload 2 /* str */
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.nio.file.Path java.lang.String
      StackMap stack: jdk.internal.jrtfs.ExplodedImage java.lang.String
         6: putfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
         7: .line 69
            aload 0 /* this */
            aload 1 /* modulesDir */
            ldc Ljava/nio/file/attribute/BasicFileAttributes;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.readAttributes:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
            putfield jdk.internal.jrtfs.ExplodedImage.modulesDirAttrs:Ljava/nio/file/attribute/BasicFileAttributes;
         8: .line 70
            aload 0 /* this */
            invokevirtual jdk.internal.jrtfs.ExplodedImage.initNodes:()V
         9: .line 71
            return
        end local 2 // java.lang.String str
        end local 1 // java.nio.file.Path modulesDir
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljdk/internal/jrtfs/ExplodedImage;
            0   10     1  modulesDir  Ljava/nio/file/Path;
            4   10     2         str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      modulesDir  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
         0: .line 155
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 156
            return
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/jrtfs/ExplodedImage;
    Exceptions:
      throws java.io.IOException

  public byte[] getResource(jdk.internal.jimage.ImageReader$Node);
    descriptor: (Ljdk/internal/jimage/ImageReader$Node;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // jdk.internal.jimage.ImageReader$Node node
         0: .line 160
            aload 1 /* node */
            checkcast jdk.internal.jrtfs.ExplodedImage$PathNode
            invokevirtual jdk.internal.jrtfs.ExplodedImage$PathNode.getContent:()[B
            areturn
        end local 1 // jdk.internal.jimage.ImageReader$Node node
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jrtfs/ExplodedImage;
            0    1     1  node  Ljdk/internal/jimage/ImageReader$Node;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      node  

  public synchronized jdk.internal.jimage.ImageReader$Node findNode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/internal/jimage/ImageReader$Node;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.lang.String str
         0: .line 166
            aload 0 /* this */
            aload 1 /* str */
            invokevirtual jdk.internal.jrtfs.ExplodedImage.findModulesNode:(Ljava/lang/String;)Ljdk/internal/jimage/ImageReader$Node;
            astore 2 /* node */
        start local 2 // jdk.internal.jimage.ImageReader$Node node
         1: .line 167
            aload 2 /* node */
            ifnull 3
         2: .line 168
            aload 2 /* node */
            areturn
         3: .line 172
      StackMap locals: jdk.internal.jimage.ImageReader$Node
      StackMap stack:
            aload 1 /* str */
            ldc "/packages/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
         4: .line 174
            aload 1 /* str */
            bipush 47
            getstatic jdk.internal.jrtfs.ExplodedImage.PACKAGES_LEN:I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* pkgEndIdx */
        start local 3 // int pkgEndIdx
         5: .line 175
            iload 3 /* pkgEndIdx */
            iconst_m1
            if_icmpeq 13
         6: .line 177
            aload 1 /* str */
            bipush 47
            iload 3 /* pkgEndIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* modEndIdx */
        start local 4 // int modEndIdx
         7: .line 178
            iload 4 /* modEndIdx */
            iconst_m1
            if_icmpeq 13
         8: .line 181
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 1 /* str */
            iconst_0
            iload 4 /* modEndIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.internal.jimage.ImageReader$Node
            astore 5 /* linkNode */
        start local 5 // jdk.internal.jimage.ImageReader$Node linkNode
         9: .line 182
            aload 5 /* linkNode */
            ifnull 10
            aload 5 /* linkNode */
            invokevirtual jdk.internal.jimage.ImageReader$Node.isLink:()Z
            ifne 11
        10: .line 183
      StackMap locals: int int jdk.internal.jimage.ImageReader$Node
      StackMap stack:
            aconst_null
            areturn
        11: .line 188
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "/modules/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* str */
            iload 3 /* pkgEndIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* mod */
        start local 6 // java.lang.String mod
        12: .line 189
            aload 0 /* this */
            aload 6 /* mod */
            invokevirtual jdk.internal.jrtfs.ExplodedImage.findModulesNode:(Ljava/lang/String;)Ljdk/internal/jimage/ImageReader$Node;
            areturn
        end local 6 // java.lang.String mod
        end local 5 // jdk.internal.jimage.ImageReader$Node linkNode
        end local 4 // int modEndIdx
        end local 3 // int pkgEndIdx
        13: .line 193
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // jdk.internal.jimage.ImageReader$Node node
        end local 1 // java.lang.String str
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Ljdk/internal/jrtfs/ExplodedImage;
            0   14     1        str  Ljava/lang/String;
            1   14     2       node  Ljdk/internal/jimage/ImageReader$Node;
            5   13     3  pkgEndIdx  I
            7   13     4  modEndIdx  I
            9   13     5   linkNode  Ljdk/internal/jimage/ImageReader$Node;
           12   13     6        mod  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  jdk.internal.jimage.ImageReader$Node findModulesNode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/internal/jimage/ImageReader$Node;
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.lang.String str
         0: .line 198
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 1 /* str */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.internal.jrtfs.ExplodedImage$PathNode
            astore 2 /* node */
        start local 2 // jdk.internal.jrtfs.ExplodedImage$PathNode node
         1: .line 199
            aload 2 /* node */
            ifnull 3
         2: .line 200
            aload 2 /* node */
            areturn
         3: .line 204
      StackMap locals: jdk.internal.jrtfs.ExplodedImage$PathNode
      StackMap stack:
            aload 0 /* this */
            aload 1 /* str */
            invokevirtual jdk.internal.jrtfs.ExplodedImage.underlyingPath:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* p */
        start local 3 // java.nio.file.Path p
         4: .line 205
            aload 3 /* p */
            ifnull 15
         5: .line 207
            aload 3 /* p */
            ldc Ljava/nio/file/attribute/BasicFileAttributes;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.readAttributes:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
            astore 4 /* attrs */
        start local 4 // java.nio.file.attribute.BasicFileAttributes attrs
         6: .line 208
            aload 4 /* attrs */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
            ifeq 10
         7: .line 209
            aload 3 /* p */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 5 /* f */
        start local 5 // java.nio.file.Path f
         8: .line 210
            aload 5 /* f */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "_the."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 211
            aconst_null
            areturn
        end local 5 // java.nio.file.Path f
        10: .line 213
      StackMap locals: java.nio.file.Path java.nio.file.attribute.BasicFileAttributes
      StackMap stack:
            new jdk.internal.jrtfs.ExplodedImage$PathNode
            dup
            aload 0 /* this */
            aload 1 /* str */
            aload 3 /* p */
            aload 4 /* attrs */
            invokespecial jdk.internal.jrtfs.ExplodedImage$PathNode.<init>:(Ljdk/internal/jrtfs/ExplodedImage;Ljava/lang/String;Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)V
            astore 2 /* node */
        11: .line 214
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 1 /* str */
            aload 2 /* node */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 215
            aload 2 /* node */
        13: areturn
        end local 4 // java.nio.file.attribute.BasicFileAttributes attrs
        14: .line 216
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.lang.String jdk.internal.jrtfs.ExplodedImage$PathNode java.nio.file.Path
      StackMap stack: java.io.IOException
            pop
        15: .line 220
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.nio.file.Path p
        end local 2 // jdk.internal.jrtfs.ExplodedImage$PathNode node
        end local 1 // java.lang.String str
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Ljdk/internal/jrtfs/ExplodedImage;
            0   16     1    str  Ljava/lang/String;
            1   16     2   node  Ljdk/internal/jrtfs/ExplodedImage$PathNode;
            4   16     3      p  Ljava/nio/file/Path;
            6   14     4  attrs  Ljava/nio/file/attribute/BasicFileAttributes;
            8   10     5      f  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           5     9      14  Class java.io.IOException
          10    13      14  Class java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  java.nio.file.Path underlyingPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.lang.String str
         0: .line 224
            aload 1 /* str */
            ldc "/modules/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 225
            aload 0 /* this */
            aload 1 /* str */
            ldc "/modules"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual jdk.internal.jrtfs.ExplodedImage.frontSlashToNativeSlash:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* str */
         2: .line 226
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.defaultFS:Ljava/nio/file/FileSystem;
            getstatic jdk.internal.jrtfs.ExplodedImage.explodedModulesDir:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* str */
            aastore
            invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
         3: .line 228
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String str
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/jrtfs/ExplodedImage;
            0    4     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private java.lang.String frontSlashToNativeSlash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.lang.String str
         0: .line 233
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
            ifnonnull 1
            aload 1 /* str */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* str */
            ldc "/"
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 1 // java.lang.String str
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jrtfs/ExplodedImage;
            0    3     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private java.lang.String nativeSlashToFrontSlash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.lang.String str
         0: .line 238
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
            ifnonnull 1
            aload 1 /* str */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* str */
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 1 // java.lang.String str
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jrtfs/ExplodedImage;
            0    3     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private java.lang.String slashesToDots(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 1 // java.lang.String str
         0: .line 243
            aload 1 /* str */
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.separator:Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack: java.lang.String
         1: ldc "/"
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.lang.String
      StackMap stack: java.lang.String java.lang.String
         2: ldc "."
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String str
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jrtfs/ExplodedImage;
            0    3     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private void initNodes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=1
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
         0: .line 250
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* packageToModules */
        start local 1 // java.util.Map packageToModules
         1: .line 251
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: getstatic jdk.internal.jrtfs.ExplodedImage.explodedModulesDir:Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
            astore 4 /* stream */
        start local 4 // java.nio.file.DirectoryStream stream
         3: .line 252
            aload 4 /* stream */
            invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.util.Map java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 5 /* module */
        start local 5 // java.nio.file.Path module
         5: .line 253
            aload 5 /* module */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 9
         6: .line 254
            aload 5 /* module */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 7 /* moduleName */
        start local 7 // java.lang.String moduleName
         7: .line 256
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "/modules/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* moduleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.internal.jrtfs.ExplodedImage.findModulesNode:(Ljava/lang/String;)Ljdk/internal/jimage/ImageReader$Node;
            pop
         8: .line 257
            aload 5 /* module */
            iconst_0
            anewarray java.nio.file.FileVisitOption
            invokestatic java.nio.file.Files.walk:(Ljava/nio/file/Path;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/internal/jrtfs/ExplodedImage.lambda$2(Ljava/nio/file/Path;)Z (6)
                  (Ljava/nio/file/Path;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 5 /* module */
            aload 1 /* packageToModules */
            aload 7 /* moduleName */
            invokedynamic accept(Ljdk/internal/jrtfs/ExplodedImage;Ljava/nio/file/Path;Ljava/util/Map;Ljava/lang/String;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/internal/jrtfs/ExplodedImage.lambda$1(Ljava/nio/file/Path;Ljava/util/Map;Ljava/lang/String;Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 7 // java.lang.String moduleName
        end local 5 // java.nio.file.Path module
         9: .line 252
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 272
            aload 4 /* stream */
            ifnull 16
            aload 4 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 16
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.util.Map java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack: java.lang.Throwable
        11: astore 2
            aload 4 /* stream */
            ifnull 12
            aload 4 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 4 // java.nio.file.DirectoryStream stream
      StackMap locals:
      StackMap stack:
        12: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 3
            aload 2
            ifnonnull 14
            aload 3
            astore 2
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 2
            aload 3
            if_acmpeq 15
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 2
            athrow
        16: .line 275
      StackMap locals:
      StackMap stack:
            new jdk.internal.jrtfs.ExplodedImage$PathNode
            dup
            aload 0 /* this */
            ldc "/modules"
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokespecial jdk.internal.jrtfs.ExplodedImage$PathNode.<init>:(Ljdk/internal/jrtfs/ExplodedImage;Ljava/lang/String;Ljava/util/List;)V
            astore 2 /* modulesDir */
        start local 2 // jdk.internal.jrtfs.ExplodedImage$PathNode modulesDir
        17: .line 276
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 2 /* modulesDir */
            invokevirtual jdk.internal.jrtfs.ExplodedImage$PathNode.getName:()Ljava/lang/String;
            aload 2 /* modulesDir */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 279
            new java.util.ArrayList
            dup
            aload 1 /* packageToModules */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* packagesChildren */
        start local 3 // java.util.List packagesChildren
        19: .line 280
            aload 1 /* packageToModules */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 34
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.util.Map jdk.internal.jrtfs.ExplodedImage$PathNode java.util.List top java.util.Iterator
      StackMap stack:
        20: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        21: .line 281
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* pkgName */
        start local 6 // java.lang.String pkgName
        22: .line 282
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* moduleNameList */
        start local 7 // java.util.List moduleNameList
        23: .line 283
            new java.util.ArrayList
            dup
            aload 7 /* moduleNameList */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* moduleLinkNodes */
        start local 8 // java.util.List moduleLinkNodes
        24: .line 284
            aload 7 /* moduleNameList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 30
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.util.Map jdk.internal.jrtfs.ExplodedImage$PathNode java.util.List java.util.Map$Entry java.util.Iterator java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        25: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* moduleName */
        start local 9 // java.lang.String moduleName
        26: .line 285
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "/modules/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* moduleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.internal.jrtfs.ExplodedImage.findModulesNode:(Ljava/lang/String;)Ljdk/internal/jimage/ImageReader$Node;
            astore 11 /* moduleNode */
        start local 11 // jdk.internal.jimage.ImageReader$Node moduleNode
        27: .line 286
            new jdk.internal.jrtfs.ExplodedImage$PathNode
            dup
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "/packages/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* pkgName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* moduleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 11 /* moduleNode */
            invokespecial jdk.internal.jrtfs.ExplodedImage$PathNode.<init>:(Ljdk/internal/jrtfs/ExplodedImage;Ljava/lang/String;Ljdk/internal/jimage/ImageReader$Node;)V
            astore 12 /* linkNode */
        start local 12 // jdk.internal.jrtfs.ExplodedImage$PathNode linkNode
        28: .line 287
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 12 /* linkNode */
            invokevirtual jdk.internal.jrtfs.ExplodedImage$PathNode.getName:()Ljava/lang/String;
            aload 12 /* linkNode */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 288
            aload 8 /* moduleLinkNodes */
            aload 12 /* linkNode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // jdk.internal.jrtfs.ExplodedImage$PathNode linkNode
        end local 11 // jdk.internal.jimage.ImageReader$Node moduleNode
        end local 9 // java.lang.String moduleName
        30: .line 284
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        31: .line 290
            new jdk.internal.jrtfs.ExplodedImage$PathNode
            dup
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "/packages/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* pkgName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* moduleLinkNodes */
            invokespecial jdk.internal.jrtfs.ExplodedImage$PathNode.<init>:(Ljdk/internal/jrtfs/ExplodedImage;Ljava/lang/String;Ljava/util/List;)V
            astore 9 /* pkgDir */
        start local 9 // jdk.internal.jrtfs.ExplodedImage$PathNode pkgDir
        32: .line 291
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 9 /* pkgDir */
            invokevirtual jdk.internal.jrtfs.ExplodedImage$PathNode.getName:()Ljava/lang/String;
            aload 9 /* pkgDir */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 292
            aload 3 /* packagesChildren */
            aload 9 /* pkgDir */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // jdk.internal.jrtfs.ExplodedImage$PathNode pkgDir
        end local 8 // java.util.List moduleLinkNodes
        end local 7 // java.util.List moduleNameList
        end local 6 // java.lang.String pkgName
        end local 4 // java.util.Map$Entry entry
        34: .line 280
      StackMap locals: jdk.internal.jrtfs.ExplodedImage java.util.Map jdk.internal.jrtfs.ExplodedImage$PathNode java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        35: .line 295
            new jdk.internal.jrtfs.ExplodedImage$PathNode
            dup
            aload 0 /* this */
            ldc "/packages"
            aload 3 /* packagesChildren */
            invokespecial jdk.internal.jrtfs.ExplodedImage$PathNode.<init>:(Ljdk/internal/jrtfs/ExplodedImage;Ljava/lang/String;Ljava/util/List;)V
            astore 4 /* packagesDir */
        start local 4 // jdk.internal.jrtfs.ExplodedImage$PathNode packagesDir
        36: .line 296
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 4 /* packagesDir */
            invokevirtual jdk.internal.jrtfs.ExplodedImage$PathNode.getName:()Ljava/lang/String;
            aload 4 /* packagesDir */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 299
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* rootChildren */
        start local 5 // java.util.List rootChildren
        38: .line 300
            aload 5 /* rootChildren */
            aload 4 /* packagesDir */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 301
            aload 5 /* rootChildren */
            aload 2 /* modulesDir */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 302
            new jdk.internal.jrtfs.ExplodedImage$PathNode
            dup
            aload 0 /* this */
            ldc "/"
            aload 5 /* rootChildren */
            invokespecial jdk.internal.jrtfs.ExplodedImage$PathNode.<init>:(Ljdk/internal/jrtfs/ExplodedImage;Ljava/lang/String;Ljava/util/List;)V
            astore 6 /* root */
        start local 6 // jdk.internal.jrtfs.ExplodedImage$PathNode root
        41: .line 303
            aload 0 /* this */
            getfield jdk.internal.jrtfs.ExplodedImage.nodes:Ljava/util/Map;
            aload 6 /* root */
            invokevirtual jdk.internal.jrtfs.ExplodedImage$PathNode.getName:()Ljava/lang/String;
            aload 6 /* root */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 304
            return
        end local 6 // jdk.internal.jrtfs.ExplodedImage$PathNode root
        end local 5 // java.util.List rootChildren
        end local 4 // jdk.internal.jrtfs.ExplodedImage$PathNode packagesDir
        end local 3 // java.util.List packagesChildren
        end local 2 // jdk.internal.jrtfs.ExplodedImage$PathNode modulesDir
        end local 1 // java.util.Map packageToModules
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   43     0              this  Ljdk/internal/jrtfs/ExplodedImage;
            1   43     1  packageToModules  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            3   12     4            stream  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
            5    9     5            module  Ljava/nio/file/Path;
            7    9     7        moduleName  Ljava/lang/String;
           17   43     2        modulesDir  Ljdk/internal/jrtfs/ExplodedImage$PathNode;
           19   43     3  packagesChildren  Ljava/util/List<Ljdk/internal/jimage/ImageReader$Node;>;
           21   34     4             entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           22   34     6           pkgName  Ljava/lang/String;
           23   34     7    moduleNameList  Ljava/util/List<Ljava/lang/String;>;
           24   34     8   moduleLinkNodes  Ljava/util/List<Ljdk/internal/jimage/ImageReader$Node;>;
           26   30     9        moduleName  Ljava/lang/String;
           27   30    11        moduleNode  Ljdk/internal/jimage/ImageReader$Node;
           28   30    12          linkNode  Ljdk/internal/jrtfs/ExplodedImage$PathNode;
           32   34     9            pkgDir  Ljdk/internal/jrtfs/ExplodedImage$PathNode;
           36   43     4       packagesDir  Ljdk/internal/jrtfs/ExplodedImage$PathNode;
           38   43     5      rootChildren  Ljava/util/List<Ljdk/internal/jimage/ImageReader$Node;>;
           41   43     6              root  Ljdk/internal/jrtfs/ExplodedImage$PathNode;
      Exception table:
        from    to  target  type
           3    10      11  any
           2    13      13  any
    Exceptions:
      throws java.io.IOException

  private static boolean lambda$2(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.file.Path  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ireturn
        end local 0 // java.nio.file.Path  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/nio/file/Path;

  private void lambda$1(java.nio.file.Path, java.util.Map, java.lang.String, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Map;Ljava/lang/String;Ljava/nio/file/Path;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // jdk.internal.jrtfs.ExplodedImage this
        start local 4 // java.nio.file.Path p
         0: .line 258
            aload 1
            aload 4 /* p */
            invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 4 /* p */
         1: .line 259
            aload 0 /* this */
            aload 4 /* p */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual jdk.internal.jrtfs.ExplodedImage.slashesToDots:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* pkgName */
        start local 5 // java.lang.String pkgName
         2: .line 261
            aload 5 /* pkgName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 8
            aload 5 /* pkgName */
            ldc "META-INF"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 8
         3: .line 262
            aload 2
            aload 5 /* pkgName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 6 /* moduleNames */
        start local 6 // java.util.List moduleNames
         4: .line 263
            aload 6 /* moduleNames */
            ifnonnull 7
         5: .line 264
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* moduleNames */
         6: .line 265
            aload 2
            aload 5 /* pkgName */
            aload 6 /* moduleNames */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 267
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 6 /* moduleNames */
            aload 3
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.List moduleNames
        end local 5 // java.lang.String pkgName
         8: .line 269
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.nio.file.Path p
        end local 0 // jdk.internal.jrtfs.ExplodedImage this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljdk/internal/jrtfs/ExplodedImage;
            0    9     4            p  Ljava/nio/file/Path;
            2    8     5      pkgName  Ljava/lang/String;
            4    8     6  moduleNames  Ljava/util/List<Ljava/lang/String;>;
}
SourceFile: "ExplodedImage.java"
NestMembers:
  jdk.internal.jrtfs.ExplodedImage$PathNode
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract Node = jdk.internal.jimage.ImageReader$Node of jdk.internal.jimage.ImageReader
  private final PathNode = jdk.internal.jrtfs.ExplodedImage$PathNode of jdk.internal.jrtfs.ExplodedImage