public class java.lang.module.ModuleDescriptor implements java.lang.Comparable<java.lang.module.ModuleDescriptor>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.module.ModuleDescriptor
  super_class: java.lang.Object
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.module.ModuleDescriptor$Version version;
    descriptor: Ljava/lang/module/ModuleDescriptor$Version;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.Set<java.lang.module.ModuleDescriptor$Modifier> modifiers;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;

  private final boolean open;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean automatic;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<java.lang.module.ModuleDescriptor$Requires> requires;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;

  private final java.util.Set<java.lang.module.ModuleDescriptor$Exports> exports;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;

  private final java.util.Set<java.lang.module.ModuleDescriptor$Opens> opens;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;

  private final java.util.Set<java.lang.String> uses;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private final java.util.Set<java.lang.module.ModuleDescriptor$Provides> provides;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;

  private final java.util.Set<java.lang.String> packages;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

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

  private transient int hash;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  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=2, locals=0, args_size=0
         0: .line 94
            ldc Ljava/lang/module/ModuleDescriptor;
            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 java.lang.module.ModuleDescriptor.$assertionsDisabled:Z
         3: .line 2607
            new java.lang.module.ModuleDescriptor$1
            dup
            invokespecial java.lang.module.ModuleDescriptor$1.<init>:()V
            invokestatic jdk.internal.misc.SharedSecrets.setJavaLangModuleAccess:(Ljdk/internal/misc/JavaLangModuleAccess;)V
         4: .line 2702
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, java.lang.module.ModuleDescriptor$Version, java.lang.String, java.util.Set<java.lang.module.ModuleDescriptor$Modifier>, java.util.Set<java.lang.module.ModuleDescriptor$Requires>, java.util.Set<java.lang.module.ModuleDescriptor$Exports>, java.util.Set<java.lang.module.ModuleDescriptor$Opens>, java.util.Set<java.lang.String>, java.util.Set<java.lang.module.ModuleDescriptor$Provides>, java.util.Set<java.lang.String>, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Version;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=12
        start local 0 // java.lang.module.ModuleDescriptor this
        start local 1 // java.lang.String name
        start local 2 // java.lang.module.ModuleDescriptor$Version version
        start local 3 // java.lang.String rawVersionString
        start local 4 // java.util.Set modifiers
        start local 5 // java.util.Set requires
        start local 6 // java.util.Set exports
        start local 7 // java.util.Set opens
        start local 8 // java.util.Set uses
        start local 9 // java.util.Set provides
        start local 10 // java.util.Set packages
        start local 11 // java.lang.String mainClass
         0: .line 1236
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1248
            getstatic java.lang.module.ModuleDescriptor.$assertionsDisabled:Z
            ifne 2
            aload 2 /* version */
            ifnull 2
            aload 3 /* rawVersionString */
            ifnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1249
      StackMap locals: java.lang.module.ModuleDescriptor java.lang.String java.lang.module.ModuleDescriptor$Version java.lang.String java.util.Set java.util.Set java.util.Set java.util.Set java.util.Set java.util.Set java.util.Set java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            putfield java.lang.module.ModuleDescriptor.name:Ljava/lang/String;
         3: .line 1250
            aload 0 /* this */
            aload 2 /* version */
            putfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
         4: .line 1251
            aload 0 /* this */
            aload 3 /* rawVersionString */
            putfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
         5: .line 1252
            aload 0 /* this */
            aload 4 /* modifiers */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.modifiers:Ljava/util/Set;
         6: .line 1253
            aload 0 /* this */
            aload 4 /* modifiers */
            getstatic java.lang.module.ModuleDescriptor$Modifier.OPEN:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield java.lang.module.ModuleDescriptor.open:Z
         7: .line 1254
            aload 0 /* this */
            aload 4 /* modifiers */
            getstatic java.lang.module.ModuleDescriptor$Modifier.AUTOMATIC:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield java.lang.module.ModuleDescriptor.automatic:Z
         8: .line 1255
            getstatic java.lang.module.ModuleDescriptor.$assertionsDisabled:Z
            ifne 11
            aload 5 /* requires */
            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$Requires.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
         9: .line 1256
            aload 5 /* requires */
            invokeinterface java.util.Set.size:()I
            i2l
        10: .line 1255
            lcmp
            ifeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* requires */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
        12: .line 1258
            aload 0 /* this */
            aload 6 /* exports */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
        13: .line 1259
            aload 0 /* this */
            aload 7 /* opens */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
        14: .line 1260
            aload 0 /* this */
            aload 8 /* uses */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
        15: .line 1261
            aload 0 /* this */
            aload 9 /* provides */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
        16: .line 1263
            aload 0 /* this */
            aload 10 /* packages */
            invokestatic java.util.Set.copyOf:(Ljava/util/Collection;)Ljava/util/Set;
            putfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
        17: .line 1264
            aload 0 /* this */
            aload 11 /* mainClass */
            putfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
        18: .line 1265
            return
        end local 11 // java.lang.String mainClass
        end local 10 // java.util.Set packages
        end local 9 // java.util.Set provides
        end local 8 // java.util.Set uses
        end local 7 // java.util.Set opens
        end local 6 // java.util.Set exports
        end local 5 // java.util.Set requires
        end local 4 // java.util.Set modifiers
        end local 3 // java.lang.String rawVersionString
        end local 2 // java.lang.module.ModuleDescriptor$Version version
        end local 1 // java.lang.String name
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Ljava/lang/module/ModuleDescriptor;
            0   19     1              name  Ljava/lang/String;
            0   19     2           version  Ljava/lang/module/ModuleDescriptor$Version;
            0   19     3  rawVersionString  Ljava/lang/String;
            0   19     4         modifiers  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;
            0   19     5          requires  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;
            0   19     6           exports  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;
            0   19     7             opens  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;
            0   19     8              uses  Ljava/util/Set<Ljava/lang/String;>;
            0   19     9          provides  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;
            0   19    10          packages  Ljava/util/Set<Ljava/lang/String;>;
            0   19    11         mainClass  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Version;Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)V
    MethodParameters:
                  Name  Flags
      name              
      version           
      rawVersionString  
      modifiers         
      requires          
      exports           
      opens             
      uses              
      provides          
      packages          
      mainClass         

  void <init>(java.lang.String, java.lang.module.ModuleDescriptor$Version, java.util.Set<java.lang.module.ModuleDescriptor$Modifier>, java.util.Set<java.lang.module.ModuleDescriptor$Requires>, java.util.Set<java.lang.module.ModuleDescriptor$Exports>, java.util.Set<java.lang.module.ModuleDescriptor$Opens>, java.util.Set<java.lang.String>, java.util.Set<java.lang.module.ModuleDescriptor$Provides>, java.util.Set<java.lang.String>, java.lang.String, int, );
    descriptor: (Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Version;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;IZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=13, args_size=13
        start local 0 // java.lang.module.ModuleDescriptor this
        start local 1 // java.lang.String name
        start local 2 // java.lang.module.ModuleDescriptor$Version version
        start local 3 // java.util.Set modifiers
        start local 4 // java.util.Set requires
        start local 5 // java.util.Set exports
        start local 6 // java.util.Set opens
        start local 7 // java.util.Set uses
        start local 8 // java.util.Set provides
        start local 9 // java.util.Set packages
        start local 10 // java.lang.String mainClass
        start local 11 // int hashCode
        start local 12 // boolean unused
         0: .line 1271
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1283
            aload 0 /* this */
            aload 1 /* name */
            putfield java.lang.module.ModuleDescriptor.name:Ljava/lang/String;
         2: .line 1284
            aload 0 /* this */
            aload 2 /* version */
            putfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
         3: .line 1285
            aload 0 /* this */
            aconst_null
            putfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
         4: .line 1286
            aload 0 /* this */
            aload 3 /* modifiers */
            putfield java.lang.module.ModuleDescriptor.modifiers:Ljava/util/Set;
         5: .line 1287
            aload 0 /* this */
            aload 3 /* modifiers */
            getstatic java.lang.module.ModuleDescriptor$Modifier.OPEN:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield java.lang.module.ModuleDescriptor.open:Z
         6: .line 1288
            aload 0 /* this */
            aload 3 /* modifiers */
            getstatic java.lang.module.ModuleDescriptor$Modifier.AUTOMATIC:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putfield java.lang.module.ModuleDescriptor.automatic:Z
         7: .line 1289
            aload 0 /* this */
            aload 4 /* requires */
            putfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
         8: .line 1290
            aload 0 /* this */
            aload 5 /* exports */
            putfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
         9: .line 1291
            aload 0 /* this */
            aload 6 /* opens */
            putfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
        10: .line 1292
            aload 0 /* this */
            aload 7 /* uses */
            putfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
        11: .line 1293
            aload 0 /* this */
            aload 8 /* provides */
            putfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
        12: .line 1294
            aload 0 /* this */
            aload 9 /* packages */
            putfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
        13: .line 1295
            aload 0 /* this */
            aload 10 /* mainClass */
            putfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
        14: .line 1296
            aload 0 /* this */
            iload 11 /* hashCode */
            putfield java.lang.module.ModuleDescriptor.hash:I
        15: .line 1297
            return
        end local 12 // boolean unused
        end local 11 // int hashCode
        end local 10 // java.lang.String mainClass
        end local 9 // java.util.Set packages
        end local 8 // java.util.Set provides
        end local 7 // java.util.Set uses
        end local 6 // java.util.Set opens
        end local 5 // java.util.Set exports
        end local 4 // java.util.Set requires
        end local 3 // java.util.Set modifiers
        end local 2 // java.lang.module.ModuleDescriptor$Version version
        end local 1 // java.lang.String name
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Ljava/lang/module/ModuleDescriptor;
            0   16     1       name  Ljava/lang/String;
            0   16     2    version  Ljava/lang/module/ModuleDescriptor$Version;
            0   16     3  modifiers  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;
            0   16     4   requires  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;
            0   16     5    exports  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;
            0   16     6      opens  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;
            0   16     7       uses  Ljava/util/Set<Ljava/lang/String;>;
            0   16     8   provides  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;
            0   16     9   packages  Ljava/util/Set<Ljava/lang/String;>;
            0   16    10  mainClass  Ljava/lang/String;
            0   16    11   hashCode  I
            0   16    12     unused  Z
    Signature: (Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Version;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;IZ)V
    MethodParameters:
           Name  Flags
      name       
      version    
      modifiers  
      requires   
      exports    
      opens      
      uses       
      provides   
      packages   
      mainClass  
      hashCode   
      unused     

  public java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1305
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.name:Ljava/lang/String;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;

  public java.util.Set<java.lang.module.ModuleDescriptor$Modifier> modifiers();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1314
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.modifiers:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1326
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.open:Z
            ireturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;

  public boolean isAutomatic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1338
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.automatic:Z
            ireturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;

  public java.util.Set<java.lang.module.ModuleDescriptor$Requires> requires();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1353
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;

  public java.util.Set<java.lang.module.ModuleDescriptor$Exports> exports();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1366
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;

  public java.util.Set<java.lang.module.ModuleDescriptor$Opens> opens();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1379
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;

  public java.util.Set<java.lang.String> uses();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1392
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.util.Set<java.lang.module.ModuleDescriptor$Provides> provides();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1403
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;

  public java.util.Optional<java.lang.module.ModuleDescriptor$Version> version();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1414
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Optional<Ljava/lang/module/ModuleDescriptor$Version;>;

  public java.util.Optional<java.lang.String> rawVersion();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1427
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            ifnull 2
         1: .line 1428
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            invokevirtual java.lang.module.ModuleDescriptor$Version.toString:()Ljava/lang/String;
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
         2: .line 1430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Optional<Ljava/lang/String;>;

  public java.lang.String toNameAndVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1442
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            ifnull 2
         1: .line 1443
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.module.ModuleDescriptor.name:()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 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 1445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/module/ModuleDescriptor;

  public java.util.Optional<java.lang.String> mainClass();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1455
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Optional<Ljava/lang/String;>;

  public java.util.Set<java.lang.String> packages();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 1468
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
            areturn
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/ModuleDescriptor;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public int compareTo(java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/lang/module/ModuleDescriptor;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.module.ModuleDescriptor this
        start local 1 // java.lang.module.ModuleDescriptor that
         0: .line 2196
            aload 0 /* this */
            aload 1 /* that */
            if_acmpne 1
            iconst_0
            ireturn
         1: .line 2198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 1 /* that */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 2 /* c */
        start local 2 // int c
         2: .line 2199
            iload 2 /* c */
            ifeq 3
            iload 2 /* c */
            ireturn
         3: .line 2201
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 2 /* c */
         4: .line 2202
            iload 2 /* c */
            ifeq 5
            iload 2 /* c */
            ireturn
         5: .line 2204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 2 /* c */
         6: .line 2205
            iload 2 /* c */
            ifeq 7
            iload 2 /* c */
            ireturn
         7: .line 2207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.module.ModuleDescriptor.modifiers:()Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.modsValue:(Ljava/util/Set;)J
            lstore 3 /* v1 */
        start local 3 // long v1
         8: .line 2208
            aload 1 /* that */
            invokevirtual java.lang.module.ModuleDescriptor.modifiers:()Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.modsValue:(Ljava/util/Set;)J
            lstore 5 /* v2 */
        start local 5 // long v2
         9: .line 2209
            lload 3 /* v1 */
            lload 5 /* v2 */
            invokestatic java.lang.Long.compare:(JJ)I
            istore 2 /* c */
        10: .line 2210
            iload 2 /* c */
            ifeq 11
            iload 2 /* c */
            ireturn
        11: .line 2212
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/util/Set;Ljava/util/Set;)I
            istore 2 /* c */
        12: .line 2213
            iload 2 /* c */
            ifeq 13
            iload 2 /* c */
            ireturn
        13: .line 2215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/util/Set;Ljava/util/Set;)I
            istore 2 /* c */
        14: .line 2216
            iload 2 /* c */
            ifeq 15
            iload 2 /* c */
            ireturn
        15: .line 2218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/util/Set;Ljava/util/Set;)I
            istore 2 /* c */
        16: .line 2219
            iload 2 /* c */
            ifeq 17
            iload 2 /* c */
            ireturn
        17: .line 2221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/util/Set;Ljava/util/Set;)I
            istore 2 /* c */
        18: .line 2222
            iload 2 /* c */
            ifeq 19
            iload 2 /* c */
            ireturn
        19: .line 2224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/util/Set;Ljava/util/Set;)I
            istore 2 /* c */
        20: .line 2225
            iload 2 /* c */
            ifeq 21
            iload 2 /* c */
            ireturn
        21: .line 2227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/util/Set;Ljava/util/Set;)I
            istore 2 /* c */
        22: .line 2228
            iload 2 /* c */
            ifeq 23
            iload 2 /* c */
            ireturn
        23: .line 2230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
            aload 1 /* that */
            getfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
            invokestatic java.lang.module.ModuleDescriptor.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 2 /* c */
        24: .line 2231
            iload 2 /* c */
            ifeq 25
            iload 2 /* c */
            ireturn
        25: .line 2233
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // long v2
        end local 3 // long v1
        end local 2 // int c
        end local 1 // java.lang.module.ModuleDescriptor that
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Ljava/lang/module/ModuleDescriptor;
            0   26     1  that  Ljava/lang/module/ModuleDescriptor;
            2   26     2     c  I
            8   26     3    v1  J
            9   26     5    v2  J
    MethodParameters:
      Name  Flags
      that  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.module.ModuleDescriptor this
        start local 1 // java.lang.Object ob
         0: .line 2254
            aload 1 /* ob */
            aload 0 /* this */
            if_acmpne 2
         1: .line 2255
            iconst_1
            ireturn
         2: .line 2256
      StackMap locals:
      StackMap stack:
            aload 1 /* ob */
            instanceof java.lang.module.ModuleDescriptor
            ifne 4
         3: .line 2257
            iconst_0
            ireturn
         4: .line 2258
      StackMap locals:
      StackMap stack:
            aload 1 /* ob */
            checkcast java.lang.module.ModuleDescriptor
            astore 2 /* that */
        start local 2 // java.lang.module.ModuleDescriptor that
         5: .line 2259
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.name:Ljava/lang/String;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
         6: .line 2260
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.modifiers:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.modifiers:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 17
         7: .line 2261
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 17
         8: .line 2262
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 17
         9: .line 2263
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 17
        10: .line 2264
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 17
        11: .line 2265
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 17
        12: .line 2266
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 17
        13: .line 2267
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 17
        14: .line 2268
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 17
        15: .line 2269
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
            aload 2 /* that */
            getfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 17
        16: .line 2259
            iconst_1
            ireturn
      StackMap locals: java.lang.module.ModuleDescriptor
      StackMap stack:
        17: iconst_0
            ireturn
        end local 2 // java.lang.module.ModuleDescriptor that
        end local 1 // java.lang.Object ob
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/lang/module/ModuleDescriptor;
            0   18     1    ob  Ljava/lang/Object;
            5   18     2  that  Ljava/lang/module/ModuleDescriptor;
    MethodParameters:
      Name  Flags
      ob    

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 2283
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.hash:I
            istore 1 /* hc */
        start local 1 // int hc
         1: .line 2284
            iload 1 /* hc */
            ifne 16
         2: .line 2285
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.name:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            istore 1 /* hc */
         3: .line 2286
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.modifiers:Ljava/util/Set;
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hc */
         4: .line 2287
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            invokeinterface java.util.Set.hashCode:()I
            iadd
            istore 1 /* hc */
         5: .line 2288
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.packages:Ljava/util/Set;
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hc */
         6: .line 2289
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            invokeinterface java.util.Set.hashCode:()I
            iadd
            istore 1 /* hc */
         7: .line 2290
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            invokeinterface java.util.Set.hashCode:()I
            iadd
            istore 1 /* hc */
         8: .line 2291
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            invokeinterface java.util.Set.hashCode:()I
            iadd
            istore 1 /* hc */
         9: .line 2292
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            invokeinterface java.util.Set.hashCode:()I
            iadd
            istore 1 /* hc */
        10: .line 2293
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.version:Ljava/lang/module/ModuleDescriptor$Version;
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hc */
        11: .line 2294
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.rawVersionString:Ljava/lang/String;
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hc */
        12: .line 2295
            iload 1 /* hc */
            bipush 43
            imul
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.mainClass:Ljava/lang/String;
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hc */
        13: .line 2296
            iload 1 /* hc */
            ifne 15
        14: .line 2297
            iconst_m1
            istore 1 /* hc */
        15: .line 2298
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* hc */
            putfield java.lang.module.ModuleDescriptor.hash:I
        16: .line 2300
      StackMap locals:
      StackMap stack:
            iload 1 /* hc */
            ireturn
        end local 1 // int hc
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Ljava/lang/module/ModuleDescriptor;
            1   17     1    hc  I

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor this
         0: .line 2311
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 2313
            aload 0 /* this */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 3
         2: .line 2314
            aload 1 /* sb */
            ldc "open "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 2315
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            ldc "module { name: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.module.ModuleDescriptor.toNameAndVersion:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 2316
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 6
         5: .line 2317
            aload 1 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.requires:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         6: .line 2318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 8
         7: .line 2319
            aload 1 /* sb */
            ldc ", uses: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.uses:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         8: .line 2320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 10
         9: .line 2321
            aload 1 /* sb */
            ldc ", exports: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.exports:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        10: .line 2322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 12
        11: .line 2323
            aload 1 /* sb */
            ldc ", opens: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.opens:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        12: .line 2324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 14
        13: .line 2325
            aload 1 /* sb */
            ldc ", provides: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.module.ModuleDescriptor.provides:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        14: .line 2327
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc " }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 2328
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.module.ModuleDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljava/lang/module/ModuleDescriptor;
            1   16     1    sb  Ljava/lang/StringBuilder;

  public static java.lang.module.ModuleDescriptor$Builder newModule(java.lang.String, java.util.Set<java.lang.module.ModuleDescriptor$Modifier>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.util.Set ms
         0: .line 2348
            new java.util.HashSet
            dup
            aload 1 /* ms */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 2 /* mods */
        start local 2 // java.util.Set mods
         1: .line 2349
            aload 2 /* mods */
            getstatic java.lang.module.ModuleDescriptor$Modifier.AUTOMATIC:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 3
            aload 2 /* mods */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmple 3
         2: .line 2350
            new java.lang.IllegalArgumentException
            dup
            ldc "AUTOMATIC cannot be used with other modifiers"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 2353
      StackMap locals: java.util.Set
      StackMap stack:
            new java.lang.module.ModuleDescriptor$Builder
            dup
            aload 0 /* name */
            iconst_1
            aload 2 /* mods */
            invokespecial java.lang.module.ModuleDescriptor$Builder.<init>:(Ljava/lang/String;ZLjava/util/Set;)V
            areturn
        end local 2 // java.util.Set mods
        end local 1 // java.util.Set ms
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  name  Ljava/lang/String;
            0    4     1    ms  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;
            1    4     2  mods  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;)Ljava/lang/module/ModuleDescriptor$Builder;
    MethodParameters:
      Name  Flags
      name  
      ms    

  public static java.lang.module.ModuleDescriptor$Builder newModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 2371
            new java.lang.module.ModuleDescriptor$Builder
            dup
            aload 0 /* name */
            iconst_1
            invokestatic java.util.Set.of:()Ljava/util/Set;
            invokespecial java.lang.module.ModuleDescriptor$Builder.<init>:(Ljava/lang/String;ZLjava/util/Set;)V
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.module.ModuleDescriptor$Builder newOpenModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 2392
            new java.lang.module.ModuleDescriptor$Builder
            dup
            aload 0 /* name */
            iconst_1
            getstatic java.lang.module.ModuleDescriptor$Modifier.OPEN:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokespecial java.lang.module.ModuleDescriptor$Builder.<init>:(Ljava/lang/String;ZLjava/util/Set;)V
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.module.ModuleDescriptor$Builder newAutomaticModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 2417
            new java.lang.module.ModuleDescriptor$Builder
            dup
            aload 0 /* name */
            iconst_1
            getstatic java.lang.module.ModuleDescriptor$Modifier.AUTOMATIC:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokespecial java.lang.module.ModuleDescriptor$Builder.<init>:(Ljava/lang/String;ZLjava/util/Set;)V
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.module.ModuleDescriptor read(java.io.InputStream, java.util.function.Supplier<java.util.Set<java.lang.String>>);
    descriptor: (Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljava/lang/module/ModuleDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // java.util.function.Supplier packageFinder
         0: .line 2465
            aload 0 /* in */
            aload 1 /* packageFinder */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.function.Supplier
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 1 // java.util.function.Supplier packageFinder
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0             in  Ljava/io/InputStream;
            0    1     1  packageFinder  Ljava/util/function/Supplier<Ljava/util/Set<Ljava/lang/String;>;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/InputStream;Ljava/util/function/Supplier<Ljava/util/Set<Ljava/lang/String;>;>;)Ljava/lang/module/ModuleDescriptor;
    MethodParameters:
               Name  Flags
      in             
      packageFinder  

  public static java.lang.module.ModuleDescriptor read(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/lang/module/ModuleDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.InputStream in
         0: .line 2487
            aload 0 /* in */
            aconst_null
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    in  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static java.lang.module.ModuleDescriptor read(java.nio.ByteBuffer, java.util.function.Supplier<java.util.Set<java.lang.String>>);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/util/function/Supplier;)Ljava/lang/module/ModuleDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.nio.ByteBuffer bb
        start local 1 // java.util.function.Supplier packageFinder
         0: .line 2534
            aload 0 /* bb */
            aload 1 /* packageFinder */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.function.Supplier
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/nio/ByteBuffer;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 1 // java.util.function.Supplier packageFinder
        end local 0 // java.nio.ByteBuffer bb
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0             bb  Ljava/nio/ByteBuffer;
            0    1     1  packageFinder  Ljava/util/function/Supplier<Ljava/util/Set<Ljava/lang/String;>;>;
    Signature: (Ljava/nio/ByteBuffer;Ljava/util/function/Supplier<Ljava/util/Set<Ljava/lang/String;>;>;)Ljava/lang/module/ModuleDescriptor;
    MethodParameters:
               Name  Flags
      bb             
      packageFinder  

  public static java.lang.module.ModuleDescriptor read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer bb
         0: .line 2553
            aload 0 /* bb */
            aconst_null
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/nio/ByteBuffer;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 0 // java.nio.ByteBuffer bb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    bb  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      bb    

  private static java.lang.String packageName(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 cn
         0: .line 2557
            aload 0 /* cn */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 2558
            iload 1 /* index */
            iconst_m1
            if_icmpne 2
            ldc ""
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* cn */
            iconst_0
            iload 1 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // int index
        end local 0 // java.lang.String cn
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0     cn  Ljava/lang/String;
            1    4     1  index  I
    MethodParameters:
      Name  Flags
      cn    

  private static <M> java.lang.String toString(java.util.Set<M>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Set mods
        start local 1 // java.lang.String what
         0: .line 2565
            aload 0 /* mods */
            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.lambda$1(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;
         1: .line 2567
            aload 1 /* what */
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 2565
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
         3: .line 2568
            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
         4: .line 2565
            areturn
        end local 1 // java.lang.String what
        end local 0 // java.util.Set mods
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  mods  Ljava/util/Set<TM;>;
            0    5     1  what  Ljava/lang/String;
    Signature: <M:Ljava/lang/Object;>(Ljava/util/Set<TM;>;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mods  
      what  

  private static <T extends java.lang.Comparable<? super T>> int compare(T, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object obj1
        start local 1 // java.lang.Object obj2
         0: .line 2573
            aload 0 /* obj1 */
            ifnull 4
         1: .line 2574
            aload 1 /* obj2 */
            ifnull 2
            aload 0 /* obj1 */
            checkcast java.lang.Comparable
            checkcast java.lang.Comparable
            aload 1 /* obj2 */
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 2576
      StackMap locals:
      StackMap stack:
            aload 1 /* obj2 */
            ifnonnull 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_m1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // java.lang.Object obj2
        end local 0 // java.lang.Object obj1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  obj1  TT;
            0    7     1  obj2  TT;
    Signature: <T:Ljava/lang/Object;:Ljava/lang/Comparable<-TT;>;>(TT;TT;)I
    MethodParameters:
      Name  Flags
      obj1  
      obj2  

  private static <T extends java.lang.Comparable<? super T>> int compare(java.util.Set<T>, java.util.Set<T>);
    descriptor: (Ljava/util/Set;Ljava/util/Set;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Set s1
        start local 1 // java.util.Set s2
         0: .line 2586
            aload 0 /* s1 */
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            astore 2 /* a1 */
        start local 2 // java.lang.Object[] a1
         1: .line 2587
            aload 1 /* s2 */
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            astore 3 /* a2 */
        start local 3 // java.lang.Object[] a2
         2: .line 2588
            aload 2 /* a1 */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
         3: .line 2589
            aload 3 /* a2 */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
         4: .line 2590
            aload 2 /* a1 */
            aload 3 /* a2 */
            invokestatic java.util.Arrays.compare:([Ljava/lang/Comparable;[Ljava/lang/Comparable;)I
            ireturn
        end local 3 // java.lang.Object[] a2
        end local 2 // java.lang.Object[] a1
        end local 1 // java.util.Set s2
        end local 0 // java.util.Set s1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    s1  Ljava/util/Set<TT;>;
            0    5     1    s2  Ljava/util/Set<TT;>;
            1    5     2    a1  [Ljava/lang/Object;
            2    5     3    a2  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;:Ljava/lang/Comparable<-TT;>;>(Ljava/util/Set<TT;>;Ljava/util/Set<TT;>;)I
    MethodParameters:
      Name  Flags
      s1    
      s2    

  private static <E extends java.lang.Enum<E>> long modsValue(java.util.Set<E>);
    descriptor: (Ljava/util/Set;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.Set set
         0: .line 2594
            lconst_0
            lstore 1 /* value */
        start local 1 // long value
         1: .line 2595
            aload 0 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.util.Set long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Enum
            astore 3 /* e */
        start local 3 // java.lang.Enum e
         3: .line 2596
            lload 1 /* value */
            iconst_1
            aload 3 /* e */
            invokevirtual java.lang.Enum.ordinal:()I
            ishl
            i2l
            ladd
            lstore 1 /* value */
        end local 3 // java.lang.Enum e
         4: .line 2595
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2598
            lload 1 /* value */
            lreturn
        end local 1 // long value
        end local 0 // java.util.Set set
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0    set  Ljava/util/Set<TE;>;
            1    6     1  value  J
            3    4     3      e  Ljava/lang/Enum<TE;>;
    Signature: <E:Ljava/lang/Enum<TE;>;>(Ljava/util/Set<TE;>;)J
    MethodParameters:
      Name  Flags
      set   

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.module.ModuleDescriptor
            invokevirtual java.lang.module.ModuleDescriptor.compareTo:(Ljava/lang/module/ModuleDescriptor;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String lambda$1(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 2565
            aload 0 /* e */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
         1: .line 2566
            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    2     0     e  TM;
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor;>;
SourceFile: "ModuleDescriptor.java"
NestMembers:
  java.lang.module.ModuleDescriptor$1  java.lang.module.ModuleDescriptor$Builder  java.lang.module.ModuleDescriptor$Exports  java.lang.module.ModuleDescriptor$Exports$Modifier  java.lang.module.ModuleDescriptor$Modifier  java.lang.module.ModuleDescriptor$Opens  java.lang.module.ModuleDescriptor$Opens$Modifier  java.lang.module.ModuleDescriptor$Provides  java.lang.module.ModuleDescriptor$Requires  java.lang.module.ModuleDescriptor$Requires$Modifier  java.lang.module.ModuleDescriptor$Version
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  java.lang.module.ModuleDescriptor$1
  public final Builder = java.lang.module.ModuleDescriptor$Builder of java.lang.module.ModuleDescriptor
  public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Modifier of java.lang.module.ModuleDescriptor
  public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
  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 Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo