final class java.lang.module.Resolver
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.lang.module.Resolver
  super_class: java.lang.Object
{
  private final java.lang.module.ModuleFinder beforeFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.module.Configuration> parents;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/module/Configuration;>;

  private final java.lang.module.ModuleFinder afterFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.PrintStream traceOutput;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, java.lang.module.ModuleReference> nameToReference;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;

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

  private java.lang.String targetPlatform;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<java.lang.module.ModuleDescriptor> visited;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;

  private java.util.Set<java.lang.module.ModuleDescriptor> visitPath;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;

  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=1, locals=0, args_size=0
         0: .line 58
            ldc Ljava/lang/module/Resolver;
            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.Resolver.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  java.lang.String targetPlatform();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 74
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            areturn
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/Resolver;

  void <init>(java.lang.module.ModuleFinder, java.util.List<java.lang.module.Configuration>, java.lang.module.ModuleFinder, java.io.PrintStream);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/List;Ljava/lang/module/ModuleFinder;Ljava/io/PrintStream;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.ModuleFinder beforeFinder
        start local 2 // java.util.List parents
        start local 3 // java.lang.module.ModuleFinder afterFinder
        start local 4 // java.io.PrintStream traceOutput
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
         2: .line 84
            aload 0 /* this */
            aload 1 /* beforeFinder */
            putfield java.lang.module.Resolver.beforeFinder:Ljava/lang/module/ModuleFinder;
         3: .line 85
            aload 0 /* this */
            aload 2 /* parents */
            putfield java.lang.module.Resolver.parents:Ljava/util/List;
         4: .line 86
            aload 0 /* this */
            aload 3 /* afterFinder */
            putfield java.lang.module.Resolver.afterFinder:Ljava/lang/module/ModuleFinder;
         5: .line 87
            aload 0 /* this */
            aload 4 /* traceOutput */
            putfield java.lang.module.Resolver.traceOutput:Ljava/io/PrintStream;
         6: .line 90
            aload 2 /* parents */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleFinder java.util.List java.lang.module.ModuleFinder java.io.PrintStream top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.Configuration
            astore 5 /* parent */
        start local 5 // java.lang.module.Configuration parent
         8: .line 91
            aload 5 /* parent */
            invokevirtual java.lang.module.Configuration.targetPlatform:()Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
         9: .line 92
            aload 7 /* value */
            ifnull 18
        10: .line 93
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            ifnonnull 13
        11: .line 94
            aload 0 /* this */
            aload 7 /* value */
            putfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
        12: .line 95
            goto 18
        13: .line 96
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleFinder java.util.List java.lang.module.ModuleFinder java.io.PrintStream java.lang.module.Configuration java.util.Iterator java.lang.String
      StackMap stack:
            aload 7 /* value */
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
        14: .line 97
            new java.lang.StringBuilder
            dup
            ldc "Parents have conflicting constraints on target  platform: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 98
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 97
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        17: .line 99
            new java.lang.IllegalArgumentException
            dup
            aload 8 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String msg
        end local 7 // java.lang.String value
        end local 5 // java.lang.module.Configuration parent
        18: .line 90
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleFinder java.util.List java.lang.module.ModuleFinder java.io.PrintStream top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        19: .line 104
            return
        end local 4 // java.io.PrintStream traceOutput
        end local 3 // java.lang.module.ModuleFinder afterFinder
        end local 2 // java.util.List parents
        end local 1 // java.lang.module.ModuleFinder beforeFinder
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Ljava/lang/module/Resolver;
            0   20     1  beforeFinder  Ljava/lang/module/ModuleFinder;
            0   20     2       parents  Ljava/util/List<Ljava/lang/module/Configuration;>;
            0   20     3   afterFinder  Ljava/lang/module/ModuleFinder;
            0   20     4   traceOutput  Ljava/io/PrintStream;
            8   18     5        parent  Ljava/lang/module/Configuration;
            9   18     7         value  Ljava/lang/String;
           17   18     8           msg  Ljava/lang/String;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/List<Ljava/lang/module/Configuration;>;Ljava/lang/module/ModuleFinder;Ljava/io/PrintStream;)V
    MethodParameters:
              Name  Flags
      beforeFinder  
      parents       
      afterFinder   
      traceOutput   

  java.lang.module.Resolver resolve(java.util.Collection<java.lang.String>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/module/Resolver;
    flags: (0x0000) 
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.util.Collection roots
         0: .line 114
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 2 /* q */
        start local 2 // java.util.Deque q
         1: .line 115
            aload 1 /* roots */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: java.lang.module.Resolver java.util.Collection java.util.Deque top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* root */
        start local 3 // java.lang.String root
         3: .line 118
            aload 0 /* this */
            aload 3 /* root */
            invokevirtual java.lang.module.Resolver.findWithBeforeFinder:(Ljava/lang/String;)Ljava/lang/module/ModuleReference;
            astore 5 /* mref */
        start local 5 // java.lang.module.ModuleReference mref
         4: .line 119
            aload 5 /* mref */
            ifnonnull 10
         5: .line 121
            aload 0 /* this */
            aload 3 /* root */
            invokevirtual java.lang.module.Resolver.findInParent:(Ljava/lang/String;)Ljava/lang/module/ResolvedModule;
            ifnull 7
         6: .line 123
            goto 14
         7: .line 126
      StackMap locals: java.lang.module.Resolver java.util.Collection java.util.Deque java.lang.String java.util.Iterator java.lang.module.ModuleReference
      StackMap stack:
            aload 0 /* this */
            aload 3 /* root */
            invokevirtual java.lang.module.Resolver.findWithAfterFinder:(Ljava/lang/String;)Ljava/lang/module/ModuleReference;
            astore 5 /* mref */
         8: .line 127
            aload 5 /* mref */
            ifnonnull 10
         9: .line 128
            ldc "Module %s not found"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* root */
            aastore
            invokestatic java.lang.module.Resolver.findFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.isTracing:()Z
            ifeq 12
        11: .line 133
            aload 0 /* this */
            ldc "root %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aload 5 /* mref */
            invokevirtual java.lang.module.Resolver.nameAndInfo:(Ljava/lang/module/ModuleReference;)Ljava/lang/String;
            aastore
            invokevirtual java.lang.module.Resolver.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* mref */
            invokevirtual java.lang.module.Resolver.addFoundModule:(Ljava/lang/module/ModuleReference;)V
        13: .line 137
            aload 2 /* q */
            aload 5 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        end local 5 // java.lang.module.ModuleReference mref
        end local 3 // java.lang.String root
        14: .line 115
      StackMap locals: java.lang.module.Resolver java.util.Collection java.util.Deque top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        15: .line 140
            aload 0 /* this */
            aload 2 /* q */
            invokevirtual java.lang.module.Resolver.resolve:(Ljava/util/Deque;)Ljava/util/Set;
            pop
        16: .line 142
            aload 0 /* this */
            areturn
        end local 2 // java.util.Deque q
        end local 1 // java.util.Collection roots
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Ljava/lang/module/Resolver;
            0   17     1  roots  Ljava/util/Collection<Ljava/lang/String;>;
            1   17     2      q  Ljava/util/Deque<Ljava/lang/module/ModuleDescriptor;>;
            3   14     3   root  Ljava/lang/String;
            4   14     5   mref  Ljava/lang/module/ModuleReference;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;)Ljava/lang/module/Resolver;
    MethodParameters:
       Name  Flags
      roots  

  private java.util.Set<java.lang.module.ModuleDescriptor> resolve(java.util.Deque<java.lang.module.ModuleDescriptor>);
    descriptor: (Ljava/util/Deque;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.util.Deque q
         0: .line 152
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* resolved */
        start local 2 // java.util.Set resolved
         1: .line 154
            goto 28
         2: .line 155
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* q */
            invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor
            astore 3 /* descriptor */
        start local 3 // java.lang.module.ModuleDescriptor descriptor
         3: .line 156
            getstatic java.lang.module.Resolver.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 3 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 160
      StackMap locals: java.lang.module.ModuleDescriptor
      StackMap stack:
            aload 3 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 7
            aload 0 /* this */
            getfield java.lang.module.Resolver.haveAllAutomaticModules:Z
            ifne 7
         5: .line 161
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.addFoundAutomaticModules:()Ljava/util/Set;
            aload 0 /* this */
            aload 1 /* q */
            aload 3 /* descriptor */
            invokedynamic accept(Ljava/lang/module/Resolver;Ljava/util/Deque;Ljava/lang/module/ModuleDescriptor;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/module/Resolver.lambda$0(Ljava/util/Deque;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleReference;)V (7)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         6: .line 168
            aload 0 /* this */
            iconst_1
            putfield java.lang.module.Resolver.haveAllAutomaticModules:Z
         7: .line 172
      StackMap locals:
      StackMap stack:
            aload 3 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 26
      StackMap locals: java.lang.module.Resolver java.util.Deque java.util.Set java.lang.module.ModuleDescriptor top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Requires
            astore 4 /* requires */
        start local 4 // java.lang.module.ModuleDescriptor$Requires requires
         9: .line 175
            aload 4 /* requires */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.STATIC:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 176
            goto 26
        11: .line 178
      StackMap locals: java.lang.module.Resolver java.util.Deque java.util.Set java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor$Requires java.util.Iterator
      StackMap stack:
            aload 4 /* requires */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            astore 6 /* dn */
        start local 6 // java.lang.String dn
        12: .line 181
            aload 0 /* this */
            aload 6 /* dn */
            invokevirtual java.lang.module.Resolver.findWithBeforeFinder:(Ljava/lang/String;)Ljava/lang/module/ModuleReference;
            astore 7 /* mref */
        start local 7 // java.lang.module.ModuleReference mref
        13: .line 182
            aload 7 /* mref */
            ifnonnull 21
        14: .line 184
            aload 0 /* this */
            aload 6 /* dn */
            invokevirtual java.lang.module.Resolver.findInParent:(Ljava/lang/String;)Ljava/lang/module/ResolvedModule;
            ifnull 16
        15: .line 186
            goto 26
        16: .line 189
      StackMap locals: java.lang.String java.lang.module.ModuleReference
      StackMap stack:
            aload 0 /* this */
            aload 6 /* dn */
            invokevirtual java.lang.module.Resolver.findWithAfterFinder:(Ljava/lang/String;)Ljava/lang/module/ModuleReference;
            astore 7 /* mref */
        17: .line 190
            aload 7 /* mref */
            ifnonnull 21
        18: .line 191
            ldc "Module %s not found, required by %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 192
            aload 6 /* dn */
            aastore
            dup
            iconst_1
            aload 3 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
        20: .line 191
            invokestatic java.lang.module.Resolver.findFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        21: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.isTracing:()Z
            ifeq 23
            aload 6 /* dn */
            ldc "java.base"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 197
            aload 0 /* this */
            ldc "%s requires %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aload 7 /* mref */
            invokevirtual java.lang.module.Resolver.nameAndInfo:(Ljava/lang/module/ModuleReference;)Ljava/lang/String;
            aastore
            invokevirtual java.lang.module.Resolver.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        23: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 6 /* dn */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 26
        24: .line 201
            aload 0 /* this */
            aload 7 /* mref */
            invokevirtual java.lang.module.Resolver.addFoundModule:(Ljava/lang/module/ModuleReference;)V
        25: .line 202
            aload 1 /* q */
            aload 7 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.Deque.offer:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.module.ModuleReference mref
        end local 6 // java.lang.String dn
        end local 4 // java.lang.module.ModuleDescriptor$Requires requires
        26: .line 172
      StackMap locals: java.lang.module.Resolver java.util.Deque java.util.Set java.lang.module.ModuleDescriptor top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        27: .line 207
            aload 2 /* resolved */
            aload 3 /* descriptor */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.module.ModuleDescriptor descriptor
        28: .line 154
      StackMap locals: java.lang.module.Resolver java.util.Deque java.util.Set
      StackMap stack:
            aload 1 /* q */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 2
        29: .line 210
            aload 2 /* resolved */
            areturn
        end local 2 // java.util.Set resolved
        end local 1 // java.util.Deque q
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Ljava/lang/module/Resolver;
            0   30     1           q  Ljava/util/Deque<Ljava/lang/module/ModuleDescriptor;>;
            1   30     2    resolved  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;
            3   28     3  descriptor  Ljava/lang/module/ModuleDescriptor;
            9   26     4    requires  Ljava/lang/module/ModuleDescriptor$Requires;
           12   26     6          dn  Ljava/lang/String;
           13   26     7        mref  Ljava/lang/module/ModuleReference;
    Signature: (Ljava/util/Deque<Ljava/lang/module/ModuleDescriptor;>;)Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;
    MethodParameters:
      Name  Flags
      q     

  java.lang.module.Resolver bind();
    descriptor: ()Ljava/lang/module/Resolver;
    flags: (0x0000) 
    Code:
      stack=7, locals=15, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 222
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* availableProviders */
        start local 1 // java.util.Map availableProviders
         1: .line 223
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: java.lang.module.Resolver java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 2 /* mref */
        start local 2 // java.lang.module.ModuleReference mref
         3: .line 224
            aload 2 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* descriptor */
        start local 4 // java.lang.module.ModuleDescriptor descriptor
         4: .line 225
            aload 4 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 14
         5: .line 227
            aload 4 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals: java.lang.module.Resolver java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Provides
            astore 5 /* provides */
        start local 5 // java.lang.module.ModuleDescriptor$Provides provides
         7: .line 228
            aload 5 /* provides */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            astore 7 /* sn */
        start local 7 // java.lang.String sn
         8: .line 231
            aload 1 /* availableProviders */
            aload 7 /* sn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 8 /* providers */
        start local 8 // java.util.Set providers
         9: .line 232
            aload 8 /* providers */
            ifnonnull 12
        10: .line 233
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 8 /* providers */
        11: .line 234
            aload 1 /* availableProviders */
            aload 7 /* sn */
            aload 8 /* providers */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 236
      StackMap locals: java.lang.module.Resolver java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor$Provides java.util.Iterator java.lang.String java.util.Set
      StackMap stack:
            aload 8 /* providers */
            aload 2 /* mref */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.Set providers
        end local 7 // java.lang.String sn
        end local 5 // java.lang.module.ModuleDescriptor$Provides provides
        13: .line 227
      StackMap locals: java.lang.module.Resolver java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // java.lang.module.ModuleDescriptor descriptor
        end local 2 // java.lang.module.ModuleReference mref
        14: .line 223
      StackMap locals: java.lang.module.Resolver java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        15: .line 243
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 2 /* q */
        start local 2 // java.util.Deque q
        16: .line 247
            invokestatic java.lang.ModuleLayer.boot:()Ljava/lang/ModuleLayer;
            ifnonnull 19
        17: .line 248
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* initialConsumers */
        start local 3 // java.util.Set initialConsumers
        18: .line 249
            goto 25
        end local 3 // java.util.Set initialConsumers
        19: .line 250
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.Resolver.parents:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        20: .line 251
            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/Configuration.configurations()Ljava/util/stream/Stream; (5)
                  (Ljava/lang/module/Configuration;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        21: .line 252
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
        22: .line 253
            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/Resolver.lambda$2(Ljava/lang/module/Configuration;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/module/Configuration;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        23: .line 254
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        24: .line 250
            astore 3 /* initialConsumers */
        start local 3 // java.util.Set initialConsumers
        25: .line 256
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 28
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set top java.util.Iterator
      StackMap stack:
        26: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
        27: .line 257
            aload 3 /* initialConsumers */
            aload 4 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.module.ModuleReference mref
        28: .line 256
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        29: .line 262
            aload 3 /* initialConsumers */
            astore 4 /* candidateConsumers */
        start local 4 // java.util.Set candidateConsumers
        30: .line 264
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set
      StackMap stack:
            aload 4 /* candidateConsumers */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 54
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        31: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor
            astore 5 /* descriptor */
        start local 5 // java.lang.module.ModuleDescriptor descriptor
        32: .line 265
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 54
        33: .line 268
            aconst_null
            astore 7 /* modulesToBind */
        start local 7 // java.util.Set modulesToBind
        34: .line 269
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.isTracing:()Z
            ifeq 36
        35: .line 270
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* modulesToBind */
        36: .line 273
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set java.lang.module.ModuleDescriptor java.util.Iterator java.util.Set
      StackMap stack:
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 53
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set java.lang.module.ModuleDescriptor java.util.Iterator java.util.Set top java.util.Iterator
      StackMap stack:
        37: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* service */
        start local 8 // java.lang.String service
        38: .line 274
            aload 1 /* availableProviders */
            aload 8 /* service */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 10 /* mrefs */
        start local 10 // java.util.Set mrefs
        39: .line 275
            aload 10 /* mrefs */
            ifnull 53
        40: .line 276
            aload 10 /* mrefs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 12
            goto 52
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set java.lang.module.ModuleDescriptor java.util.Iterator java.util.Set java.lang.String java.util.Iterator java.util.Set top java.util.Iterator
      StackMap stack:
        41: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 11 /* mref */
        start local 11 // java.lang.module.ModuleReference mref
        42: .line 277
            aload 11 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 13 /* provider */
        start local 13 // java.lang.module.ModuleDescriptor provider
        43: .line 278
            aload 13 /* provider */
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.equals:(Ljava/lang/Object;)Z
            ifne 52
        44: .line 280
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.isTracing:()Z
            ifeq 48
            aload 7 /* modulesToBind */
            aload 13 /* provider */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 48
        45: .line 281
            aload 0 /* this */
            ldc "%s binds %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        46: .line 282
            aload 0 /* this */
            aload 11 /* mref */
            invokevirtual java.lang.module.Resolver.nameAndInfo:(Ljava/lang/module/ModuleReference;)Ljava/lang/String;
            aastore
        47: .line 281
            invokevirtual java.lang.module.Resolver.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        48: .line 285
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set java.lang.module.ModuleDescriptor java.util.Iterator java.util.Set java.lang.String java.util.Iterator java.util.Set java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor
      StackMap stack:
            aload 13 /* provider */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 14 /* pn */
        start local 14 // java.lang.String pn
        49: .line 286
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 14 /* pn */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 52
        50: .line 287
            aload 0 /* this */
            aload 11 /* mref */
            invokevirtual java.lang.module.Resolver.addFoundModule:(Ljava/lang/module/ModuleReference;)V
        51: .line 288
            aload 2 /* q */
            aload 13 /* provider */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        end local 14 // java.lang.String pn
        end local 13 // java.lang.module.ModuleDescriptor provider
        end local 11 // java.lang.module.ModuleReference mref
        52: .line 276
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set java.lang.module.ModuleDescriptor java.util.Iterator java.util.Set java.lang.String java.util.Iterator java.util.Set top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
        end local 10 // java.util.Set mrefs
        end local 8 // java.lang.String service
        53: .line 273
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set java.lang.module.ModuleDescriptor java.util.Iterator java.util.Set top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        end local 7 // java.util.Set modulesToBind
        end local 5 // java.lang.module.ModuleDescriptor descriptor
        54: .line 264
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Deque java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        55: .line 297
            aload 0 /* this */
            aload 2 /* q */
            invokevirtual java.lang.module.Resolver.resolve:(Ljava/util/Deque;)Ljava/util/Set;
            astore 4 /* candidateConsumers */
        56: .line 298
            aload 4 /* candidateConsumers */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 30
        57: .line 300
            aload 0 /* this */
            areturn
        end local 4 // java.util.Set candidateConsumers
        end local 3 // java.util.Set initialConsumers
        end local 2 // java.util.Deque q
        end local 1 // java.util.Map availableProviders
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   58     0                this  Ljava/lang/module/Resolver;
            1   58     1  availableProviders  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleReference;>;>;
            3   14     2                mref  Ljava/lang/module/ModuleReference;
            4   14     4          descriptor  Ljava/lang/module/ModuleDescriptor;
            7   13     5            provides  Ljava/lang/module/ModuleDescriptor$Provides;
            8   13     7                  sn  Ljava/lang/String;
            9   13     8           providers  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           16   58     2                   q  Ljava/util/Deque<Ljava/lang/module/ModuleDescriptor;>;
           18   19     3    initialConsumers  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;
           25   58     3    initialConsumers  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;
           27   28     4                mref  Ljava/lang/module/ModuleReference;
           30   58     4  candidateConsumers  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;
           32   54     5          descriptor  Ljava/lang/module/ModuleDescriptor;
           34   54     7       modulesToBind  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;
           38   53     8             service  Ljava/lang/String;
           39   53    10               mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           42   52    11                mref  Ljava/lang/module/ModuleReference;
           43   52    13            provider  Ljava/lang/module/ModuleDescriptor;
           49   52    14                  pn  Ljava/lang/String;

  private java.util.Set<java.lang.module.ModuleReference> addFoundAutomaticModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 308
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.Set result
         1: .line 309
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.findAll:()Ljava/util/Set;
            aload 0 /* this */
            aload 1 /* result */
            invokedynamic accept(Ljava/lang/module/Resolver;Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/module/Resolver.lambda$3(Ljava/util/Set;Ljava/lang/module/ModuleReference;)V (7)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         2: .line 316
            aload 1 /* result */
            areturn
        end local 1 // java.util.Set result
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljava/lang/module/Resolver;
            1    3     1  result  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleReference;>;

  private void addFoundModule(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 324
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 2 /* mn */
        start local 2 // java.lang.String mn
         1: .line 326
            aload 1 /* mref */
            instanceof jdk.internal.module.ModuleReferenceImpl
            ifeq 5
         2: .line 327
            aload 1 /* mref */
            checkcast jdk.internal.module.ModuleReferenceImpl
            invokevirtual jdk.internal.module.ModuleReferenceImpl.moduleTarget:()Ljdk/internal/module/ModuleTarget;
            astore 3 /* target */
        start local 3 // jdk.internal.module.ModuleTarget target
         3: .line 328
            aload 3 /* target */
            ifnull 5
         4: .line 329
            aload 0 /* this */
            aload 2 /* mn */
            aload 3 /* target */
            invokevirtual java.lang.module.Resolver.checkTargetPlatform:(Ljava/lang/String;Ljdk/internal/module/ModuleTarget;)V
        end local 3 // jdk.internal.module.ModuleTarget target
         5: .line 332
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 2 /* mn */
            aload 1 /* mref */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 333
            return
        end local 2 // java.lang.String mn
        end local 1 // java.lang.module.ModuleReference mref
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/lang/module/Resolver;
            0    7     1    mref  Ljava/lang/module/ModuleReference;
            1    7     2      mn  Ljava/lang/String;
            3    5     3  target  Ljdk/internal/module/ModuleTarget;
    MethodParameters:
      Name  Flags
      mref  

  private void checkTargetPlatform(java.lang.String, jdk.internal.module.ModuleTarget);
    descriptor: (Ljava/lang/String;Ljdk/internal/module/ModuleTarget;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.String mn
        start local 2 // jdk.internal.module.ModuleTarget target
         0: .line 340
            aload 2 /* target */
            invokevirtual jdk.internal.module.ModuleTarget.targetPlatform:()Ljava/lang/String;
            astore 3 /* value */
        start local 3 // java.lang.String value
         1: .line 341
            aload 3 /* value */
            ifnull 10
         2: .line 342
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            ifnonnull 5
         3: .line 343
            aload 0 /* this */
            aload 3 /* value */
            putfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
         4: .line 344
            goto 10
         5: .line 345
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* value */
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 346
            ldc "Module %s has constraints on target platform (%s) that conflict with other modules: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 347
            aload 1 /* mn */
            aastore
            dup
            iconst_1
         8: .line 348
            aload 3 /* value */
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield java.lang.module.Resolver.targetPlatform:Ljava/lang/String;
            aastore
         9: .line 346
            invokestatic java.lang.module.Resolver.findFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 352
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String value
        end local 2 // jdk.internal.module.ModuleTarget target
        end local 1 // java.lang.String mn
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Ljava/lang/module/Resolver;
            0   11     1      mn  Ljava/lang/String;
            0   11     2  target  Ljdk/internal/module/ModuleTarget;
            1   11     3   value  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      mn      
      target  

  java.util.Map<java.lang.module.ResolvedModule, java.util.Set<java.lang.module.ResolvedModule>> finish(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.Configuration cf
         0: .line 359
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.detectCycles:()V
         1: .line 360
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.checkHashes:()V
         2: .line 361
            aload 0 /* this */
            aload 1 /* cf */
            invokevirtual java.lang.module.Resolver.makeGraph:(Ljava/lang/module/Configuration;)Ljava/util/Map;
            astore 2 /* graph */
        start local 2 // java.util.Map graph
         3: .line 362
            aload 0 /* this */
            aload 2 /* graph */
            invokevirtual java.lang.module.Resolver.checkExportSuppliers:(Ljava/util/Map;)V
         4: .line 363
            aload 2 /* graph */
            areturn
        end local 2 // java.util.Map graph
        end local 1 // java.lang.module.Configuration cf
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/lang/module/Resolver;
            0    5     1     cf  Ljava/lang/module/Configuration;
            3    5     2  graph  Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
    Signature: (Ljava/lang/module/Configuration;)Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
    MethodParameters:
      Name  Flags
      cf    

  private void detectCycles();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 373
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield java.lang.module.Resolver.visited:Ljava/util/Set;
         1: .line 374
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield java.lang.module.Resolver.visitPath:Ljava/util/Set;
         2: .line 375
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: java.lang.module.Resolver top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 1 /* mref */
        start local 1 // java.lang.module.ModuleReference mref
         4: .line 376
            aload 0 /* this */
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.Resolver.visit:(Ljava/lang/module/ModuleDescriptor;)V
        end local 1 // java.lang.module.ModuleReference mref
         5: .line 375
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 378
            aload 0 /* this */
            getfield java.lang.module.Resolver.visited:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         7: .line 379
            return
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/lang/module/Resolver;
            4    5     1  mref  Ljava/lang/module/ModuleReference;

  private void visit(java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.ModuleDescriptor descriptor
         0: .line 388
            aload 0 /* this */
            getfield java.lang.module.Resolver.visited:Ljava/util/Set;
            aload 1 /* descriptor */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 15
         1: .line 389
            aload 0 /* this */
            getfield java.lang.module.Resolver.visitPath:Ljava/util/Set;
            aload 1 /* descriptor */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            istore 2 /* added */
        start local 2 // boolean added
         2: .line 390
            iload 2 /* added */
            ifne 4
         3: .line 391
            ldc "Cycle detected: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual java.lang.module.Resolver.cycleAsString:(Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            aastore
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 393
      StackMap locals: int
      StackMap stack:
            aload 1 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleDescriptor int top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Requires
            astore 3 /* requires */
        start local 3 // java.lang.module.ModuleDescriptor$Requires requires
         6: .line 394
            aload 3 /* requires */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            astore 5 /* dn */
        start local 5 // java.lang.String dn
         7: .line 396
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 5 /* dn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 6 /* mref */
        start local 6 // java.lang.module.ModuleReference mref
         8: .line 397
            aload 6 /* mref */
            ifnull 12
         9: .line 398
            aload 6 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 7 /* other */
        start local 7 // java.lang.module.ModuleDescriptor other
        10: .line 399
            aload 7 /* other */
            aload 1 /* descriptor */
            if_acmpeq 12
        11: .line 401
            aload 0 /* this */
            aload 7 /* other */
            invokevirtual java.lang.module.Resolver.visit:(Ljava/lang/module/ModuleDescriptor;)V
        end local 7 // java.lang.module.ModuleDescriptor other
        end local 6 // java.lang.module.ModuleReference mref
        end local 5 // java.lang.String dn
        end local 3 // java.lang.module.ModuleDescriptor$Requires requires
        12: .line 393
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 405
            aload 0 /* this */
            getfield java.lang.module.Resolver.visitPath:Ljava/util/Set;
            aload 1 /* descriptor */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        14: .line 406
            aload 0 /* this */
            getfield java.lang.module.Resolver.visited:Ljava/util/Set;
            aload 1 /* descriptor */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // boolean added
        15: .line 408
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleDescriptor
      StackMap stack:
            return
        end local 1 // java.lang.module.ModuleDescriptor descriptor
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljava/lang/module/Resolver;
            0   16     1  descriptor  Ljava/lang/module/ModuleDescriptor;
            2   15     2       added  Z
            6   12     3    requires  Ljava/lang/module/ModuleDescriptor$Requires;
            7   12     5          dn  Ljava/lang/String;
            8   12     6        mref  Ljava/lang/module/ModuleReference;
           10   12     7       other  Ljava/lang/module/ModuleDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  private java.lang.String cycleAsString(java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.ModuleDescriptor descriptor
         0: .line 414
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield java.lang.module.Resolver.visitPath:Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 415
            aload 2 /* list */
            aload 1 /* descriptor */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 416
            aload 2 /* list */
            aload 1 /* descriptor */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 3 /* index */
        start local 3 // int index
         3: .line 417
            aload 2 /* list */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         4: .line 418
            iload 3 /* index */
            i2l
            invokeinterface java.util.stream.Stream.skip:(J)Ljava/util/stream/Stream;
         5: .line 419
            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.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         6: .line 420
            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
         7: .line 417
            areturn
        end local 3 // int index
        end local 2 // java.util.List list
        end local 1 // java.lang.module.ModuleDescriptor descriptor
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Ljava/lang/module/Resolver;
            0    8     1  descriptor  Ljava/lang/module/ModuleDescriptor;
            1    8     2        list  Ljava/util/List<Ljava/lang/module/ModuleDescriptor;>;
            3    8     3       index  I
    MethodParameters:
            Name  Flags
      descriptor  

  private void checkHashes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 429
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 32
      StackMap locals: java.lang.module.Resolver top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 1 /* mref */
        start local 1 // java.lang.module.ModuleReference mref
         2: .line 432
            aload 1 /* mref */
            instanceof jdk.internal.module.ModuleReferenceImpl
            ifne 4
         3: .line 433
            goto 32
         4: .line 434
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleReference java.util.Iterator
      StackMap stack:
            aload 1 /* mref */
            checkcast jdk.internal.module.ModuleReferenceImpl
            invokevirtual jdk.internal.module.ModuleReferenceImpl.recordedHashes:()Ljdk/internal/module/ModuleHashes;
            astore 3 /* hashes */
        start local 3 // jdk.internal.module.ModuleHashes hashes
         5: .line 435
            aload 3 /* hashes */
            ifnonnull 7
         6: .line 436
            goto 32
         7: .line 438
      StackMap locals: jdk.internal.module.ModuleHashes
      StackMap stack:
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* descriptor */
        start local 4 // java.lang.module.ModuleDescriptor descriptor
         8: .line 439
            aload 3 /* hashes */
            invokevirtual jdk.internal.module.ModuleHashes.algorithm:()Ljava/lang/String;
            astore 5 /* algorithm */
        start local 5 // java.lang.String algorithm
         9: .line 440
            aload 3 /* hashes */
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 31
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleReference java.util.Iterator jdk.internal.module.ModuleHashes java.lang.module.ModuleDescriptor java.lang.String top java.util.Iterator
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* dn */
        start local 6 // java.lang.String dn
        11: .line 441
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 6 /* dn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 8 /* mref2 */
        start local 8 // java.lang.module.ModuleReference mref2
        12: .line 442
            aload 8 /* mref2 */
            ifnonnull 16
        13: .line 443
            aload 0 /* this */
            aload 6 /* dn */
            invokevirtual java.lang.module.Resolver.findInParent:(Ljava/lang/String;)Ljava/lang/module/ResolvedModule;
            astore 9 /* resolvedModule */
        start local 9 // java.lang.module.ResolvedModule resolvedModule
        14: .line 444
            aload 9 /* resolvedModule */
            ifnull 16
        15: .line 445
            aload 9 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 8 /* mref2 */
        end local 9 // java.lang.module.ResolvedModule resolvedModule
        16: .line 447
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleReference java.util.Iterator jdk.internal.module.ModuleHashes java.lang.module.ModuleDescriptor java.lang.String java.lang.String java.util.Iterator java.lang.module.ModuleReference
      StackMap stack:
            aload 8 /* mref2 */
            ifnonnull 18
        17: .line 448
            goto 31
        18: .line 450
      StackMap locals:
      StackMap stack:
            aload 8 /* mref2 */
            instanceof jdk.internal.module.ModuleReferenceImpl
            ifne 20
        19: .line 451
            ldc "Unable to compute the hash of module %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* dn */
            aastore
            invokestatic java.lang.module.Resolver.findFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        20: .line 454
      StackMap locals:
      StackMap stack:
            aload 8 /* mref2 */
            checkcast jdk.internal.module.ModuleReferenceImpl
            astore 9 /* other */
        start local 9 // jdk.internal.module.ModuleReferenceImpl other
        21: .line 455
            aload 9 /* other */
            ifnull 31
        22: .line 456
            aload 3 /* hashes */
            aload 6 /* dn */
            invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
            astore 10 /* recordedHash */
        start local 10 // byte[] recordedHash
        23: .line 457
            aload 9 /* other */
            aload 5 /* algorithm */
            invokevirtual jdk.internal.module.ModuleReferenceImpl.computeHash:(Ljava/lang/String;)[B
            astore 11 /* actualHash */
        start local 11 // byte[] actualHash
        24: .line 458
            aload 11 /* actualHash */
            ifnonnull 26
        25: .line 459
            ldc "Unable to compute the hash of module %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* dn */
            aastore
            invokestatic java.lang.module.Resolver.findFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        26: .line 460
      StackMap locals: jdk.internal.module.ModuleReferenceImpl byte[] byte[]
      StackMap stack:
            aload 10 /* recordedHash */
            aload 11 /* actualHash */
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 31
        27: .line 461
            ldc "Hash of %s (%s) differs to expected hash (%s) recorded in %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        28: .line 462
            aload 6 /* dn */
            aastore
            dup
            iconst_1
            aload 11 /* actualHash */
            invokestatic java.lang.module.Resolver.toHexString:([B)Ljava/lang/String;
            aastore
            dup
            iconst_2
        29: .line 463
            aload 10 /* recordedHash */
            invokestatic java.lang.module.Resolver.toHexString:([B)Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 4 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
        30: .line 461
            invokestatic java.lang.module.Resolver.findFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 11 // byte[] actualHash
        end local 10 // byte[] recordedHash
        end local 9 // jdk.internal.module.ModuleReferenceImpl other
        end local 8 // java.lang.module.ModuleReference mref2
        end local 6 // java.lang.String dn
        31: .line 440
      StackMap locals: java.lang.module.Resolver java.lang.module.ModuleReference java.util.Iterator jdk.internal.module.ModuleHashes java.lang.module.ModuleDescriptor java.lang.String top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 5 // java.lang.String algorithm
        end local 4 // java.lang.module.ModuleDescriptor descriptor
        end local 3 // jdk.internal.module.ModuleHashes hashes
        end local 1 // java.lang.module.ModuleReference mref
        32: .line 429
      StackMap locals: java.lang.module.Resolver top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        33: .line 469
            return
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Ljava/lang/module/Resolver;
            2   32     1            mref  Ljava/lang/module/ModuleReference;
            5   32     3          hashes  Ljdk/internal/module/ModuleHashes;
            8   32     4      descriptor  Ljava/lang/module/ModuleDescriptor;
            9   32     5       algorithm  Ljava/lang/String;
           11   31     6              dn  Ljava/lang/String;
           12   31     8           mref2  Ljava/lang/module/ModuleReference;
           14   16     9  resolvedModule  Ljava/lang/module/ResolvedModule;
           21   31     9           other  Ljdk/internal/module/ModuleReferenceImpl;
           23   31    10    recordedHash  [B
           24   31    11      actualHash  [B

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

  private java.util.Map<java.lang.module.ResolvedModule, java.util.Set<java.lang.module.ResolvedModule>> makeGraph(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=18, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.Configuration cf
         0: .line 492
            iconst_1
            iconst_4
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            imul
            iconst_3
            idiv
            iadd
            istore 2 /* capacity */
        start local 2 // int capacity
         1: .line 496
            new java.util.HashMap
            dup
            iload 2 /* capacity */
            invokespecial java.util.HashMap.<init>:(I)V
            astore 3 /* g1 */
        start local 3 // java.util.Map g1
         2: .line 504
            invokestatic java.lang.ModuleLayer.boot:()Ljava/lang/ModuleLayer;
            ifnonnull 5
         3: .line 505
            new java.util.HashMap
            dup
            iload 2 /* capacity */
            invokespecial java.util.HashMap.<init>:(I)V
            astore 4 /* g2 */
        start local 4 // java.util.Map g2
         4: .line 506
            goto 14
        end local 4 // java.util.Map g2
         5: .line 507
      StackMap locals: int java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.module.Resolver.parents:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         6: .line 508
            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/Configuration.configurations()Ljava/util/stream/Stream; (5)
                  (Ljava/lang/module/Configuration;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         7: .line 509
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
         8: .line 510
            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/Resolver.lambda$6(Ljava/lang/module/Configuration;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/module/Configuration;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 524
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Map$Entry.getKey()Ljava/lang/Object; (9 itf)
                  (Ljava/util/Map$Entry;)Ljava/lang/module/ResolvedModule;
        10: .line 525
            invokedynamic get()Ljava/util/function/Supplier;
              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/util/HashMap.<init>()V (8)
                  ()Ljava/util/HashMap;
        11: .line 526
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Map$Entry.getValue()Ljava/lang/Object; (9 itf)
                  (Ljava/util/Map$Entry;)Ljava/lang/module/ResolvedModule;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokestatic java.util.stream.Collectors.mapping:(Ljava/util/function/Function;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
        12: .line 524
            invokestatic java.util.stream.Collectors.groupingBy:(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
        13: .line 507
            astore 4 /* g2 */
        start local 4 // java.util.Map g2
        14: .line 532
      StackMap locals: java.util.Map
      StackMap stack:
            new java.util.HashMap
            dup
            iload 2 /* capacity */
            invokespecial java.util.HashMap.<init>:(I)V
            astore 5 /* nameToResolved */
        start local 5 // java.util.Map nameToResolved
        15: .line 534
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 58
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        16: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 6 /* mref */
        start local 6 // java.lang.module.ModuleReference mref
        17: .line 535
            aload 6 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 8 /* descriptor */
        start local 8 // java.lang.module.ModuleDescriptor descriptor
        18: .line 536
            aload 8 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
        19: .line 538
            aload 0 /* this */
            aload 5 /* nameToResolved */
            aload 9 /* name */
            aload 1 /* cf */
            aload 6 /* mref */
            invokevirtual java.lang.module.Resolver.computeIfAbsent:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/module/Configuration;Ljava/lang/module/ModuleReference;)Ljava/lang/module/ResolvedModule;
            astore 10 /* m1 */
        start local 10 // java.lang.module.ResolvedModule m1
        20: .line 540
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 11 /* reads */
        start local 11 // java.util.Set reads
        21: .line 541
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* requiresTransitive */
        start local 12 // java.util.Set requiresTransitive
        22: .line 543
            aload 8 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 36
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.module.ResolvedModule java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        23: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Requires
            astore 13 /* requires */
        start local 13 // java.lang.module.ModuleDescriptor$Requires requires
        24: .line 544
            aload 13 /* requires */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            astore 15 /* dn */
        start local 15 // java.lang.String dn
        25: .line 546
            aconst_null
            astore 16 /* m2 */
        start local 16 // java.lang.module.ResolvedModule m2
        26: .line 547
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 15 /* dn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 17 /* mref2 */
        start local 17 // java.lang.module.ModuleReference mref2
        27: .line 548
            aload 17 /* mref2 */
            ifnull 30
        28: .line 550
            aload 0 /* this */
            aload 5 /* nameToResolved */
            aload 15 /* dn */
            aload 1 /* cf */
            aload 17 /* mref2 */
            invokevirtual java.lang.module.Resolver.computeIfAbsent:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/module/Configuration;Ljava/lang/module/ModuleReference;)Ljava/lang/module/ResolvedModule;
            astore 16 /* m2 */
        29: .line 551
            goto 33
        30: .line 553
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.module.ResolvedModule java.util.Set java.util.Set java.lang.module.ModuleDescriptor$Requires java.util.Iterator java.lang.String java.lang.module.ResolvedModule java.lang.module.ModuleReference
      StackMap stack:
            aload 0 /* this */
            aload 15 /* dn */
            invokevirtual java.lang.module.Resolver.findInParent:(Ljava/lang/String;)Ljava/lang/module/ResolvedModule;
            astore 16 /* m2 */
        31: .line 554
            aload 16 /* m2 */
            ifnonnull 33
        32: .line 555
            getstatic java.lang.module.Resolver.$assertionsDisabled:Z
            ifne 36
            aload 13 /* requires */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.STATIC:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 561
      StackMap locals:
      StackMap stack:
            aload 11 /* reads */
            aload 16 /* m2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        34: .line 564
            aload 13 /* requires */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.TRANSITIVE:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 36
        35: .line 565
            aload 12 /* requiresTransitive */
            aload 16 /* m2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // java.lang.module.ModuleReference mref2
        end local 16 // java.lang.module.ResolvedModule m2
        end local 15 // java.lang.String dn
        end local 13 // java.lang.module.ModuleDescriptor$Requires requires
        36: .line 543
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.module.ResolvedModule java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        37: .line 572
            aload 8 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 56
        38: .line 576
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14
            goto 48
      StackMap locals:
      StackMap stack:
        39: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 13 /* mref2 */
        start local 13 // java.lang.module.ModuleReference mref2
        40: .line 577
            aload 13 /* mref2 */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 15 /* descriptor2 */
        start local 15 // java.lang.module.ModuleDescriptor descriptor2
        41: .line 578
            aload 15 /* descriptor2 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 16 /* name2 */
        start local 16 // java.lang.String name2
        42: .line 580
            aload 9 /* name */
            aload 16 /* name2 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 48
        43: .line 582
            aload 0 /* this */
            aload 5 /* nameToResolved */
            aload 16 /* name2 */
            aload 1 /* cf */
            aload 13 /* mref2 */
            invokevirtual java.lang.module.Resolver.computeIfAbsent:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/module/Configuration;Ljava/lang/module/ModuleReference;)Ljava/lang/module/ResolvedModule;
        44: .line 581
            astore 17 /* m2 */
        start local 17 // java.lang.module.ResolvedModule m2
        45: .line 583
            aload 11 /* reads */
            aload 17 /* m2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        46: .line 584
            aload 15 /* descriptor2 */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 48
        47: .line 585
            aload 12 /* requiresTransitive */
            aload 17 /* m2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // java.lang.module.ResolvedModule m2
        end local 16 // java.lang.String name2
        end local 15 // java.lang.module.ModuleDescriptor descriptor2
        end local 13 // java.lang.module.ModuleReference mref2
        48: .line 576
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        49: .line 592
            aload 0 /* this */
            getfield java.lang.module.Resolver.parents:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 55
      StackMap locals:
      StackMap stack:
        50: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.Configuration
            astore 13 /* parent */
        start local 13 // java.lang.module.Configuration parent
        51: .line 593
            aload 13 /* parent */
            invokevirtual java.lang.module.Configuration.configurations:()Ljava/util/stream/Stream;
        52: .line 594
            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/Configuration.modules()Ljava/util/Set; (5)
                  (Ljava/lang/module/Configuration;)Ljava/util/Set;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        53: .line 595
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/Set;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        54: .line 596
            aload 11 /* reads */
            aload 12 /* requiresTransitive */
            invokedynamic accept(Ljava/util/Set;Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/module/Resolver.lambda$16(Ljava/util/Set;Ljava/util/Set;Ljava/lang/module/ResolvedModule;)V (6)
                  (Ljava/lang/module/ResolvedModule;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 13 // java.lang.module.Configuration parent
        55: .line 592
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        56: .line 604
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map java.lang.module.ModuleReference java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.module.ResolvedModule java.util.Set java.util.Set
      StackMap stack:
            aload 3 /* g1 */
            aload 10 /* m1 */
            aload 11 /* reads */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        57: .line 605
            aload 4 /* g2 */
            aload 10 /* m1 */
            aload 12 /* requiresTransitive */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // java.util.Set requiresTransitive
        end local 11 // java.util.Set reads
        end local 10 // java.lang.module.ResolvedModule m1
        end local 9 // java.lang.String name
        end local 8 // java.lang.module.ModuleDescriptor descriptor
        end local 6 // java.lang.module.ModuleReference mref
        58: .line 534
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        59: .line 611
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* toAdd */
        start local 7 // java.util.List toAdd
        60: .line 613
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map top java.util.List
      StackMap stack:
            iconst_0
            istore 6 /* changed */
        start local 6 // boolean changed
        61: .line 614
            aload 3 /* g1 */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 77
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map int java.util.List top java.util.Iterator
      StackMap stack:
        62: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 8 /* m1Reads */
        start local 8 // java.util.Set m1Reads
        63: .line 615
            aload 8 /* m1Reads */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 72
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map int java.util.List java.util.Set java.util.Iterator top java.util.Iterator
      StackMap stack:
        64: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 10 /* m2 */
        start local 10 // java.lang.module.ResolvedModule m2
        65: .line 616
            aload 4 /* g2 */
            aload 10 /* m2 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 12 /* m2RequiresTransitive */
        start local 12 // java.util.Set m2RequiresTransitive
        66: .line 617
            aload 12 /* m2RequiresTransitive */
            ifnull 72
        67: .line 618
            aload 12 /* m2RequiresTransitive */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 71
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map int java.util.List java.util.Set java.util.Iterator java.lang.module.ResolvedModule java.util.Iterator java.util.Set top java.util.Iterator
      StackMap stack:
        68: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 13 /* m3 */
        start local 13 // java.lang.module.ResolvedModule m3
        69: .line 619
            aload 8 /* m1Reads */
            aload 13 /* m3 */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 71
        70: .line 622
            aload 7 /* toAdd */
            aload 13 /* m3 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.lang.module.ResolvedModule m3
        71: .line 618
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 68
        end local 12 // java.util.Set m2RequiresTransitive
        end local 10 // java.lang.module.ResolvedModule m2
        72: .line 615
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map int java.util.List java.util.Set java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 64
        73: .line 627
            aload 7 /* toAdd */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 77
        74: .line 628
            aload 8 /* m1Reads */
            aload 7 /* toAdd */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        75: .line 629
            aload 7 /* toAdd */
            invokeinterface java.util.List.clear:()V
        76: .line 630
            iconst_1
            istore 6 /* changed */
        end local 8 // java.util.Set m1Reads
        77: .line 614
      StackMap locals: java.lang.module.Resolver java.lang.module.Configuration int java.util.Map java.util.Map java.util.Map int java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 62
        78: .line 633
            iload 6 /* changed */
            ifne 60
        79: .line 635
            aload 3 /* g1 */
            areturn
        end local 7 // java.util.List toAdd
        end local 6 // boolean changed
        end local 5 // java.util.Map nameToResolved
        end local 4 // java.util.Map g2
        end local 3 // java.util.Map g1
        end local 2 // int capacity
        end local 1 // java.lang.module.Configuration cf
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   80     0                  this  Ljava/lang/module/Resolver;
            0   80     1                    cf  Ljava/lang/module/Configuration;
            1   80     2              capacity  I
            2   80     3                    g1  Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
            4    5     4                    g2  Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
           14   80     4                    g2  Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
           15   80     5        nameToResolved  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ResolvedModule;>;
           17   58     6                  mref  Ljava/lang/module/ModuleReference;
           18   58     8            descriptor  Ljava/lang/module/ModuleDescriptor;
           19   58     9                  name  Ljava/lang/String;
           20   58    10                    m1  Ljava/lang/module/ResolvedModule;
           21   58    11                 reads  Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;
           22   58    12    requiresTransitive  Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;
           24   36    13              requires  Ljava/lang/module/ModuleDescriptor$Requires;
           25   36    15                    dn  Ljava/lang/String;
           26   36    16                    m2  Ljava/lang/module/ResolvedModule;
           27   36    17                 mref2  Ljava/lang/module/ModuleReference;
           40   48    13                 mref2  Ljava/lang/module/ModuleReference;
           41   48    15           descriptor2  Ljava/lang/module/ModuleDescriptor;
           42   48    16                 name2  Ljava/lang/String;
           45   48    17                    m2  Ljava/lang/module/ResolvedModule;
           51   55    13                parent  Ljava/lang/module/Configuration;
           61   80     6               changed  Z
           60   80     7                 toAdd  Ljava/util/List<Ljava/lang/module/ResolvedModule;>;
           63   77     8               m1Reads  Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;
           65   72    10                    m2  Ljava/lang/module/ResolvedModule;
           66   72    12  m2RequiresTransitive  Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;
           69   71    13                    m3  Ljava/lang/module/ResolvedModule;
    Signature: (Ljava/lang/module/Configuration;)Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
    MethodParameters:
      Name  Flags
      cf    

  private java.lang.module.ResolvedModule computeIfAbsent(java.util.Map<java.lang.String, java.lang.module.ResolvedModule>, java.lang.String, java.lang.module.Configuration, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Map;Ljava/lang/String;Ljava/lang/module/Configuration;Ljava/lang/module/ModuleReference;)Ljava/lang/module/ResolvedModule;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.util.Map map
        start local 2 // java.lang.String name
        start local 3 // java.lang.module.Configuration cf
        start local 4 // java.lang.module.ModuleReference mref
         0: .line 649
            aload 1 /* map */
            aload 2 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 5 /* m */
        start local 5 // java.lang.module.ResolvedModule m
         1: .line 650
            aload 5 /* m */
            ifnonnull 4
         2: .line 651
            new java.lang.module.ResolvedModule
            dup
            aload 3 /* cf */
            aload 4 /* mref */
            invokespecial java.lang.module.ResolvedModule.<init>:(Ljava/lang/module/Configuration;Ljava/lang/module/ModuleReference;)V
            astore 5 /* m */
         3: .line 652
            aload 1 /* map */
            aload 2 /* name */
            aload 5 /* m */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 654
      StackMap locals: java.lang.module.ResolvedModule
      StackMap stack:
            aload 5 /* m */
            areturn
        end local 5 // java.lang.module.ResolvedModule m
        end local 4 // java.lang.module.ModuleReference mref
        end local 3 // java.lang.module.Configuration cf
        end local 2 // java.lang.String name
        end local 1 // java.util.Map map
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/module/Resolver;
            0    5     1   map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ResolvedModule;>;
            0    5     2  name  Ljava/lang/String;
            0    5     3    cf  Ljava/lang/module/Configuration;
            0    5     4  mref  Ljava/lang/module/ModuleReference;
            1    5     5     m  Ljava/lang/module/ResolvedModule;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ResolvedModule;>;Ljava/lang/String;Ljava/lang/module/Configuration;Ljava/lang/module/ModuleReference;)Ljava/lang/module/ResolvedModule;
    MethodParameters:
      Name  Flags
      map   
      name  
      cf    
      mref  

  private void checkExportSuppliers(java.util.Map<java.lang.module.ResolvedModule, java.util.Set<java.lang.module.ResolvedModule>>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=18, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.util.Map graph
         0: .line 676
            aload 1 /* graph */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 65
      StackMap locals: java.lang.module.Resolver java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* e */
        start local 2 // java.util.Map$Entry e
         2: .line 677
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            invokevirtual java.lang.module.ResolvedModule.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* descriptor1 */
        start local 4 // java.lang.module.ModuleDescriptor descriptor1
         3: .line 678
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 5 /* name1 */
        start local 5 // java.lang.String name1
         4: .line 681
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* names */
        start local 6 // java.util.Set names
         5: .line 682
            aload 6 /* names */
            aload 5 /* name1 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 685
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* packageToExporter */
        start local 7 // java.util.Map packageToExporter
         7: .line 688
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            astore 8 /* packages */
        start local 8 // java.util.Set packages
         8: .line 689
            aload 8 /* packages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 11
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
         9: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* pn */
        start local 9 // java.lang.String pn
        10: .line 690
            aload 7 /* packageToExporter */
            aload 9 /* pn */
            aload 4 /* descriptor1 */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.String pn
        11: .line 689
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 694
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 9 /* reads */
        start local 9 // java.util.Set reads
        13: .line 695
            aload 9 /* reads */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 47
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        14: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 10 /* endpoint */
        start local 10 // java.lang.module.ResolvedModule endpoint
        15: .line 696
            aload 10 /* endpoint */
            invokevirtual java.lang.module.ResolvedModule.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 12 /* descriptor2 */
        start local 12 // java.lang.module.ModuleDescriptor descriptor2
        16: .line 698
            aload 12 /* descriptor2 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 13 /* name2 */
        start local 13 // java.lang.String name2
        17: .line 699
            aload 12 /* descriptor2 */
            aload 4 /* descriptor1 */
            if_acmpeq 26
            aload 6 /* names */
            aload 13 /* name2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 26
        18: .line 700
            aload 13 /* name2 */
            aload 5 /* name1 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        19: .line 701
            ldc "Module %s reads another module named %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 702
            aload 5 /* name1 */
            aastore
            dup
            iconst_1
            aload 5 /* name1 */
            aastore
        21: .line 701
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 703
            goto 26
        23: .line 704
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String
      StackMap stack:
            ldc "Module %s reads more than one module named %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        24: .line 705
            aload 5 /* name1 */
            aastore
            dup
            iconst_1
            aload 13 /* name2 */
            aastore
        25: .line 704
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        26: .line 709
      StackMap locals:
      StackMap stack:
            aload 12 /* descriptor2 */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 36
        27: .line 711
            aload 12 /* descriptor2 */
            aload 4 /* descriptor1 */
            if_acmpeq 47
        28: .line 712
            aload 12 /* descriptor2 */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 34
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String top java.util.Iterator
      StackMap stack:
        29: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 14 /* source */
        start local 14 // java.lang.String source
        30: .line 714
            aload 7 /* packageToExporter */
            aload 14 /* source */
            aload 12 /* descriptor2 */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor
        31: .line 713
            astore 16 /* supplier */
        start local 16 // java.lang.module.ModuleDescriptor supplier
        32: .line 717
            aload 16 /* supplier */
            ifnull 34
        33: .line 718
            aload 0 /* this */
            aload 4 /* descriptor1 */
            aload 14 /* source */
            aload 12 /* descriptor2 */
            aload 16 /* supplier */
            invokevirtual java.lang.module.Resolver.failTwoSuppliers:(Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor;)V
        end local 16 // java.lang.module.ModuleDescriptor supplier
        end local 14 // java.lang.String source
        34: .line 712
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        35: .line 723
            goto 47
        36: .line 724
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String
      StackMap stack:
            aload 12 /* descriptor2 */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 46
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String top java.util.Iterator
      StackMap stack:
        37: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Exports
            astore 14 /* export */
        start local 14 // java.lang.module.ModuleDescriptor$Exports export
        38: .line 725
            aload 14 /* export */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.isQualified:()Z
            ifeq 41
        39: .line 726
            aload 14 /* export */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.targets:()Ljava/util/Set;
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 41
        40: .line 727
            goto 46
        41: .line 731
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.module.ModuleDescriptor$Exports java.util.Iterator
      StackMap stack:
            aload 14 /* export */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            astore 16 /* source */
        start local 16 // java.lang.String source
        42: .line 733
            aload 7 /* packageToExporter */
            aload 16 /* source */
            aload 12 /* descriptor2 */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor
        43: .line 732
            astore 17 /* supplier */
        start local 17 // java.lang.module.ModuleDescriptor supplier
        44: .line 736
            aload 17 /* supplier */
            ifnull 46
        45: .line 737
            aload 0 /* this */
            aload 4 /* descriptor1 */
            aload 16 /* source */
            aload 12 /* descriptor2 */
            aload 17 /* supplier */
            invokevirtual java.lang.module.Resolver.failTwoSuppliers:(Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor;)V
        end local 17 // java.lang.module.ModuleDescriptor supplier
        end local 16 // java.lang.String source
        end local 14 // java.lang.module.ModuleDescriptor$Exports export
        46: .line 724
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        end local 13 // java.lang.String name2
        end local 12 // java.lang.module.ModuleDescriptor descriptor2
        end local 10 // java.lang.module.ResolvedModule endpoint
        47: .line 695
      StackMap locals: java.lang.module.Resolver java.util.Map java.util.Map$Entry java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.util.Set java.util.Map java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        48: .line 745
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifne 65
        49: .line 748
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 56
      StackMap locals:
      StackMap stack:
        50: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* service */
        start local 10 // java.lang.String service
        51: .line 749
            aload 10 /* service */
            invokestatic java.lang.module.Resolver.packageName:(Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* pn */
        start local 12 // java.lang.String pn
        52: .line 750
            aload 7 /* packageToExporter */
            aload 12 /* pn */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 56
        53: .line 751
            ldc "Module %s does not read a module that exports %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        54: .line 752
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 12 /* pn */
            aastore
        55: .line 751
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 12 // java.lang.String pn
        end local 10 // java.lang.String service
        56: .line 748
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        57: .line 757
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 64
      StackMap locals:
      StackMap stack:
        58: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Provides
            astore 10 /* provides */
        start local 10 // java.lang.module.ModuleDescriptor$Provides provides
        59: .line 758
            aload 10 /* provides */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokestatic java.lang.module.Resolver.packageName:(Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* pn */
        start local 12 // java.lang.String pn
        60: .line 759
            aload 7 /* packageToExporter */
            aload 12 /* pn */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 64
        61: .line 760
            ldc "Module %s does not read a module that exports %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        62: .line 761
            aload 4 /* descriptor1 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 12 /* pn */
            aastore
        63: .line 760
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 12 // java.lang.String pn
        end local 10 // java.lang.module.ModuleDescriptor$Provides provides
        64: .line 757
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 58
        end local 9 // java.util.Set reads
        end local 8 // java.util.Set packages
        end local 7 // java.util.Map packageToExporter
        end local 6 // java.util.Set names
        end local 5 // java.lang.String name1
        end local 4 // java.lang.module.ModuleDescriptor descriptor1
        end local 2 // java.util.Map$Entry e
        65: .line 676
      StackMap locals: java.lang.module.Resolver java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        66: .line 769
            return
        end local 1 // java.util.Map graph
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   67     0               this  Ljava/lang/module/Resolver;
            0   67     1              graph  Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
            2   65     2                  e  Ljava/util/Map$Entry<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;
            3   65     4        descriptor1  Ljava/lang/module/ModuleDescriptor;
            4   65     5              name1  Ljava/lang/String;
            5   65     6              names  Ljava/util/Set<Ljava/lang/String;>;
            7   65     7  packageToExporter  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleDescriptor;>;
            8   65     8           packages  Ljava/util/Set<Ljava/lang/String;>;
           10   11     9                 pn  Ljava/lang/String;
           13   65     9              reads  Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;
           15   47    10           endpoint  Ljava/lang/module/ResolvedModule;
           16   47    12        descriptor2  Ljava/lang/module/ModuleDescriptor;
           17   47    13              name2  Ljava/lang/String;
           30   34    14             source  Ljava/lang/String;
           32   34    16           supplier  Ljava/lang/module/ModuleDescriptor;
           38   46    14             export  Ljava/lang/module/ModuleDescriptor$Exports;
           42   46    16             source  Ljava/lang/String;
           44   46    17           supplier  Ljava/lang/module/ModuleDescriptor;
           51   56    10            service  Ljava/lang/String;
           52   56    12                 pn  Ljava/lang/String;
           59   64    10           provides  Ljava/lang/module/ModuleDescriptor$Provides;
           60   64    12                 pn  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/module/ResolvedModule;Ljava/util/Set<Ljava/lang/module/ResolvedModule;>;>;)V
    MethodParameters:
       Name  Flags
      graph  

  private void failTwoSuppliers(java.lang.module.ModuleDescriptor, java.lang.String, java.lang.module.ModuleDescriptor, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.ModuleDescriptor descriptor
        start local 2 // java.lang.String source
        start local 3 // java.lang.module.ModuleDescriptor supplier1
        start local 4 // java.lang.module.ModuleDescriptor supplier2
         0: .line 782
            aload 4 /* supplier2 */
            aload 1 /* descriptor */
            if_acmpne 4
         1: .line 783
            aload 3 /* supplier1 */
            astore 5 /* tmp */
        start local 5 // java.lang.module.ModuleDescriptor tmp
         2: .line 784
            aload 4 /* supplier2 */
            astore 3 /* supplier1 */
         3: .line 785
            aload 5 /* tmp */
            astore 4 /* supplier2 */
        end local 5 // java.lang.module.ModuleDescriptor tmp
         4: .line 788
      StackMap locals:
      StackMap stack:
            aload 3 /* supplier1 */
            aload 1 /* descriptor */
            if_acmpne 13
         5: .line 789
            ldc "Module %s contains package %s, module %s exports package %s to %s"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 791
            aload 1 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         7: .line 792
            aload 2 /* source */
            aastore
            dup
            iconst_2
         8: .line 793
            aload 4 /* supplier2 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_3
         9: .line 794
            aload 2 /* source */
            aastore
            dup
            iconst_4
        10: .line 795
            aload 1 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
        11: .line 789
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 796
            goto 19
        13: .line 797
      StackMap locals:
      StackMap stack:
            ldc "Modules %s and %s export package %s to module %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 798
            aload 3 /* supplier1 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        15: .line 799
            aload 4 /* supplier2 */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_2
        16: .line 800
            aload 2 /* source */
            aastore
            dup
            iconst_3
        17: .line 801
            aload 1 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
        18: .line 797
            invokestatic java.lang.module.Resolver.resolveFail:(Ljava/lang/String;[Ljava/lang/Object;)V
        19: .line 804
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.module.ModuleDescriptor supplier2
        end local 3 // java.lang.module.ModuleDescriptor supplier1
        end local 2 // java.lang.String source
        end local 1 // java.lang.module.ModuleDescriptor descriptor
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Ljava/lang/module/Resolver;
            0   20     1  descriptor  Ljava/lang/module/ModuleDescriptor;
            0   20     2      source  Ljava/lang/String;
            0   20     3   supplier1  Ljava/lang/module/ModuleDescriptor;
            0   20     4   supplier2  Ljava/lang/module/ModuleDescriptor;
            2    4     5         tmp  Ljava/lang/module/ModuleDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  
      source      
      supplier1   
      supplier2   

  private java.lang.module.ResolvedModule findInParent(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ResolvedModule;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.String mn
         0: .line 811
            aload 0 /* this */
            getfield java.lang.module.Resolver.parents:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.lang.module.Resolver java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.Configuration
            astore 2 /* parent */
        start local 2 // java.lang.module.Configuration parent
         2: .line 812
            aload 2 /* parent */
            aload 1 /* mn */
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 4 /* om */
        start local 4 // java.util.Optional om
         3: .line 813
            aload 4 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 5
         4: .line 814
            aload 4 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            areturn
        end local 4 // java.util.Optional om
        end local 2 // java.lang.module.Configuration parent
         5: .line 811
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 816
            aconst_null
            areturn
        end local 1 // java.lang.String mn
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/lang/module/Resolver;
            0    7     1      mn  Ljava/lang/String;
            2    5     2  parent  Ljava/lang/module/Configuration;
            3    5     4      om  Ljava/util/Optional<Ljava/lang/module/ResolvedModule;>;
    MethodParameters:
      Name  Flags
      mn    

  private java.lang.module.ModuleReference findWithBeforeFinder(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleReference;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.String mn
         0: .line 825
            aload 0 /* this */
            getfield java.lang.module.Resolver.beforeFinder:Ljava/lang/module/ModuleFinder;
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            areturn
        end local 1 // java.lang.String mn
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/Resolver;
            0    1     1    mn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mn    

  private java.lang.module.ModuleReference findWithAfterFinder(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleReference;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.String mn
         0: .line 833
            aload 0 /* this */
            getfield java.lang.module.Resolver.afterFinder:Ljava/lang/module/ModuleFinder;
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            areturn
        end local 1 // java.lang.String mn
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/module/Resolver;
            0    1     1    mn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mn    

  private java.util.Set<java.lang.module.ModuleReference> findAll();
    descriptor: ()Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 841
            aload 0 /* this */
            getfield java.lang.module.Resolver.beforeFinder:Ljava/lang/module/ModuleFinder;
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 1 /* beforeModules */
        start local 1 // java.util.Set beforeModules
         1: .line 842
            aload 0 /* this */
            getfield java.lang.module.Resolver.afterFinder:Ljava/lang/module/ModuleFinder;
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 2 /* afterModules */
        start local 2 // java.util.Set afterModules
         2: .line 844
            aload 2 /* afterModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 4
         3: .line 845
            aload 1 /* beforeModules */
            areturn
         4: .line 847
      StackMap locals: java.util.Set java.util.Set
      StackMap stack:
            aload 1 /* beforeModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 8
         5: .line 848
            aload 0 /* this */
            getfield java.lang.module.Resolver.parents:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 8
         6: .line 849
            aload 0 /* this */
            getfield java.lang.module.Resolver.parents:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
            if_acmpne 8
         7: .line 850
            aload 2 /* afterModules */
            areturn
         8: .line 852
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 1 /* beforeModules */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* result */
        start local 3 // java.util.Set result
         9: .line 853
            aload 2 /* afterModules */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 15
      StackMap locals: java.lang.module.Resolver java.util.Set java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        10: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
        11: .line 854
            aload 4 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
        12: .line 855
            aload 0 /* this */
            getfield java.lang.module.Resolver.beforeFinder:Ljava/lang/module/ModuleFinder;
            aload 6 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 15
        13: .line 856
            aload 0 /* this */
            aload 6 /* name */
            invokevirtual java.lang.module.Resolver.findInParent:(Ljava/lang/String;)Ljava/lang/module/ResolvedModule;
            ifnonnull 15
        14: .line 857
            aload 3 /* result */
            aload 4 /* mref */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String name
        end local 4 // java.lang.module.ModuleReference mref
        15: .line 853
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        16: .line 861
            aload 3 /* result */
            areturn
        end local 3 // java.util.Set result
        end local 2 // java.util.Set afterModules
        end local 1 // java.util.Set beforeModules
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Ljava/lang/module/Resolver;
            1   17     1  beforeModules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
            2   17     2   afterModules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
            9   17     3         result  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           11   15     4           mref  Ljava/lang/module/ModuleReference;
           12   15     6           name  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleReference;>;

  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 868
            aload 0 /* cn */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 869
            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 void findFail(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String fmt
        start local 1 // java.lang.Object[] args
         0: .line 876
            aload 0 /* fmt */
            aload 1 /* args */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         1: .line 877
            new java.lang.module.FindException
            dup
            aload 2 /* msg */
            invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String msg
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String fmt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   fmt  Ljava/lang/String;
            0    2     1  args  [Ljava/lang/Object;
            1    2     2   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fmt   
      args  

  private static void resolveFail(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String fmt
        start local 1 // java.lang.Object[] args
         0: .line 884
            aload 0 /* fmt */
            aload 1 /* args */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         1: .line 885
            new java.lang.module.ResolutionException
            dup
            aload 2 /* msg */
            invokespecial java.lang.module.ResolutionException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String msg
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String fmt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   fmt  Ljava/lang/String;
            0    2     1  args  [Ljava/lang/Object;
            1    2     2   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fmt   
      args  

  private boolean isTracing();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.Resolver this
         0: .line 893
            aload 0 /* this */
            getfield java.lang.module.Resolver.traceOutput:Ljava/io/PrintStream;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/module/Resolver;

  private void trace(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.String fmt
        start local 2 // java.lang.Object[] args
         0: .line 897
            aload 0 /* this */
            getfield java.lang.module.Resolver.traceOutput:Ljava/io/PrintStream;
            ifnull 3
         1: .line 898
            aload 0 /* this */
            getfield java.lang.module.Resolver.traceOutput:Ljava/io/PrintStream;
            aload 1 /* fmt */
            aload 2 /* args */
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         2: .line 899
            aload 0 /* this */
            getfield java.lang.module.Resolver.traceOutput:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         3: .line 901
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String fmt
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/module/Resolver;
            0    4     1   fmt  Ljava/lang/String;
            0    4     2  args  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      fmt   
      args  

  private java.lang.String nameAndInfo(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.module.Resolver this
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 904
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 2 /* descriptor */
        start local 2 // java.lang.module.ModuleDescriptor descriptor
         1: .line 905
            new java.lang.StringBuilder
            dup
            aload 2 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         2: .line 906
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            aload 3 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/module/Resolver.lambda$17(Ljava/lang/StringBuilder;Ljava/net/URI;)V (6)
                  (Ljava/net/URI;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
         3: .line 907
            aload 2 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 5
         4: .line 908
            aload 3 /* sb */
            ldc " automatic"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 909
      StackMap locals: java.lang.module.ModuleDescriptor java.lang.StringBuilder
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // java.lang.module.ModuleDescriptor descriptor
        end local 1 // java.lang.module.ModuleReference mref
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Ljava/lang/module/Resolver;
            0    6     1        mref  Ljava/lang/module/ModuleReference;
            1    6     2  descriptor  Ljava/lang/module/ModuleDescriptor;
            2    6     3          sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      mref  

  private void lambda$0(java.util.Deque, java.lang.module.ModuleDescriptor, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Deque;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleReference;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // java.lang.module.Resolver this
        start local 3 // java.lang.module.ModuleReference mref
         0: .line 162
            aload 3 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* other */
        start local 4 // java.lang.module.ModuleDescriptor other
         1: .line 163
            aload 1
            aload 4 /* other */
            invokeinterface java.util.Deque.offer:(Ljava/lang/Object;)Z
            pop
         2: .line 164
            aload 0 /* this */
            invokevirtual java.lang.module.Resolver.isTracing:()Z
            ifeq 4
         3: .line 165
            aload 0 /* this */
            ldc "%s requires %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aload 3 /* mref */
            invokevirtual java.lang.module.Resolver.nameAndInfo:(Ljava/lang/module/ModuleReference;)Ljava/lang/String;
            aastore
            invokevirtual java.lang.module.Resolver.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 4 // java.lang.module.ModuleDescriptor other
         4: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.module.ModuleReference mref
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/lang/module/Resolver;
            0    5     3   mref  Ljava/lang/module/ModuleReference;
            1    4     4  other  Ljava/lang/module/ModuleDescriptor;

  private static java.util.stream.Stream lambda$2(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.Configuration c
         0: .line 253
            aload 0 /* c */
            invokevirtual java.lang.module.Configuration.descriptors:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.module.Configuration c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  Ljava/lang/module/Configuration;

  private void lambda$3(java.util.Set, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Set;Ljava/lang/module/ModuleReference;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.module.Resolver this
        start local 2 // java.lang.module.ModuleReference mref
         0: .line 310
            aload 2 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 3 /* mn */
        start local 3 // java.lang.String mn
         1: .line 311
            aload 2 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 4
            aload 0 /* this */
            getfield java.lang.module.Resolver.nameToReference:Ljava/util/Map;
            aload 3 /* mn */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 312
            aload 0 /* this */
            aload 2 /* mref */
            invokevirtual java.lang.module.Resolver.addFoundModule:(Ljava/lang/module/ModuleReference;)V
         3: .line 313
            aload 1
            aload 2 /* mref */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String mn
         4: .line 315
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.module.ModuleReference mref
        end local 0 // java.lang.module.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/module/Resolver;
            0    5     2  mref  Ljava/lang/module/ModuleReference;
            1    4     3    mn  Ljava/lang/String;

  private static java.util.stream.Stream lambda$6(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.module.Configuration c
         0: .line 511
            aload 0 /* c */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* c */
            invokedynamic apply(Ljava/lang/module/Configuration;)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/Resolver.lambda$7(Ljava/lang/module/Configuration;Ljava/lang/module/ResolvedModule;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/module/ResolvedModule;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 521
            areturn
        end local 0 // java.lang.module.Configuration c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  Ljava/lang/module/Configuration;

  private static void lambda$16(java.util.Set, java.util.Set, java.lang.module.ResolvedModule);
    descriptor: (Ljava/util/Set;Ljava/util/Set;Ljava/lang/module/ResolvedModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // java.lang.module.ResolvedModule m
         0: .line 597
            aload 0
            aload 2 /* m */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 598
            aload 2 /* m */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 3
         2: .line 599
            aload 1
            aload 2 /* m */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 600
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.module.ResolvedModule m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2     m  Ljava/lang/module/ResolvedModule;

  private static void lambda$17(java.lang.StringBuilder, java.net.URI);
    descriptor: (Ljava/lang/StringBuilder;Ljava/net/URI;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // java.net.URI uri
         0: .line 906
            aload 0
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.net.URI uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   uri  Ljava/net/URI;

  private static java.util.stream.Stream lambda$7(java.lang.module.Configuration, java.lang.module.ResolvedModule);
    descriptor: (Ljava/lang/module/Configuration;Ljava/lang/module/ResolvedModule;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ResolvedModule m1
         0: .line 512
            aload 1 /* m1 */
            invokevirtual java.lang.module.ResolvedModule.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 513
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/module/Resolver.lambda$8(Ljava/lang/module/ModuleDescriptor$Requires;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 514
            aload 0
            invokedynamic apply(Ljava/lang/module/Configuration;)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/Resolver.lambda$9(Ljava/lang/module/Configuration;Ljava/lang/module/ModuleDescriptor$Requires;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 520
            aload 1 /* m1 */
            invokedynamic apply(Ljava/lang/module/ResolvedModule;)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/Resolver.lambda$10(Ljava/lang/module/ResolvedModule;Ljava/lang/module/ResolvedModule;)Ljava/util/Map$Entry; (6)
                  (Ljava/lang/module/ResolvedModule;)Ljava/util/Map$Entry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            areturn
        end local 1 // java.lang.module.ResolvedModule m1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1    m1  Ljava/lang/module/ResolvedModule;

  private static boolean lambda$8(java.lang.module.ModuleDescriptor$Requires);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Requires;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Requires r
         0: .line 513
            aload 0 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.TRANSITIVE:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Requires r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     r  Ljava/lang/module/ModuleDescriptor$Requires;

  private static java.util.stream.Stream lambda$9(java.lang.module.Configuration, java.lang.module.ModuleDescriptor$Requires);
    descriptor: (Ljava/lang/module/Configuration;Ljava/lang/module/ModuleDescriptor$Requires;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Requires r
         0: .line 515
            aload 0
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 2 /* m2 */
        start local 2 // java.util.Optional m2
         1: .line 516
            getstatic java.lang.module.Resolver.$assertionsDisabled:Z
            ifne 3
            aload 2 /* m2 */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 3
         2: .line 517
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.STATIC:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 518
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 2 /* m2 */
            invokevirtual java.util.Optional.stream:()Ljava/util/stream/Stream;
            areturn
        end local 2 // java.util.Optional m2
        end local 1 // java.lang.module.ModuleDescriptor$Requires r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     r  Ljava/lang/module/ModuleDescriptor$Requires;
            1    4     2    m2  Ljava/util/Optional<Ljava/lang/module/ResolvedModule;>;

  private static java.util.Map$Entry lambda$10(java.lang.module.ResolvedModule, java.lang.module.ResolvedModule);
    descriptor: (Ljava/lang/module/ResolvedModule;Ljava/lang/module/ResolvedModule;)Ljava/util/Map$Entry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ResolvedModule m2
         0: .line 520
            aload 0
            aload 1 /* m2 */
            invokestatic java.util.Map.entry:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
            areturn
        end local 1 // java.lang.module.ResolvedModule m2
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    m2  Ljava/lang/module/ResolvedModule;
}
SourceFile: "Resolver.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires
  public abstract Entry = java.util.Map$Entry of java.util.Map