class com.sun.java.util.jar.pack.Utils
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.java.util.jar.pack.Utils
  super_class: java.lang.Object
{
  static final java.lang.String COM_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack."

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

  static final java.lang.String DEBUG_VERBOSE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.verbose"

  static final java.lang.String DEBUG_DISABLE_NATIVE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.disable.native"

  static final java.lang.String UNPACK_MODIFICATION_TIME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.unpack.modification.time"

  static final java.lang.String UNPACK_STRIP_DEBUG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.unpack.strip.debug"

  static final java.lang.String UNPACK_REMOVE_PACKFILE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.unpack.remove.packfile"

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

  static final java.lang.String PACK_KEEP_CLASS_ORDER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.keep.class.order"

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

  static final java.lang.String CLASS_FORMAT_ERROR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.java.util.jar.pack.class.format.error"

  static final java.lang.ThreadLocal<com.sun.java.util.jar.pack.TLGlobals> currentInstance;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lcom/sun/java/util/jar/pack/TLGlobals;>;

  static final boolean nolog;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean SORT_MEMBERS_DESCR_MAJOR;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean SORT_HANDLES_KIND_MAJOR;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean SORT_INDY_BSS_MAJOR;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean SORT_BSS_BSM_MAJOR;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final com.sun.java.util.jar.pack.Utils$Pack200Logger log;
    descriptor: Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 127
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic com.sun.java.util.jar.pack.Utils.currentInstance:Ljava/lang/ThreadLocal;
         1: .line 144
            ldc "com.sun.java.util.jar.pack.nolog"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         2: .line 143
            putstatic com.sun.java.util.jar.pack.Utils.nolog:Z
         3: .line 147
            ldc "com.sun.java.util.jar.pack.sort.members.descr.major"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         4: .line 146
            putstatic com.sun.java.util.jar.pack.Utils.SORT_MEMBERS_DESCR_MAJOR:Z
         5: .line 150
            ldc "com.sun.java.util.jar.pack.sort.handles.kind.major"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         6: .line 149
            putstatic com.sun.java.util.jar.pack.Utils.SORT_HANDLES_KIND_MAJOR:Z
         7: .line 153
            ldc "com.sun.java.util.jar.pack.sort.indy.bss.major"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         8: .line 152
            putstatic com.sun.java.util.jar.pack.Utils.SORT_INDY_BSS_MAJOR:Z
         9: .line 156
            ldc "com.sun.java.util.jar.pack.sort.bss.bsm.major"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
        10: .line 155
            putstatic com.sun.java.util.jar.pack.Utils.SORT_BSS_BSM_MAJOR:Z
        11: .line 200
            new com.sun.java.util.jar.pack.Utils$Pack200Logger
            dup
            ldc "java.util.jar.Pack200"
            invokespecial com.sun.java.util.jar.pack.Utils$Pack200Logger.<init>:(Ljava/lang/String;)V
        12: .line 199
            putstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
        13: .line 200
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static com.sun.java.util.jar.pack.TLGlobals getTLGlobals();
    descriptor: ()Lcom/sun/java/util/jar/pack/TLGlobals;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 131
            getstatic com.sun.java.util.jar.pack.Utils.currentInstance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast com.sun.java.util.jar.pack.TLGlobals
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static com.sun.java.util.jar.pack.PropMap currentPropMap();
    descriptor: ()Lcom/sun/java/util/jar/pack/PropMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 135
            getstatic com.sun.java.util.jar.pack.Utils.currentInstance:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            astore 0 /* obj */
        start local 0 // java.lang.Object obj
         1: .line 136
            aload 0 /* obj */
            instanceof com.sun.java.util.jar.pack.PackerImpl
            ifeq 3
         2: .line 137
            aload 0 /* obj */
            checkcast com.sun.java.util.jar.pack.PackerImpl
            getfield com.sun.java.util.jar.pack.PackerImpl.props:Lcom/sun/java/util/jar/pack/PropMap;
            areturn
         3: .line 138
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* obj */
            instanceof com.sun.java.util.jar.pack.UnpackerImpl
            ifeq 5
         4: .line 139
            aload 0 /* obj */
            checkcast com.sun.java.util.jar.pack.UnpackerImpl
            getfield com.sun.java.util.jar.pack.UnpackerImpl.props:Lcom/sun/java/util/jar/pack/PropMap;
            areturn
         5: .line 140
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    6     0   obj  Ljava/lang/Object;

  static java.lang.String getVersionString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 204
            new java.lang.StringBuilder
            dup
            ldc "Pack200, Vendor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 205
            ldc "java.vendor"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 206
            ldc ", Version: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.sun.java.util.jar.pack.Constants.MAX_PACKAGE_VERSION:Lcom/sun/java/util/jar/pack/Package$Version;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 204
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void markJarFile(java.util.jar.JarOutputStream);
    descriptor: (Ljava/util/jar/JarOutputStream;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.jar.JarOutputStream out
         0: .line 210
            aload 0 /* out */
            ldc "PACK200"
            invokevirtual java.util.jar.JarOutputStream.setComment:(Ljava/lang/String;)V
         1: .line 211
            return
        end local 0 // java.util.jar.JarOutputStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   out  Ljava/util/jar/JarOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  static void copyJarFile(java.util.jar.JarInputStream, java.util.jar.JarOutputStream);
    descriptor: (Ljava/util/jar/JarInputStream;Ljava/util/jar/JarOutputStream;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.util.jar.JarInputStream in
        start local 1 // java.util.jar.JarOutputStream out
         0: .line 215
            aload 0 /* in */
            invokevirtual java.util.jar.JarInputStream.getManifest:()Ljava/util/jar/Manifest;
            ifnull 5
         1: .line 216
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 2 /* me */
        start local 2 // java.util.zip.ZipEntry me
         2: .line 217
            aload 1 /* out */
            aload 2 /* me */
            invokevirtual java.util.jar.JarOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         3: .line 218
            aload 0 /* in */
            invokevirtual java.util.jar.JarInputStream.getManifest:()Ljava/util/jar/Manifest;
            aload 1 /* out */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
         4: .line 219
            aload 1 /* out */
            invokevirtual java.util.jar.JarOutputStream.closeEntry:()V
        end local 2 // java.util.zip.ZipEntry me
         5: .line 221
      StackMap locals:
      StackMap stack:
            sipush 16384
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         6: .line 222
            goto 12
        start local 3 // java.util.jar.JarEntry je
         7: .line 223
      StackMap locals: byte[] java.util.jar.JarEntry
      StackMap stack:
            aload 1 /* out */
            aload 3 /* je */
            invokevirtual java.util.jar.JarOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         8: .line 224
            goto 10
        start local 4 // int nr
         9: .line 225
      StackMap locals: int
      StackMap stack:
            aload 1 /* out */
            aload 2 /* buffer */
            iconst_0
            iload 4 /* nr */
            invokevirtual java.util.jar.JarOutputStream.write:([BII)V
        end local 4 // int nr
        10: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            aload 2 /* buffer */
            invokevirtual java.util.jar.JarInputStream.read:([B)I
            dup
            istore 4 /* nr */
        start local 4 // int nr
        11: ifgt 9
        end local 4 // int nr
        end local 3 // java.util.jar.JarEntry je
        12: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual java.util.jar.JarInputStream.getNextJarEntry:()Ljava/util/jar/JarEntry;
            dup
            astore 3 /* je */
        start local 3 // java.util.jar.JarEntry je
        13: ifnonnull 7
        end local 3 // java.util.jar.JarEntry je
        14: .line 228
            aload 0 /* in */
            invokevirtual java.util.jar.JarInputStream.close:()V
        15: .line 229
            aload 1 /* out */
            invokestatic com.sun.java.util.jar.pack.Utils.markJarFile:(Ljava/util/jar/JarOutputStream;)V
        16: .line 230
            return
        end local 2 // byte[] buffer
        end local 1 // java.util.jar.JarOutputStream out
        end local 0 // java.util.jar.JarInputStream in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0      in  Ljava/util/jar/JarInputStream;
            0   17     1     out  Ljava/util/jar/JarOutputStream;
            2    5     2      me  Ljava/util/zip/ZipEntry;
            6   17     2  buffer  [B
            7   12     3      je  Ljava/util/jar/JarEntry;
           13   14     3      je  Ljava/util/jar/JarEntry;
            9   10     4      nr  I
           11   12     4      nr  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  static void copyJarFile(java.util.jar.JarFile, java.util.jar.JarOutputStream);
    descriptor: (Ljava/util/jar/JarFile;Ljava/util/jar/JarOutputStream;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.util.jar.JarFile in
        start local 1 // java.util.jar.JarOutputStream out
         0: .line 232
            sipush 16384
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         1: .line 233
            aload 0 /* in */
            invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
            invokestatic java.util.Collections.list:(Ljava/util/Enumeration;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: java.util.jar.JarFile java.util.jar.JarOutputStream byte[] top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            astore 3 /* je */
        start local 3 // java.util.jar.JarEntry je
         3: .line 234
            aload 1 /* out */
            aload 3 /* je */
            invokevirtual java.util.jar.JarOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         4: .line 235
            aload 0 /* in */
            aload 3 /* je */
            invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 5 /* ein */
        start local 5 // java.io.InputStream ein
         5: .line 236
            goto 7
        start local 6 // int nr
         6: .line 237
      StackMap locals: java.util.jar.JarFile java.util.jar.JarOutputStream byte[] java.util.jar.JarEntry java.util.Iterator java.io.InputStream int
      StackMap stack:
            aload 1 /* out */
            aload 2 /* buffer */
            iconst_0
            iload 6 /* nr */
            invokevirtual java.util.jar.JarOutputStream.write:([BII)V
        end local 6 // int nr
         7: .line 236
      StackMap locals:
      StackMap stack:
            aload 5 /* ein */
            aload 2 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 6 /* nr */
        start local 6 // int nr
         8: ifgt 6
        end local 6 // int nr
        end local 5 // java.io.InputStream ein
        end local 3 // java.util.jar.JarEntry je
         9: .line 233
      StackMap locals: java.util.jar.JarFile java.util.jar.JarOutputStream byte[] top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 240
            aload 0 /* in */
            invokevirtual java.util.jar.JarFile.close:()V
        11: .line 241
            aload 1 /* out */
            invokestatic com.sun.java.util.jar.pack.Utils.markJarFile:(Ljava/util/jar/JarOutputStream;)V
        12: .line 242
            return
        end local 2 // byte[] buffer
        end local 1 // java.util.jar.JarOutputStream out
        end local 0 // java.util.jar.JarFile in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0      in  Ljava/util/jar/JarFile;
            0   13     1     out  Ljava/util/jar/JarOutputStream;
            1   13     2  buffer  [B
            3    9     3      je  Ljava/util/jar/JarEntry;
            5    9     5     ein  Ljava/io/InputStream;
            6    7     6      nr  I
            8    9     6      nr  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  static void copyJarFile(java.util.jar.JarInputStream, java.io.OutputStream);
    descriptor: (Ljava/util/jar/JarInputStream;Ljava/io/OutputStream;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.jar.JarInputStream in
        start local 1 // java.io.OutputStream out
         0: .line 245
            new java.io.BufferedOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 1 /* out */
         1: .line 246
            new com.sun.java.util.jar.pack.Utils$NonCloser
            dup
            aload 1 /* out */
            invokespecial com.sun.java.util.jar.pack.Utils$NonCloser.<init>:(Ljava/io/OutputStream;)V
            astore 1 /* out */
         2: .line 247
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* jout */
        start local 4 // java.util.jar.JarOutputStream jout
         4: .line 248
            aload 0 /* in */
            aload 4 /* jout */
            invokestatic com.sun.java.util.jar.pack.Utils.copyJarFile:(Ljava/util/jar/JarInputStream;Ljava/util/jar/JarOutputStream;)V
         5: .line 249
            aload 4 /* jout */
            ifnull 11
            aload 4 /* jout */
            invokevirtual java.util.jar.JarOutputStream.close:()V
            goto 11
      StackMap locals: java.util.jar.JarInputStream java.io.OutputStream java.lang.Throwable java.lang.Throwable java.util.jar.JarOutputStream
      StackMap stack: java.lang.Throwable
         6: astore 2
            aload 4 /* jout */
            ifnull 7
            aload 4 /* jout */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        end local 4 // java.util.jar.JarOutputStream jout
      StackMap locals:
      StackMap stack:
         7: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 2
            ifnonnull 9
            aload 3
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 2
            aload 3
            if_acmpeq 10
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 2
            athrow
        11: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.OutputStream out
        end local 0 // java.util.jar.JarInputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0    in  Ljava/util/jar/JarInputStream;
            0   12     1   out  Ljava/io/OutputStream;
            4    7     4  jout  Ljava/util/jar/JarOutputStream;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  static void copyJarFile(java.util.jar.JarFile, java.io.OutputStream);
    descriptor: (Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.jar.JarFile in
        start local 1 // java.io.OutputStream out
         0: .line 254
            new java.io.BufferedOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 1 /* out */
         1: .line 255
            new com.sun.java.util.jar.pack.Utils$NonCloser
            dup
            aload 1 /* out */
            invokespecial com.sun.java.util.jar.pack.Utils$NonCloser.<init>:(Ljava/io/OutputStream;)V
            astore 1 /* out */
         2: .line 256
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* jout */
        start local 4 // java.util.jar.JarOutputStream jout
         4: .line 257
            aload 0 /* in */
            aload 4 /* jout */
            invokestatic com.sun.java.util.jar.pack.Utils.copyJarFile:(Ljava/util/jar/JarFile;Ljava/util/jar/JarOutputStream;)V
         5: .line 258
            aload 4 /* jout */
            ifnull 11
            aload 4 /* jout */
            invokevirtual java.util.jar.JarOutputStream.close:()V
            goto 11
      StackMap locals: java.util.jar.JarFile java.io.OutputStream java.lang.Throwable java.lang.Throwable java.util.jar.JarOutputStream
      StackMap stack: java.lang.Throwable
         6: astore 2
            aload 4 /* jout */
            ifnull 7
            aload 4 /* jout */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        end local 4 // java.util.jar.JarOutputStream jout
      StackMap locals:
      StackMap stack:
         7: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 2
            ifnonnull 9
            aload 3
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 2
            aload 3
            if_acmpeq 10
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 2
            athrow
        11: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.OutputStream out
        end local 0 // java.util.jar.JarFile in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0    in  Ljava/util/jar/JarFile;
            0   12     1   out  Ljava/io/OutputStream;
            4    7     4  jout  Ljava/util/jar/JarOutputStream;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  static java.lang.String getJarEntryName(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 name
         0: .line 267
            aload 0 /* name */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  static java.lang.String zeString(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.util.zip.ZipEntry ze
         0: .line 272
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            lconst_0
            lcmp
            ifle 2
         1: .line 273
            dconst_1
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            l2d
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            l2d
            ddiv
            dsub
            ldc 100.0
            dmul
            d2i
            goto 3
         2: .line 274
      StackMap locals:
      StackMap stack:
            iconst_0
         3: .line 272
      StackMap locals:
      StackMap stack: int
            istore 1 /* store */
        start local 1 // int store
         4: .line 276
            new java.lang.StringBuilder
            dup
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 277
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 278
            iload 1 /* store */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "%\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 279
            new java.util.Date
            dup
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 280
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getCrc:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 281
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 276
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // int store
        end local 0 // java.util.zip.ZipEntry ze
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0     ze  Ljava/util/zip/ZipEntry;
            4   11     1  store  I
    MethodParameters:
      Name  Flags
      ze    

  static byte[] readMagic(java.io.BufferedInputStream);
    descriptor: (Ljava/io/BufferedInputStream;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.io.BufferedInputStream in
         0: .line 287
            aload 0 /* in */
            iconst_4
            invokevirtual java.io.BufferedInputStream.mark:(I)V
         1: .line 288
            iconst_4
            newarray 8
            astore 1 /* magic */
        start local 1 // byte[] magic
         2: .line 289
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 291
      StackMap locals: byte[] int
      StackMap stack:
            iconst_1
            aload 0 /* in */
            aload 1 /* magic */
            iload 2 /* i */
            iconst_1
            invokevirtual java.io.BufferedInputStream.read:([BII)I
            if_icmpeq 6
         5: .line 292
            goto 8
         6: .line 289
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* magic */
            arraylength
            if_icmplt 4
        end local 2 // int i
         8: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual java.io.BufferedInputStream.reset:()V
         9: .line 295
            aload 1 /* magic */
            areturn
        end local 1 // byte[] magic
        end local 0 // java.io.BufferedInputStream in
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0     in  Ljava/io/BufferedInputStream;
            2   10     1  magic  [B
            3    8     2      i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  static boolean isJarMagic(byte[]);
    descriptor: ([B)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // byte[] magic
         0: .line 300
            aload 0 /* magic */
            iconst_0
            baload
            bipush 80
            if_icmpne 6
         1: .line 301
            aload 0 /* magic */
            iconst_1
            baload
            bipush 75
            if_icmpne 6
         2: .line 302
            aload 0 /* magic */
            iconst_2
            baload
            iconst_1
            if_icmplt 6
         3: .line 303
            aload 0 /* magic */
            iconst_2
            baload
            bipush 8
            if_icmpge 6
         4: .line 304
            aload 0 /* magic */
            iconst_3
            baload
            aload 0 /* magic */
            iconst_2
            baload
            iconst_1
            iadd
            if_icmpne 6
         5: .line 300
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 0 // byte[] magic
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  magic  [B
    MethodParameters:
       Name  Flags
      magic  

  static boolean isPackMagic(byte[]);
    descriptor: ([B)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] magic
         0: .line 307
            aload 0 /* magic */
            iconst_0
            baload
            bipush -54
            if_icmpne 5
         1: .line 308
            aload 0 /* magic */
            iconst_1
            baload
            bipush -2
            if_icmpne 5
         2: .line 309
            aload 0 /* magic */
            iconst_2
            baload
            bipush -48
            if_icmpne 5
         3: .line 310
            aload 0 /* magic */
            iconst_3
            baload
            bipush 13
            if_icmpne 5
         4: .line 307
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 0 // byte[] magic
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  magic  [B
    MethodParameters:
       Name  Flags
      magic  

  static boolean isGZIPMagic(byte[]);
    descriptor: ([B)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] magic
         0: .line 313
            aload 0 /* magic */
            iconst_0
            baload
            bipush 31
            if_icmpne 4
         1: .line 314
            aload 0 /* magic */
            iconst_1
            baload
            bipush -117
            if_icmpne 4
         2: .line 315
            aload 0 /* magic */
            iconst_2
            baload
            bipush 8
            if_icmpne 4
         3: .line 313
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // byte[] magic
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  magic  [B
    MethodParameters:
       Name  Flags
      magic  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.Utils this
         0: .line 319
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.java.util.jar.pack.Utils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/Utils;
}
SourceFile: "Utils.java"
NestMembers:
  com.sun.java.util.jar.pack.Utils$NonCloser  com.sun.java.util.jar.pack.Utils$Pack200Logger
InnerClasses:
  private NonCloser = com.sun.java.util.jar.pack.Utils$NonCloser of com.sun.java.util.jar.pack.Utils
  Pack200Logger = com.sun.java.util.jar.pack.Utils$Pack200Logger of com.sun.java.util.jar.pack.Utils