public class sun.tools.jar.Main
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.tools.jar.Main
  super_class: java.lang.Object
{
  java.lang.String program;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.io.PrintWriter out;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0000) 

  java.io.PrintWriter err;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0000) 

  java.lang.String fname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String mname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String ename;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String zname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String rootjar;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

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

  java.util.Map<java.lang.String, sun.tools.jar.Main$Entry> entryMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Lsun/tools/jar/Main$Entry;>;

  java.util.Set<sun.tools.jar.Main$Entry> entries;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lsun/tools/jar/Main$Entry;>;

  java.util.Map<java.lang.String, byte[]> moduleInfos;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;[B>;

  java.util.Map<java.lang.Integer, java.util.Set<java.lang.String>> pathsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;

  java.util.Map<java.lang.Integer, java.lang.String[]> filesMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;

  boolean isMultiRelease;
    descriptor: Z
    flags: (0x0000) 

  int releaseValue;
    descriptor: I
    flags: (0x0000) 

  boolean cflag;
    descriptor: Z
    flags: (0x0000) 

  boolean uflag;
    descriptor: Z
    flags: (0x0000) 

  boolean xflag;
    descriptor: Z
    flags: (0x0000) 

  boolean tflag;
    descriptor: Z
    flags: (0x0000) 

  boolean vflag;
    descriptor: Z
    flags: (0x0000) 

  boolean flag0;
    descriptor: Z
    flags: (0x0000) 

  boolean Mflag;
    descriptor: Z
    flags: (0x0000) 

  boolean iflag;
    descriptor: Z
    flags: (0x0000) 

  boolean nflag;
    descriptor: Z
    flags: (0x0000) 

  boolean pflag;
    descriptor: Z
    flags: (0x0000) 

  boolean dflag;
    descriptor: Z
    flags: (0x0000) 

  java.util.function.Consumer<java.io.PrintWriter> info;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x0000) 
    Signature: Ljava/util/function/Consumer<Ljava/io/PrintWriter;>;

  java.lang.module.ModuleDescriptor$Version moduleVersion;
    descriptor: Ljava/lang/module/ModuleDescriptor$Version;
    flags: (0x0000) 

  java.util.regex.Pattern modulesToHash;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0000) 

  jdk.internal.module.ModuleResolution moduleResolution;
    descriptor: Ljdk/internal/module/ModuleResolution;
    flags: (0x0000) 

  java.lang.module.ModuleFinder moduleFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x0000) 

  static final java.lang.String MODULE_INFO;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "module-info.class"

  static final java.lang.String MANIFEST_DIR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "META-INF/"

  static final java.lang.String VERSIONS_DIR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "META-INF/versions/"

  static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.0"

  static final int VERSIONS_DIR_LENGTH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static java.util.ResourceBundle rsrc;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final boolean useExtractionTime;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private boolean ok;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private byte[] copyBuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashSet<java.lang.String> jarPaths;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Ljava/lang/String;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 81
            ldc Lsun/tools/jar/Main;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.tools.jar.Main.$assertionsDisabled:Z
         3: .line 168
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.length:()I
            putstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
         4: .line 177
            ldc "sun.tools.jar.useExtractionTime"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         5: .line 176
            putstatic sun.tools.jar.Main.useExtractionTime:Z
         6: .line 184
            ldc "sun.tools.jar.resources.jar"
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
            putstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
         7: .line 185
            goto 10
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
         8: pop
         9: .line 186
            new java.lang.Error
            dup
            ldc "Fatal: Resource for jar is missing"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 188
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           6     7       8  Class java.util.MissingResourceException

  static java.lang.String getMsg(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 192
            getstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
            aload 0 /* key */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 193
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         3: .line 194
            new java.lang.Error
            dup
            ldc "Error in message file"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   key  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.MissingResourceException
    MethodParameters:
      Name  Flags
      key   

  static java.lang.String formatMsg(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String arg
         0: .line 199
            aload 0 /* key */
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         1: .line 200
            iconst_1
            anewarray java.lang.String
            astore 3 /* args */
        start local 3 // java.lang.String[] args
         2: .line 201
            aload 3 /* args */
            iconst_0
            aload 1 /* arg */
            aastore
         3: .line 202
            aload 2 /* msg */
            aload 3 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String[] args
        end local 2 // java.lang.String msg
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   key  Ljava/lang/String;
            0    4     1   arg  Ljava/lang/String;
            1    4     2   msg  Ljava/lang/String;
            2    4     3  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   

  static java.lang.String formatMsg2(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.String key
        start local 1 // java.lang.String arg
        start local 2 // java.lang.String arg1
         0: .line 206
            aload 0 /* key */
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         1: .line 207
            iconst_2
            anewarray java.lang.String
            astore 4 /* args */
        start local 4 // java.lang.String[] args
         2: .line 208
            aload 4 /* args */
            iconst_0
            aload 1 /* arg */
            aastore
         3: .line 209
            aload 4 /* args */
            iconst_1
            aload 2 /* arg1 */
            aastore
         4: .line 210
            aload 3 /* msg */
            aload 4 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String[] args
        end local 3 // java.lang.String msg
        end local 2 // java.lang.String arg1
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   key  Ljava/lang/String;
            0    5     1   arg  Ljava/lang/String;
            0    5     2  arg1  Ljava/lang/String;
            1    5     3   msg  Ljava/lang/String;
            2    5     4  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   
      arg1  

  public void <init>(java.io.PrintStream, java.io.PrintStream, java.lang.String);
    descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.PrintStream out
        start local 2 // java.io.PrintStream err
        start local 3 // java.lang.String program
         0: .line 213
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 86
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 117
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
         4: .line 120
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield sun.tools.jar.Main.entries:Ljava/util/Set;
         5: .line 123
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
         6: .line 127
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
         7: .line 130
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
         8: .line 138
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.jar.Main.releaseValue:I
         9: .line 161
            aload 0 /* this */
            invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
            putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
        10: .line 162
            aload 0 /* this */
            iconst_0
            anewarray java.nio.file.Path
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
        11: .line 1226
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
        12: .line 1520
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
        13: .line 214
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
            putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
        14: .line 215
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            aload 2 /* err */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
            putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
        15: .line 216
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        16: .line 217
            return
        end local 3 // java.lang.String program
        end local 2 // java.io.PrintStream err
        end local 1 // java.io.PrintStream out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1      out  Ljava/io/PrintStream;
            0   17     2      err  Ljava/io/PrintStream;
            0   17     3  program  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      out      
      err      
      program  

  public void <init>(java.io.PrintWriter, java.io.PrintWriter, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/io/PrintWriter;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.PrintWriter out
        start local 2 // java.io.PrintWriter err
        start local 3 // java.lang.String program
         0: .line 219
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 86
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 117
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
         4: .line 120
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield sun.tools.jar.Main.entries:Ljava/util/Set;
         5: .line 123
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
         6: .line 127
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
         7: .line 130
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
         8: .line 138
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.jar.Main.releaseValue:I
         9: .line 161
            aload 0 /* this */
            invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
            putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
        10: .line 162
            aload 0 /* this */
            iconst_0
            anewarray java.nio.file.Path
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
        11: .line 1226
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
        12: .line 1520
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
        13: .line 220
            aload 0 /* this */
            aload 1 /* out */
            putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
        14: .line 221
            aload 0 /* this */
            aload 2 /* err */
            putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
        15: .line 222
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        16: .line 223
            return
        end local 3 // java.lang.String program
        end local 2 // java.io.PrintWriter err
        end local 1 // java.io.PrintWriter out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1      out  Ljava/io/PrintWriter;
            0   17     2      err  Ljava/io/PrintWriter;
            0   17     3  program  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      out      
      err      
      program  

  private static java.io.File createTempFileInSameDirectoryAs(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 231
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 1 /* dir */
        start local 1 // java.io.File dir
         1: .line 232
            aload 1 /* dir */
            ifnonnull 3
         2: .line 233
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* dir */
         3: .line 234
      StackMap locals: java.io.File
      StackMap stack:
            ldc "jartmp"
            aconst_null
            aload 1 /* dir */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            areturn
        end local 1 // java.io.File dir
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  file  Ljava/io/File;
            1    4     1   dir  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public synchronized boolean run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=15, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 243
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.ok:Z
         1: .line 244
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
            ifne 3
         2: .line 245
            iconst_0
            ireturn
         3: .line 247
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* tmpFile */
        start local 2 // java.io.File tmpFile
         4: .line 249
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 5
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 9
         5: .line 250
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 9
         6: .line 254
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         7: .line 255
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 256
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         9: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 111
        10: .line 261
            aconst_null
            astore 3 /* manifest */
        start local 3 // java.util.jar.Manifest manifest
        11: .line 262
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 33
        12: .line 263
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 22
        13: .line 264
            aconst_null
            astore 4
            aconst_null
            astore 5
        14: new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 6 /* in */
        start local 6 // java.io.InputStream in
        15: .line 265
            new java.util.jar.Manifest
            dup
            new java.io.BufferedInputStream
            dup
            aload 6 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 3 /* manifest */
        16: .line 266
            aload 6 /* in */
            ifnull 23
            aload 6 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 23
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        17: astore 4
            aload 6 /* in */
            ifnull 18
            aload 6 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
            aload 4
            ifnonnull 20
            aload 5
            astore 4
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 4
            aload 5
            if_acmpeq 21
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 4
            athrow
        22: .line 268
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            astore 3 /* manifest */
        23: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
        24: .line 271
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
        25: .line 272
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 29
        26: .line 437
            aload 2 /* tmpFile */
            ifnull 28
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 28
        27: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        28: .line 273
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        29: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 31
        30: .line 276
            aload 0 /* this */
            aload 3 /* manifest */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
        31: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 33
        32: .line 279
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
        33: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.expand:()V
        34: .line 283
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 45
        35: .line 285
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* jentries */
        start local 4 // java.util.Set jentries
        36: .line 287
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* packages */
        start local 5 // java.util.Set packages
        37: .line 288
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        38: .line 289
            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
                  sun/tools/jar/Main.lambda$0(Lsun/tools/jar/Main$Entry;)Z (6)
                  (Lsun/tools/jar/Main$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        39: .line 290
            aload 0 /* this */
            aload 5 /* packages */
            aload 4 /* jentries */
            invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;Ljava/util/Set;)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
                  sun/tools/jar/Main.lambda$1(Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V (7)
                  (Lsun/tools/jar/Main$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        40: .line 294
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 5 /* packages */
            invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
        41: .line 297
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            ldc "module-info.class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            aload 4 /* jentries */
            invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
            ifne 50
        42: .line 437
            aload 2 /* tmpFile */
            ifnull 44
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 44
        43: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        44: .line 298
      StackMap locals: java.util.Set java.util.Set
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // java.util.Set packages
        end local 4 // java.util.Set jentries
        45: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnonnull 46
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 50
        46: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.module.options.without.info"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        47: .line 437
            aload 2 /* tmpFile */
            ifnull 49
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 49
        48: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        49: .line 302
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        50: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 52
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 52
        51: .line 308
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
        52: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 54
        53: .line 311
            ldc "tmpjar"
            goto 55
        54: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
        55: .line 310
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* tmpbase */
        start local 4 // java.lang.String tmpbase
        56: .line 314
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
        57: .line 315
            aconst_null
            astore 5
            aconst_null
            astore 6
        58: new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.OutputStream out
        59: .line 316
            aload 0 /* this */
            new java.io.BufferedOutputStream
            dup
            aload 7 /* out */
            sipush 4096
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
        60: .line 317
            aload 7 /* out */
            ifnull 66
            aload 7 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 66
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
        61: astore 5
            aload 7 /* out */
            ifnull 62
            aload 7 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 7 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
        62: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: astore 6
            aload 5
            ifnonnull 64
            aload 6
            astore 5
            goto 65
      StackMap locals:
      StackMap stack:
        64: aload 5
            aload 6
            if_acmpeq 65
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        65: aload 5
            athrow
        66: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.nflag:Z
            ifeq 109
        67: .line 319
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".pack"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 5 /* packFile */
        start local 5 // java.io.File packFile
        68: .line 321
            invokestatic java.util.jar.Pack200.newPacker:()Ljava/util/jar/Pack200$Packer;
            astore 6 /* packer */
        start local 6 // java.util.jar.Pack200$Packer packer
        69: .line 322
            aload 6 /* packer */
            invokeinterface java.util.jar.Pack200$Packer.properties:()Ljava/util/SortedMap;
            astore 7 /* p */
        start local 7 // java.util.Map p
        70: .line 323
            aload 7 /* p */
            ldc "pack.effort"
            ldc "1"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        71: .line 324
            aconst_null
            astore 8
            aconst_null
            astore 9
        72: new java.util.jar.JarFile
            dup
            aload 2 /* tmpFile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 10 /* jarFile */
        start local 10 // java.util.jar.JarFile jarFile
        73: .line 325
            new java.io.FileOutputStream
            dup
            aload 5 /* packFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 11 /* pack */
        start local 11 // java.io.OutputStream pack
        74: .line 327
            aload 6 /* packer */
            aload 10 /* jarFile */
            aload 11 /* pack */
            invokeinterface java.util.jar.Pack200$Packer.pack:(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
        75: .line 328
            aload 11 /* pack */
            ifnull 78
            aload 11 /* pack */
            invokevirtual java.io.OutputStream.close:()V
            goto 78
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.util.jar.JarFile java.io.OutputStream
      StackMap stack: java.lang.Throwable
        76: astore 8
            aload 11 /* pack */
            ifnull 77
            aload 11 /* pack */
            invokevirtual java.io.OutputStream.close:()V
        end local 11 // java.io.OutputStream pack
      StackMap locals:
      StackMap stack:
        77: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        78: aload 10 /* jarFile */
            ifnull 86
            aload 10 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
            goto 86
      StackMap locals:
      StackMap stack: java.lang.Throwable
        79: astore 9
            aload 8
            ifnonnull 80
            aload 9
            astore 8
            goto 81
      StackMap locals:
      StackMap stack:
        80: aload 8
            aload 9
            if_acmpeq 81
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        81: aload 10 /* jarFile */
            ifnull 82
            aload 10 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 10 // java.util.jar.JarFile jarFile
      StackMap locals:
      StackMap stack:
        82: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        83: astore 9
            aload 8
            ifnonnull 84
            aload 9
            astore 8
            goto 85
      StackMap locals:
      StackMap stack:
        84: aload 8
            aload 9
            if_acmpeq 85
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        85: aload 8
            athrow
        86: .line 329
      StackMap locals:
      StackMap stack:
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 88
        87: .line 330
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        88: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
        89: .line 333
            aconst_null
            astore 8
            aconst_null
            astore 9
        90: new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 10 /* out */
        start local 10 // java.io.OutputStream out
        91: .line 334
            new java.util.jar.JarOutputStream
            dup
            aload 10 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 11 /* jos */
        start local 11 // java.util.jar.JarOutputStream jos
        92: .line 336
            invokestatic java.util.jar.Pack200.newUnpacker:()Ljava/util/jar/Pack200$Unpacker;
            astore 12 /* unpacker */
        start local 12 // java.util.jar.Pack200$Unpacker unpacker
        93: .line 337
            aload 12 /* unpacker */
            aload 5 /* packFile */
            aload 11 /* jos */
            invokeinterface java.util.jar.Pack200$Unpacker.unpack:(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
        end local 12 // java.util.jar.Pack200$Unpacker unpacker
        94: .line 338
            aload 11 /* jos */
            ifnull 97
            aload 11 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
            goto 97
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.io.OutputStream java.util.jar.JarOutputStream
      StackMap stack: java.lang.Throwable
        95: astore 8
            aload 11 /* jos */
            ifnull 96
            aload 11 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        end local 11 // java.util.jar.JarOutputStream jos
      StackMap locals:
      StackMap stack:
        96: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        97: aload 10 /* out */
            ifnull 108
            aload 10 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 108
      StackMap locals:
      StackMap stack: java.lang.Throwable
        98: astore 9
            aload 8
            ifnonnull 99
            aload 9
            astore 8
            goto 100
      StackMap locals:
      StackMap stack:
        99: aload 8
            aload 9
            if_acmpeq 100
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       100: aload 10 /* out */
            ifnull 101
            aload 10 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 10 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
       101: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       102: astore 9
            aload 8
            ifnonnull 103
            aload 9
            astore 8
            goto 104
      StackMap locals:
      StackMap stack:
       103: aload 8
            aload 9
            if_acmpeq 104
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       104: aload 8
            athrow
        end local 7 // java.util.Map p
        end local 6 // java.util.jar.Pack200$Packer packer
       105: .line 339
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File
      StackMap stack: java.lang.Throwable
            astore 13
       106: .line 340
            aload 5 /* packFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
       107: .line 341
            aload 13
            athrow
       108: .line 340
      StackMap locals:
      StackMap stack:
            aload 5 /* packFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        end local 5 // java.io.File packFile
       109: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmpFile */
            invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
        end local 4 // java.lang.String tmpbase
        end local 3 // java.util.jar.Manifest manifest
       110: .line 344
            goto 230
      StackMap locals:
      StackMap stack:
       111: aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 152
       112: .line 345
            aconst_null
            astore 3 /* inputFile */
        start local 3 // java.io.File inputFile
       113: .line 346
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 117
       114: .line 347
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* inputFile */
       115: .line 348
            aload 3 /* inputFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            astore 2 /* tmpFile */
       116: .line 349
            goto 119
       117: .line 350
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
       118: .line 351
            aload 0 /* this */
            ldc "tmpjar"
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
       119: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.expand:()V
       120: .line 354
            aconst_null
            astore 4
            aconst_null
            astore 5
       121: aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 122
            new java.io.FileInputStream
            dup
            aload 3 /* inputFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            goto 123
       122: .line 355
      StackMap locals: java.lang.Throwable java.lang.Throwable
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
       123: .line 354
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 6 /* in */
        start local 6 // java.io.FileInputStream in
       124: .line 356
            new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.FileOutputStream out
       125: .line 357
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 127
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 127
       126: .line 358
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            goto 128
      StackMap locals: java.io.FileInputStream java.io.FileOutputStream
      StackMap stack:
       127: aconst_null
       128: .line 357
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 8 /* manifest */
        start local 8 // java.io.InputStream manifest
       129: .line 360
            aload 0 /* this */
            aload 6 /* in */
            new java.io.BufferedOutputStream
            dup
            aload 7 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
       130: .line 361
            aload 8 /* manifest */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aconst_null
       131: .line 360
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
            istore 9 /* updateOk */
        start local 9 // boolean updateOk
       132: .line 362
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 134
       133: .line 363
            aload 0 /* this */
            iload 9 /* updateOk */
            putfield sun.tools.jar.Main.ok:Z
        end local 9 // boolean updateOk
       134: .line 365
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 8 /* manifest */
            ifnull 137
            aload 8 /* manifest */
            invokevirtual java.io.InputStream.close:()V
            goto 137
      StackMap locals:
      StackMap stack: java.lang.Throwable
       135: astore 4
            aload 8 /* manifest */
            ifnull 136
            aload 8 /* manifest */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream manifest
      StackMap locals:
      StackMap stack:
       136: aload 4
            athrow
      StackMap locals:
      StackMap stack:
       137: aload 7 /* out */
            ifnull 142
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 142
      StackMap locals:
      StackMap stack: java.lang.Throwable
       138: astore 5
            aload 4
            ifnonnull 139
            aload 5
            astore 4
            goto 140
      StackMap locals:
      StackMap stack:
       139: aload 4
            aload 5
            if_acmpeq 140
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       140: aload 7 /* out */
            ifnull 141
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 7 // java.io.FileOutputStream out
      StackMap locals:
      StackMap stack:
       141: aload 4
            athrow
      StackMap locals:
      StackMap stack:
       142: aload 6 /* in */
            ifnull 150
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
            goto 150
      StackMap locals:
      StackMap stack: java.lang.Throwable
       143: astore 5
            aload 4
            ifnonnull 144
            aload 5
            astore 4
            goto 145
      StackMap locals:
      StackMap stack:
       144: aload 4
            aload 5
            if_acmpeq 145
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       145: aload 6 /* in */
            ifnull 146
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream in
      StackMap locals:
      StackMap stack:
       146: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       147: astore 5
            aload 4
            ifnonnull 148
            aload 5
            astore 4
            goto 149
      StackMap locals:
      StackMap stack:
       148: aload 4
            aload 5
            if_acmpeq 149
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       149: aload 4
            athrow
       150: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmpFile */
            invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
        end local 3 // java.io.File inputFile
       151: .line 367
            goto 230
      StackMap locals:
      StackMap stack:
       152: aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 166
       153: .line 368
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
       154: .line 372
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       155: .line 373
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 158
       156: .line 374
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
       157: .line 375
            goto 230
       158: .line 376
      StackMap locals: java.lang.String[]
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 4 /* in */
        start local 4 // java.io.InputStream in
       159: .line 378
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 4 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
       160: .line 379
            goto 164
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       161: astore 5
       162: .line 380
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
       163: .line 381
            aload 5
            athrow
       164: .line 380
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String[] files
       165: .line 383
            goto 230
      StackMap locals:
      StackMap stack:
       166: aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifeq 184
       167: .line 384
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
       168: .line 395
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       169: .line 396
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 172
            aload 3 /* files */
            ifnull 172
       170: .line 397
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       171: .line 398
            goto 230
       172: .line 399
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 174
       173: .line 400
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            goto 175
       174: .line 401
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
       175: .line 399
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 4 /* in */
        start local 4 // java.io.InputStream in
       176: .line 403
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 4 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)Z
            ifne 182
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 182
       177: .line 404
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       178: .line 406
            goto 182
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       179: astore 5
       180: .line 407
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
       181: .line 408
            aload 5
            athrow
       182: .line 407
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String[] files
       183: .line 410
            goto 230
      StackMap locals:
      StackMap stack:
       184: aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 188
       185: .line 411
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       186: .line 412
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
        end local 3 // java.lang.String[] files
       187: .line 413
            goto 230
      StackMap locals:
      StackMap stack:
       188: aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 230
       189: .line 415
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 199
       190: .line 416
            aconst_null
            astore 4
            aconst_null
            astore 5
       191: new java.util.zip.ZipFile
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 6 /* zf */
        start local 6 // java.util.zip.ZipFile zf
       192: .line 417
            aload 0 /* this */
            aload 6 /* zf */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/util/zip/ZipFile;)Z
            istore 3 /* found */
        start local 3 // boolean found
       193: .line 418
            aload 6 /* zf */
            ifnull 208
            aload 6 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
            goto 208
        end local 3 // boolean found
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
       194: astore 4
            aload 6 /* zf */
            ifnull 195
            aload 6 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 6 // java.util.zip.ZipFile zf
      StackMap locals:
      StackMap stack:
       195: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       196: astore 5
            aload 4
            ifnonnull 197
            aload 5
            astore 4
            goto 198
      StackMap locals:
      StackMap stack:
       197: aload 4
            aload 5
            if_acmpeq 198
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       198: aload 4
            athrow
       199: .line 420
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
       200: new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 6 /* fin */
        start local 6 // java.io.FileInputStream fin
       201: .line 421
            aload 0 /* this */
            aload 6 /* fin */
            invokevirtual sun.tools.jar.Main.describeModuleFromStream:(Ljava/io/FileInputStream;)Z
            istore 3 /* found */
        start local 3 // boolean found
       202: .line 422
            aload 6 /* fin */
            ifnull 208
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
            goto 208
        end local 3 // boolean found
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
       203: astore 4
            aload 6 /* fin */
            ifnull 204
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream fin
      StackMap locals:
      StackMap stack:
       204: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       205: astore 5
            aload 4
            ifnonnull 206
            aload 5
            astore 4
            goto 207
      StackMap locals:
      StackMap stack:
       206: aload 4
            aload 5
            if_acmpeq 207
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       207: aload 4
            athrow
        start local 3 // boolean found
       208: .line 424
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File int
      StackMap stack:
            iload 3 /* found */
            ifne 230
       209: .line 425
            aload 0 /* this */
            ldc "error.module.descriptor.not.found"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        end local 3 // boolean found
       210: .line 427
            goto 230
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack: java.io.IOException
       211: astore 3 /* e */
        start local 3 // java.io.IOException e
       212: .line 428
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
       213: .line 429
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.io.IOException e
       214: .line 437
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       215: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 232
       216: .line 430
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 3 /* ee */
        start local 3 // java.lang.Error ee
       217: .line 431
            aload 3 /* ee */
            invokevirtual java.lang.Error.printStackTrace:()V
       218: .line 432
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.lang.Error ee
       219: .line 437
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       220: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 232
       221: .line 433
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
       222: .line 434
            aload 3 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
       223: .line 435
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.lang.Throwable t
       224: .line 437
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       225: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 232
       226: .line 436
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
       227: .line 437
            aload 2 /* tmpFile */
            ifnull 229
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 229
       228: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       229: .line 439
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
       230: .line 437
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack:
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       231: .line 438
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       232: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
       233: .line 441
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
       234: .line 442
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ireturn
        end local 2 // java.io.File tmpFile
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  235     0       this  Lsun/tools/jar/Main;
            0  235     1       args  [Ljava/lang/String;
            4  235     2    tmpFile  Ljava/io/File;
           11  110     3   manifest  Ljava/util/jar/Manifest;
           15   18     6         in  Ljava/io/InputStream;
           36   45     4   jentries  Ljava/util/Set<Ljava/lang/String;>;
           37   45     5   packages  Ljava/util/Set<Ljava/lang/String;>;
           56  110     4    tmpbase  Ljava/lang/String;
           59   62     7        out  Ljava/io/OutputStream;
           68  109     5   packFile  Ljava/io/File;
           69  105     6     packer  Ljava/util/jar/Pack200$Packer;
           70  105     7          p  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           73   82    10    jarFile  Ljava/util/jar/JarFile;
           74   77    11       pack  Ljava/io/OutputStream;
           91  101    10        out  Ljava/io/OutputStream;
           92   96    11        jos  Ljava/util/jar/JarOutputStream;
           93   94    12   unpacker  Ljava/util/jar/Pack200$Unpacker;
          113  151     3  inputFile  Ljava/io/File;
          124  146     6         in  Ljava/io/FileInputStream;
          125  141     7        out  Ljava/io/FileOutputStream;
          129  136     8   manifest  Ljava/io/InputStream;
          132  134     9   updateOk  Z
          155  165     3      files  [Ljava/lang/String;
          159  165     4         in  Ljava/io/InputStream;
          169  183     3      files  [Ljava/lang/String;
          176  183     4         in  Ljava/io/InputStream;
          186  187     3      files  [Ljava/lang/String;
          193  194     3      found  Z
          202  203     3      found  Z
          208  210     3      found  Z
          192  195     6         zf  Ljava/util/zip/ZipFile;
          201  204     6        fin  Ljava/io/FileInputStream;
          212  214     3          e  Ljava/io/IOException;
          217  219     3         ee  Ljava/lang/Error;
          222  224     3          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  any
          14    19      19  any
          59    60      61  any
          58    63      63  any
          74    75      76  any
          73    78      79  any
          72    83      83  any
          92    94      95  any
          91    97      98  any
          90   102     102  any
          68   105     105  any
         129   134     135  any
         125   137     138  any
         124   142     143  any
         121   147     147  any
         159   161     161  any
         176   179     179  any
         192   193     194  any
         191   196     196  any
         201   202     203  any
         200   205     205  any
           4    26     211  Class java.io.IOException
          29    42     211  Class java.io.IOException
          45    47     211  Class java.io.IOException
          50   210     211  Class java.io.IOException
           4    26     216  Class java.lang.Error
          29    42     216  Class java.lang.Error
          45    47     216  Class java.lang.Error
          50   210     216  Class java.lang.Error
           4    26     221  Class java.lang.Throwable
          29    42     221  Class java.lang.Throwable
          45    47     221  Class java.lang.Throwable
          50   210     221  Class java.lang.Throwable
           4    26     226  any
          29    42     226  any
          45    47     226  any
          50   214     226  any
         216   219     226  any
         221   224     226  any
    MethodParameters:
      Name  Flags
      args  

  private void validateAndClose(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File tmpfile
         0: .line 446
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 14
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 14
         1: .line 447
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.util.jar.JarFile
            dup
            aload 1 /* tmpfile */
            invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;)V
            astore 4 /* jf */
        start local 4 // java.util.jar.JarFile jf
         3: .line 448
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* jf */
            invokestatic sun.tools.jar.Validator.validate:(Lsun/tools/jar/Main;Ljava/util/jar/JarFile;)Z
            putfield sun.tools.jar.Main.ok:Z
         4: .line 449
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifne 6
         5: .line 450
            aload 0 /* this */
            ldc "error.validator.jarfile.invalid"
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         6: .line 452
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.jar.JarFile
      StackMap stack:
            aload 4 /* jf */
            ifnull 14
            aload 4 /* jf */
            invokevirtual java.util.jar.JarFile.close:()V
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 4 /* jf */
            ifnull 8
            aload 4 /* jf */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 4 // java.util.jar.JarFile jf
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals: sun.tools.jar.Main java.io.File
      StackMap stack: java.io.IOException
        12: astore 2 /* e */
        start local 2 // java.io.IOException e
        13: .line 453
            aload 0 /* this */
            ldc "error.validator.jarfile.exception"
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        end local 2 // java.io.IOException e
        14: .line 456
      StackMap locals:
      StackMap stack:
            aload 1 /* tmpfile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 2 /* path */
        start local 2 // java.nio.file.Path path
        15: .line 458
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 24
        16: .line 459
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 19
        17: .line 460
            aload 2 /* path */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
        18: .line 461
            goto 24
        19: .line 462
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 2 /* path */
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/io/OutputStream;)J
            pop2
        20: .line 465
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 3
        22: .line 466
            aload 2 /* path */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        23: .line 467
            aload 3
            athrow
        24: .line 466
      StackMap locals:
      StackMap stack:
            aload 2 /* path */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        25: .line 468
            return
        end local 2 // java.nio.file.Path path
        end local 1 // java.io.File tmpfile
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lsun/tools/jar/Main;
            0   26     1  tmpfile  Ljava/io/File;
            3    8     4       jf  Ljava/util/jar/JarFile;
           13   14     2        e  Ljava/io/IOException;
           15   26     2     path  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           3     6       7  any
           2     9       9  any
           1    12      12  Class java.io.IOException
          15    21      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      tmpfile  

  private java.lang.String[] filesMapToFiles(java.util.Map<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map filesMap
         0: .line 471
            aload 1 /* filesMap */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            aconst_null
            areturn
         1: .line 472
      StackMap locals:
      StackMap stack:
            aload 1 /* filesMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
         2: .line 473
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 474
            aload 0 /* this */
            invokedynamic apply(Lsun/tools/jar/Main;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main.filesToEntryNames(Ljava/util/Map$Entry;)Ljava/util/stream/Stream; (5)
                  (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 475
            invokedynamic apply()Ljava/util/function/IntFunction;
              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:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$3(I)[Ljava/lang/String; (6)
                  (I)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast java.lang.String[]
         5: .line 472
            areturn
        end local 1 // java.util.Map filesMap
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/tools/jar/Main;
            0    6     1  filesMap  Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)[Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filesMap  

  java.util.stream.Stream<java.lang.String> filesToEntryNames(java.util.Map$Entry<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map$Entry fileEntries
         0: .line 479
            aload 1 /* fileEntries */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* version */
        start local 2 // int version
         1: .line 480
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 2 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* cpaths */
        start local 3 // java.util.Set cpaths
         2: .line 481
            aload 1 /* fileEntries */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         3: .line 482
            aload 0 /* this */
            aload 3 /* cpaths */
            iload 2 /* version */
            invokedynamic apply(Lsun/tools/jar/Main;Ljava/util/Set;I)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$4(Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String; (7)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 481
            areturn
        end local 3 // java.util.Set cpaths
        end local 2 // int version
        end local 1 // java.util.Map$Entry fileEntries
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lsun/tools/jar/Main;
            0    5     1  fileEntries  Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;
            1    5     2      version  I
            2    5     3       cpaths  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
             Name  Flags
      fileEntries  

  boolean parseArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 491
            aload 1 /* args */
            invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* args */
         1: .line 492
            goto 8
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
         2: astore 2 /* e */
        start local 2 // java.io.FileNotFoundException e
         3: .line 493
            aload 0 /* this */
            ldc "error.cant.open"
            aload 2 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
         4: .line 494
            iconst_0
            ireturn
        end local 2 // java.io.FileNotFoundException e
         5: .line 495
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 496
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
         7: .line 497
            iconst_0
            ireturn
        end local 2 // java.io.IOException e
         8: .line 500
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* count */
        start local 2 // int count
         9: .line 502
            aload 1 /* args */
            iconst_0
            aaload
            astore 3 /* flags */
        start local 3 // java.lang.String flags
        10: .line 507
            aload 3 /* flags */
            ldc "--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 12
        11: .line 508
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmpne 24
        12: .line 510
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            invokestatic sun.tools.jar.GNUStyleOptions.parseOptions:(Lsun/tools/jar/Main;[Ljava/lang/String;)I
            istore 2 /* count */
        13: .line 511
            goto 21
      StackMap locals:
      StackMap stack: sun.tools.jar.GNUStyleOptions$BadArgs
        14: astore 4 /* x */
        start local 4 // sun.tools.jar.GNUStyleOptions$BadArgs x
        15: .line 512
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            ifnonnull 21
        16: .line 513
            aload 4 /* x */
            getfield sun.tools.jar.GNUStyleOptions$BadArgs.showUsage:Z
            ifeq 19
        17: .line 514
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        18: .line 515
            goto 20
        19: .line 516
      StackMap locals: sun.tools.jar.GNUStyleOptions$BadArgs
      StackMap stack:
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        20: .line 518
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // sun.tools.jar.GNUStyleOptions$BadArgs x
        21: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            ifnull 81
        22: .line 522
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        23: .line 523
            iconst_1
            ireturn
        24: .line 527
      StackMap locals:
      StackMap stack:
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
        25: .line 528
            aload 3 /* flags */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* flags */
        26: .line 530
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        27: goto 76
        28: .line 531
      StackMap locals: int
      StackMap stack:
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 13
                   48: 57
                   77: 49
                   80: 69
                   99: 29
                  101: 67
                  102: 53
                  105: 59
                  109: 55
                  110: 65
                  116: 44
                  117: 34
                  118: 51
                  120: 39
              default: 71
          }
        29: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 32
        30: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        31: .line 535
            iconst_0
            ireturn
        32: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.cflag:Z
        33: .line 538
            goto 75
        34: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 37
        35: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        36: .line 542
            iconst_0
            ireturn
        37: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.uflag:Z
        38: .line 545
            goto 75
        39: .line 547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 42
        40: .line 548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        41: .line 549
            iconst_0
            ireturn
        42: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.xflag:Z
        43: .line 552
            goto 75
        44: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 47
        45: .line 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        46: .line 556
            iconst_0
            ireturn
        47: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.tflag:Z
        48: .line 559
            goto 75
        49: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.Mflag:Z
        50: .line 562
            goto 75
        51: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.vflag:Z
        52: .line 565
            goto 75
        53: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.fname:Ljava/lang/String;
        54: .line 568
            goto 75
        55: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.mname:Ljava/lang/String;
        56: .line 571
            goto 75
        57: .line 573
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.flag0:Z
        58: .line 574
            goto 75
        59: .line 576
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 62
        60: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        61: .line 578
            iconst_0
            ireturn
        62: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
        63: .line 582
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.iflag:Z
        64: .line 583
            goto 75
        65: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.nflag:Z
        66: .line 586
            goto 75
        67: .line 588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.ename:Ljava/lang/String;
        68: .line 589
            goto 75
        69: .line 591
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.pflag:Z
        70: .line 592
            goto 75
        71: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.illegal.option"
        72: .line 595
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
        73: .line 594
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        74: .line 596
            iconst_0
            ireturn
        75: .line 530
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        76: iload 4 /* i */
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            if_icmplt 28
        end local 4 // int i
        end local 3 // java.lang.String flags
        77: .line 600
            goto 81
      StackMap locals: sun.tools.jar.Main java.lang.String[] int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        78: pop
        79: .line 601
            aload 0 /* this */
            ldc "main.usage.summary"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        80: .line 602
            iconst_0
            ireturn
        81: .line 604
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifne 84
        82: .line 605
            aload 0 /* this */
            ldc "error.bad.option"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        83: .line 606
            iconst_0
            ireturn
        84: .line 610
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            arraylength
            iload 2 /* count */
            isub
            istore 3 /* n */
        start local 3 // int n
        85: .line 611
            iload 3 /* n */
            ifle 148
        86: .line 612
            iconst_0
            istore 4 /* version */
        start local 4 // int version
        87: .line 613
            iconst_0
            istore 5 /* k */
        start local 5 // int k
        88: .line 614
            iload 3 /* n */
            anewarray java.lang.String
            astore 6 /* nameBuf */
        start local 6 // java.lang.String[] nameBuf
        89: .line 615
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        90: .line 617
            iload 2 /* count */
            istore 7 /* i */
        start local 7 // int i
        91: goto 135
        92: .line 618
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int
      StackMap stack:
            aload 1 /* args */
            iload 7 /* i */
            aaload
            ldc "-C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 108
        93: .line 619
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 96
        94: .line 622
            aload 0 /* this */
            ldc "error.bad.dflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        95: .line 623
            iconst_0
            ireturn
        96: .line 626
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 8 /* dir */
        start local 8 // java.lang.String dir
        97: .line 627
            aload 8 /* dir */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 99
        98: .line 628
            aload 8 /* dir */
            goto 100
      StackMap locals: java.lang.String
      StackMap stack:
        99: new java.lang.StringBuilder
            dup
            aload 8 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       100: .line 627
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* dir */
       101: .line 629
            aload 8 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 8 /* dir */
       102: .line 630
            goto 104
       103: .line 631
      StackMap locals:
      StackMap stack:
            aload 8 /* dir */
            ldc "//"
            ldc "/"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 8 /* dir */
       104: .line 630
      StackMap locals:
      StackMap stack:
            aload 8 /* dir */
            ldc "//"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpgt 103
       105: .line 633
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 8 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       106: .line 634
            aload 6 /* nameBuf */
            iload 5 /* k */
            iinc 5 /* k */ 1
            new java.lang.StringBuilder
            dup
            aload 8 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        end local 8 // java.lang.String dir
       107: .line 635
            goto 134
      StackMap locals:
      StackMap stack:
       108: aload 1 /* args */
            iload 7 /* i */
            aaload
            ldc "--release"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 130
       109: .line 636
            iconst_0
            istore 8 /* v */
        start local 8 // int v
       110: .line 638
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 8 /* v */
       111: .line 639
            goto 114
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int
      StackMap stack: java.lang.NumberFormatException
       112: pop
       113: .line 640
            aload 0 /* this */
            ldc "error.release.value.notnumber"
            aload 1 /* args */
            iload 7 /* i */
            aaload
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
       114: .line 643
      StackMap locals:
      StackMap stack:
            iload 8 /* v */
            bipush 9
            if_icmpge 117
       115: .line 644
            aload 0 /* this */
            ldc "error.release.value.toosmall"
            iload 8 /* v */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       116: .line 645
            iconst_0
            ireturn
       117: .line 648
      StackMap locals:
      StackMap stack:
            iload 5 /* k */
            ifle 124
       118: .line 649
            iload 5 /* k */
            anewarray java.lang.String
            astore 9 /* files */
        start local 9 // java.lang.String[] files
       119: .line 650
            aload 6 /* nameBuf */
            iconst_0
            aload 9 /* files */
            iconst_0
            iload 5 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       120: .line 651
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* files */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       121: .line 652
            aload 0 /* this */
            iload 4 /* version */
            ifle 122
            iconst_1
            goto 123
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
      StackMap stack: sun.tools.jar.Main
       122: iconst_0
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
      StackMap stack: sun.tools.jar.Main int
       123: putfield sun.tools.jar.Main.isMultiRelease:Z
        end local 9 // java.lang.String[] files
       124: .line 655
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* k */
       125: .line 656
            iload 3 /* n */
            anewarray java.lang.String
            astore 6 /* nameBuf */
       126: .line 657
            iload 8 /* v */
            istore 4 /* version */
       127: .line 658
            aload 0 /* this */
            iload 4 /* version */
            putfield sun.tools.jar.Main.releaseValue:I
       128: .line 659
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // int v
       129: .line 660
            goto 134
       130: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 133
       131: .line 664
            aload 0 /* this */
            ldc "error.bad.dflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       132: .line 665
            iconst_0
            ireturn
       133: .line 667
      StackMap locals:
      StackMap stack:
            aload 6 /* nameBuf */
            iload 5 /* k */
            iinc 5 /* k */ 1
            aload 1 /* args */
            iload 7 /* i */
            aaload
            aastore
       134: .line 617
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
       135: iload 7 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 92
        end local 7 // int i
       136: .line 670
            goto 140
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
       137: pop
       138: .line 671
            aload 0 /* this */
            ldc "error.bad.file.arg"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       139: .line 672
            iconst_0
            ireturn
       140: .line 675
      StackMap locals:
      StackMap stack:
            iload 5 /* k */
            ifle 156
       141: .line 676
            iload 5 /* k */
            anewarray java.lang.String
            astore 7 /* files */
        start local 7 // java.lang.String[] files
       142: .line 677
            aload 6 /* nameBuf */
            iconst_0
            aload 7 /* files */
            iconst_0
            iload 5 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       143: .line 678
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 7 /* files */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       144: .line 679
            aload 0 /* this */
            iload 4 /* version */
            ifle 145
            iconst_1
            goto 146
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
      StackMap stack: sun.tools.jar.Main
       145: iconst_0
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
      StackMap stack: sun.tools.jar.Main int
       146: putfield sun.tools.jar.Main.isMultiRelease:Z
        end local 7 // java.lang.String[] files
        end local 6 // java.lang.String[] nameBuf
        end local 5 // int k
        end local 4 // int version
       147: .line 681
            goto 156
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int
      StackMap stack:
       148: aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 151
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 151
       149: .line 682
            aload 0 /* this */
            ldc "error.bad.cflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       150: .line 683
            iconst_0
            ireturn
       151: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 156
       152: .line 685
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 153
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 154
       153: .line 687
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
       154: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.bad.uflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       155: .line 690
            iconst_0
            ireturn
       156: .line 693
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int n
        end local 2 // int count
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0  157     0     this  Lsun/tools/jar/Main;
            0  157     1     args  [Ljava/lang/String;
            3    5     2        e  Ljava/io/FileNotFoundException;
            6    8     2        e  Ljava/io/IOException;
            9  157     2    count  I
           10   77     3    flags  Ljava/lang/String;
           15   21     4        x  Lsun/tools/jar/GNUStyleOptions$BadArgs;
           27   77     4        i  I
           85  157     3        n  I
           87  147     4  version  I
           88  147     5        k  I
           89  147     6  nameBuf  [Ljava/lang/String;
           91  136     7        i  I
           97  107     8      dir  Ljava/lang/String;
          110  129     8        v  I
          119  124     9    files  [Ljava/lang/String;
          142  147     7    files  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.FileNotFoundException
           0     1       5  Class java.io.IOException
          12    13      14  Class sun.tools.jar.GNUStyleOptions$BadArgs
           9    20      78  Class java.lang.ArrayIndexOutOfBoundsException
          21    23      78  Class java.lang.ArrayIndexOutOfBoundsException
          24    31      78  Class java.lang.ArrayIndexOutOfBoundsException
          32    36      78  Class java.lang.ArrayIndexOutOfBoundsException
          37    41      78  Class java.lang.ArrayIndexOutOfBoundsException
          42    46      78  Class java.lang.ArrayIndexOutOfBoundsException
          47    61      78  Class java.lang.ArrayIndexOutOfBoundsException
          62    74      78  Class java.lang.ArrayIndexOutOfBoundsException
          75    77      78  Class java.lang.ArrayIndexOutOfBoundsException
         110   111     112  Class java.lang.NumberFormatException
          90    95     137  Class java.lang.ArrayIndexOutOfBoundsException
          96   116     137  Class java.lang.ArrayIndexOutOfBoundsException
         117   132     137  Class java.lang.ArrayIndexOutOfBoundsException
         133   136     137  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      args  

  void addPackageIfNamed(java.util.Set<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Set packages
        start local 2 // java.lang.String name
         0: .line 701
            aload 2 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
         1: .line 703
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            istore 3 /* i0 */
        start local 3 // int i0
         2: .line 704
            aload 2 /* name */
            bipush 47
            iload 3 /* i0 */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* i */
        start local 4 // int i
         3: .line 705
            iload 4 /* i */
            ifgt 11
         4: .line 706
            aload 0 /* this */
            ldc "warn.release.unexpected.versioned.entry"
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
         5: .line 707
            return
         6: .line 710
      StackMap locals: int int
      StackMap stack:
            aload 2 /* name */
            iload 3 /* i0 */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         7: .line 711
            iload 5 /* c */
            bipush 48
            if_icmplt 8
            iload 5 /* c */
            bipush 57
            if_icmple 10
         8: .line 712
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc "warn.release.unexpected.versioned.entry"
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
         9: .line 713
            return
        10: .line 715
      StackMap locals:
      StackMap stack:
            iinc 3 /* i0 */ 1
        end local 5 // char c
        11: .line 709
      StackMap locals:
      StackMap stack:
            iload 3 /* i0 */
            iload 4 /* i */
            if_icmplt 6
        12: .line 717
            aload 2 /* name */
            iload 4 /* i */
            iconst_1
            iadd
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
        end local 4 // int i
        end local 3 // int i0
        13: .line 719
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.toPackageName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pn */
        start local 3 // java.lang.String pn
        14: .line 721
            aload 3 /* pn */
            invokestatic jdk.internal.module.Checks.isPackageName:(Ljava/lang/String;)Z
            ifeq 16
        15: .line 722
            aload 1 /* packages */
            aload 3 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 724
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 3 // java.lang.String pn
        end local 2 // java.lang.String name
        end local 1 // java.util.Set packages
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lsun/tools/jar/Main;
            0   17     1  packages  Ljava/util/Set<Ljava/lang/String;>;
            0   17     2      name  Ljava/lang/String;
            2   13     3        i0  I
            3   13     4         i  I
            7   11     5         c  C
           14   17     3        pn  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      packages  
      name      

  private java.lang.String toEntryName(java.lang.String, java.util.Set<java.lang.String>, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
        start local 2 // java.util.Set cpaths
        start local 3 // boolean isDir
         0: .line 727
            aload 1 /* name */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* name */
         1: .line 728
            iload 3 /* isDir */
            ifeq 5
         2: .line 729
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
            aload 1 /* name */
            goto 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 1 /* name */
         5: .line 731
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 4 /* matchPath */
        start local 4 // java.lang.String matchPath
         6: .line 732
            aload 2 /* cpaths */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* path */
        start local 5 // java.lang.String path
         8: .line 733
            aload 1 /* name */
            aload 5 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
            aload 5 /* path */
            invokevirtual java.lang.String.length:()I
            aload 4 /* matchPath */
            invokevirtual java.lang.String.length:()I
            if_icmple 10
         9: .line 734
            aload 5 /* path */
            astore 4 /* matchPath */
        end local 5 // java.lang.String path
        10: .line 732
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 737
            aload 0 /* this */
            aload 1 /* name */
            aload 4 /* matchPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
        12: .line 740
            aload 1 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        13: .line 741
            aload 1 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        14: .line 743
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 4 // java.lang.String matchPath
        end local 3 // boolean isDir
        end local 2 // java.util.Set cpaths
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lsun/tools/jar/Main;
            0   15     1       name  Ljava/lang/String;
            0   15     2     cpaths  Ljava/util/Set<Ljava/lang/String;>;
            0   15     3      isDir  Z
            6   15     4  matchPath  Ljava/lang/String;
            8   10     5       path  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Z)Ljava/lang/String;
    MethodParameters:
        Name  Flags
      name    
      cpaths  
      isDir   

  private static java.lang.String toVersionedName(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // int version
         0: .line 747
            iload 1 /* version */
            ifle 2
         1: .line 748
            new java.lang.StringBuilder
            dup
            ldc "META-INF/versions/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* name */
         3: .line 747
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // int version
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     name  Ljava/lang/String;
            0    4     1  version  I
    MethodParameters:
         Name  Flags
      name     
      version  

  private static java.lang.String toPackageName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String path
         0: .line 752
            aload 0 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 753
            iload 1 /* index */
            iconst_m1
            if_icmpeq 3
         2: .line 754
            aload 0 /* path */
            iconst_0
            iload 1 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
         3: .line 756
      StackMap locals: int
      StackMap stack:
            ldc ""
            areturn
        end local 1 // int index
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   path  Ljava/lang/String;
            1    4     1  index  I
    MethodParameters:
      Name  Flags
      path  

  private void expand();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 761
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: sun.tools.jar.Main top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 1 /* version */
        start local 1 // int version
         2: .line 762
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* files */
        start local 3 // java.lang.String[] files
         3: .line 763
            aload 0 /* this */
            aconst_null
            aload 3 /* files */
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            iload 1 /* version */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
        end local 3 // java.lang.String[] files
        end local 1 // int version
         4: .line 761
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 765
            return
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/tools/jar/Main;
            2    4     1  version  I
            3    4     3    files  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private void expand(java.io.File, java.lang.String[], java.util.Set<java.lang.String>, );
    descriptor: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File dir
        start local 2 // java.lang.String[] files
        start local 3 // java.util.Set cpaths
        start local 4 // int version
         0: .line 779
            aload 2 /* files */
            ifnonnull 2
         1: .line 780
            return
         2: .line 782
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 41
         4: .line 784
      StackMap locals: int
      StackMap stack:
            aload 1 /* dir */
            ifnonnull 7
         5: .line 785
            new java.io.File
            dup
            aload 2 /* files */
            iload 5 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         6: goto 8
        end local 6 // java.io.File f
         7: .line 787
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* dir */
            aload 2 /* files */
            iload 5 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         8: .line 789
      StackMap locals: java.io.File
      StackMap stack:
            aload 6 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            istore 7 /* isDir */
        start local 7 // boolean isDir
         9: .line 790
            aload 0 /* this */
            aload 6 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aload 3 /* cpaths */
            iload 7 /* isDir */
            invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
        10: .line 792
            iload 4 /* version */
            ifeq 18
        11: .line 793
            aload 8 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        12: .line 797
            aload 0 /* this */
            ldc "error.release.unexpected.versioned.entry"
        13: .line 798
            aload 8 /* name */
            iload 4 /* version */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
        14: .line 797
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        15: .line 799
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        16: .line 800
            return
        17: .line 802
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 8 /* name */
            iload 4 /* version */
            invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
            astore 8 /* name */
        18: .line 805
      StackMap locals:
      StackMap stack:
            aload 6 /* f */
            invokevirtual java.io.File.isFile:()Z
            ifeq 29
        19: .line 806
            new sun.tools.jar.Main$Entry
            dup
            aload 6 /* f */
            aload 8 /* name */
            iconst_0
            invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
            astore 9 /* e */
        start local 9 // sun.tools.jar.Main$Entry e
        20: .line 807
            aload 8 /* name */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ifeq 25
        21: .line 808
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 8 /* name */
            aload 6 /* f */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 809
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 40
        23: .line 810
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 811
            goto 40
      StackMap locals: sun.tools.jar.Main$Entry
      StackMap stack:
        25: aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 40
        26: .line 812
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 40
        27: .line 813
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // sun.tools.jar.Main$Entry e
        28: .line 815
            goto 40
      StackMap locals:
      StackMap stack:
        29: iload 7 /* isDir */
            ifeq 38
        30: .line 816
            new sun.tools.jar.Main$Entry
            dup
            aload 6 /* f */
            aload 8 /* name */
            iconst_1
            invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
            astore 9 /* e */
        start local 9 // sun.tools.jar.Main$Entry e
        31: .line 817
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 40
        32: .line 824
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 825
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        34: .line 826
            goto 36
        35: .line 827
      StackMap locals: sun.tools.jar.Main$Entry
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* f */
            aload 6 /* f */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            aload 3 /* cpaths */
            iload 4 /* version */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
        end local 9 // sun.tools.jar.Main$Entry e
        37: .line 831
            goto 40
        38: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.nosuch.fileordir"
            aload 6 /* f */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        39: .line 833
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 8 // java.lang.String name
        end local 7 // boolean isDir
        end local 6 // java.io.File f
        40: .line 782
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 5 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 5 // int i
        42: .line 836
            return
        end local 4 // int version
        end local 3 // java.util.Set cpaths
        end local 2 // java.lang.String[] files
        end local 1 // java.io.File dir
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   43     0     this  Lsun/tools/jar/Main;
            0   43     1      dir  Ljava/io/File;
            0   43     2    files  [Ljava/lang/String;
            0   43     3   cpaths  Ljava/util/Set<Ljava/lang/String;>;
            0   43     4  version  I
            3   42     5        i  I
            6    7     6        f  Ljava/io/File;
            8   40     6        f  Ljava/io/File;
            9   40     7    isDir  Z
           10   40     8     name  Ljava/lang/String;
           20   28     9        e  Lsun/tools/jar/Main$Entry;
           31   37     9        e  Lsun/tools/jar/Main$Entry;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;I)V
    MethodParameters:
         Name  Flags
      dir      
      files    
      cpaths   
      version  

  void create(java.io.OutputStream, java.util.jar.Manifest);
    descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.OutputStream out
        start local 2 // java.util.jar.Manifest manifest
         0: .line 843
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 5 /* zos */
        start local 5 // java.util.zip.ZipOutputStream zos
         2: .line 844
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 4
         3: .line 845
            aload 5 /* zos */
            iconst_0
            invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
         4: .line 848
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
      StackMap stack:
            aload 2 /* manifest */
            ifnull 19
         5: .line 849
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 7
         6: .line 850
            aload 0 /* this */
            ldc "out.added.manifest"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         7: .line 852
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        start local 6 // java.util.zip.ZipEntry e
         8: .line 853
            aload 6 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         9: .line 854
            aload 6 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        10: .line 855
            aload 6 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        11: .line 856
            aload 5 /* zos */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        12: .line 857
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        13: .line 858
            aload 6 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        14: .line 859
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 16
        15: .line 860
            aload 0 /* this */
            aload 6 /* e */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        16: .line 862
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 5 /* zos */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        17: .line 863
            aload 2 /* manifest */
            aload 5 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        18: .line 864
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        end local 6 // java.util.zip.ZipEntry e
        19: .line 866
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 5 /* zos */
            invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
        20: .line 867
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream top java.util.Iterator
      StackMap stack:
        21: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 6 /* entry */
        start local 6 // sun.tools.jar.Main$Entry entry
        22: .line 868
            aload 0 /* this */
            aload 5 /* zos */
            aload 6 /* entry */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        end local 6 // sun.tools.jar.Main$Entry entry
        23: .line 867
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 870
            aload 5 /* zos */
            ifnull 30
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
            goto 30
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
      StackMap stack: java.lang.Throwable
        25: astore 3
            aload 5 /* zos */
            ifnull 26
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        end local 5 // java.util.zip.ZipOutputStream zos
      StackMap locals:
      StackMap stack:
        26: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 4
            aload 3
            ifnonnull 28
            aload 4
            astore 3
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 3
            aload 4
            if_acmpeq 29
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        29: aload 3
            athrow
        30: .line 871
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.jar.Manifest manifest
        end local 1 // java.io.OutputStream out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lsun/tools/jar/Main;
            0   31     1       out  Ljava/io/OutputStream;
            0   31     2  manifest  Ljava/util/jar/Manifest;
            2   26     5       zos  Ljava/util/zip/ZipOutputStream;
            8   19     6         e  Ljava/util/zip/ZipEntry;
           22   23     6     entry  Lsun/tools/jar/Main$Entry;
      Exception table:
        from    to  target  type
           2    24      25  any
           1    27      27  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      out       
      manifest  

  private char toUpperCaseASCII(char);
    descriptor: (C)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // char c
         0: .line 874
            iload 1 /* c */
            bipush 97
            if_icmplt 1
            iload 1 /* c */
            bipush 122
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* c */
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 1 /* c */
            bipush 65
            iadd
            bipush 97
            isub
            i2c
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // char c
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private boolean equalsIgnoreCase(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
        start local 2 // java.lang.String upper
         0: .line 884
            getstatic sun.tools.jar.Main.$assertionsDisabled:Z
            ifne 1
            aload 2 /* upper */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            aload 2 /* upper */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 886
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            dup
            istore 3 /* len */
        start local 3 // int len
         2: aload 2 /* upper */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
         3: .line 887
            iconst_0
            ireturn
         4: .line 888
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 11
         6: .line 889
      StackMap locals: int
      StackMap stack:
            aload 1 /* s */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c1 */
        start local 5 // char c1
         7: .line 890
            aload 2 /* upper */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c2 */
        start local 6 // char c2
         8: .line 891
            iload 5 /* c1 */
            iload 6 /* c2 */
            if_icmpeq 10
            aload 0 /* this */
            iload 5 /* c1 */
            invokevirtual sun.tools.jar.Main.toUpperCaseASCII:(C)C
            iload 6 /* c2 */
            if_icmpeq 10
         9: .line 892
            iconst_0
            ireturn
        end local 6 // char c2
        end local 5 // char c1
        10: .line 888
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 6
        end local 4 // int i
        12: .line 894
            iconst_1
            ireturn
        end local 3 // int len
        end local 2 // java.lang.String upper
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lsun/tools/jar/Main;
            0   13     1      s  Ljava/lang/String;
            0   13     2  upper  Ljava/lang/String;
            2   13     3    len  I
            5   12     4      i  I
            7   10     5     c1  C
            8   10     6     c2  C
    MethodParameters:
       Name  Flags
      s      
      upper  

  boolean update(java.io.InputStream, java.io.OutputStream, java.io.InputStream, java.util.Map<java.lang.String, byte[]>, jdk.internal.util.jar.JarIndex);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=17, args_size=6
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.io.OutputStream out
        start local 3 // java.io.InputStream newManifest
        start local 4 // java.util.Map moduleInfos
        start local 5 // jdk.internal.util.jar.JarIndex jarIndex
         0: .line 905
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
         1: .line 906
            new java.util.jar.JarOutputStream
            dup
            aload 2 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 7 /* zos */
        start local 7 // java.util.zip.ZipOutputStream zos
         2: .line 907
            aconst_null
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
         3: .line 908
            iconst_0
            istore 9 /* foundManifest */
        start local 9 // boolean foundManifest
         4: .line 909
            iconst_1
            istore 10 /* updateOk */
        start local 10 // boolean updateOk
         5: .line 913
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 11 /* jentries */
        start local 11 // java.util.Set jentries
         6: .line 915
            aload 5 /* jarIndex */
            ifnull 52
         7: .line 916
            aload 0 /* this */
            aload 5 /* jarIndex */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.addIndex:(Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
         8: .line 920
            goto 52
         9: .line 921
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
      StackMap stack:
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 12 /* name */
        start local 12 // java.lang.String name
        10: .line 923
            aload 0 /* this */
            aload 12 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            istore 13 /* isManifestEntry */
        start local 13 // boolean isManifestEntry
        11: .line 924
            aload 12 /* name */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            istore 14 /* isModuleInfoEntry */
        start local 14 // boolean isModuleInfoEntry
        12: .line 926
            aload 5 /* jarIndex */
            ifnull 13
            aload 0 /* this */
            aload 12 /* name */
            ldc "META-INF/INDEX.LIST"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 52
        13: .line 927
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifeq 15
            iload 13 /* isManifestEntry */
            ifeq 15
        14: .line 928
            goto 52
        15: .line 929
      StackMap locals:
      StackMap stack:
            iload 13 /* isManifestEntry */
            ifeq 29
            aload 3 /* newManifest */
            ifnonnull 17
        16: .line 930
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnonnull 17
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 29
        17: .line 931
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* foundManifest */
        18: .line 932
            aload 3 /* newManifest */
            ifnull 24
        19: .line 936
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 15 /* fis */
        start local 15 // java.io.FileInputStream fis
        20: .line 937
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            aload 15 /* fis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            istore 16 /* ambiguous */
        start local 16 // boolean ambiguous
        21: .line 938
            aload 15 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        22: .line 939
            iload 16 /* ambiguous */
            ifeq 24
        23: .line 940
            iconst_0
            ireturn
        end local 16 // boolean ambiguous
        end local 15 // java.io.FileInputStream fis
        24: .line 944
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            aload 6 /* zis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 15 /* old */
        start local 15 // java.util.jar.Manifest old
        25: .line 945
            aload 3 /* newManifest */
            ifnull 27
        26: .line 946
            aload 15 /* old */
            aload 3 /* newManifest */
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
        27: .line 948
      StackMap locals: java.util.jar.Manifest
      StackMap stack:
            aload 0 /* this */
            aload 15 /* old */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 52
        28: .line 949
            iconst_0
            ireturn
        end local 15 // java.util.jar.Manifest old
        29: .line 951
      StackMap locals:
      StackMap stack:
            aload 4 /* moduleInfos */
            ifnull 32
            iload 14 /* isModuleInfoEntry */
            ifeq 32
        30: .line 952
            aload 4 /* moduleInfos */
            aload 12 /* name */
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 953
            goto 52
        32: .line 954
      StackMap locals:
      StackMap stack:
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            istore 15 /* isDir */
        start local 15 // boolean isDir
        33: .line 955
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 45
        34: .line 957
            new java.util.zip.ZipEntry
            dup
            aload 12 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 16 /* e2 */
        start local 16 // java.util.zip.ZipEntry e2
        35: .line 958
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        36: .line 959
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        37: .line 960
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
            invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
        38: .line 961
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getExtra:()[B
            invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
        39: .line 962
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            ifne 42
        40: .line 963
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        41: .line 964
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getCrc:()J
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        42: .line 966
      StackMap locals: int java.util.zip.ZipEntry
      StackMap stack:
            aload 7 /* zos */
            aload 16 /* e2 */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        43: .line 967
            aload 0 /* this */
            aload 6 /* zis */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
        end local 16 // java.util.zip.ZipEntry e2
        44: .line 968
            goto 50
        45: .line 969
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 16 /* ent */
        start local 16 // sun.tools.jar.Main$Entry ent
        46: .line 970
            aload 0 /* this */
            aload 7 /* zos */
            aload 16 /* ent */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        47: .line 971
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        48: .line 972
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 16 /* ent */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        49: .line 973
            aload 16 /* ent */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            istore 15 /* isDir */
        end local 16 // sun.tools.jar.Main$Entry ent
        50: .line 975
      StackMap locals:
      StackMap stack:
            iload 15 /* isDir */
            ifne 52
        51: .line 976
            aload 11 /* jentries */
            aload 12 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // boolean isDir
        end local 14 // boolean isModuleInfoEntry
        end local 13 // boolean isManifestEntry
        end local 12 // java.lang.String name
        52: .line 920
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 8 /* e */
            ifnonnull 9
        53: .line 982
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 13
            goto 58
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set top java.util.Iterator
      StackMap stack:
        54: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 12 /* entry */
        start local 12 // sun.tools.jar.Main$Entry entry
        55: .line 983
            aload 0 /* this */
            aload 7 /* zos */
            aload 12 /* entry */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        56: .line 984
            aload 12 /* entry */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            ifne 58
        57: .line 985
            aload 11 /* jentries */
            aload 12 /* entry */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // sun.tools.jar.Main$Entry entry
        58: .line 982
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 54
        59: .line 988
            iload 9 /* foundManifest */
            ifne 72
        60: .line 989
            aload 3 /* newManifest */
            ifnull 69
        61: .line 990
            new java.util.jar.Manifest
            dup
            aload 3 /* newManifest */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 12 /* m */
        start local 12 // java.util.jar.Manifest m
        62: .line 991
            aload 0 /* this */
            aload 12 /* m */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 63
            iconst_0
            goto 64
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set java.util.jar.Manifest
      StackMap stack:
        63: iconst_1
      StackMap locals:
      StackMap stack: int
        64: istore 10 /* updateOk */
        65: .line 992
            iload 10 /* updateOk */
            ifeq 72
        66: .line 993
            aload 0 /* this */
            aload 12 /* m */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 72
        67: .line 994
            iconst_0
            istore 10 /* updateOk */
        end local 12 // java.util.jar.Manifest m
        68: .line 997
            goto 72
      StackMap locals:
      StackMap stack:
        69: aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 72
        70: .line 998
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 72
        71: .line 999
            iconst_0
            istore 10 /* updateOk */
        72: .line 1003
      StackMap locals:
      StackMap stack:
            iload 10 /* updateOk */
            ifeq 83
        73: .line 1004
            aload 4 /* moduleInfos */
            ifnull 80
            aload 4 /* moduleInfos */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 80
        74: .line 1005
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* pkgs */
        start local 12 // java.util.Set pkgs
        75: .line 1006
            aload 11 /* jentries */
            aload 0 /* this */
            aload 12 /* pkgs */
            invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;)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
                  sun/tools/jar/Main.lambda$5(Ljava/util/Set;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        76: .line 1007
            aload 0 /* this */
            aload 4 /* moduleInfos */
            aload 12 /* pkgs */
            invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
        77: .line 1008
            aload 0 /* this */
            aload 4 /* moduleInfos */
            ldc "module-info.class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            aload 11 /* jentries */
            invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
            istore 10 /* updateOk */
        78: .line 1009
            aload 0 /* this */
            aload 4 /* moduleInfos */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
        end local 12 // java.util.Set pkgs
        79: .line 1011
            goto 83
      StackMap locals:
      StackMap stack:
        80: aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnonnull 81
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 83
        81: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.module.options.without.info"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        82: .line 1013
            iconst_0
            istore 10 /* updateOk */
        83: .line 1016
      StackMap locals:
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        84: .line 1017
            aload 7 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        85: .line 1018
            iload 10 /* updateOk */
            ireturn
        end local 11 // java.util.Set jentries
        end local 10 // boolean updateOk
        end local 9 // boolean foundManifest
        end local 8 // java.util.zip.ZipEntry e
        end local 7 // java.util.zip.ZipOutputStream zos
        end local 6 // java.util.zip.ZipInputStream zis
        end local 5 // jdk.internal.util.jar.JarIndex jarIndex
        end local 4 // java.util.Map moduleInfos
        end local 3 // java.io.InputStream newManifest
        end local 2 // java.io.OutputStream out
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   86     0               this  Lsun/tools/jar/Main;
            0   86     1                 in  Ljava/io/InputStream;
            0   86     2                out  Ljava/io/OutputStream;
            0   86     3        newManifest  Ljava/io/InputStream;
            0   86     4        moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0   86     5           jarIndex  Ljdk/internal/util/jar/JarIndex;
            1   86     6                zis  Ljava/util/zip/ZipInputStream;
            2   86     7                zos  Ljava/util/zip/ZipOutputStream;
            3   86     8                  e  Ljava/util/zip/ZipEntry;
            4   86     9      foundManifest  Z
            5   86    10           updateOk  Z
            6   86    11           jentries  Ljava/util/Set<Ljava/lang/String;>;
           10   52    12               name  Ljava/lang/String;
           11   52    13    isManifestEntry  Z
           12   52    14  isModuleInfoEntry  Z
           20   24    15                fis  Ljava/io/FileInputStream;
           21   24    16          ambiguous  Z
           25   29    15                old  Ljava/util/jar/Manifest;
           33   52    15              isDir  Z
           35   44    16                 e2  Ljava/util/zip/ZipEntry;
           46   50    16                ent  Lsun/tools/jar/Main$Entry;
           55   58    12              entry  Lsun/tools/jar/Main$Entry;
           62   68    12                  m  Ljava/util/jar/Manifest;
           75   79    12               pkgs  Ljava/util/Set<Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;[B>;Ljdk/internal/util/jar/JarIndex;)Z
    MethodParameters:
             Name  Flags
      in           
      out          
      newManifest  
      moduleInfos  
      jarIndex     

  private void addIndex(jdk.internal.util.jar.JarIndex, java.util.zip.ZipOutputStream);
    descriptor: (Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // jdk.internal.util.jar.JarIndex index
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1024
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/INDEX.LIST"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.zip.ZipEntry e
         1: .line 1025
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         2: .line 1026
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 6
         3: .line 1027
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 4 /* os */
        start local 4 // sun.tools.jar.Main$CRC32OutputStream os
         4: .line 1028
            aload 1 /* index */
            aload 4 /* os */
            invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
         5: .line 1029
            aload 4 /* os */
            aload 3 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
        end local 4 // sun.tools.jar.Main$CRC32OutputStream os
         6: .line 1031
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 3 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 1032
            aload 1 /* index */
            aload 2 /* zos */
            invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
         8: .line 1033
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
         9: .line 1034
            return
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // jdk.internal.util.jar.JarIndex index
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/tools/jar/Main;
            0   10     1  index  Ljdk/internal/util/jar/JarIndex;
            0   10     2    zos  Ljava/util/zip/ZipOutputStream;
            1   10     3      e  Ljava/util/zip/ZipEntry;
            4    6     4     os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  
      zos    

  private void updateModuleInfo(java.util.Map<java.lang.String, byte[]>, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map moduleInfos
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1039
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 1
            ldc "out.update.module-info"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "out.added.module-info"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* fmt */
        start local 3 // java.lang.String fmt
         3: .line 1040
            aload 1 /* moduleInfos */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* mi */
        start local 4 // java.util.Map$Entry mi
         5: .line 1041
            aload 4 /* mi */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* name */
        start local 6 // java.lang.String name
         6: .line 1042
            aload 4 /* mi */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* bytes */
        start local 7 // byte[] bytes
         7: .line 1043
            new java.util.zip.ZipEntry
            dup
            aload 6 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
         8: .line 1044
            aload 8 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         9: .line 1045
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 11
        10: .line 1046
            aload 0 /* this */
            aload 8 /* e */
            aload 7 /* bytes */
            invokevirtual sun.tools.jar.Main.crc32ModuleInfo:(Ljava/util/zip/ZipEntry;[B)V
        11: .line 1048
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String byte[] java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        12: .line 1049
            aload 2 /* zos */
            aload 7 /* bytes */
            invokevirtual java.util.zip.ZipOutputStream.write:([B)V
        13: .line 1050
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        14: .line 1051
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 16
        15: .line 1052
            aload 0 /* this */
            aload 3 /* fmt */
            aload 6 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 8 // java.util.zip.ZipEntry e
        end local 7 // byte[] bytes
        end local 6 // java.lang.String name
        end local 4 // java.util.Map$Entry mi
        16: .line 1040
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        17: .line 1055
            return
        end local 3 // java.lang.String fmt
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // java.util.Map moduleInfos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lsun/tools/jar/Main;
            0   18     1  moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0   18     2          zos  Ljava/util/zip/ZipOutputStream;
            3   18     3          fmt  Ljava/lang/String;
            5   16     4           mi  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            6   16     6         name  Ljava/lang/String;
            7   16     7        bytes  [B
            8   16     8            e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/zip/ZipOutputStream;)V
    MethodParameters:
             Name  Flags
      moduleInfos  
      zos          

  private boolean updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1060
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
         1: .line 1061
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
         2: .line 1062
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 4
         3: .line 1063
            aload 0 /* this */
            aload 1 /* m */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
         4: .line 1065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 6
         5: .line 1066
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
         6: .line 1068
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.zip.ZipEntry e
         7: .line 1069
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         8: .line 1070
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 10
         9: .line 1071
            aload 0 /* this */
            aload 3 /* e */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        10: .line 1073
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 3 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        11: .line 1074
            aload 1 /* m */
            aload 2 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        12: .line 1075
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 14
        13: .line 1076
            aload 0 /* this */
            ldc "out.update.manifest"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        14: .line 1078
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/tools/jar/Main;
            0   15     1     m  Ljava/util/jar/Manifest;
            0   15     2   zos  Ljava/util/zip/ZipOutputStream;
            7   15     3     e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      m     
      zos   

  private static final boolean isWinDriveLetter(char);
    descriptor: (C)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 1082
            iload 0 /* c */
            bipush 97
            if_icmplt 1
            iload 0 /* c */
            bipush 122
            if_icmple 3
      StackMap locals:
      StackMap stack:
         1: iload 0 /* c */
            bipush 65
            if_icmplt 2
            iload 0 /* c */
            bipush 90
            if_icmple 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private java.lang.String safeName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
         0: .line 1086
            aload 0 /* this */
            getfield sun.tools.jar.Main.pflag:Z
            ifne 25
         1: .line 1087
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 1088
            aload 1 /* name */
            ldc "../"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* i */
        start local 3 // int i
         3: .line 1089
            iload 3 /* i */
            iconst_m1
            if_icmpne 6
         4: .line 1090
            iconst_0
            istore 3 /* i */
         5: .line 1091
            goto 7
         6: .line 1092
      StackMap locals: int int
      StackMap stack:
            iinc 3 /* i */ 3
         7: .line 1094
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 22
         8: .line 1097
            goto 19
         9: .line 1098
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            istore 4 /* off */
        start local 4 // int off
        10: .line 1099
            iload 3 /* i */
            iconst_1
            iadd
            iload 2 /* len */
            if_icmpge 16
        11: .line 1100
            aload 1 /* name */
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 16
        12: .line 1101
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic sun.tools.jar.Main.isWinDriveLetter:(C)Z
            ifeq 16
        13: .line 1102
            iinc 3 /* i */ 2
        14: .line 1104
            goto 16
        15: .line 1105
      StackMap locals: int
      StackMap stack:
            iinc 3 /* i */ 1
        16: .line 1104
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 17
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 15
        17: .line 1107
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 4 /* off */
            if_icmpne 19
        18: .line 1108
            goto 23
        end local 4 // int off
        19: .line 1097
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmplt 9
        20: .line 1111
            goto 23
        21: .line 1113
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        22: .line 1112
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 23
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 21
        23: .line 1116
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            ifeq 25
        24: .line 1117
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        end local 3 // int i
        end local 2 // int len
        25: .line 1120
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lsun/tools/jar/Main;
            0   26     1  name  Ljava/lang/String;
            2   25     2   len  I
            3   25     3     i  I
           10   19     4   off  I
    MethodParameters:
      Name  Flags
      name  

  private void addVersion(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1124
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 1125
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            ifnonnull 3
         2: .line 1126
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
            ldc "1.0"
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1128
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/tools/jar/Main;
            0    4     1       m  Ljava/util/jar/Manifest;
            1    4     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  private void addCreatedBy(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1131
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 1132
            aload 2 /* global */
            new java.util.jar.Attributes$Name
            dup
            ldc "Created-By"
            invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            ifnonnull 7
         2: .line 1133
            ldc "java.vendor"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* javaVendor */
        start local 3 // java.lang.String javaVendor
         3: .line 1134
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* jdkVersion */
        start local 4 // java.lang.String jdkVersion
         4: .line 1135
            aload 2 /* global */
            new java.util.jar.Attributes$Name
            dup
            ldc "Created-By"
            invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
            new java.lang.StringBuilder
            dup
            aload 4 /* jdkVersion */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1136
            aload 3 /* javaVendor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1135
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String jdkVersion
        end local 3 // java.lang.String javaVendor
         7: .line 1138
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lsun/tools/jar/Main;
            0    8     1           m  Ljava/util/jar/Manifest;
            1    8     2      global  Ljava/util/jar/Attributes;
            3    7     3  javaVendor  Ljava/lang/String;
            4    7     4  jdkVersion  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  private void addMainClass(java.util.jar.Manifest, java.lang.String);
    descriptor: (Ljava/util/jar/Manifest;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
        start local 2 // java.lang.String mainApp
         0: .line 1141
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 3 /* global */
        start local 3 // java.util.jar.Attributes global
         1: .line 1144
            aload 3 /* global */
            getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
            aload 2 /* mainApp */
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1145
            return
        end local 3 // java.util.jar.Attributes global
        end local 2 // java.lang.String mainApp
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lsun/tools/jar/Main;
            0    3     1        m  Ljava/util/jar/Manifest;
            0    3     2  mainApp  Ljava/lang/String;
            1    3     3   global  Ljava/util/jar/Attributes;
    MethodParameters:
         Name  Flags
      m        
      mainApp  

  private void addMultiRelease(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1148
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 1149
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MULTI_RELEASE:Ljava/util/jar/Attributes$Name;
            ldc "true"
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1150
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/tools/jar/Main;
            0    3     1       m  Ljava/util/jar/Manifest;
            1    3     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  private boolean isAmbiguousMainClass(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1153
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 5
         1: .line 1154
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         2: .line 1155
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 5
         3: .line 1156
            aload 0 /* this */
            ldc "error.bad.eflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
         4: .line 1157
            iconst_1
            ireturn
        end local 2 // java.util.jar.Attributes global
         5: .line 1160
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/tools/jar/Main;
            0    6     1       m  Ljava/util/jar/Manifest;
            2    5     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  void addFile(java.util.zip.ZipOutputStream, sun.tools.jar.Main$Entry);
    descriptor: (Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipOutputStream zos
        start local 2 // sun.tools.jar.Main$Entry entry
         0: .line 1168
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.file:Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         1: .line 1169
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 1170
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            istore 5 /* isDir */
        start local 5 // boolean isDir
         3: .line 1172
            aload 4 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* name */
            ldc "."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* name */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 1173
      StackMap locals: java.io.File java.lang.String int
      StackMap stack:
            return
         5: .line 1174
      StackMap locals:
      StackMap stack:
            aload 4 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            aload 4 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 1175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 10
         7: .line 1176
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 9
         8: .line 1177
            aload 0 /* this */
            ldc "out.ignore.entry"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         9: .line 1179
      StackMap locals:
      StackMap stack:
            return
        10: .line 1180
      StackMap locals:
      StackMap stack:
            aload 4 /* name */
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1181
            new java.lang.Error
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected module info: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 1184
      StackMap locals:
      StackMap stack:
            iload 5 /* isDir */
            ifeq 13
            lconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3 /* file */
            invokevirtual java.io.File.length:()J
      StackMap locals:
      StackMap stack: long
        14: lstore 6 /* size */
        start local 6 // long size
        15: .line 1186
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 17
        16: .line 1187
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            ldc "out.adding"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        17: .line 1189
      StackMap locals: long
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            aload 4 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
        18: .line 1190
            aload 8 /* e */
            aload 3 /* file */
            invokevirtual java.io.File.lastModified:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        19: .line 1191
            lload 6 /* size */
            lconst_0
            lcmp
            ifne 24
        20: .line 1192
            aload 8 /* e */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        21: .line 1193
            aload 8 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        22: .line 1194
            aload 8 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        23: .line 1195
            goto 26
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
        24: aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 26
        25: .line 1196
            aload 0 /* this */
            aload 8 /* e */
            aload 3 /* file */
            invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
        26: .line 1198
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        27: .line 1199
            iload 5 /* isDir */
            ifne 29
        28: .line 1200
            aload 0 /* this */
            aload 3 /* file */
            aload 1 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
        29: .line 1202
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        30: .line 1204
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 43
        31: .line 1205
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            lstore 6 /* size */
        32: .line 1206
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            lstore 9 /* csize */
        start local 9 // long csize
        33: .line 1207
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            ldc "out.size"
            lload 6 /* size */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        34: .line 1208
            lload 9 /* csize */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        35: .line 1207
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        36: .line 1209
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 42
        37: .line 1210
            lconst_0
            lstore 11 /* ratio */
        start local 11 // long ratio
        38: .line 1211
            lload 6 /* size */
            lconst_0
            lcmp
            ifeq 40
        39: .line 1212
            lload 6 /* size */
            lload 9 /* csize */
            lsub
            ldc 100
            lmul
            lload 6 /* size */
            ldiv
            lstore 11 /* ratio */
        40: .line 1214
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            ldc "out.deflated"
            lload 11 /* ratio */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 11 // long ratio
        41: .line 1215
            goto 43
        42: .line 1216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "out.stored"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 9 // long csize
        43: .line 1219
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.util.zip.ZipEntry e
        end local 6 // long size
        end local 5 // boolean isDir
        end local 4 // java.lang.String name
        end local 3 // java.io.File file
        end local 2 // sun.tools.jar.Main$Entry entry
        end local 1 // java.util.zip.ZipOutputStream zos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   44     0   this  Lsun/tools/jar/Main;
            0   44     1    zos  Ljava/util/zip/ZipOutputStream;
            0   44     2  entry  Lsun/tools/jar/Main$Entry;
            1   44     3   file  Ljava/io/File;
            2   44     4   name  Ljava/lang/String;
            3   44     5  isDir  Z
           15   44     6   size  J
           18   44     8      e  Ljava/util/zip/ZipEntry;
           33   43     9  csize  J
           38   41    11  ratio  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      zos    
      entry  

  private void copy(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream from
        start local 2 // java.io.OutputStream to
         0: .line 1238
            goto 2
        start local 3 // int n
         1: .line 1239
      StackMap locals: int
      StackMap stack:
            aload 2 /* to */
            aload 0 /* this */
            getfield sun.tools.jar.Main.copyBuf:[B
            iconst_0
            iload 3 /* n */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 3 // int n
         2: .line 1238
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 0 /* this */
            getfield sun.tools.jar.Main.copyBuf:[B
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 3 /* n */
        start local 3 // int n
         3: iconst_m1
            if_icmpne 1
         4: .line 1240
            return
        end local 3 // int n
        end local 2 // java.io.OutputStream to
        end local 1 // java.io.InputStream from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/tools/jar/Main;
            0    5     1  from  Ljava/io/InputStream;
            0    5     2    to  Ljava/io/OutputStream;
            1    2     3     n  I
            3    5     3     n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void copy(java.io.File, java.io.OutputStream);
    descriptor: (Ljava/io/File;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File from
        start local 2 // java.io.OutputStream to
         0: .line 1251
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileInputStream
            dup
            aload 1 /* from */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 5 /* in */
        start local 5 // java.io.InputStream in
         2: .line 1252
            aload 0 /* this */
            aload 5 /* in */
            aload 2 /* to */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 1253
            aload 5 /* in */
            ifnull 9
            aload 5 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 9
      StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
         4: astore 3
            aload 5 /* in */
            ifnull 5
            aload 5 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
         5: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 3
            ifnonnull 7
            aload 4
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 3
            aload 4
            if_acmpeq 8
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
         9: .line 1254
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.OutputStream to
        end local 1 // java.io.File from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/tools/jar/Main;
            0   10     1  from  Ljava/io/File;
            0   10     2    to  Ljava/io/OutputStream;
            2    5     5    in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void copy(java.io.InputStream, java.io.File);
    descriptor: (Ljava/io/InputStream;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream from
        start local 2 // java.io.File to
         0: .line 1265
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileOutputStream
            dup
            aload 2 /* to */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 5 /* out */
        start local 5 // java.io.OutputStream out
         2: .line 1266
            aload 0 /* this */
            aload 1 /* from */
            aload 5 /* out */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 1267
            aload 5 /* out */
            ifnull 9
            aload 5 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 9
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
         4: astore 3
            aload 5 /* out */
            ifnull 5
            aload 5 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 5 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
         5: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 3
            ifnonnull 7
            aload 4
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 3
            aload 4
            if_acmpeq 8
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
         9: .line 1268
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.File to
        end local 1 // java.io.InputStream from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/tools/jar/Main;
            0   10     1  from  Ljava/io/InputStream;
            0   10     2    to  Ljava/io/File;
            2    5     5   out  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void crc32ModuleInfo(java.util.zip.ZipEntry, byte[]);
    descriptor: (Ljava/util/zip/ZipEntry;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // byte[] bytes
         0: .line 1275
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 1276
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* bytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 4 /* in */
        start local 4 // java.io.ByteArrayInputStream in
         2: .line 1277
            aload 4 /* in */
            aload 3 /* os */
            invokevirtual java.io.ByteArrayInputStream.transferTo:(Ljava/io/OutputStream;)J
            pop2
         3: .line 1278
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         4: .line 1279
            return
        end local 4 // java.io.ByteArrayInputStream in
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // byte[] bytes
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/tools/jar/Main;
            0    5     1      e  Ljava/util/zip/ZipEntry;
            0    5     2  bytes  [B
            1    5     3     os  Lsun/tools/jar/Main$CRC32OutputStream;
            2    5     4     in  Ljava/io/ByteArrayInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      e      
      bytes  

  private void crc32Manifest(java.util.zip.ZipEntry, java.util.jar.Manifest);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.util.jar.Manifest m
         0: .line 1286
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 1287
            aload 2 /* m */
            aload 3 /* os */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
         2: .line 1288
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         3: .line 1289
            return
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // java.util.jar.Manifest m
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1     e  Ljava/util/zip/ZipEntry;
            0    4     2     m  Ljava/util/jar/Manifest;
            1    4     3    os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     
      m     

  private void crc32File(java.util.zip.ZipEntry, java.io.File);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.io.File f
         0: .line 1296
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 1297
            aload 0 /* this */
            aload 2 /* f */
            aload 3 /* os */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
         2: .line 1298
            aload 3 /* os */
            getfield sun.tools.jar.Main$CRC32OutputStream.n:J
            aload 2 /* f */
            invokevirtual java.io.File.length:()J
            lcmp
            ifeq 6
         3: .line 1299
            new sun.tools.jar.JarException
            dup
         4: .line 1300
            ldc "error.incorrect.length"
            aload 2 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
         5: .line 1299
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial sun.tools.jar.JarException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1302
      StackMap locals: sun.tools.jar.Main$CRC32OutputStream
      StackMap stack:
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 1303
            return
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // java.io.File f
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/tools/jar/Main;
            0    8     1     e  Ljava/util/zip/ZipEntry;
            0    8     2     f  Ljava/io/File;
            1    8     3    os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     
      f     

  void replaceFSC(java.util.Map<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map filesMap
         0: .line 1306
            aload 1 /* filesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* filesMap */
            invokedynamic accept(Ljava/util/Map;)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
                  sun/tools/jar/Main.lambda$6(Ljava/util/Map;Ljava/lang/Integer;)V (6)
                  (Ljava/lang/Integer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         1: .line 1314
            return
        end local 1 // java.util.Map filesMap
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/tools/jar/Main;
            0    2     1  filesMap  Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      filesMap  

  java.util.Set<java.util.zip.ZipEntry> newDirSet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 1318
            new sun.tools.jar.Main$1
            dup
            aload 0 /* this */
            invokespecial sun.tools.jar.Main$1.<init>:(Lsun/tools/jar/Main;)V
            areturn
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
    Signature: ()Ljava/util/Set<Ljava/util/zip/ZipEntry;>;

  void updateLastModifiedTime(java.util.Set<java.util.zip.ZipEntry>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Set zes
         0: .line 1325
            aload 1 /* zes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: sun.tools.jar.Main java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 2 /* ze */
        start local 2 // java.util.zip.ZipEntry ze
         2: .line 1326
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 4 /* lastModified */
        start local 4 // long lastModified
         3: .line 1327
            lload 4 /* lastModified */
            ldc -1
            lcmp
            ifeq 8
         4: .line 1328
            aload 0 /* this */
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 1329
            aload 6 /* name */
            invokevirtual java.lang.String.length:()I
            ifeq 8
         6: .line 1330
            new java.io.File
            dup
            aload 6 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* f */
        start local 7 // java.io.File f
         7: .line 1331
            aload 7 /* f */
            lload 4 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 7 // java.io.File f
        end local 6 // java.lang.String name
        end local 4 // long lastModified
        end local 2 // java.util.zip.ZipEntry ze
         8: .line 1325
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 1335
            return
        end local 1 // java.util.Set zes
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lsun/tools/jar/Main;
            0   10     1           zes  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            2    8     2            ze  Ljava/util/zip/ZipEntry;
            3    8     4  lastModified  J
            5    8     6          name  Ljava/lang/String;
            7    8     7             f  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Set<Ljava/util/zip/ZipEntry;>;)V
    MethodParameters:
      Name  Flags
      zes   

  boolean extract(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String[] files
         0: .line 1344
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* zis */
        start local 3 // java.util.zip.ZipInputStream zis
         1: .line 1348
            iconst_0
            istore 5 /* entriesFound */
        start local 5 // boolean entriesFound
         2: .line 1349
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 6 /* dirs */
        start local 6 // java.util.Set dirs
         3: .line 1350
            goto 16
        start local 4 // java.util.zip.ZipEntry e
         4: .line 1351
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set
      StackMap stack:
            iconst_1
            istore 5 /* entriesFound */
         5: .line 1352
            aload 2 /* files */
            ifnonnull 8
         6: .line 1353
            aload 6 /* dirs */
            aload 0 /* this */
            aload 3 /* zis */
            aload 4 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1354
            goto 16
         8: .line 1355
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         9: .line 1356
            aload 2 /* files */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 15
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set java.lang.String top int int java.lang.String[]
      StackMap stack:
        10: aload 11
            iload 9
            aaload
            astore 8 /* file */
        start local 8 // java.lang.String file
        11: .line 1357
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1358
            aload 6 /* dirs */
            aload 0 /* this */
            aload 3 /* zis */
            aload 4 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 1359
            goto 16
        end local 8 // java.lang.String file
        14: .line 1356
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        15: iload 9
            iload 10
            if_icmplt 10
        end local 7 // java.lang.String name
        end local 4 // java.util.zip.ZipEntry e
        16: .line 1350
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top int java.util.Set
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
        17: ifnonnull 4
        18: .line 1369
            aload 0 /* this */
            aload 6 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1371
            iload 5 /* entriesFound */
            ireturn
        end local 6 // java.util.Set dirs
        end local 5 // boolean entriesFound
        end local 4 // java.util.zip.ZipEntry e
        end local 3 // java.util.zip.ZipInputStream zis
        end local 2 // java.lang.String[] files
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lsun/tools/jar/Main;
            0   20     1            in  Ljava/io/InputStream;
            0   20     2         files  [Ljava/lang/String;
            1   20     3           zis  Ljava/util/zip/ZipInputStream;
            4   16     4             e  Ljava/util/zip/ZipEntry;
           17   20     4             e  Ljava/util/zip/ZipEntry;
            2   20     5  entriesFound  Z
            3   20     6          dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            9   16     7          name  Ljava/lang/String;
           11   14     8          file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      in     
      files  

  void extract(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String fname
        start local 2 // java.lang.String[] files
         0: .line 1378
            new java.util.zip.ZipFile
            dup
            aload 1 /* fname */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 3 /* zf */
        start local 3 // java.util.zip.ZipFile zf
         1: .line 1379
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 4 /* dirs */
        start local 4 // java.util.Set dirs
         2: .line 1380
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 5 /* zes */
        start local 5 // java.util.Enumeration zes
         3: .line 1381
            goto 16
         4: .line 1382
      StackMap locals: java.util.zip.ZipFile java.util.Set java.util.Enumeration
      StackMap stack:
            aload 5 /* zes */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 6 /* e */
        start local 6 // java.util.zip.ZipEntry e
         5: .line 1383
            aload 2 /* files */
            ifnonnull 8
         6: .line 1384
            aload 4 /* dirs */
            aload 0 /* this */
            aload 3 /* zf */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            aload 6 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1385
            goto 16
         8: .line 1386
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 6 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         9: .line 1387
            aload 2 /* files */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration java.util.zip.ZipEntry java.lang.String top int int java.lang.String[]
      StackMap stack:
        10: aload 11
            iload 9
            aaload
            astore 8 /* file */
        start local 8 // java.lang.String file
        11: .line 1388
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1389
            aload 4 /* dirs */
            aload 0 /* this */
            aload 3 /* zf */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            aload 6 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 1390
            goto 16
        end local 8 // java.lang.String file
        14: .line 1387
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        15: iload 9
            iload 10
            if_icmplt 10
        end local 7 // java.lang.String name
        end local 6 // java.util.zip.ZipEntry e
        16: .line 1381
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration
      StackMap stack:
            aload 5 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
        17: .line 1395
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        18: .line 1396
            aload 0 /* this */
            aload 4 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1397
            return
        end local 5 // java.util.Enumeration zes
        end local 4 // java.util.Set dirs
        end local 3 // java.util.zip.ZipFile zf
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String fname
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lsun/tools/jar/Main;
            0   20     1  fname  Ljava/lang/String;
            0   20     2  files  [Ljava/lang/String;
            1   20     3     zf  Ljava/util/zip/ZipFile;
            2   20     4   dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            3   20     5    zes  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
            5   16     6      e  Ljava/util/zip/ZipEntry;
            9   16     7   name  Ljava/lang/String;
           11   14     8   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fname  
      files  

  java.util.zip.ZipEntry extractFile(java.io.InputStream, java.util.zip.ZipEntry);
    descriptor: (Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream is
        start local 2 // java.util.zip.ZipEntry e
         0: .line 1405
            aconst_null
            astore 3 /* rc */
        start local 3 // java.util.zip.ZipEntry rc
         1: .line 1411
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 1412
            aload 4 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 1413
            aload 3 /* rc */
            areturn
         4: .line 1415
      StackMap locals: java.util.zip.ZipEntry java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 4 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         5: .line 1416
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifeq 19
         6: .line 1417
            aload 5 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         7: .line 1418
            aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 16
         8: .line 1419
            new java.io.IOException
            dup
            ldc "error.create.dir"
         9: .line 1420
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        10: .line 1419
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1423
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 15
        12: .line 1424
            new java.io.IOException
            dup
            ldc "error.create.dir"
        13: .line 1425
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        14: .line 1424
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1427
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            astore 3 /* rc */
        16: .line 1431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        17: .line 1432
            aload 0 /* this */
            ldc "out.create"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        18: .line 1434
            goto 41
        19: .line 1435
      StackMap locals:
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            ifnull 26
        20: .line 1436
            new java.io.File
            dup
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* d */
        start local 6 // java.io.File d
        21: .line 1437
            aload 6 /* d */
            invokevirtual java.io.File.exists:()Z
            ifne 22
            aload 6 /* d */
            invokevirtual java.io.File.mkdirs:()Z
            ifeq 23
      StackMap locals: java.io.File
      StackMap stack:
        22: aload 6 /* d */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 26
        23: .line 1438
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
        24: .line 1439
            ldc "error.create.dir"
            aload 6 /* d */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        25: .line 1438
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.io.File d
        26: .line 1443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* is */
            aload 5 /* f */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/File;)V
        27: .line 1444
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
        29: .line 1445
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 31
        30: .line 1446
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 32
        31: .line 1448
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        32: .line 1449
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        33: .line 1445
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 35
        34: .line 1446
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 36
        35: .line 1448
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        36: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        37: .line 1451
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 40
        38: .line 1452
            aload 0 /* this */
            ldc "out.inflated"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        39: .line 1453
            goto 41
        40: .line 1454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "out.extracted"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        41: .line 1458
      StackMap locals:
      StackMap stack:
            getstatic sun.tools.jar.Main.useExtractionTime:Z
            ifne 45
        42: .line 1459
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 6 /* lastModified */
        start local 6 // long lastModified
        43: .line 1460
            lload 6 /* lastModified */
            ldc -1
            lcmp
            ifeq 45
        44: .line 1461
            aload 5 /* f */
            lload 6 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 6 // long lastModified
        45: .line 1464
      StackMap locals:
      StackMap stack:
            aload 3 /* rc */
            areturn
        end local 5 // java.io.File f
        end local 4 // java.lang.String name
        end local 3 // java.util.zip.ZipEntry rc
        end local 2 // java.util.zip.ZipEntry e
        end local 1 // java.io.InputStream is
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0          this  Lsun/tools/jar/Main;
            0   46     1            is  Ljava/io/InputStream;
            0   46     2             e  Ljava/util/zip/ZipEntry;
            1   46     3            rc  Ljava/util/zip/ZipEntry;
            2   46     4          name  Ljava/lang/String;
            5   46     5             f  Ljava/io/File;
           21   26     6             d  Ljava/io/File;
           43   45     6  lastModified  J
      Exception table:
        from    to  target  type
          26    28      28  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    
      e     

  void list(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String[] files
         0: .line 1471
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* zis */
        start local 3 // java.util.zip.ZipInputStream zis
         1: .line 1473
            goto 4
        start local 4 // java.util.zip.ZipEntry e
         2: .line 1480
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
         3: .line 1481
            aload 0 /* this */
            aload 4 /* e */
            aload 2 /* files */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
        end local 4 // java.util.zip.ZipEntry e
         4: .line 1473
      StackMap locals:
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
         5: ifnonnull 2
         6: .line 1483
            return
        end local 4 // java.util.zip.ZipEntry e
        end local 3 // java.util.zip.ZipInputStream zis
        end local 2 // java.lang.String[] files
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1     in  Ljava/io/InputStream;
            0    7     2  files  [Ljava/lang/String;
            1    7     3    zis  Ljava/util/zip/ZipInputStream;
            2    4     4      e  Ljava/util/zip/ZipEntry;
            5    7     4      e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      in     
      files  

  void list(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String fname
        start local 2 // java.lang.String[] files
         0: .line 1489
            new java.util.zip.ZipFile
            dup
            aload 1 /* fname */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 3 /* zf */
        start local 3 // java.util.zip.ZipFile zf
         1: .line 1490
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 4 /* zes */
        start local 4 // java.util.Enumeration zes
         2: .line 1491
            goto 4
         3: .line 1492
      StackMap locals: java.util.zip.ZipFile java.util.Enumeration
      StackMap stack:
            aload 0 /* this */
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            aload 2 /* files */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
         4: .line 1491
      StackMap locals:
      StackMap stack:
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 1494
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
         6: .line 1495
            return
        end local 4 // java.util.Enumeration zes
        end local 3 // java.util.zip.ZipFile zf
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String fname
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1  fname  Ljava/lang/String;
            0    7     2  files  [Ljava/lang/String;
            1    7     3     zf  Ljava/util/zip/ZipFile;
            2    7     4    zes  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fname  
      files  

  void dumpIndex(java.lang.String, jdk.internal.util.jar.JarIndex);
    descriptor: (Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // jdk.internal.util.jar.JarIndex index
         0: .line 1502
            new java.io.File
            dup
            aload 1 /* rootjar */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* jarFile */
        start local 3 // java.io.File jarFile
         1: .line 1503
            aload 3 /* jarFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 4 /* jarPath */
        start local 4 // java.nio.file.Path jarPath
         2: .line 1504
            aload 3 /* jarFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 5 /* tmpPath */
        start local 5 // java.nio.file.Path tmpPath
         3: .line 1506
            aload 0 /* this */
            aload 4 /* jarPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
         4: .line 1507
            aload 5 /* tmpPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
         5: .line 1508
            aconst_null
            aconst_null
            aload 2 /* index */
         6: .line 1506
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
         7: .line 1508
            ifeq 15
         8: .line 1510
            aload 5 /* tmpPath */
            aload 4 /* jarPath */
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
         9: .line 1511
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String jdk.internal.util.jar.JarIndex java.io.File java.nio.file.Path java.nio.file.Path
      StackMap stack: java.io.IOException
        10: astore 6 /* e */
        start local 6 // java.io.IOException e
        11: .line 1512
            new java.io.IOException
            dup
            ldc "error.write.file"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.io.IOException e
        12: .line 1515
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        13: .line 1516
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        14: .line 1517
            aload 7
            athrow
        15: .line 1516
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        16: .line 1518
            return
        end local 5 // java.nio.file.Path tmpPath
        end local 4 // java.nio.file.Path jarPath
        end local 3 // java.io.File jarFile
        end local 2 // jdk.internal.util.jar.JarIndex index
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1  rootjar  Ljava/lang/String;
            0   17     2    index  Ljdk/internal/util/jar/JarIndex;
            1   17     3  jarFile  Ljava/io/File;
            2   17     4  jarPath  Ljava/nio/file/Path;
            3   17     5  tmpPath  Ljava/nio/file/Path;
           11   12     6        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
           3    12      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rootjar  
      index    

  java.util.List<java.lang.String> getJarPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String jar
         0: .line 1527
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.List files
         1: .line 1528
            aload 2 /* files */
            aload 1 /* jar */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1529
            aload 0 /* this */
            getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
            aload 1 /* jar */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1532
            aload 1 /* jar */
            iconst_0
            iconst_0
            aload 1 /* jar */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 1537
            new java.util.jar.JarFile
            dup
            aload 1 /* jar */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 4 /* rf */
        start local 4 // java.util.jar.JarFile rf
         5: .line 1539
            aload 4 /* rf */
            ifnull 20
         6: .line 1540
            aload 4 /* rf */
            invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
            astore 5 /* man */
        start local 5 // java.util.jar.Manifest man
         7: .line 1541
            aload 5 /* man */
            ifnull 20
         8: .line 1542
            aload 5 /* man */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 6 /* attr */
        start local 6 // java.util.jar.Attributes attr
         9: .line 1543
            aload 6 /* attr */
            ifnull 20
        10: .line 1544
            aload 6 /* attr */
            getstatic java.util.jar.Attributes$Name.CLASS_PATH:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        11: .line 1545
            aload 7 /* value */
            ifnull 20
        12: .line 1546
            new java.util.StringTokenizer
            dup
            aload 7 /* value */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 8 /* st */
        start local 8 // java.util.StringTokenizer st
        13: .line 1547
            goto 19
        14: .line 1548
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.util.StringTokenizer
      StackMap stack:
            aload 8 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 9 /* ajar */
        start local 9 // java.lang.String ajar
        15: .line 1549
            aload 9 /* ajar */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 19
        16: .line 1550
            aload 3 /* path */
            aload 9 /* ajar */
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* ajar */
        17: .line 1552
            aload 0 /* this */
            getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
            aload 9 /* ajar */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 1553
            aload 2 /* files */
            aload 0 /* this */
            aload 9 /* ajar */
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 9 // java.lang.String ajar
        19: .line 1547
      StackMap locals:
      StackMap stack:
            aload 8 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 14
        end local 8 // java.util.StringTokenizer st
        end local 7 // java.lang.String value
        end local 6 // java.util.jar.Attributes attr
        end local 5 // java.util.jar.Manifest man
        20: .line 1561
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile
      StackMap stack:
            aload 4 /* rf */
            invokevirtual java.util.jar.JarFile.close:()V
        21: .line 1562
            aload 2 /* files */
            areturn
        end local 4 // java.util.jar.JarFile rf
        end local 3 // java.lang.String path
        end local 2 // java.util.List files
        end local 1 // java.lang.String jar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lsun/tools/jar/Main;
            0   22     1    jar  Ljava/lang/String;
            1   22     2  files  Ljava/util/List<Ljava/lang/String;>;
            4   22     3   path  Ljava/lang/String;
            5   22     4     rf  Ljava/util/jar/JarFile;
            7   20     5    man  Ljava/util/jar/Manifest;
            9   20     6   attr  Ljava/util/jar/Attributes;
           11   20     7  value  Ljava/lang/String;
           13   20     8     st  Ljava/util/StringTokenizer;
           15   19     9   ajar  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      jar   

  void genIndex(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // java.lang.String[] files
         0: .line 1569
            aload 0 /* this */
            aload 1 /* rootjar */
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            astore 3 /* jars */
        start local 3 // java.util.List jars
         1: .line 1570
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
        start local 4 // int njars
         2: .line 1573
            iload 4 /* njars */
            iconst_1
            if_icmpne 9
            aload 2 /* files */
            ifnull 9
         3: .line 1576
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 7
         5: .line 1577
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int top int
      StackMap stack:
            aload 3 /* jars */
            aload 0 /* this */
            aload 2 /* files */
            iload 6 /* i */
            aaload
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 1576
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 6 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 5
        end local 6 // int i
         8: .line 1579
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
         9: .line 1581
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int
      StackMap stack:
            aload 3 /* jars */
            iload 4 /* njars */
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 5 /* jarfiles */
        start local 5 // java.lang.String[] jarfiles
        10: .line 1582
            new jdk.internal.util.jar.JarIndex
            dup
            aload 5 /* jarfiles */
            invokespecial jdk.internal.util.jar.JarIndex.<init>:([Ljava/lang/String;)V
            astore 6 /* index */
        start local 6 // jdk.internal.util.jar.JarIndex index
        11: .line 1583
            aload 0 /* this */
            aload 1 /* rootjar */
            aload 6 /* index */
            invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
        12: .line 1584
            return
        end local 6 // jdk.internal.util.jar.JarIndex index
        end local 5 // java.lang.String[] jarfiles
        end local 4 // int njars
        end local 3 // java.util.List jars
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/tools/jar/Main;
            0   13     1   rootjar  Ljava/lang/String;
            0   13     2     files  [Ljava/lang/String;
            1   13     3      jars  Ljava/util/List<Ljava/lang/String;>;
            2   13     4     njars  I
           10   13     5  jarfiles  [Ljava/lang/String;
            4    8     6         i  I
           11   13     6     index  Ljdk/internal/util/jar/JarIndex;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rootjar  
      files    

  void printEntry(java.util.zip.ZipEntry, java.lang.String[]);
    descriptor: (Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.lang.String[] files
         0: .line 1590
            aload 2 /* files */
            ifnonnull 3
         1: .line 1591
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         2: .line 1592
            goto 11
         3: .line 1593
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         4: .line 1594
            aload 2 /* files */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[] java.lang.String top int int java.lang.String[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* file */
        start local 4 // java.lang.String file
         6: .line 1595
            aload 3 /* name */
            aload 4 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 1596
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         8: .line 1597
            return
        end local 4 // java.lang.String file
         9: .line 1594
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 5
        end local 3 // java.lang.String name
        11: .line 1601
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[]
      StackMap stack:
            return
        end local 2 // java.lang.String[] files
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lsun/tools/jar/Main;
            0   12     1      e  Ljava/util/zip/ZipEntry;
            0   12     2  files  [Ljava/lang/String;
            4   11     3   name  Ljava/lang/String;
            6    9     4   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      e      
      files  

  void printEntry(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
         0: .line 1607
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
         1: .line 1608
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 1609
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         3: .line 1610
            bipush 6
            aload 3 /* s */
            invokevirtual java.lang.String.length:()I
            isub
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 1611
      StackMap locals: java.lang.StringBuilder java.lang.String int
      StackMap stack:
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 1610
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            ifgt 5
        end local 4 // int i
         8: .line 1613
            aload 2 /* sb */
            aload 3 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.Date.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1614
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1615
            aload 0 /* this */
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 3 // java.lang.String s
        end local 2 // java.lang.StringBuilder sb
        11: .line 1616
            goto 13
        12: .line 1617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        13: .line 1619
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/tools/jar/Main;
            0   14     1     e  Ljava/util/zip/ZipEntry;
            2   11     2    sb  Ljava/lang/StringBuilder;
            3   11     3     s  Ljava/lang/String;
            4    8     4     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     

  void usageError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1625
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1626
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            ldc "main.usage.summary.try"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 1627
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/jar/Main;
            0    3     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  void fatalError(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.Exception e
         0: .line 1633
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         1: .line 1634
            return
        end local 1 // java.lang.Exception e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     e  Ljava/lang/Exception;
    MethodParameters:
      Name  Flags
      e     

  void fatalError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1641
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.program:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         1: .line 1642
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  protected void output(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1648
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1649
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  void error(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1655
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1656
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1662
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1663
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 1669
            new sun.tools.jar.Main
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "jar"
            invokespecial sun.tools.jar.Main.<init>:(Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
            astore 1 /* jartool */
        start local 1 // sun.tools.jar.Main jartool
         1: .line 1670
            aload 1 /* jartool */
            aload 0 /* args */
            invokevirtual sun.tools.jar.Main.run:([Ljava/lang/String;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: sun.tools.jar.Main
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: invokestatic java.lang.System.exit:(I)V
         4: .line 1671
            return
        end local 1 // sun.tools.jar.Main jartool
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     args  [Ljava/lang/String;
            1    5     1  jartool  Lsun/tools/jar/Main;
    MethodParameters:
      Name  Flags
      args  

  private java.io.File createTemporaryFile(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String tmpbase
        start local 2 // java.lang.String suffix
         0: .line 1710
            aconst_null
            astore 3 /* tmpfile */
        start local 3 // java.io.File tmpfile
         1: .line 1713
            aload 1 /* tmpbase */
            aload 2 /* suffix */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 3 /* tmpfile */
         2: .line 1714
            goto 4
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String java.io.File
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 1717
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            ifnonnull 13
         5: .line 1719
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 12
         6: .line 1721
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 4 /* tmpfolder */
        start local 4 // java.io.File tmpfolder
         7: .line 1722
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc ".tmp"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* tmpfolder */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            astore 3 /* tmpfile */
        end local 4 // java.io.File tmpfolder
         8: .line 1723
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         9: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        10: .line 1725
            aload 0 /* this */
            aload 4 /* ioe */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        end local 4 // java.io.IOException ioe
        11: .line 1727
            goto 13
        12: .line 1729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.IOException
            dup
            ldc "error.create.tempfile"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        13: .line 1732
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            areturn
        end local 3 // java.io.File tmpfile
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String tmpbase
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lsun/tools/jar/Main;
            0   14     1    tmpbase  Ljava/lang/String;
            0   14     2     suffix  Ljava/lang/String;
            1   14     3    tmpfile  Ljava/io/File;
            7    8     4  tmpfolder  Ljava/io/File;
           10   11     4        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           1     2       3  Class java.lang.SecurityException
           6     8       9  Class java.io.IOException
    MethodParameters:
         Name  Flags
      tmpbase  
      suffix   

  private boolean describeModule(java.util.zip.ZipFile);
    descriptor: (Ljava/util/zip/ZipFile;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipFile zipFile
         0: .line 1785
            aload 1 /* zipFile */
            invokevirtual java.util.zip.ZipFile.stream:()Ljava/util/stream/Stream;
         1: .line 1786
            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
                  sun/tools/jar/Main.lambda$7(Ljava/util/zip/ZipEntry;)Z (6)
                  (Ljava/util/zip/ZipEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 1787
            getstatic sun.tools.jar.Validator.ENTRY_COMPARATOR:Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
         3: .line 1788
            aload 1 /* zipFile */
            invokedynamic apply(Ljava/util/zip/ZipFile;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$8(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
                  (Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 1789
            invokedynamic apply()Ljava/util/function/IntFunction;
              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:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$9(I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
                  (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast sun.tools.jar.Main$ZipFileModuleInfoEntry[]
         5: .line 1785
            astore 2 /* infos */
        start local 2 // sun.tools.jar.Main$ZipFileModuleInfoEntry[] infos
         6: .line 1791
            aload 2 /* infos */
            arraylength
            ifne 24
         7: .line 1793
            aload 1 /* zipFile */
            invokevirtual java.util.zip.ZipFile.getName:()Ljava/lang/String;
            astore 3 /* fn */
        start local 3 // java.lang.String fn
         8: .line 1794
            iconst_1
            anewarray java.nio.file.Path
            dup
            iconst_0
            aload 3 /* fn */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aastore
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            astore 4 /* mf */
        start local 4 // java.lang.module.ModuleFinder mf
         9: .line 1796
            aload 4 /* mf */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 5 /* mref */
        start local 5 // java.util.Set mref
        10: .line 1797
            aload 5 /* mref */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 13
        11: .line 1798
            aload 0 /* this */
            ldc "error.unable.derive.automodule"
            aload 3 /* fn */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        12: .line 1799
            iconst_1
            ireturn
        13: .line 1801
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            aload 5 /* mref */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 6 /* md */
        start local 6 // java.lang.module.ModuleDescriptor md
        14: .line 1802
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "out.automodule"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        15: .line 1803
            aload 0 /* this */
            aload 6 /* md */
            aconst_null
            aconst_null
            ldc ""
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
        end local 6 // java.lang.module.ModuleDescriptor md
        end local 5 // java.util.Set mref
        16: .line 1804
            goto 25
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder
      StackMap stack: java.lang.module.FindException
        17: astore 5 /* e */
        start local 5 // java.lang.module.FindException e
        18: .line 1805
            ldc "error.unable.derive.automodule"
            aload 3 /* fn */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
        19: .line 1806
            aload 5 /* e */
            invokevirtual java.lang.module.FindException.getCause:()Ljava/lang/Throwable;
            astore 7 /* t */
        start local 7 // java.lang.Throwable t
        20: .line 1807
            aload 7 /* t */
            ifnull 22
        21: .line 1808
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        22: .line 1809
      StackMap locals: java.lang.module.FindException java.lang.String java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 7 // java.lang.Throwable t
        end local 6 // java.lang.String msg
        end local 5 // java.lang.module.FindException e
        end local 4 // java.lang.module.ModuleFinder mf
        end local 3 // java.lang.String fn
        23: .line 1811
            goto 25
        24: .line 1812
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[]
      StackMap stack:
            aload 0 /* this */
            aload 2 /* infos */
            invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ireturn
        25: .line 1814
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // sun.tools.jar.Main$ZipFileModuleInfoEntry[] infos
        end local 1 // java.util.zip.ZipFile zipFile
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lsun/tools/jar/Main;
            0   26     1  zipFile  Ljava/util/zip/ZipFile;
            6   26     2    infos  [Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            8   23     3       fn  Ljava/lang/String;
            9   23     4       mf  Ljava/lang/module/ModuleFinder;
           10   16     5     mref  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           14   16     6       md  Ljava/lang/module/ModuleDescriptor;
           18   23     5        e  Ljava/lang/module/FindException;
           19   23     6      msg  Ljava/lang/String;
           20   23     7        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    12      17  Class java.lang.module.FindException
          13    16      17  Class java.lang.module.FindException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      zipFile  

  private boolean describeModuleFromStream(java.io.FileInputStream);
    descriptor: (Ljava/io/FileInputStream;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.FileInputStream fis
         0: .line 1820
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* infos */
        start local 2 // java.util.List infos
         1: .line 1822
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.BufferedInputStream
            dup
            aload 1 /* fis */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* bis */
        start local 5 // java.io.BufferedInputStream bis
         3: .line 1823
            new java.util.zip.ZipInputStream
            dup
            aload 5 /* bis */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
         4: .line 1825
            goto 8
        start local 7 // java.util.zip.ZipEntry e
         5: .line 1826
      StackMap locals: sun.tools.jar.Main java.io.FileInputStream java.util.List java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 8 /* ename */
        start local 8 // java.lang.String ename
         6: .line 1827
            aload 8 /* ename */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 1828
            aload 2 /* infos */
            new sun.tools.jar.Main$StreamedModuleInfoEntry
            dup
            aload 8 /* ename */
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
            invokespecial sun.tools.jar.Main$StreamedModuleInfoEntry.<init>:(Ljava/lang/String;[B)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String ename
        end local 7 // java.util.zip.ZipEntry e
         8: .line 1825
      StackMap locals:
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
         9: ifnonnull 5
        end local 7 // java.util.zip.ZipEntry e
        10: .line 1831
            aload 6 /* zis */
            ifnull 13
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 6 /* zis */
            ifnull 12
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        end local 6 // java.util.zip.ZipInputStream zis
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        13: aload 5 /* bis */
            ifnull 21
            aload 5 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 3
            ifnonnull 15
            aload 4
            astore 3
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3
            aload 4
            if_acmpeq 16
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 5 /* bis */
            ifnull 17
            aload 5 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        end local 5 // java.io.BufferedInputStream bis
      StackMap locals:
      StackMap stack:
        17: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
            aload 3
            ifnonnull 19
            aload 4
            astore 3
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 3
            aload 4
            if_acmpeq 20
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 3
            athrow
        21: .line 1833
      StackMap locals:
      StackMap stack:
            aload 2 /* infos */
            invokeinterface java.util.List.size:()I
            ifne 23
        22: .line 1834
            iconst_0
            ireturn
        23: .line 1836
      StackMap locals:
      StackMap stack:
            aload 2 /* infos */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        24: .line 1837
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
            getstatic sun.tools.jar.Validator.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        25: .line 1838
            invokedynamic apply()Ljava/util/function/IntFunction;
              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:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$11(I)[Lsun/tools/jar/Main$ModuleInfoEntry; (6)
                  (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast sun.tools.jar.Main$ModuleInfoEntry[]
        26: .line 1836
            astore 3 /* sorted */
        start local 3 // sun.tools.jar.Main$ModuleInfoEntry[] sorted
        27: .line 1840
            aload 0 /* this */
            aload 3 /* sorted */
            invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ireturn
        end local 3 // sun.tools.jar.Main$ModuleInfoEntry[] sorted
        end local 2 // java.util.List infos
        end local 1 // java.io.FileInputStream fis
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0    this  Lsun/tools/jar/Main;
            0   28     1     fis  Ljava/io/FileInputStream;
            1   28     2   infos  Ljava/util/List<Lsun/tools/jar/Main$ModuleInfoEntry;>;
            3   17     5     bis  Ljava/io/BufferedInputStream;
            4   12     6     zis  Ljava/util/zip/ZipInputStream;
            5    8     7       e  Ljava/util/zip/ZipEntry;
            9   10     7       e  Ljava/util/zip/ZipEntry;
            6    8     8   ename  Ljava/lang/String;
           27   28     3  sorted  [Lsun/tools/jar/Main$ModuleInfoEntry;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      14  any
           2    18      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fis   

  private boolean lessThanEqualReleaseValue(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.tools.jar.Main$ModuleInfoEntry entry
         0: .line 1844
            aload 1 /* entry */
            invokestatic sun.tools.jar.Main.intVersionFromEntry:(Lsun/tools/jar/Main$ModuleInfoEntry;)I
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            if_icmpgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // sun.tools.jar.Main$ModuleInfoEntry entry
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/tools/jar/Main;
            0    3     1  entry  Lsun/tools/jar/Main$ModuleInfoEntry;
    MethodParameters:
       Name  Flags
      entry  

  private static java.lang.String versionFromEntryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 1848
            aload 0 /* name */
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 1849
            aload 1 /* s */
            iconst_0
            aload 1 /* s */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String s
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
            1    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static int intVersionFromEntry(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.tools.jar.Main$ModuleInfoEntry entry
         0: .line 1853
            aload 0 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 1854
            aload 1 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 1855
            iconst_0
            ireturn
         3: .line 1857
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* name */
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         4: .line 1858
            aload 2 /* s */
            iconst_0
            aload 2 /* s */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* s */
         5: .line 1859
            aload 2 /* s */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.String s
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main$ModuleInfoEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  entry  Lsun/tools/jar/Main$ModuleInfoEntry;
            1    6     1   name  Ljava/lang/String;
            4    6     2      s  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      entry  

  private boolean describeModuleFromEntries(sun.tools.jar.Main$ModuleInfoEntry[]);
    descriptor: ([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.tools.jar.Main$ModuleInfoEntry[] infos
         0: .line 1870
            getstatic sun.tools.jar.Main.$assertionsDisabled:Z
            ifne 1
            aload 1 /* infos */
            arraylength
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1873
      StackMap locals:
      StackMap stack:
            aload 1 /* infos */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 1874
            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
                  sun/tools/jar/Main.lambda$12(Lsun/tools/jar/Main$ModuleInfoEntry;)Z (6)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 1875
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 1876
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main.versionFromEntryName(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 1877
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         6: .line 1873
            astore 2 /* releases */
        start local 2 // java.lang.String releases
         7: .line 1878
            aload 2 /* releases */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 1879
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "releases: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* releases */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         9: .line 1882
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            iconst_m1
            if_icmpeq 31
        10: .line 1883
            aconst_null
            astore 3 /* entry */
        start local 3 // sun.tools.jar.Main$ModuleInfoEntry entry
        11: .line 1884
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: .line 1885
            goto 15
        13: .line 1886
      StackMap locals: sun.tools.jar.Main$ModuleInfoEntry int
      StackMap stack:
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            astore 3 /* entry */
        14: .line 1887
            iinc 4 /* i */ 1
        15: .line 1885
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 1 /* infos */
            arraylength
            if_icmpge 16
            aload 0 /* this */
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            invokevirtual sun.tools.jar.Main.lessThanEqualReleaseValue:(Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ifne 13
        16: .line 1890
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            ifnonnull 21
        17: .line 1891
            aload 0 /* this */
            ldc "error.no.operative.descriptor"
        18: .line 1892
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
        19: .line 1891
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        20: .line 1893
            iconst_0
            ireturn
        21: .line 1896
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
            ldc ""
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* uriString */
        start local 5 // java.lang.String uriString
        22: .line 1897
            aconst_null
            astore 6
            aconst_null
            astore 7
        23: aload 3 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
            astore 8 /* is */
        start local 8 // java.io.InputStream is
        24: .line 1898
            aload 0 /* this */
            aload 8 /* is */
            aload 5 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
        25: .line 1899
            aload 8 /* is */
            ifnull 43
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 43
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String sun.tools.jar.Main$ModuleInfoEntry int java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        26: astore 6
            aload 8 /* is */
            ifnull 27
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        27: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 7
            aload 6
            ifnonnull 29
            aload 7
            astore 6
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 6
            aload 7
            if_acmpeq 30
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 6
            athrow
        end local 5 // java.lang.String uriString
        end local 4 // int i
        end local 3 // sun.tools.jar.Main$ModuleInfoEntry entry
        31: .line 1902
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String
      StackMap stack:
            aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        32: .line 1903
            aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
            ldc ""
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* uriString */
        start local 3 // java.lang.String uriString
        33: .line 1904
            aconst_null
            astore 4
            aconst_null
            astore 5
        34: aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
            astore 6 /* is */
        start local 6 // java.io.InputStream is
        35: .line 1905
            aload 0 /* this */
            aload 6 /* is */
            aload 3 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
        36: .line 1906
            aload 6 /* is */
            ifnull 43
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 43
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        37: astore 4
            aload 6 /* is */
            ifnull 38
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        38: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 5
            aload 4
            ifnonnull 40
            aload 5
            astore 4
            goto 41
      StackMap locals:
      StackMap stack:
        40: aload 4
            aload 5
            if_acmpeq 41
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        41: aload 4
            athrow
        end local 3 // java.lang.String uriString
        42: .line 1909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.no.root.descriptor"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        43: .line 1912
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.String releases
        end local 1 // sun.tools.jar.Main$ModuleInfoEntry[] infos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   44     0       this  Lsun/tools/jar/Main;
            0   44     1      infos  [Lsun/tools/jar/Main$ModuleInfoEntry;
            7   44     2   releases  Ljava/lang/String;
           11   31     3      entry  Lsun/tools/jar/Main$ModuleInfoEntry;
           12   31     4          i  I
           22   31     5  uriString  Ljava/lang/String;
           24   27     8         is  Ljava/io/InputStream;
           33   42     3  uriString  Ljava/lang/String;
           35   38     6         is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
          24    25      26  any
          23    28      28  any
          35    36      37  any
          34    39      39  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      infos  

  static <T> java.lang.String toString(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Collection set
         0: .line 1916
            aload 0 /* set */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 1
            ldc ""
            areturn
         1: .line 1917
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* set */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$15(Ljava/lang/Object;)Ljava/lang/String; (6)
                  (Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 1918
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1917
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.util.Collection set
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   set  Ljava/util/Collection<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      set   

  private void describeModule(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream entryInputStream
        start local 2 // java.lang.String uriString
         0: .line 1925
            aload 1 /* entryInputStream */
            aconst_null
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            astore 3 /* attrs */
        start local 3 // jdk.internal.module.ModuleInfo$Attributes attrs
         1: .line 1926
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* md */
        start local 4 // java.lang.module.ModuleDescriptor md
         2: .line 1927
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.target:()Ljdk/internal/module/ModuleTarget;
            astore 5 /* target */
        start local 5 // jdk.internal.module.ModuleTarget target
         3: .line 1928
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.recordedHashes:()Ljdk/internal/module/ModuleHashes;
            astore 6 /* hashes */
        start local 6 // jdk.internal.module.ModuleHashes hashes
         4: .line 1930
            aload 0 /* this */
            aload 4 /* md */
            aload 5 /* target */
            aload 6 /* hashes */
            aload 2 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
         5: .line 1931
            return
        end local 6 // jdk.internal.module.ModuleHashes hashes
        end local 5 // jdk.internal.module.ModuleTarget target
        end local 4 // java.lang.module.ModuleDescriptor md
        end local 3 // jdk.internal.module.ModuleInfo$Attributes attrs
        end local 2 // java.lang.String uriString
        end local 1 // java.io.InputStream entryInputStream
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lsun/tools/jar/Main;
            0    6     1  entryInputStream  Ljava/io/InputStream;
            0    6     2         uriString  Ljava/lang/String;
            1    6     3             attrs  Ljdk/internal/module/ModuleInfo$Attributes;
            2    6     4                md  Ljava/lang/module/ModuleDescriptor;
            3    6     5            target  Ljdk/internal/module/ModuleTarget;
            4    6     6            hashes  Ljdk/internal/module/ModuleHashes;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      entryInputStream  
      uriString         

  private void describeModule(java.lang.module.ModuleDescriptor, jdk.internal.module.ModuleTarget, jdk.internal.module.ModuleHashes, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=5
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.module.ModuleDescriptor md
        start local 2 // jdk.internal.module.ModuleTarget target
        start local 3 // jdk.internal.module.ModuleHashes hashes
        start local 4 // java.lang.String uriString
         0: .line 1939
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         1: .line 1941
            aload 5 /* sb */
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.toNameAndVersion:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1943
            aload 4 /* uriString */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 1944
            aload 5 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* uriString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1945
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 6
         5: .line 1946
            aload 5 /* sb */
            ldc " open"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1947
      StackMap locals:
      StackMap stack:
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 8
         7: .line 1948
            aload 5 /* sb */
            ldc " automatic"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1949
      StackMap locals:
      StackMap stack:
            aload 5 /* sb */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1952
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        10: .line 1953
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        11: .line 1954
            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
                  sun/tools/jar/Main.lambda$17(Ljava/lang/module/ModuleDescriptor$Exports;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        12: .line 1955
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$18(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        13: .line 1959
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        14: .line 1960
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$19(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        15: .line 1964
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        16: .line 1965
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$20(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        17: .line 1967
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        18: .line 1968
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        19: .line 1969
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$22(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        20: .line 1975
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        21: .line 1976
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        22: .line 1977
            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
                  java/lang/module/ModuleDescriptor$Exports.isQualified()Z (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        23: .line 1978
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$25(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        24: .line 1983
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        25: .line 1984
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        26: .line 1985
            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
                  sun/tools/jar/Main.lambda$27(Ljava/lang/module/ModuleDescriptor$Opens;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        27: .line 1986
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$28(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        28: .line 1990
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        29: .line 1991
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        30: .line 1992
            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
                  java/lang/module/ModuleDescriptor$Opens.isQualified()Z (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        31: .line 1993
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$31(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        32: .line 1999
            new java.util.TreeSet
            dup
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* concealed */
        start local 6 // java.util.Set concealed
        33: .line 2000
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 6 /* concealed */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)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
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        34: .line 2001
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 6 /* concealed */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)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
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        35: .line 2002
            aload 6 /* concealed */
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$36(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        36: .line 2004
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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
                  sun/tools/jar/Main.lambda$37(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
        37: .line 2006
            aload 2 /* target */
            ifnull 41
        38: .line 2007
            aload 2 /* target */
            invokevirtual jdk.internal.module.ModuleTarget.targetPlatform:()Ljava/lang/String;
            astore 9 /* targetPlatform */
        start local 9 // java.lang.String targetPlatform
        39: .line 2008
            aload 9 /* targetPlatform */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 41
        40: .line 2009
            aload 5 /* sb */
            ldc "platform "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* targetPlatform */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // java.lang.String targetPlatform
        41: .line 2012
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* hashes */
            ifnull 45
        42: .line 2013
            aload 3 /* hashes */
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        43: .line 2014
            aload 5 /* sb */
            aload 3 /* hashes */
            invokedynamic accept(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;)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
                  sun/tools/jar/Main.lambda$38(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
        44: .line 2013
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        45: .line 2020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        46: .line 2021
            return
        end local 6 // java.util.Set concealed
        end local 5 // java.lang.StringBuilder sb
        end local 4 // java.lang.String uriString
        end local 3 // jdk.internal.module.ModuleHashes hashes
        end local 2 // jdk.internal.module.ModuleTarget target
        end local 1 // java.lang.module.ModuleDescriptor md
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0            this  Lsun/tools/jar/Main;
            0   47     1              md  Ljava/lang/module/ModuleDescriptor;
            0   47     2          target  Ljdk/internal/module/ModuleTarget;
            0   47     3          hashes  Ljdk/internal/module/ModuleHashes;
            0   47     4       uriString  Ljava/lang/String;
            1   47     5              sb  Ljava/lang/StringBuilder;
           33   47     6       concealed  Ljava/util/Set<Ljava/lang/String;>;
           39   41     9  targetPlatform  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      md         
      target     
      hashes     
      uriString  

  private static java.lang.String toHex(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // byte[] ba
         0: .line 2024
            new java.lang.StringBuilder
            dup
            aload 0 /* ba */
            arraylength
            iconst_1
            ishl
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 2025
            aload 0 /* ba */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
         2: aload 5
            iload 3
            baload
            istore 2 /* b */
        start local 2 // byte b
         3: .line 2026
            aload 1 /* sb */
            ldc "%02x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* b */
            sipush 255
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // byte b
         4: .line 2025
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 2028
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // byte[] ba
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    ba  [B
            1    7     1    sb  Ljava/lang/StringBuilder;
            3    4     2     b  B
    MethodParameters:
      Name  Flags
      ba    

  static java.lang.String toBinaryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String classname
         0: .line 2032
            new java.lang.StringBuilder
            dup
            aload 0 /* classname */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String classname
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  classname  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      classname  

  private boolean checkModuleInfo(byte[], java.util.Set<java.lang.String>);
    descriptor: ([BLjava/util/Set;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // byte[] moduleInfoBytes
        start local 2 // java.util.Set entries
         0: .line 2038
            iconst_1
            istore 3 /* ok */
        start local 3 // boolean ok
         1: .line 2039
            aload 1 /* moduleInfoBytes */
            ifnull 13
         2: .line 2042
            aload 1 /* moduleInfoBytes */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
            astore 4 /* md */
        start local 4 // java.lang.module.ModuleDescriptor md
         3: .line 2044
            aload 4 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Provides.providers()Ljava/util/List; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 2045
            aload 2 /* entries */
            invokedynamic test(Ljava/util/Set;)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
                  sun/tools/jar/Main.lambda$41(Ljava/util/Set;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 2046
            aload 0 /* this */
            invokedynamic accept(Lsun/tools/jar/Main;)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
                  sun/tools/jar/Main.lambda$42(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.peek:(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
         6: .line 2047
            invokeinterface java.util.stream.Stream.count:()J
            lconst_0
         7: .line 2044
            lcmp
            ifeq 13
         8: .line 2048
            iconst_0
            istore 3 /* ok */
        end local 4 // java.lang.module.ModuleDescriptor md
         9: .line 2050
            goto 13
      StackMap locals: sun.tools.jar.Main byte[] java.util.Set int
      StackMap stack: java.lang.module.InvalidModuleDescriptorException
        10: astore 4 /* x */
        start local 4 // java.lang.module.InvalidModuleDescriptorException x
        11: .line 2051
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual java.lang.module.InvalidModuleDescriptorException.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
        12: .line 2052
            iconst_0
            istore 3 /* ok */
        end local 4 // java.lang.module.InvalidModuleDescriptorException x
        13: .line 2055
      StackMap locals:
      StackMap stack:
            iload 3 /* ok */
            ireturn
        end local 3 // boolean ok
        end local 2 // java.util.Set entries
        end local 1 // byte[] moduleInfoBytes
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lsun/tools/jar/Main;
            0   14     1  moduleInfoBytes  [B
            0   14     2          entries  Ljava/util/Set<Ljava/lang/String;>;
            1   14     3               ok  Z
            3    9     4               md  Ljava/lang/module/ModuleDescriptor;
           11   13     4                x  Ljava/lang/module/InvalidModuleDescriptorException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.lang.module.InvalidModuleDescriptorException
    Exceptions:
      throws java.io.IOException
    Signature: ([BLjava/util/Set<Ljava/lang/String;>;)Z
    MethodParameters:
                 Name  Flags
      moduleInfoBytes  
      entries          

  private void addExtendedModuleAttributes(java.util.Map<java.lang.String, byte[]>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Map;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map moduleInfos
        start local 2 // java.util.Set packages
         0: .line 2066
            aload 1 /* moduleInfos */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         2: .line 2067
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
            astore 5 /* md */
        start local 5 // java.lang.module.ModuleDescriptor md
         3: .line 2068
            aload 3 /* e */
            aload 0 /* this */
            aload 5 /* md */
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            aload 2 /* packages */
            invokevirtual sun.tools.jar.Main.extendedInfoBytes:(Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
            invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.module.ModuleDescriptor md
        end local 3 // java.util.Map$Entry e
         4: .line 2066
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 2070
            return
        end local 2 // java.util.Set packages
        end local 1 // java.util.Map moduleInfos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lsun/tools/jar/Main;
            0    6     1  moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0    6     2     packages  Ljava/util/Set<Ljava/lang/String;>;
            2    4     3            e  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    4     5           md  Ljava/lang/module/ModuleDescriptor;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
             Name  Flags
      moduleInfos  
      packages     

  static boolean isModuleInfoEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 2074
            aload 0 /* name */
            ldc "module-info.class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 14
         1: .line 2075
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            ldc "module-info.class"
            invokevirtual java.lang.String.length:()I
            isub
            istore 1 /* end */
        start local 1 // int end
         2: .line 2076
            iload 1 /* end */
            ifne 4
         3: .line 2077
            iconst_1
            ireturn
         4: .line 2078
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
         5: .line 2079
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            istore 2 /* off */
        start local 2 // int off
         6: .line 2080
            iload 2 /* off */
            iload 1 /* end */
            if_icmpne 11
         7: .line 2081
            iconst_0
            ireturn
         8: .line 2083
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* off */
            iinc 2 /* off */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         9: .line 2084
            iload 3 /* c */
            bipush 48
            if_icmplt 10
            iload 3 /* c */
            bipush 57
            if_icmple 11
        10: .line 2085
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // char c
        11: .line 2082
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 1 /* end */
            iconst_1
            isub
            if_icmplt 8
        12: .line 2087
            aload 0 /* name */
            iload 2 /* off */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        end local 2 // int off
        end local 1 // int end
        14: .line 2090
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  name  Ljava/lang/String;
            2   14     1   end  I
            6   14     2   off  I
            9   11     3     c  C
    MethodParameters:
      Name  Flags
      name  

  private byte[] extendedInfoBytes(java.lang.module.ModuleDescriptor, byte[], java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.module.ModuleDescriptor md
        start local 2 // byte[] miBytes
        start local 3 // java.util.Set packages
         0: .line 2106
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* baos */
        start local 4 // java.io.ByteArrayOutputStream baos
         1: .line 2107
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* miBytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 5 /* is */
        start local 5 // java.io.InputStream is
         2: .line 2108
            aload 5 /* is */
            invokestatic jdk.internal.module.ModuleInfoExtender.newExtender:(Ljava/io/InputStream;)Ljdk/internal/module/ModuleInfoExtender;
            astore 6 /* extender */
        start local 6 // jdk.internal.module.ModuleInfoExtender extender
         3: .line 2111
            aload 6 /* extender */
            aload 3 /* packages */
            invokevirtual jdk.internal.module.ModuleInfoExtender.packages:(Ljava/util/Set;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         4: .line 2114
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 6
         5: .line 2115
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual jdk.internal.module.ModuleInfoExtender.mainClass:(Ljava/lang/String;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         6: .line 2118
      StackMap locals: java.io.ByteArrayOutputStream java.io.InputStream jdk.internal.module.ModuleInfoExtender
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnull 8
         7: .line 2119
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            invokevirtual jdk.internal.module.ModuleInfoExtender.version:(Ljava/lang/module/ModuleDescriptor$Version;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         8: .line 2122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 16
         9: .line 2123
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 7 /* mn */
        start local 7 // java.lang.String mn
        10: .line 2124
            new sun.tools.jar.Main$Hasher
            dup
            aload 0 /* this */
            aload 1 /* md */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial sun.tools.jar.Main$Hasher.<init>:(Lsun/tools/jar/Main;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
            astore 8 /* hasher */
        start local 8 // sun.tools.jar.Main$Hasher hasher
        11: .line 2125
            aload 8 /* hasher */
            aload 7 /* mn */
            invokevirtual sun.tools.jar.Main$Hasher.computeHashes:(Ljava/lang/String;)Ljdk/internal/module/ModuleHashes;
            astore 9 /* moduleHashes */
        start local 9 // jdk.internal.module.ModuleHashes moduleHashes
        12: .line 2126
            aload 9 /* moduleHashes */
            ifnull 15
        13: .line 2127
            aload 6 /* extender */
            aload 9 /* moduleHashes */
            invokevirtual jdk.internal.module.ModuleInfoExtender.hashes:(Ljdk/internal/module/ModuleHashes;)Ljdk/internal/module/ModuleInfoExtender;
            pop
        14: .line 2128
            goto 16
        15: .line 2129
      StackMap locals: java.lang.String sun.tools.jar.Main$Hasher jdk.internal.module.ModuleHashes
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "warning: no module is recorded in hash in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
        end local 9 // jdk.internal.module.ModuleHashes moduleHashes
        end local 8 // sun.tools.jar.Main$Hasher hasher
        end local 7 // java.lang.String mn
        16: .line 2133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
            invokevirtual jdk.internal.module.ModuleResolution.value:()I
            ifeq 18
        17: .line 2134
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
            invokevirtual jdk.internal.module.ModuleInfoExtender.moduleResolution:(Ljdk/internal/module/ModuleResolution;)Ljdk/internal/module/ModuleInfoExtender;
            pop
        18: .line 2137
      StackMap locals:
      StackMap stack:
            aload 6 /* extender */
            aload 4 /* baos */
            invokevirtual jdk.internal.module.ModuleInfoExtender.write:(Ljava/io/OutputStream;)V
        19: .line 2138
            aload 4 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 6 // jdk.internal.module.ModuleInfoExtender extender
        end local 5 // java.io.InputStream is
        end local 4 // java.io.ByteArrayOutputStream baos
        end local 3 // java.util.Set packages
        end local 2 // byte[] miBytes
        end local 1 // java.lang.module.ModuleDescriptor md
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lsun/tools/jar/Main;
            0   20     1            md  Ljava/lang/module/ModuleDescriptor;
            0   20     2       miBytes  [B
            0   20     3      packages  Ljava/util/Set<Ljava/lang/String;>;
            1   20     4          baos  Ljava/io/ByteArrayOutputStream;
            2   20     5            is  Ljava/io/InputStream;
            3   20     6      extender  Ljdk/internal/module/ModuleInfoExtender;
           10   16     7            mn  Ljava/lang/String;
           11   16     8        hasher  Lsun/tools/jar/Main$Hasher;
           12   16     9  moduleHashes  Ljdk/internal/module/ModuleHashes;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set<Ljava/lang/String;>;)[B
    MethodParameters:
          Name  Flags
      md        
      miBytes   
      packages  

  private static boolean lambda$0(sun.tools.jar.Main$Entry);
    descriptor: (Lsun/tools/jar/Main$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main$Entry e
         0: .line 289
            aload 0 /* e */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.jar.Main$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Lsun/tools/jar/Main$Entry;

  private void lambda$1(java.util.Set, java.util.Set, sun.tools.jar.Main$Entry);
    descriptor: (Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 3 // sun.tools.jar.Main$Entry e
         0: .line 291
            aload 0 /* this */
            aload 1
            aload 3 /* e */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
         1: .line 292
            aload 2
            aload 3 /* e */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 293
            return
        end local 3 // sun.tools.jar.Main$Entry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/jar/Main;
            0    3     3     e  Lsun/tools/jar/Main$Entry;

  private static java.lang.String[] lambda$3(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray java.lang.String
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private java.lang.String lambda$4(java.util.Set, int, java.lang.String);
    descriptor: (Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 3 // java.lang.String f
         0: .line 482
            aload 0 /* this */
            aload 3 /* f */
            aload 1
            iconst_0
            invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
            iload 2
            invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String f
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     3     f  Ljava/lang/String;

  private void lambda$5(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 2 // java.lang.String je
         0: .line 1006
            aload 0 /* this */
            aload 1
            aload 2 /* je */
            invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
            return
        end local 2 // java.lang.String je
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     2    je  Ljava/lang/String;

  private static void lambda$6(java.util.Map, java.lang.Integer);
    descriptor: (Ljava/util/Map;Ljava/lang/Integer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // java.lang.Integer version
         0: .line 1307
            aload 0
            aload 1 /* version */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 2 /* files */
        start local 2 // java.lang.String[] files
         1: .line 1308
            aload 2 /* files */
            ifnull 7
         2: .line 1309
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 1310
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* files */
            iload 3 /* i */
            aload 2 /* files */
            iload 3 /* i */
            aaload
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            aastore
         5: .line 1309
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 3 // int i
        end local 2 // java.lang.String[] files
         7: .line 1313
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Integer version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     1  version  Ljava/lang/Integer;
            1    7     2    files  [Ljava/lang/String;
            3    7     3        i  I

  private static boolean lambda$7(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.zip.ZipEntry e
         0: .line 1786
            aload 0 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.util.zip.ZipEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/zip/ZipEntry;

  private static sun.tools.jar.Main$ZipFileModuleInfoEntry lambda$8(java.util.zip.ZipFile, java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // java.util.zip.ZipEntry e
         0: .line 1788
            new sun.tools.jar.Main$ZipFileModuleInfoEntry
            dup
            aload 0
            aload 1 /* e */
            invokespecial sun.tools.jar.Main$ZipFileModuleInfoEntry.<init>:(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)V
            areturn
        end local 1 // java.util.zip.ZipEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     e  Ljava/util/zip/ZipEntry;

  private static sun.tools.jar.Main$ZipFileModuleInfoEntry[] lambda$9(int);
    descriptor: (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray sun.tools.jar.Main$ZipFileModuleInfoEntry
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static sun.tools.jar.Main$ModuleInfoEntry[] lambda$11(int);
    descriptor: (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray sun.tools.jar.Main$ModuleInfoEntry
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$12(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main$ModuleInfoEntry e
         0: .line 1874
            aload 0 /* e */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.jar.Main$ModuleInfoEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Lsun/tools/jar/Main$ModuleInfoEntry;

  private static java.lang.String lambda$15(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object e
         0: .line 1917
            aload 0 /* e */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  TT;

  private static boolean lambda$17(java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Exports;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1954
            aload 0 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.isQualified:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static void lambda$18(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1955
            aload 0
            ldc "exports "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1956
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static void lambda$19(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Requires);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Requires r
         0: .line 1960
            aload 0
            ldc "requires "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1961
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Requires r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     r  Ljava/lang/module/ModuleDescriptor$Requires;

  private static void lambda$20(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String s
         0: .line 1965
            aload 0
            ldc "uses "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     s  Ljava/lang/String;

  private static void lambda$22(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 1969
            aload 0
            ldc "provides "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1970
            ldc " with"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1971
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.providers:()Ljava/util/List;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1972
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$25(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1978
            aload 0
            ldc "qualified exports "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1979
            ldc " to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.targets:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1980
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static boolean lambda$27(java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Opens;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 1985
            aload 0 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.isQualified:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$28(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 1986
            aload 0
            ldc "opens "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1987
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1988
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$31(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 1993
            aload 0
            ldc "qualified opens "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1994
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1995
            ldc " to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.targets:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1996
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$36(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String p
         0: .line 2002
            aload 0
            ldc "contains "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/String;

  private static void lambda$37(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String v
         0: .line 2004
            aload 0
            ldc "main-class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* v */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/lang/String;

  private static void lambda$38(java.lang.StringBuilder, jdk.internal.module.ModuleHashes, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String mod
         0: .line 2014
            aload 0
            ldc "hashes "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* mod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 2015
            aload 1
            invokevirtual jdk.internal.module.ModuleHashes.algorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 2016
            aload 1
            aload 2 /* mod */
            invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
            invokestatic sun.tools.jar.Main.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 2017
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 2 // java.lang.String mod
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2   mod  Ljava/lang/String;

  private static boolean lambda$41(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String p
         0: .line 2045
            aload 0
            aload 1 /* p */
            invokestatic sun.tools.jar.Main.toBinaryName:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     p  Ljava/lang/String;

  private void lambda$42(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String p
         0: .line 2046
            aload 0 /* this */
            ldc "error.missing.provider"
            aload 1 /* p */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
            return
        end local 1 // java.lang.String p
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     1     p  Ljava/lang/String;
}
SourceFile: "Main.java"
NestMembers:
  sun.tools.jar.Main$1  sun.tools.jar.Main$CRC32OutputStream  sun.tools.jar.Main$Entry  sun.tools.jar.Main$Hasher  sun.tools.jar.Main$Hasher$1  sun.tools.jar.Main$Hasher$2  sun.tools.jar.Main$ModuleInfoEntry  sun.tools.jar.Main$StreamedModuleInfoEntry  sun.tools.jar.Main$ZipFileModuleInfoEntry
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Exports$Modifier of java.lang.module.ModuleDescriptor$Exports
  public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Opens$Modifier of java.lang.module.ModuleDescriptor$Opens
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
  public abstract Packer = java.util.jar.Pack200$Packer of java.util.jar.Pack200
  public abstract Unpacker = java.util.jar.Pack200$Unpacker of java.util.jar.Pack200
  public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
  BadArgs = sun.tools.jar.GNUStyleOptions$BadArgs of sun.tools.jar.GNUStyleOptions
  sun.tools.jar.Main$1
  private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main
  private Entry = sun.tools.jar.Main$Entry of sun.tools.jar.Main
  private Hasher = sun.tools.jar.Main$Hasher of sun.tools.jar.Main
  abstract ModuleInfoEntry = sun.tools.jar.Main$ModuleInfoEntry of sun.tools.jar.Main
  StreamedModuleInfoEntry = sun.tools.jar.Main$StreamedModuleInfoEntry of sun.tools.jar.Main
  ZipFileModuleInfoEntry = sun.tools.jar.Main$ZipFileModuleInfoEntry of sun.tools.jar.Main