public class org.graalvm.component.installer.jar.JarMetaLoader extends org.graalvm.component.installer.persist.ComponentPackageLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.jar.JarMetaLoader
  super_class: org.graalvm.component.installer.persist.ComponentPackageLoader
{
  private final java.util.jar.JarFile jarFile;
    descriptor: Ljava/util/jar/JarFile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.component.installer.Feedback fb;
    descriptor: Lorg/graalvm/component/installer/Feedback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.util.jar.JarFile, org.graalvm.component.installer.Feedback);
    descriptor: (Ljava/util/jar/JarFile;Lorg/graalvm/component/installer/Feedback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
        start local 1 // java.util.jar.JarFile jarFile
        start local 2 // org.graalvm.component.installer.Feedback feedback
         0: .line 63
            aload 0 /* this */
            aload 1 /* jarFile */
            aconst_null
            aload 2 /* feedback */
            invokespecial org.graalvm.component.installer.jar.JarMetaLoader.<init>:(Ljava/util/jar/JarFile;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;)V
         1: .line 64
            return
        end local 2 // org.graalvm.component.installer.Feedback feedback
        end local 1 // java.util.jar.JarFile jarFile
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
            0    2     1   jarFile  Ljava/util/jar/JarFile;
            0    2     2  feedback  Lorg/graalvm/component/installer/Feedback;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      jarFile   
      feedback  

  public void <init>(java.util.jar.JarFile, java.lang.String, org.graalvm.component.installer.Feedback);
    descriptor: (Ljava/util/jar/JarFile;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
        start local 1 // java.util.jar.JarFile jarFile
        start local 2 // java.lang.String serial
        start local 3 // org.graalvm.component.installer.Feedback feedback
         0: .line 67
            aload 0 /* this */
            aload 2 /* serial */
            new org.graalvm.component.installer.jar.JarMetaLoader$ManifestValues
            dup
            aload 1 /* jarFile */
            invokespecial org.graalvm.component.installer.jar.JarMetaLoader$ManifestValues.<init>:(Ljava/util/jar/JarFile;)V
            aload 3 /* feedback */
            invokespecial org.graalvm.component.installer.persist.ComponentPackageLoader.<init>:(Ljava/lang/String;Ljava/util/function/Function;Lorg/graalvm/component/installer/Feedback;)V
         1: .line 68
            aload 0 /* this */
            aload 1 /* jarFile */
            putfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
         2: .line 69
            aload 0 /* this */
            aload 3 /* feedback */
            ldc Lorg/graalvm/component/installer/jar/JarMetaLoader;
            invokeinterface org.graalvm.component.installer.Feedback.withBundle:(Ljava/lang/Class;)Lorg/graalvm/component/installer/Feedback;
            putfield org.graalvm.component.installer.jar.JarMetaLoader.fb:Lorg/graalvm/component/installer/Feedback;
         3: .line 70
            return
        end local 3 // org.graalvm.component.installer.Feedback feedback
        end local 2 // java.lang.String serial
        end local 1 // java.util.jar.JarFile jarFile
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
            0    4     1   jarFile  Ljava/util/jar/JarFile;
            0    4     2    serial  Ljava/lang/String;
            0    4     3  feedback  Lorg/graalvm/component/installer/Feedback;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      jarFile   
      serial    
      feedback  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
         0: .line 90
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.persist.ComponentPackageLoader.close:()V
         1: .line 91
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.close:()V
         2: .line 92
            return
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
    Exceptions:
      throws java.io.IOException

  public org.graalvm.component.installer.Archive getArchive();
    descriptor: ()Lorg/graalvm/component/installer/Archive;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
         0: .line 96
            new org.graalvm.component.installer.jar.JarArchive
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            invokespecial org.graalvm.component.installer.jar.JarArchive.<init>:(Ljava/util/jar/JarFile;)V
            areturn
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/jar/JarMetaLoader;

  public java.util.Map<java.lang.String, java.lang.String> loadPermissions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
         0: .line 101
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            ldc "META-INF/permissions"
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 1 /* permEntry */
        start local 1 // java.util.jar.JarEntry permEntry
         1: .line 102
            aload 1 /* permEntry */
            ifnonnull 3
         2: .line 103
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            areturn
         3: .line 105
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         4: new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
         5: .line 106
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            aload 1 /* permEntry */
            invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            ldc "UTF-8"
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
         6: .line 105
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 4 /* r */
        start local 4 // java.io.BufferedReader r
         7: .line 107
            aload 0 /* this */
            aload 4 /* r */
            invokevirtual org.graalvm.component.installer.jar.JarMetaLoader.parsePermissions:(Ljava/io/BufferedReader;)Ljava/util/Map;
            astore 5 /* permissions */
        start local 5 // java.util.Map permissions
         8: .line 108
            aload 5 /* permissions */
         9: .line 109
            aload 4 /* r */
            ifnull 10
            aload 4 /* r */
            invokevirtual java.io.BufferedReader.close:()V
        10: .line 108
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader java.util.jar.JarEntry java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.util.Map
      StackMap stack: java.util.Map
            areturn
        end local 5 // java.util.Map permissions
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader java.util.jar.JarEntry java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        11: astore 2
        12: .line 109
            aload 4 /* r */
            ifnull 13
            aload 4 /* r */
            invokevirtual java.io.BufferedReader.close:()V
        end local 4 // java.io.BufferedReader r
      StackMap locals:
      StackMap stack:
        13: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 3
            aload 2
            ifnonnull 15
            aload 3
            astore 2
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2
            aload 3
            if_acmpeq 16
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
        end local 1 // java.util.jar.JarEntry permEntry
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
            1   17     1    permEntry  Ljava/util/jar/JarEntry;
            7   13     4            r  Ljava/io/BufferedReader;
            8   11     5  permissions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           7     9      11  any
           4    10      14  any
          11    14      14  any
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public void loadPaths();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
         0: .line 114
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.jar.JarMetaLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 1 /* cinfo */
        start local 1 // org.graalvm.component.installer.model.ComponentInfo cinfo
         1: .line 115
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* emptyDirectories */
        start local 2 // java.util.Set emptyDirectories
         2: .line 116
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* files */
        start local 3 // java.util.List files
         3: .line 117
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
            invokestatic java.util.Collections.list:(Ljava/util/Enumeration;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader org.graalvm.component.installer.model.ComponentInfo java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            astore 4 /* en */
        start local 4 // java.util.jar.JarEntry en
         5: .line 118
            aload 4 /* en */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            astore 6 /* eName */
        start local 6 // java.lang.String eName
         6: .line 119
            aload 6 /* eName */
            ldc "META-INF/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 120
            goto 17
         8: .line 122
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader org.graalvm.component.installer.model.ComponentInfo java.util.Set java.util.List java.util.jar.JarEntry java.util.Iterator java.lang.String
      StackMap stack:
            aload 6 /* eName */
            ldc "/"
            aload 4 /* en */
            invokevirtual java.util.jar.JarEntry.isDirectory:()Z
            ifeq 9
            aload 6 /* eName */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            goto 10
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader org.graalvm.component.installer.model.ComponentInfo java.util.Set java.util.List java.util.jar.JarEntry java.util.Iterator java.lang.String
      StackMap stack: java.lang.String java.lang.String
         9: aload 6 /* eName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader org.graalvm.component.installer.model.ComponentInfo java.util.Set java.util.List java.util.jar.JarEntry java.util.Iterator java.lang.String
      StackMap stack: java.lang.String java.lang.String int
        10: invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
            istore 7 /* li */
        start local 7 // int li
        11: .line 123
            iload 7 /* li */
            ifle 13
        12: .line 124
            aload 2 /* emptyDirectories */
            aload 6 /* eName */
            iconst_0
            iload 7 /* li */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        13: .line 126
      StackMap locals: int
      StackMap stack:
            aload 4 /* en */
            invokevirtual java.util.jar.JarEntry.isDirectory:()Z
            ifeq 16
        14: .line 128
            aload 2 /* emptyDirectories */
            aload 6 /* eName */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 129
            goto 17
        16: .line 130
      StackMap locals:
      StackMap stack:
            aload 3 /* files */
            aload 6 /* eName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // int li
        end local 6 // java.lang.String eName
        end local 4 // java.util.jar.JarEntry en
        17: .line 117
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader org.graalvm.component.installer.model.ComponentInfo java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        18: .line 133
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 2 /* emptyDirectories */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual org.graalvm.component.installer.jar.JarMetaLoader.addFiles:(Ljava/util/List;)V
        19: .line 135
            aload 3 /* files */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        20: .line 136
            aload 1 /* cinfo */
            aload 3 /* files */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.addPaths:(Ljava/util/List;)V
        21: .line 137
            aload 0 /* this */
            aload 3 /* files */
            invokevirtual org.graalvm.component.installer.jar.JarMetaLoader.addFiles:(Ljava/util/List;)V
        22: .line 138
            return
        end local 3 // java.util.List files
        end local 2 // java.util.Set emptyDirectories
        end local 1 // org.graalvm.component.installer.model.ComponentInfo cinfo
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0              this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
            1   23     1             cinfo  Lorg/graalvm/component/installer/model/ComponentInfo;
            2   23     2  emptyDirectories  Ljava/util/Set<Ljava/lang/String;>;
            3   23     3             files  Ljava/util/List<Ljava/lang/String;>;
            5   17     4                en  Ljava/util/jar/JarEntry;
            6   17     6             eName  Ljava/lang/String;
           11   17     7                li  I

  public java.util.Map<java.lang.String, java.lang.String> loadSymlinks();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
         0: .line 142
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            ldc "META-INF/symlinks"
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 1 /* symEntry */
        start local 1 // java.util.jar.JarEntry symEntry
         1: .line 143
            aload 1 /* symEntry */
            ifnonnull 3
         2: .line 144
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            areturn
         3: .line 146
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 2 /* links */
        start local 2 // java.util.Properties links
         4: .line 147
            aconst_null
            astore 3
            aconst_null
            astore 4
         5: aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            aload 1 /* symEntry */
            invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 5 /* istm */
        start local 5 // java.io.InputStream istm
         6: .line 148
            aload 2 /* links */
            aload 5 /* istm */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
         7: .line 149
            aload 5 /* istm */
            ifnull 13
            aload 5 /* istm */
            invokevirtual java.io.InputStream.close:()V
            goto 13
      StackMap locals: org.graalvm.component.installer.jar.JarMetaLoader java.util.jar.JarEntry java.util.Properties java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 5 /* istm */
            ifnull 9
            aload 5 /* istm */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream istm
      StackMap locals:
      StackMap stack:
         9: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 4
            aload 3
            ifnonnull 11
            aload 4
            astore 3
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 3
            aload 4
            if_acmpeq 12
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
        13: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* links */
            invokevirtual org.graalvm.component.installer.jar.JarMetaLoader.parseSymlinks:(Ljava/util/Properties;)Ljava/util/Map;
            areturn
        end local 2 // java.util.Properties links
        end local 1 // java.util.jar.JarEntry symEntry
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
            1   14     1  symEntry  Ljava/util/jar/JarEntry;
            4   14     2     links  Ljava/util/Properties;
            6    9     5      istm  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           6     7       8  any
           5    10      10  any
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public java.lang.String getLicenseID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
         0: .line 155
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.jar.JarMetaLoader.getLicensePath:()Ljava/lang/String;
            astore 1 /* licPath */
        start local 1 // java.lang.String licPath
         1: .line 156
            aload 1 /* licPath */
            ifnonnull 3
         2: .line 157
            aconst_null
            areturn
         3: .line 159
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* licPath */
            invokestatic org.graalvm.component.installer.SystemUtils.isRemotePath:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 160
            aload 1 /* licPath */
            areturn
         5: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.jar.JarMetaLoader.jarFile:Ljava/util/jar/JarFile;
            aload 1 /* licPath */
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 2 /* je */
        start local 2 // java.util.jar.JarEntry je
         6: .line 163
            aload 2 /* je */
            ifnonnull 8
         7: .line 164
            aconst_null
            areturn
         8: .line 166
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aload 2 /* je */
            invokevirtual java.util.jar.JarEntry.getCrc:()J
            lstore 3 /* crc */
        start local 3 // long crc
         9: .line 167
            lload 3 /* crc */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            areturn
        end local 3 // long crc
        end local 2 // java.util.jar.JarEntry je
        end local 1 // java.lang.String licPath
        end local 0 // org.graalvm.component.installer.jar.JarMetaLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/graalvm/component/installer/jar/JarMetaLoader;
            1   10     1  licPath  Ljava/lang/String;
            6   10     2       je  Ljava/util/jar/JarEntry;
            9   10     3      crc  J
}
SourceFile: "JarMetaLoader.java"
NestMembers:
  org.graalvm.component.installer.jar.JarMetaLoader$ManifestValues
InnerClasses:
  private ManifestValues = org.graalvm.component.installer.jar.JarMetaLoader$ManifestValues of org.graalvm.component.installer.jar.JarMetaLoader