public class java.lang.Package extends java.lang.NamedPackage implements java.lang.reflect.AnnotatedElement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.Package
  super_class: java.lang.NamedPackage
{
  private final java.lang.Package$VersionInfo versionInfo;
    descriptor: Ljava/lang/Package$VersionInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.Class<?> packageInfo;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Class<*>;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 129
            aload 0 /* this */
            invokevirtual java.lang.Package.packageName:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String getSpecificationTitle();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 137
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specTitle:Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String getSpecificationVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 176
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specVersion:Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String getSpecificationVendor();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 186
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specVendor:Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String getImplementationTitle();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 194
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.implTitle:Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String getImplementationVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 207
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.implVersion:Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String getImplementationVendor();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 220
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.implVendor:Ljava/lang/String;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public boolean isSealed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 229
            aload 0 /* this */
            invokevirtual java.lang.Package.module:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isNamed:()Z
            ifne 1
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.sealBase:Ljava/net/URL;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Package;

  public boolean isSealed(java.net.URL);
    descriptor: (Ljava/net/URL;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.net.URL url
         0: .line 240
            aload 1 /* url */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 242
            aconst_null
            astore 2 /* sealBase */
        start local 2 // java.net.URL sealBase
         2: .line 243
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getstatic java.lang.Package$VersionInfo.NULL_VERSION_INFO:Ljava/lang/Package$VersionInfo;
            if_acmpeq 5
         3: .line 244
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.sealBase:Ljava/net/URL;
            astore 2 /* sealBase */
         4: .line 245
            goto 11
         5: .line 247
      StackMap locals: java.net.URL
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Package.location:()Ljava/net/URI;
            astore 3 /* uri */
        start local 3 // java.net.URI uri
         6: .line 248
            aload 3 /* uri */
            ifnull 7
            aload 3 /* uri */
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            goto 8
      StackMap locals: java.net.URI
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: java.net.URL
         8: astore 2 /* sealBase */
        end local 3 // java.net.URI uri
         9: .line 249
            goto 11
      StackMap locals: java.lang.Package java.net.URL java.net.URL
      StackMap stack: java.net.MalformedURLException
        10: pop
        11: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            aload 2 /* sealBase */
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.net.URL sealBase
        end local 1 // java.net.URL url
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Ljava/lang/Package;
            0   12     1       url  Ljava/net/URL;
            2   12     2  sealBase  Ljava/net/URL;
            6    9     3       uri  Ljava/net/URI;
      Exception table:
        from    to  target  type
           5     9      10  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      url   

  public boolean isCompatibleWith(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.lang.String desired
         0: .line 280
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specVersion:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specVersion:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpge 2
         1: .line 281
      StackMap locals:
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Empty version string"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specVersion:Ljava/lang/String;
            ldc "\\."
            iconst_m1
            invokevirtual java.lang.String.split:(Ljava/lang/String;I)[Ljava/lang/String;
            astore 2 /* sa */
        start local 2 // java.lang.String[] sa
         3: .line 285
            aload 2 /* sa */
            arraylength
            newarray 10
            astore 3 /* si */
        start local 3 // int[] si
         4: .line 286
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 287
      StackMap locals: java.lang.String[] int[] int
      StackMap stack:
            aload 3 /* si */
            iload 4 /* i */
            aload 2 /* sa */
            iload 4 /* i */
            aaload
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            iastore
         7: .line 288
            aload 3 /* si */
            iload 4 /* i */
            iaload
            ifge 9
         8: .line 289
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 3 /* si */
            iload 4 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.NumberFormatException.forInputString:(Ljava/lang/String;)Ljava/lang/NumberFormatException;
            athrow
         9: .line 286
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 2 /* sa */
            arraylength
            if_icmplt 6
        end local 4 // int i
        11: .line 292
            aload 1 /* desired */
            ldc "\\."
            iconst_m1
            invokevirtual java.lang.String.split:(Ljava/lang/String;I)[Ljava/lang/String;
            astore 4 /* da */
        start local 4 // java.lang.String[] da
        12: .line 293
            aload 4 /* da */
            arraylength
            newarray 10
            astore 5 /* di */
        start local 5 // int[] di
        13: .line 294
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        14: goto 19
        15: .line 295
      StackMap locals: java.lang.Package java.lang.String java.lang.String[] int[] java.lang.String[] int[] int
      StackMap stack:
            aload 5 /* di */
            iload 6 /* i */
            aload 4 /* da */
            iload 6 /* i */
            aaload
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            iastore
        16: .line 296
            aload 5 /* di */
            iload 6 /* i */
            iaload
            ifge 18
        17: .line 297
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* di */
            iload 6 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.NumberFormatException.forInputString:(Ljava/lang/String;)Ljava/lang/NumberFormatException;
            athrow
        18: .line 294
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            aload 4 /* da */
            arraylength
            if_icmplt 15
        end local 6 // int i
        20: .line 300
            aload 5 /* di */
            arraylength
            aload 3 /* si */
            arraylength
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* len */
        start local 6 // int len
        21: .line 301
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        22: goto 34
        23: .line 302
      StackMap locals: int
      StackMap stack:
            iload 7 /* i */
            aload 5 /* di */
            arraylength
            if_icmpge 24
            aload 5 /* di */
            iload 7 /* i */
            iaload
            goto 25
      StackMap locals:
      StackMap stack:
        24: iconst_0
      StackMap locals:
      StackMap stack: int
        25: istore 8 /* d */
        start local 8 // int d
        26: .line 303
            iload 7 /* i */
            aload 3 /* si */
            arraylength
            if_icmpge 27
            aload 3 /* si */
            iload 7 /* i */
            iaload
            goto 28
      StackMap locals: int
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: istore 9 /* s */
        start local 9 // int s
        29: .line 304
            iload 9 /* s */
            iload 8 /* d */
            if_icmpge 31
        30: .line 305
            iconst_0
            ireturn
        31: .line 306
      StackMap locals: int
      StackMap stack:
            iload 9 /* s */
            iload 8 /* d */
            if_icmple 33
        32: .line 307
            iconst_1
            ireturn
        end local 9 // int s
        end local 8 // int d
        33: .line 301
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* i */
            iload 6 /* len */
            if_icmplt 23
        end local 7 // int i
        35: .line 309
            iconst_1
            ireturn
        end local 6 // int len
        end local 5 // int[] di
        end local 4 // java.lang.String[] da
        end local 3 // int[] si
        end local 2 // java.lang.String[] sa
        end local 1 // java.lang.String desired
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Ljava/lang/Package;
            0   36     1  desired  Ljava/lang/String;
            3   36     2       sa  [Ljava/lang/String;
            4   36     3       si  [I
            5   11     4        i  I
           12   36     4       da  [Ljava/lang/String;
           13   36     5       di  [I
           14   20     6        i  I
           21   36     6      len  I
           22   35     7        i  I
           26   33     8        d  I
           29   33     9        s  I
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
         Name  Flags
      desired  

  public static java.lang.Package getPackage(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Package;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 353
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 1 /* l */
        start local 1 // java.lang.ClassLoader l
         1: .line 354
            aload 1 /* l */
            ifnull 2
            aload 1 /* l */
            aload 0 /* name */
            invokevirtual java.lang.ClassLoader.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
            goto 3
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
         2: aload 0 /* name */
            invokestatic jdk.internal.loader.BootLoader.getDefinedPackage:(Ljava/lang/String;)Ljava/lang/Package;
      StackMap locals:
      StackMap stack: java.lang.Package
         3: areturn
        end local 1 // java.lang.ClassLoader l
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  name  Ljava/lang/String;
            1    4     1     l  Ljava/lang/ClassLoader;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
      java.lang.Deprecated(since = "9")
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.Package[] getPackages();
    descriptor: ()[Ljava/lang/Package;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 376
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 0 /* cl */
        start local 0 // java.lang.ClassLoader cl
         1: .line 377
            aload 0 /* cl */
            ifnull 2
            aload 0 /* cl */
            invokevirtual java.lang.ClassLoader.getPackages:()[Ljava/lang/Package;
            goto 3
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
         2: invokestatic jdk.internal.loader.BootLoader.packages:()Ljava/util/stream/Stream;
            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;
                  java/lang/Package.lambda$0(I)[Ljava/lang/Package; (6)
                  (I)[Ljava/lang/Package;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast java.lang.Package[]
      StackMap locals:
      StackMap stack: java.lang.Package[]
         3: areturn
        end local 0 // java.lang.ClassLoader cl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0    cl  Ljava/lang/ClassLoader;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 386
            aload 0 /* this */
            invokevirtual java.lang.Package.packageName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Package this
         0: .line 398
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specTitle:Ljava/lang/String;
            astore 1 /* spec */
        start local 1 // java.lang.String spec
         1: .line 399
            aload 0 /* this */
            getfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
            getfield java.lang.Package$VersionInfo.specVersion:Ljava/lang/String;
            astore 2 /* ver */
        start local 2 // java.lang.String ver
         2: .line 400
            aload 1 /* spec */
            ifnull 4
            aload 1 /* spec */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 4
         3: .line 401
            new java.lang.StringBuilder
            dup
            ldc ", "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* spec */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* spec */
            goto 5
         4: .line 403
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc ""
            astore 1 /* spec */
         5: .line 404
      StackMap locals:
      StackMap stack:
            aload 2 /* ver */
            ifnull 7
            aload 2 /* ver */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 7
         6: .line 405
            new java.lang.StringBuilder
            dup
            ldc ", version "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* ver */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* ver */
            goto 8
         7: .line 407
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 2 /* ver */
         8: .line 408
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Package.packageName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* spec */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* ver */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String ver
        end local 1 // java.lang.String spec
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/lang/Package;
            1    9     1  spec  Ljava/lang/String;
            2    9     2   ver  Ljava/lang/String;

  private java.lang.Class<?> getPackageInfo();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.Package this
         0: .line 412
            aload 0 /* this */
            getfield java.lang.Package.packageInfo:Ljava/lang/Class;
            ifnonnull 13
         1: .line 414
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Package.packageName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".package-info"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* cn */
        start local 1 // java.lang.String cn
         2: .line 415
            aload 0 /* this */
            invokevirtual java.lang.Package.module:()Ljava/lang/Module;
            astore 2 /* module */
        start local 2 // java.lang.Module module
         3: .line 416
            aload 2 /* module */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Ljava/lang/Module;)Ljava/security/PrivilegedAction;
              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;
                  java/lang/Module.getClassLoader()Ljava/lang/ClassLoader; (5)
                  ()Ljava/lang/ClassLoader;
            astore 3 /* pa */
        start local 3 // java.security.PrivilegedAction pa
         4: .line 417
            aload 3 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 5 /* loader */
        start local 5 // java.lang.ClassLoader loader
         5: .line 419
            aload 5 /* loader */
            ifnull 8
         6: .line 420
            aload 5 /* loader */
            aload 2 /* module */
            aload 1 /* cn */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* c */
        start local 6 // java.lang.Class c
         7: .line 421
            goto 9
        end local 6 // java.lang.Class c
         8: .line 422
      StackMap locals: java.lang.Package java.lang.String java.lang.Module java.security.PrivilegedAction top java.lang.ClassLoader
      StackMap stack:
            aload 2 /* module */
            aload 1 /* cn */
            invokestatic jdk.internal.loader.BootLoader.loadClass:(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* c */
        start local 6 // java.lang.Class c
         9: .line 425
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 6 /* c */
            ifnull 12
        10: .line 426
            aload 0 /* this */
            aload 6 /* c */
            putfield java.lang.Package.packageInfo:Ljava/lang/Class;
        11: .line 427
            goto 13
        12: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc Ljava/lang/Package$1PackageInfoProxy;
            putfield java.lang.Package.packageInfo:Ljava/lang/Class;
        end local 6 // java.lang.Class c
        end local 5 // java.lang.ClassLoader loader
        end local 3 // java.security.PrivilegedAction pa
        end local 2 // java.lang.Module module
        end local 1 // java.lang.String cn
        13: .line 433
      StackMap locals: java.lang.Package
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Package.packageInfo:Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Ljava/lang/Package;
            2   13     1      cn  Ljava/lang/String;
            3   13     2  module  Ljava/lang/Module;
            4   13     3      pa  Ljava/security/PrivilegedAction<Ljava/lang/ClassLoader;>;
            5   13     5  loader  Ljava/lang/ClassLoader;
            7    8     6       c  Ljava/lang/Class<*>;
            9   13     6       c  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Class<*>;

  public <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.lang.Class annotationClass
         0: .line 441
            aload 0 /* this */
            invokevirtual java.lang.Package.getPackageInfo:()Ljava/lang/Class;
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljava/lang/Package;
            0    1     1  annotationClass  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.lang.Class annotationClass
         0: .line 451
            aload 0 /* this */
            aload 1 /* annotationClass */
            invokespecial java.lang.reflect.AnnotatedElement.isAnnotationPresent:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljava/lang/Package;
            0    1     1  annotationClass  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
    MethodParameters:
                 Name  Flags
      annotationClass  

  public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.lang.Class annotationClass
         0: .line 460
            aload 0 /* this */
            invokevirtual java.lang.Package.getPackageInfo:()Ljava/lang/Class;
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotationsByType:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljava/lang/Package;
            0    1     1  annotationClass  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public java.lang.annotation.Annotation[] getAnnotations();
    descriptor: ()[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 467
            aload 0 /* this */
            invokevirtual java.lang.Package.getPackageInfo:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  public <A extends java.lang.annotation.Annotation> A getDeclaredAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.lang.Class annotationClass
         0: .line 476
            aload 0 /* this */
            invokevirtual java.lang.Package.getPackageInfo:()Ljava/lang/Class;
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getDeclaredAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljava/lang/Package;
            0    1     1  annotationClass  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public <A extends java.lang.annotation.Annotation> A[] getDeclaredAnnotationsByType(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Package this
        start local 1 // java.lang.Class annotationClass
         0: .line 485
            aload 0 /* this */
            invokevirtual java.lang.Package.getPackageInfo:()Ljava/lang/Class;
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getDeclaredAnnotationsByType:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljava/lang/Package;
            0    1     1  annotationClass  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public java.lang.annotation.Annotation[] getDeclaredAnnotations();
    descriptor: ()[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Package this
         0: .line 492
            aload 0 /* this */
            invokevirtual java.lang.Package.getPackageInfo:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Package;

  void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=10, args_size=10
        start local 0 // java.lang.Package this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String spectitle
        start local 3 // java.lang.String specversion
        start local 4 // java.lang.String specvendor
        start local 5 // java.lang.String impltitle
        start local 6 // java.lang.String implversion
        start local 7 // java.lang.String implvendor
        start local 8 // java.net.URL sealbase
        start local 9 // java.lang.ClassLoader loader
         0: .line 517
            aload 0 /* this */
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         1: .line 518
            aload 9 /* loader */
            ifnull 2
            aload 9 /* loader */
            invokevirtual java.lang.ClassLoader.getUnnamedModule:()Ljava/lang/Module;
            goto 3
         2: .line 519
      StackMap locals: uninitialized-this java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.net.URL java.lang.ClassLoader
      StackMap stack: uninitialized-this java.lang.String
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
      StackMap locals: uninitialized-this java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.net.URL java.lang.ClassLoader
      StackMap stack: uninitialized-this java.lang.String java.lang.Module
         3: invokespecial java.lang.NamedPackage.<init>:(Ljava/lang/String;Ljava/lang/Module;)V
         4: .line 521
            aload 0 /* this */
            aload 2 /* spectitle */
            aload 3 /* specversion */
         5: .line 522
            aload 4 /* specvendor */
            aload 5 /* impltitle */
         6: .line 523
            aload 6 /* implversion */
            aload 7 /* implvendor */
         7: .line 524
            aload 8 /* sealbase */
         8: .line 521
            invokestatic java.lang.Package$VersionInfo.getInstance:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package$VersionInfo;
            putfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
         9: .line 525
            return
        end local 9 // java.lang.ClassLoader loader
        end local 8 // java.net.URL sealbase
        end local 7 // java.lang.String implvendor
        end local 6 // java.lang.String implversion
        end local 5 // java.lang.String impltitle
        end local 4 // java.lang.String specvendor
        end local 3 // java.lang.String specversion
        end local 2 // java.lang.String spectitle
        end local 1 // java.lang.String name
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Ljava/lang/Package;
            0   10     1         name  Ljava/lang/String;
            0   10     2    spectitle  Ljava/lang/String;
            0   10     3  specversion  Ljava/lang/String;
            0   10     4   specvendor  Ljava/lang/String;
            0   10     5    impltitle  Ljava/lang/String;
            0   10     6  implversion  Ljava/lang/String;
            0   10     7   implvendor  Ljava/lang/String;
            0   10     8     sealbase  Ljava/net/URL;
            0   10     9       loader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      name         
      spectitle    
      specversion  
      specvendor   
      impltitle    
      implversion  
      implvendor   
      sealbase     
      loader       

  void <init>(java.lang.String, java.lang.Module);
    descriptor: (Ljava/lang/String;Ljava/lang/Module;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Package this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Module module
         0: .line 528
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* module */
            invokespecial java.lang.NamedPackage.<init>:(Ljava/lang/String;Ljava/lang/Module;)V
         1: .line 529
            aload 0 /* this */
            getstatic java.lang.Package$VersionInfo.NULL_VERSION_INFO:Ljava/lang/Package$VersionInfo;
            putfield java.lang.Package.versionInfo:Ljava/lang/Package$VersionInfo;
         2: .line 530
            return
        end local 2 // java.lang.Module module
        end local 1 // java.lang.String name
        end local 0 // java.lang.Package this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljava/lang/Package;
            0    3     1    name  Ljava/lang/String;
            0    3     2  module  Ljava/lang/Module;
    MethodParameters:
        Name  Flags
      name    
      module  

  private static java.lang.Package[] lambda$0(int);
    descriptor: (I)[Ljava/lang/Package;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray java.lang.Package
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Package.java"
NestMembers:
  java.lang.Package$1PackageInfoProxy  java.lang.Package$VersionInfo
InnerClasses:
  PackageInfoProxy = java.lang.Package$1PackageInfoProxy
  VersionInfo = java.lang.Package$VersionInfo of java.lang.Package
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles