public final class jdk.internal.module.ModuleBootstrap
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.module.ModuleBootstrap
  super_class: java.lang.Object
{
  private static final java.lang.String JAVA_BASE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.base"

  private static final java.lang.String ALL_DEFAULT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-DEFAULT"

  private static final java.lang.String ALL_UNNAMED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-UNNAMED"

  private static final java.lang.String ALL_SYSTEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-SYSTEM"

  private static final java.lang.String ALL_MODULE_PATH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-MODULE-PATH"

  private static final jdk.internal.access.JavaLangAccess JLA;
    descriptor: Ljdk/internal/access/JavaLangAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.access.JavaLangModuleAccess JLMA;
    descriptor: Ljdk/internal/access/JavaLangModuleAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.module.ModulePatcher patcher;
    descriptor: Ljdk/internal/module/ModulePatcher;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile java.lang.module.ModuleFinder unlimitedFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile java.lang.module.ModuleFinder limitedFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final java.lang.String ADD_MODULES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-modules"

  private static final java.lang.String ADD_EXPORTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-exports"

  private static final java.lang.String ADD_OPENS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-opens"

  private static final java.lang.String ADD_READS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-reads"

  private static final java.lang.String PATCH_MODULE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--patch-module"

  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 72
            ldc Ljdk/internal/module/ModuleBootstrap;
            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 jdk.internal.module.ModuleBootstrap.$assertionsDisabled:Z
         3: .line 90
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
            putstatic jdk.internal.module.ModuleBootstrap.JLA:Ljdk/internal/access/JavaLangAccess;
         4: .line 91
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangModuleAccess:()Ljdk/internal/access/JavaLangModuleAccess;
            putstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/access/JavaLangModuleAccess;
         5: .line 94
            invokestatic jdk.internal.module.ModuleBootstrap.initModulePatcher:()Ljdk/internal/module/ModulePatcher;
            putstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
         6: .line 994
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.module.ModuleBootstrap this
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.module.ModuleBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/module/ModuleBootstrap;

  public static jdk.internal.module.ModulePatcher patcher();
    descriptor: ()Ljdk/internal/module/ModulePatcher;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 100
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.module.ModuleFinder unlimitedFinder();
    descriptor: ()Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 115
            getstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 116
            aload 0 /* finder */
            ifnonnull 3
         2: .line 117
            invokestatic java.lang.module.ModuleFinder.ofSystem:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 119
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 0 /* finder */
            areturn
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  finder  Ljava/lang/module/ModuleFinder;

  public static java.lang.module.ModuleFinder limitedFinder();
    descriptor: ()Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 129
            getstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 130
            aload 0 /* finder */
            ifnonnull 3
         2: .line 131
            invokestatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 133
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 0 /* finder */
            areturn
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  finder  Ljava/lang/module/ModuleFinder;

  private static boolean canUseArchivedBootLayer();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 142
            ldc "jdk.module.upgrade.path"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         1: .line 143
            ldc "jdk.module.path"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         2: .line 144
            ldc "jdk.module.patch.0"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         3: .line 145
            ldc "jdk.module.main"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         4: .line 146
            ldc "jdk.module.addmods.0"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         5: .line 147
            ldc "jdk.module.limitmods"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         6: .line 148
            ldc "jdk.module.addreads.0"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         7: .line 149
            ldc "jdk.module.addexports.0"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         8: .line 150
            ldc "jdk.module.addopens.0"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
         9: .line 151
            ldc "jdk.module.illegalAccess"
            invokestatic jdk.internal.module.ModuleBootstrap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 11
        10: .line 142
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.ModuleLayer boot();
    descriptor: ()Ljava/lang/ModuleLayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 162
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.start:()V
         1: .line 165
            invokestatic jdk.internal.module.ArchivedBootLayer.get:()Ljdk/internal/module/ArchivedBootLayer;
            astore 1 /* archivedBootLayer */
        start local 1 // jdk.internal.module.ArchivedBootLayer archivedBootLayer
         2: .line 166
            aload 1 /* archivedBootLayer */
            ifnull 9
         3: .line 167
            getstatic jdk.internal.module.ModuleBootstrap.$assertionsDisabled:Z
            ifne 4
            invokestatic jdk.internal.module.ModuleBootstrap.canUseArchivedBootLayer:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 168
      StackMap locals: top jdk.internal.module.ArchivedBootLayer
      StackMap stack:
            aload 1 /* archivedBootLayer */
            invokevirtual jdk.internal.module.ArchivedBootLayer.bootLayer:()Ljava/lang/ModuleLayer;
            astore 0 /* bootLayer */
        start local 0 // java.lang.ModuleLayer bootLayer
         5: .line 169
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            pop
         6: .line 170
            invokestatic jdk.internal.loader.ClassLoaders.platformClassLoader:()Ljava/lang/ClassLoader;
            invokestatic jdk.internal.loader.ClassLoaders.appClassLoader:()Ljava/lang/ClassLoader;
            invokestatic jdk.internal.misc.CDS.defineArchivedModules:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)V
         7: .line 174
            getstatic jdk.internal.module.ModuleBootstrap.JLA:Ljdk/internal/access/JavaLangAccess;
            aload 0 /* bootLayer */
            invokestatic jdk.internal.loader.ClassLoaders.appClassLoader:()Ljava/lang/ClassLoader;
            invokeinterface jdk.internal.access.JavaLangAccess.bindToLoader:(Ljava/lang/ModuleLayer;Ljava/lang/ClassLoader;)V
         8: .line 175
            goto 10
        end local 0 // java.lang.ModuleLayer bootLayer
         9: .line 176
      StackMap locals:
      StackMap stack:
            invokestatic jdk.internal.module.ModuleBootstrap.boot2:()Ljava/lang/ModuleLayer;
            astore 0 /* bootLayer */
        start local 0 // java.lang.ModuleLayer bootLayer
        10: .line 179
      StackMap locals: java.lang.ModuleLayer jdk.internal.module.ArchivedBootLayer
      StackMap stack:
            ldc "jdk.module.boot.totalTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.publish:(Ljava/lang/String;)V
        11: .line 180
            aload 0 /* bootLayer */
            areturn
        end local 1 // jdk.internal.module.ArchivedBootLayer archivedBootLayer
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            5    9     0          bootLayer  Ljava/lang/ModuleLayer;
           10   12     0          bootLayer  Ljava/lang/ModuleLayer;
            2   12     1  archivedBootLayer  Ljdk/internal/module/ArchivedBootLayer;

  private static java.lang.ModuleLayer boot2();
    descriptor: ()Ljava/lang/ModuleLayer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=29, args_size=0
         0: .line 186
            ldc "jdk.module.upgrade.path"
            invokestatic jdk.internal.module.ModuleBootstrap.finderFor:(Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
            astore 0 /* upgradeModulePath */
        start local 0 // java.lang.module.ModuleFinder upgradeModulePath
         1: .line 187
            ldc "jdk.module.path"
            invokestatic jdk.internal.module.ModuleBootstrap.finderFor:(Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
            astore 1 /* appModulePath */
        start local 1 // java.lang.module.ModuleFinder appModulePath
         2: .line 188
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.hasPatches:()Z
            istore 2 /* isPatched */
        start local 2 // boolean isPatched
         3: .line 189
            ldc "jdk.module.main"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* mainModule */
        start local 3 // java.lang.String mainModule
         4: .line 190
            invokestatic jdk.internal.module.ModuleBootstrap.addModules:()Ljava/util/Set;
            astore 4 /* addModules */
        start local 4 // java.util.Set addModules
         5: .line 191
            invokestatic jdk.internal.module.ModuleBootstrap.limitModules:()Ljava/util/Set;
            astore 5 /* limitModules */
        start local 5 // java.util.Set limitModules
         6: .line 192
            ldc "jdk.module.illegalAccess"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* illegalAccess */
        start local 6 // java.lang.String illegalAccess
         7: .line 194
            aconst_null
            astore 7 /* traceOutput */
        start local 7 // java.io.PrintStream traceOutput
         8: .line 195
            ldc "jdk.module.showModuleResolution"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* trace */
        start local 8 // java.lang.String trace
         9: .line 196
            aload 8 /* trace */
            ifnull 11
            aload 8 /* trace */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 197
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            astore 7 /* traceOutput */
        11: .line 199
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String
      StackMap stack:
            ldc "jdk.module.boot.0.commandLineTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
        12: .line 207
            aconst_null
            astore 9 /* systemModules */
        start local 9 // jdk.internal.module.SystemModules systemModules
        13: .line 210
            aload 1 /* appModulePath */
            ifnonnull 14
            aload 0 /* upgradeModulePath */
            ifnonnull 14
            iconst_0
            goto 15
      StackMap locals: jdk.internal.module.SystemModules
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 11 /* haveModulePath */
        start local 11 // boolean haveModulePath
        16: .line 211
            iconst_1
            istore 12 /* needResolution */
        start local 12 // boolean needResolution
        17: .line 212
            iconst_0
            istore 13 /* canArchive */
        start local 13 // boolean canArchive
        18: .line 219
            aload 3 /* mainModule */
            invokestatic jdk.internal.module.ArchivedModuleGraph.get:(Ljava/lang/String;)Ljdk/internal/module/ArchivedModuleGraph;
            astore 16 /* archivedModuleGraph */
        start local 16 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        19: .line 220
            aload 16 /* archivedModuleGraph */
            ifnull 32
        20: .line 221
            iload 11 /* haveModulePath */
            ifne 32
        21: .line 222
            aload 4 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 32
        22: .line 223
            aload 5 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 32
        23: .line 224
            iload 2 /* isPatched */
            ifne 32
        24: .line 225
            aload 6 /* illegalAccess */
            ifnonnull 32
        25: .line 226
            aload 16 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.finder:()Ljava/lang/module/ModuleFinder;
            astore 10 /* systemModuleFinder */
        start local 10 // java.lang.module.ModuleFinder systemModuleFinder
        26: .line 227
            aload 16 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.hasSplitPackages:()Z
            istore 14 /* hasSplitPackages */
        start local 14 // boolean hasSplitPackages
        27: .line 228
            aload 16 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.hasIncubatorModules:()Z
            istore 15 /* hasIncubatorModules */
        start local 15 // boolean hasIncubatorModules
        28: .line 229
            aload 7 /* traceOutput */
            ifnull 29
            iconst_1
            goto 30
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
        29: iconst_0
      StackMap locals:
      StackMap stack: int
        30: istore 12 /* needResolution */
        31: .line 230
            goto 49
        end local 15 // boolean hasIncubatorModules
        end local 14 // boolean hasSplitPackages
        end local 10 // java.lang.module.ModuleFinder systemModuleFinder
        32: .line 231
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules top int int int top top jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            iload 11 /* haveModulePath */
            ifne 39
            aload 4 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 39
            aload 5 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 39
        33: .line 232
            aload 3 /* mainModule */
            invokestatic jdk.internal.module.SystemModuleFinders.systemModules:(Ljava/lang/String;)Ljdk/internal/module/SystemModules;
            astore 9 /* systemModules */
        34: .line 233
            aload 9 /* systemModules */
            ifnull 39
            iload 2 /* isPatched */
            ifne 39
        35: .line 234
            aload 7 /* traceOutput */
            ifnull 36
            iconst_1
            goto 37
      StackMap locals:
      StackMap stack:
        36: iconst_0
      StackMap locals:
      StackMap stack: int
        37: istore 12 /* needResolution */
        38: .line 235
            iconst_1
            istore 13 /* canArchive */
        39: .line 238
      StackMap locals:
      StackMap stack:
            aload 9 /* systemModules */
            ifnonnull 41
        40: .line 240
            invokestatic jdk.internal.module.SystemModuleFinders.allSystemModules:()Ljdk/internal/module/SystemModules;
            astore 9 /* systemModules */
        41: .line 242
      StackMap locals:
      StackMap stack:
            aload 9 /* systemModules */
            ifnull 44
        42: .line 244
            aload 9 /* systemModules */
            invokestatic jdk.internal.module.SystemModuleFinders.of:(Ljdk/internal/module/SystemModules;)Ljava/lang/module/ModuleFinder;
            astore 10 /* systemModuleFinder */
        start local 10 // java.lang.module.ModuleFinder systemModuleFinder
        43: .line 245
            goto 46
        end local 10 // java.lang.module.ModuleFinder systemModuleFinder
        44: .line 247
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.ExplodedSystemModules
            dup
            invokespecial jdk.internal.module.ExplodedSystemModules.<init>:()V
            astore 9 /* systemModules */
        45: .line 248
            invokestatic jdk.internal.module.SystemModuleFinders.ofSystem:()Ljava/lang/module/ModuleFinder;
            astore 10 /* systemModuleFinder */
        start local 10 // java.lang.module.ModuleFinder systemModuleFinder
        46: .line 251
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int top top jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            aload 9 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasSplitPackages:()Z
            istore 14 /* hasSplitPackages */
        start local 14 // boolean hasSplitPackages
        47: .line 252
            aload 9 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasIncubatorModules:()Z
            istore 15 /* hasIncubatorModules */
        start local 15 // boolean hasIncubatorModules
        48: .line 254
            aconst_null
            astore 16 /* archivedModuleGraph */
        49: .line 257
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            ldc "jdk.module.boot.1.systemModulesTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
        50: .line 264
            aload 10 /* systemModuleFinder */
            ldc "java.base"
            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
            astore 17 /* base */
        start local 17 // java.lang.module.ModuleReference base
        51: .line 265
            aload 17 /* base */
            ifnonnull 53
        52: .line 266
            new java.lang.InternalError
            dup
            ldc "java.base not found"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        53: .line 267
      StackMap locals: java.lang.module.ModuleReference
      StackMap stack:
            aload 17 /* base */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.URI
            astore 18 /* baseUri */
        start local 18 // java.net.URI baseUri
        54: .line 268
            aload 18 /* baseUri */
            ifnonnull 56
        55: .line 269
            new java.lang.InternalError
            dup
            ldc "java.base does not have a location"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        56: .line 270
      StackMap locals: java.net.URI
      StackMap stack:
            aload 17 /* base */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        57: .line 271
            aconst_null
            aload 17 /* base */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            aload 18 /* baseUri */
            invokestatic jdk.internal.module.Modules.defineModule:(Ljava/lang/ClassLoader;Ljava/lang/module/ModuleDescriptor;Ljava/net/URI;)Ljava/lang/Module;
            pop
        58: .line 275
            ldc "jdk.module.validation"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 62
        59: .line 276
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic jdk.internal.module.ModulePathValidator.scanAllModules:(Ljava/io/PrintStream;)I
            istore 19 /* errors */
        start local 19 // int errors
        60: .line 277
            iload 19 /* errors */
            ifle 62
        61: .line 278
            ldc "Validation of module path failed"
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 19 // int errors
        62: .line 282
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.2.defineBaseTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
        63: .line 287
            aconst_null
            astore 19 /* savedModuleFinder */
        start local 19 // java.lang.module.ModuleFinder savedModuleFinder
        64: .line 290
            iload 12 /* needResolution */
            ifeq 115
        65: .line 293
            aload 0 /* upgradeModulePath */
            ifnull 69
        66: .line 294
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 0 /* upgradeModulePath */
            aastore
            dup
            iconst_1
        67: .line 295
            aload 10 /* systemModuleFinder */
            aastore
        68: .line 294
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 10 /* systemModuleFinder */
        69: .line 298
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 1 /* appModulePath */
            ifnull 72
        70: .line 299
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 10 /* systemModuleFinder */
            aastore
            dup
            iconst_1
            aload 1 /* appModulePath */
            aastore
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 20 /* finder */
        start local 20 // java.lang.module.ModuleFinder finder
        71: .line 300
            goto 73
        end local 20 // java.lang.module.ModuleFinder finder
        72: .line 301
      StackMap locals:
      StackMap stack:
            aload 10 /* systemModuleFinder */
            astore 20 /* finder */
        start local 20 // java.lang.module.ModuleFinder finder
        73: .line 305
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 21 /* roots */
        start local 21 // java.util.Set roots
        74: .line 308
            aload 3 /* mainModule */
            ifnull 76
        75: .line 309
            aload 21 /* roots */
            aload 3 /* mainModule */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        76: .line 312
      StackMap locals: java.util.Set
      StackMap stack:
            iconst_0
            istore 22 /* addAllDefaultModules */
        start local 22 // boolean addAllDefaultModules
        77: .line 313
            iconst_0
            istore 23 /* addAllSystemModules */
        start local 23 // boolean addAllSystemModules
        78: .line 314
            iconst_0
            istore 24 /* addAllApplicationModules */
        start local 24 // boolean addAllApplicationModules
        79: .line 315
            aload 4 /* addModules */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 26
            goto 92
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int top java.util.Iterator
      StackMap stack:
        80: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 25 /* mod */
        start local 25 // java.lang.String mod
        81: .line 316
            aload 25 /* mod */
            dup
            astore 27
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1057501189: 82
            564408789: 83
           1070226586: 84
              default: 91
          }
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
        82: aload 27
            ldc "ALL-SYSTEM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 87
            goto 91
      StackMap locals:
      StackMap stack:
        83: aload 27
            ldc "ALL-DEFAULT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
            goto 91
      StackMap locals:
      StackMap stack:
        84: aload 27
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 89
            goto 91
        85: .line 318
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 22 /* addAllDefaultModules */
        86: .line 319
            goto 92
        87: .line 321
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 23 /* addAllSystemModules */
        88: .line 322
            goto 92
        89: .line 324
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 24 /* addAllApplicationModules */
        90: .line 325
            goto 92
        91: .line 327
      StackMap locals:
      StackMap stack:
            aload 21 /* roots */
            aload 25 /* mod */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // java.lang.String mod
        92: .line 315
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int top java.util.Iterator
      StackMap stack:
            aload 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 80
        93: .line 332
            aload 20 /* finder */
            astore 19 /* savedModuleFinder */
        94: .line 333
            aload 5 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 96
        95: .line 334
            aload 20 /* finder */
            aload 5 /* limitModules */
            aload 21 /* roots */
            invokestatic jdk.internal.module.ModuleBootstrap.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 20 /* finder */
        96: .line 343
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int
      StackMap stack:
            aload 3 /* mainModule */
            ifnull 97
            iload 22 /* addAllDefaultModules */
            ifeq 98
        97: .line 344
      StackMap locals:
      StackMap stack:
            aload 21 /* roots */
            aload 10 /* systemModuleFinder */
            aload 20 /* finder */
            invokestatic jdk.internal.module.DefaultRoots.compute:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        98: .line 349
      StackMap locals:
      StackMap stack:
            iload 23 /* addAllSystemModules */
            ifeq 106
        99: .line 350
            aload 20 /* finder */
            astore 25 /* f */
        start local 25 // java.lang.module.ModuleFinder f
       100: .line 351
            aload 10 /* systemModuleFinder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       101: .line 352
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       102: .line 353
            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/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
       103: .line 354
            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;
       104: .line 355
            aload 25 /* f */
            invokedynamic test(Ljava/lang/module/ModuleFinder;)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
                  jdk/internal/module/ModuleBootstrap.lambda$2(Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       105: .line 356
            aload 21 /* roots */
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/internal/module/ModuleBootstrap.lambda$3(Ljava/util/Set;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 25 // java.lang.module.ModuleFinder f
       106: .line 361
      StackMap locals:
      StackMap stack:
            aload 1 /* appModulePath */
            ifnull 117
            iload 24 /* addAllApplicationModules */
            ifeq 117
       107: .line 362
            aload 20 /* finder */
            astore 25 /* f */
        start local 25 // java.lang.module.ModuleFinder f
       108: .line 363
            aload 1 /* appModulePath */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       109: .line 364
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       110: .line 365
            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/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
       111: .line 366
            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;
       112: .line 367
            aload 25 /* f */
            invokedynamic test(Ljava/lang/module/ModuleFinder;)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
                  jdk/internal/module/ModuleBootstrap.lambda$6(Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       113: .line 368
            aload 21 /* roots */
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/internal/module/ModuleBootstrap.lambda$7(Ljava/util/Set;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 25 // java.lang.module.ModuleFinder f
        end local 24 // boolean addAllApplicationModules
        end local 23 // boolean addAllSystemModules
        end local 22 // boolean addAllDefaultModules
       114: .line 370
            goto 117
        end local 21 // java.util.Set roots
        end local 20 // java.lang.module.ModuleFinder finder
       115: .line 372
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder
      StackMap stack:
            aload 10 /* systemModuleFinder */
            astore 20 /* finder */
        start local 20 // java.lang.module.ModuleFinder finder
       116: .line 373
            aconst_null
            astore 21 /* roots */
        start local 21 // java.util.Set roots
       117: .line 376
      StackMap locals: java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            ldc "jdk.module.boot.3.optionsAndRootsTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       118: .line 384
            iload 12 /* needResolution */
            ifeq 121
       119: .line 385
            aload 20 /* finder */
            aload 21 /* roots */
            aload 7 /* traceOutput */
            invokestatic jdk.internal.module.Modules.newBootLayerConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Collection;Ljava/io/PrintStream;)Ljava/lang/module/Configuration;
            astore 22 /* cf */
        start local 22 // java.lang.module.Configuration cf
       120: .line 386
            goto 126
        end local 22 // java.lang.module.Configuration cf
       121: .line 387
      StackMap locals:
      StackMap stack:
            aload 16 /* archivedModuleGraph */
            ifnull 124
       122: .line 388
            aload 16 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.configuration:()Ljava/lang/module/Configuration;
            astore 22 /* cf */
        start local 22 // java.lang.module.Configuration cf
       123: .line 389
            goto 126
        end local 22 // java.lang.module.Configuration cf
       124: .line 390
      StackMap locals:
      StackMap stack:
            aload 9 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.moduleReads:()Ljava/util/Map;
            astore 23 /* map */
        start local 23 // java.util.Map map
       125: .line 391
            getstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/access/JavaLangModuleAccess;
            aload 10 /* systemModuleFinder */
            aload 23 /* map */
            invokeinterface jdk.internal.access.JavaLangModuleAccess.newConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Map;)Ljava/lang/module/Configuration;
            astore 22 /* cf */
        end local 23 // java.util.Map map
        start local 22 // java.lang.module.Configuration cf
       126: .line 396
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            iload 2 /* isPatched */
            ifeq 131
       127: .line 397
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.patchedModules:()Ljava/util/Set;
       128: .line 398
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       129: .line 399
            aload 22 /* cf */
            invokedynamic test(Ljava/lang/module/Configuration;)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
                  jdk/internal/module/ModuleBootstrap.lambda$8(Ljava/lang/module/Configuration;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       130: .line 400
            invokedynamic accept()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
                  jdk/internal/module/ModuleBootstrap.lambda$9(Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
       131: .line 403
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.4.resolveTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       132: .line 414
            aload 16 /* archivedModuleGraph */
            ifnull 135
       133: .line 415
            aload 16 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.classLoaderFunction:()Ljava/util/function/Function;
            astore 23 /* clf */
        start local 23 // java.util.function.Function clf
       134: .line 416
            goto 136
        end local 23 // java.util.function.Function clf
       135: .line 417
      StackMap locals:
      StackMap stack:
            aload 22 /* cf */
            invokestatic jdk.internal.module.ModuleLoaderMap.mappingFunction:(Ljava/lang/module/Configuration;)Ljava/util/function/Function;
            astore 23 /* clf */
        start local 23 // java.util.function.Function clf
       136: .line 422
      StackMap locals: java.util.function.Function
      StackMap stack:
            iload 11 /* haveModulePath */
            ifeq 149
       137: .line 423
            aload 22 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 25
            goto 148
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
       138: aload 25
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 24 /* resolvedModule */
        start local 24 // java.lang.module.ResolvedModule resolvedModule
       139: .line 424
            aload 24 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 26 /* mref */
        start local 26 // java.lang.module.ModuleReference mref
       140: .line 425
            aload 26 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 27 /* name */
        start local 27 // java.lang.String name
       141: .line 426
            aload 23 /* clf */
            aload 27 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 28 /* cl */
        start local 28 // java.lang.ClassLoader cl
       142: .line 427
            aload 28 /* cl */
            ifnonnull 148
       143: .line 428
            aload 0 /* upgradeModulePath */
            ifnull 146
       144: .line 429
            aload 0 /* upgradeModulePath */
            aload 27 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 146
       145: .line 430
            new java.lang.StringBuilder
            dup
            aload 27 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot be loaded from upgrade module path"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
       146: .line 431
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 10 /* systemModuleFinder */
            aload 27 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 148
       147: .line 432
            new java.lang.StringBuilder
            dup
            aload 27 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot be loaded from application module path"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 28 // java.lang.ClassLoader cl
        end local 27 // java.lang.String name
        end local 26 // java.lang.module.ModuleReference mref
        end local 24 // java.lang.module.ResolvedModule resolvedModule
       148: .line 423
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
            aload 25
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 138
       149: .line 438
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.lang.String java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function
      StackMap stack:
            iload 14 /* hasSplitPackages */
            ifne 150
            iload 2 /* isPatched */
            ifne 150
            iload 11 /* haveModulePath */
            ifeq 151
       150: .line 439
      StackMap locals:
      StackMap stack:
            aload 22 /* cf */
            aload 23 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkSplitPackages:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       151: .line 443
      StackMap locals:
      StackMap stack:
            aload 22 /* cf */
            aload 23 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.loadModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       152: .line 444
            ldc "jdk.module.boot.5.loadModulesTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       153: .line 448
            invokestatic java.lang.ModuleLayer.empty:()Ljava/lang/ModuleLayer;
            aload 22 /* cf */
            aload 23 /* clf */
            invokevirtual java.lang.ModuleLayer.defineModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)Ljava/lang/ModuleLayer;
            astore 24 /* bootLayer */
        start local 24 // java.lang.ModuleLayer bootLayer
       154: .line 449
            ldc "jdk.module.boot.6.layerCreateTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       155: .line 454
            iload 15 /* hasIncubatorModules */
            ifne 156
            iload 11 /* haveModulePath */
            ifeq 157
       156: .line 455
      StackMap locals: java.lang.ModuleLayer
      StackMap stack:
            aload 22 /* cf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkIncubatingStatus:(Ljava/lang/module/Configuration;)V
       157: .line 459
      StackMap locals:
      StackMap stack:
            aload 24 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraReads:(Ljava/lang/ModuleLayer;)V
       158: .line 460
            aload 24 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsAndOpens:(Ljava/lang/ModuleLayer;)Z
            istore 25 /* extraExportsOrOpens */
        start local 25 // boolean extraExportsOrOpens
       159: .line 462
            aload 6 /* illegalAccess */
            ifnull 167
       160: .line 463
            getstatic jdk.internal.module.ModuleBootstrap.$assertionsDisabled:Z
            ifne 161
            aload 9 /* systemModules */
            ifnonnull 161
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       161: .line 464
      StackMap locals: int
      StackMap stack:
            aload 6 /* illegalAccess */
       162: .line 465
            aload 9 /* systemModules */
       163: .line 466
            aload 0 /* upgradeModulePath */
       164: .line 467
            aload 24 /* bootLayer */
       165: .line 468
            iload 25 /* extraExportsOrOpens */
       166: .line 464
            invokestatic jdk.internal.module.ModuleBootstrap.addIllegalAccess:(Ljava/lang/String;Ljdk/internal/module/SystemModules;Ljava/lang/module/ModuleFinder;Ljava/lang/ModuleLayer;Z)V
       167: .line 471
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.7.adjustModulesTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       168: .line 474
            aload 19 /* savedModuleFinder */
            ifnull 172
       169: .line 475
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 19 /* savedModuleFinder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
       170: .line 476
            aload 19 /* savedModuleFinder */
            aload 20 /* finder */
            if_acmpeq 172
       171: .line 477
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 20 /* finder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
       172: .line 482
      StackMap locals:
      StackMap stack:
            iload 13 /* canArchive */
            ifeq 181
            aload 3 /* mainModule */
            ifnonnull 181
       173: .line 483
            iload 14 /* hasSplitPackages */
       174: .line 484
            iload 15 /* hasIncubatorModules */
       175: .line 485
            aload 10 /* systemModuleFinder */
       176: .line 486
            aload 22 /* cf */
       177: .line 487
            aload 23 /* clf */
       178: .line 483
            invokestatic jdk.internal.module.ArchivedModuleGraph.archive:(ZZLjava/lang/module/ModuleFinder;Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       179: .line 488
            iload 14 /* hasSplitPackages */
            ifne 181
            iload 15 /* hasIncubatorModules */
            ifne 181
       180: .line 489
            aload 24 /* bootLayer */
            invokestatic jdk.internal.module.ArchivedBootLayer.archive:(Ljava/lang/ModuleLayer;)V
       181: .line 493
      StackMap locals:
      StackMap stack:
            aload 24 /* bootLayer */
            areturn
        end local 25 // boolean extraExportsOrOpens
        end local 24 // java.lang.ModuleLayer bootLayer
        end local 23 // java.util.function.Function clf
        end local 22 // java.lang.module.Configuration cf
        end local 21 // java.util.Set roots
        end local 20 // java.lang.module.ModuleFinder finder
        end local 19 // java.lang.module.ModuleFinder savedModuleFinder
        end local 18 // java.net.URI baseUri
        end local 17 // java.lang.module.ModuleReference base
        end local 16 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        end local 15 // boolean hasIncubatorModules
        end local 14 // boolean hasSplitPackages
        end local 13 // boolean canArchive
        end local 12 // boolean needResolution
        end local 11 // boolean haveModulePath
        end local 10 // java.lang.module.ModuleFinder systemModuleFinder
        end local 9 // jdk.internal.module.SystemModules systemModules
        end local 8 // java.lang.String trace
        end local 7 // java.io.PrintStream traceOutput
        end local 6 // java.lang.String illegalAccess
        end local 5 // java.util.Set limitModules
        end local 4 // java.util.Set addModules
        end local 3 // java.lang.String mainModule
        end local 2 // boolean isPatched
        end local 1 // java.lang.module.ModuleFinder appModulePath
        end local 0 // java.lang.module.ModuleFinder upgradeModulePath
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            1  182     0         upgradeModulePath  Ljava/lang/module/ModuleFinder;
            2  182     1             appModulePath  Ljava/lang/module/ModuleFinder;
            3  182     2                 isPatched  Z
            4  182     3                mainModule  Ljava/lang/String;
            5  182     4                addModules  Ljava/util/Set<Ljava/lang/String;>;
            6  182     5              limitModules  Ljava/util/Set<Ljava/lang/String;>;
            7  182     6             illegalAccess  Ljava/lang/String;
            8  182     7               traceOutput  Ljava/io/PrintStream;
            9  182     8                     trace  Ljava/lang/String;
           13  182     9             systemModules  Ljdk/internal/module/SystemModules;
           26   32    10        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           43   44    10        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           46  182    10        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           16  182    11            haveModulePath  Z
           17  182    12            needResolution  Z
           18  182    13                canArchive  Z
           27   32    14          hasSplitPackages  Z
           47  182    14          hasSplitPackages  Z
           28   32    15       hasIncubatorModules  Z
           48  182    15       hasIncubatorModules  Z
           19  182    16       archivedModuleGraph  Ljdk/internal/module/ArchivedModuleGraph;
           51  182    17                      base  Ljava/lang/module/ModuleReference;
           54  182    18                   baseUri  Ljava/net/URI;
           60   62    19                    errors  I
           64  182    19         savedModuleFinder  Ljava/lang/module/ModuleFinder;
           71   72    20                    finder  Ljava/lang/module/ModuleFinder;
           73  115    20                    finder  Ljava/lang/module/ModuleFinder;
          116  182    20                    finder  Ljava/lang/module/ModuleFinder;
           74  115    21                     roots  Ljava/util/Set<Ljava/lang/String;>;
          117  182    21                     roots  Ljava/util/Set<Ljava/lang/String;>;
           77  114    22      addAllDefaultModules  Z
           78  114    23       addAllSystemModules  Z
           79  114    24  addAllApplicationModules  Z
           81   92    25                       mod  Ljava/lang/String;
          100  106    25                         f  Ljava/lang/module/ModuleFinder;
          108  114    25                         f  Ljava/lang/module/ModuleFinder;
          120  121    22                        cf  Ljava/lang/module/Configuration;
          123  124    22                        cf  Ljava/lang/module/Configuration;
          126  182    22                        cf  Ljava/lang/module/Configuration;
          125  126    23                       map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          134  135    23                       clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
          136  182    23                       clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
          139  148    24            resolvedModule  Ljava/lang/module/ResolvedModule;
          140  148    26                      mref  Ljava/lang/module/ModuleReference;
          141  148    27                      name  Ljava/lang/String;
          142  148    28                        cl  Ljava/lang/ClassLoader;
          154  182    24                 bootLayer  Ljava/lang/ModuleLayer;
          159  182    25       extraExportsOrOpens  Z

  private static void loadModules(java.lang.module.Configuration, java.util.function.Function<java.lang.String, java.lang.ClassLoader>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.module.Configuration cf
        start local 1 // java.util.function.Function clf
         0: .line 501
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 2 /* resolvedModule */
        start local 2 // java.lang.module.ResolvedModule resolvedModule
         2: .line 502
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
         3: .line 503
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         4: .line 504
            aload 1 /* clf */
            aload 5 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 6 /* loader */
        start local 6 // java.lang.ClassLoader loader
         5: .line 505
            aload 6 /* loader */
            ifnonnull 9
         6: .line 507
            aload 5 /* name */
            ldc "java.base"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         7: .line 508
            aload 4 /* mref */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
         8: .line 510
            goto 11
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String java.lang.ClassLoader
      StackMap stack:
         9: aload 6 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 11
        10: .line 511
            aload 6 /* loader */
            checkcast jdk.internal.loader.BuiltinClassLoader
            aload 4 /* mref */
            invokevirtual jdk.internal.loader.BuiltinClassLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        end local 6 // java.lang.ClassLoader loader
        end local 5 // java.lang.String name
        end local 4 // java.lang.module.ModuleReference mref
        end local 2 // java.lang.module.ResolvedModule resolvedModule
        11: .line 501
      StackMap locals: java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        12: .line 514
            return
        end local 1 // java.util.function.Function clf
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0              cf  Ljava/lang/module/Configuration;
            0   13     1             clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
            2   11     2  resolvedModule  Ljava/lang/module/ResolvedModule;
            3   11     4            mref  Ljava/lang/module/ModuleReference;
            4   11     5            name  Ljava/lang/String;
            5   11     6          loader  Ljava/lang/ClassLoader;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;)V
    MethodParameters:
      Name  Flags
      cf    
      clf   

  private static void checkSplitPackages(java.lang.module.Configuration, java.util.function.Function<java.lang.String, java.lang.ClassLoader>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=12, args_size=2
        start local 0 // java.lang.module.Configuration cf
        start local 1 // java.util.function.Function clf
         0: .line 522
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* packageToModule */
        start local 2 // java.util.Map packageToModule
         1: .line 523
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 3 /* resolvedModule */
        start local 3 // java.lang.module.ResolvedModule resolvedModule
         3: .line 524
            aload 3 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 5 /* descriptor */
        start local 5 // java.lang.module.ModuleDescriptor descriptor
         4: .line 525
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 526
            aload 1 /* clf */
            aload 6 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 7 /* loader */
        start local 7 // java.lang.ClassLoader loader
         6: .line 527
            aload 7 /* loader */
            ifnull 7
            aload 7 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 16
         7: .line 528
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         8: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* p */
        start local 8 // java.lang.String p
         9: .line 529
            aload 2 /* packageToModule */
            aload 8 /* p */
            aload 6 /* name */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* other */
        start local 10 // java.lang.String other
        10: .line 530
            aload 10 /* other */
            ifnull 15
        11: .line 531
            new java.lang.StringBuilder
            dup
            ldc "Package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in both module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 532
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " and module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* other */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 531
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* msg */
        start local 11 // java.lang.String msg
        14: .line 533
            new java.lang.LayerInstantiationException
            dup
            aload 11 /* msg */
            invokespecial java.lang.LayerInstantiationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.String msg
        end local 10 // java.lang.String other
        end local 8 // java.lang.String p
        15: .line 528
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 7 // java.lang.ClassLoader loader
        end local 6 // java.lang.String name
        end local 5 // java.lang.module.ModuleDescriptor descriptor
        end local 3 // java.lang.module.ResolvedModule resolvedModule
        16: .line 523
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        17: .line 538
            return
        end local 2 // java.util.Map packageToModule
        end local 1 // java.util.function.Function clf
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0               cf  Ljava/lang/module/Configuration;
            0   18     1              clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
            1   18     2  packageToModule  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   16     3   resolvedModule  Ljava/lang/module/ResolvedModule;
            4   16     5       descriptor  Ljava/lang/module/ModuleDescriptor;
            5   16     6             name  Ljava/lang/String;
            6   16     7           loader  Ljava/lang/ClassLoader;
            9   15     8                p  Ljava/lang/String;
           10   15    10            other  Ljava/lang/String;
           14   15    11              msg  Ljava/lang/String;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;)V
    MethodParameters:
      Name  Flags
      cf    
      clf   

  private static java.lang.module.ModuleFinder limitFinder(java.lang.module.ModuleFinder, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.module.ModuleFinder finder
        start local 1 // java.util.Set roots
        start local 2 // java.util.Set otherMods
         0: .line 549
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         1: .line 550
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         2: .line 551
            aload 1 /* roots */
         3: .line 549
            invokevirtual java.lang.module.Configuration.resolve:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;Ljava/util/Collection;)Ljava/lang/module/Configuration;
            astore 3 /* cf */
        start local 3 // java.lang.module.Configuration cf
         4: .line 554
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         5: .line 557
            aload 3 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         6: .line 558
            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/ResolvedModule.reference()Ljava/lang/module/ModuleReference; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/module/ModuleReference;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         7: .line 559
            aload 4 /* map */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/internal/module/ModuleBootstrap.lambda$11(Ljava/util/Map;Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         8: .line 562
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 563
            aload 0 /* finder */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/lang/module/ModuleFinder;)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/ModuleFinder.find(Ljava/lang/String;)Ljava/util/Optional; (9 itf)
                  (Ljava/lang/String;)Ljava/util/Optional;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        10: .line 564
            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/Optional.stream()Ljava/util/stream/Stream; (5)
                  (Ljava/util/Optional;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        11: .line 565
            aload 4 /* map */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/internal/module/ModuleBootstrap.lambda$14(Ljava/util/Map;Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        12: .line 568
            new java.util.HashSet
            dup
            aload 4 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* mrefs */
        start local 6 // java.util.Set mrefs
        13: .line 570
            new jdk.internal.module.ModuleBootstrap$1
            dup
            aload 4 /* map */
            aload 6 /* mrefs */
            invokespecial jdk.internal.module.ModuleBootstrap$1.<init>:(Ljava/util/Map;Ljava/util/Set;)V
            areturn
        end local 6 // java.util.Set mrefs
        end local 4 // java.util.Map map
        end local 3 // java.lang.module.Configuration cf
        end local 2 // java.util.Set otherMods
        end local 1 // java.util.Set roots
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0     finder  Ljava/lang/module/ModuleFinder;
            0   14     1      roots  Ljava/util/Set<Ljava/lang/String;>;
            0   14     2  otherMods  Ljava/util/Set<Ljava/lang/String;>;
            4   14     3         cf  Ljava/lang/module/Configuration;
            5   14     4        map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
           13   14     6      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleFinder;
    MethodParameters:
           Name  Flags
      finder     
      roots      
      otherMods  

  private static java.lang.module.ModuleFinder finderFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.lang.String prop
         0: .line 587
            aload 0 /* prop */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 588
            aload 1 /* s */
            ifnonnull 3
         2: .line 589
            aconst_null
            areturn
         3: .line 591
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* s */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* dirs */
        start local 2 // java.lang.String[] dirs
         4: .line 592
            aload 2 /* dirs */
            arraylength
            anewarray java.nio.file.Path
            astore 3 /* paths */
        start local 3 // java.nio.file.Path[] paths
         5: .line 593
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: .line 594
            aload 2 /* dirs */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: java.lang.String java.lang.String java.lang.String[] java.nio.file.Path[] int top int int java.lang.String[]
      StackMap stack:
         7: aload 8
            iload 6
            aaload
            astore 5 /* dir */
        start local 5 // java.lang.String dir
         8: .line 595
            aload 3 /* paths */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 5 /* dir */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aastore
        end local 5 // java.lang.String dir
         9: .line 594
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 7
        11: .line 597
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            aload 3 /* paths */
            invokestatic jdk.internal.module.ModulePath.of:(Ljdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            areturn
        end local 4 // int i
        end local 3 // java.nio.file.Path[] paths
        end local 2 // java.lang.String[] dirs
        end local 1 // java.lang.String s
        end local 0 // java.lang.String prop
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   prop  Ljava/lang/String;
            1   12     1      s  Ljava/lang/String;
            4   12     2   dirs  [Ljava/lang/String;
            5   12     3  paths  [Ljava/nio/file/Path;
            6   12     4      i  I
            8    9     5    dir  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      prop  

  private static jdk.internal.module.ModulePatcher initModulePatcher();
    descriptor: ()Ljdk/internal/module/ModulePatcher;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 606
            ldc "jdk.module.patch."
         1: .line 607
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
         2: .line 608
            iconst_0
         3: .line 606
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
            astore 0 /* map */
        start local 0 // java.util.Map map
         4: .line 609
            new jdk.internal.module.ModulePatcher
            dup
            aload 0 /* map */
            invokespecial jdk.internal.module.ModulePatcher.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    5     0   map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  private static java.util.Set<java.lang.String> addModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=0
         0: .line 616
            ldc "jdk.module.addmods."
            astore 0 /* prefix */
        start local 0 // java.lang.String prefix
         1: .line 617
            iconst_0
            istore 1 /* index */
        start local 1 // int index
         2: .line 619
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         3: .line 620
            aload 2 /* value */
            ifnonnull 5
         4: .line 621
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         5: .line 623
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* modules */
        start local 3 // java.util.Set modules
         6: .line 624
            goto 15
         7: .line 625
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: java.lang.String int java.lang.String java.util.Set top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // java.lang.String s
         9: .line 626
            aload 4 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
        10: .line 627
            aload 3 /* modules */
            aload 4 /* s */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String s
        11: .line 625
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 8
        13: .line 629
            iinc 1 /* index */ 1
        14: .line 630
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        15: .line 624
      StackMap locals: java.lang.String int java.lang.String java.util.Set
      StackMap stack:
            aload 2 /* value */
            ifnonnull 7
        16: .line 632
            aload 3 /* modules */
            areturn
        end local 3 // java.util.Set modules
        end local 2 // java.lang.String value
        end local 1 // int index
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1   17     0   prefix  Ljava/lang/String;
            2   17     1    index  I
            3   17     2    value  Ljava/lang/String;
            6   17     3  modules  Ljava/util/Set<Ljava/lang/String;>;
            9   11     4        s  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> limitModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 640
            ldc "jdk.module.limitmods"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* value */
        start local 0 // java.lang.String value
         1: .line 641
            aload 0 /* value */
            ifnonnull 3
         2: .line 642
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         3: .line 644
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* names */
        start local 1 // java.util.Set names
         4: .line 645
            aload 0 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.lang.String java.util.Set top int int java.lang.String[]
      StackMap stack:
         5: aload 5
            iload 3
            aaload
            astore 2 /* name */
        start local 2 // java.lang.String name
         6: .line 646
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 7
            aload 1 /* names */
            aload 2 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String name
         7: .line 645
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 5
         9: .line 648
            aload 1 /* names */
            areturn
        end local 1 // java.util.Set names
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1   10     0  value  Ljava/lang/String;
            4   10     1  names  Ljava/util/Set<Ljava/lang/String;>;
            6    7     2   name  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static void addExtraReads(java.lang.ModuleLayer);
    descriptor: (Ljava/lang/ModuleLayer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=1
        start local 0 // java.lang.ModuleLayer bootLayer
         0: .line 659
            ldc "jdk.module.addreads."
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 1 /* map */
        start local 1 // java.util.Map map
         1: .line 660
            aload 1 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 3
         2: .line 661
            return
         3: .line 663
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 22
      StackMap locals: java.lang.ModuleLayer java.util.Map top java.util.Iterator
      StackMap stack:
         4: 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
         5: .line 666
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* mn */
        start local 4 // java.lang.String mn
         6: .line 667
            aload 0 /* bootLayer */
            aload 4 /* mn */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 5 /* om */
        start local 5 // java.util.Optional om
         7: .line 668
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 10
         8: .line 669
            ldc "--add-reads"
            aload 4 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 670
            goto 22
        10: .line 672
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional
      StackMap stack:
            aload 5 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 6 /* m */
        start local 6 // java.lang.Module m
        11: .line 675
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* name */
        start local 7 // java.lang.String name
        13: .line 676
            ldc "ALL-UNNAMED"
            aload 7 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 677
            aload 6 /* m */
            invokestatic jdk.internal.module.Modules.addReadsAllUnnamed:(Ljava/lang/Module;)V
        15: .line 678
            goto 21
        16: .line 679
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* bootLayer */
            aload 7 /* name */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 5 /* om */
        17: .line 680
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 20
        18: .line 681
            aload 6 /* m */
            aload 5 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            invokestatic jdk.internal.module.Modules.addReads:(Ljava/lang/Module;Ljava/lang/Module;)V
        19: .line 682
            goto 21
        20: .line 683
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            aload 7 /* name */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.lang.String name
        21: .line 675
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 6 // java.lang.Module m
        end local 5 // java.util.Optional om
        end local 4 // java.lang.String mn
        end local 2 // java.util.Map$Entry e
        22: .line 663
      StackMap locals: java.lang.ModuleLayer java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        23: .line 688
            return
        end local 1 // java.util.Map map
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0  bootLayer  Ljava/lang/ModuleLayer;
            1   24     1        map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            5   22     2          e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            6   22     4         mn  Ljava/lang/String;
            7   22     5         om  Ljava/util/Optional<Ljava/lang/Module;>;
           11   22     6          m  Ljava/lang/Module;
           13   21     7       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      bootLayer  

  private static boolean addExtraExportsAndOpens(java.lang.ModuleLayer);
    descriptor: (Ljava/lang/ModuleLayer;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.ModuleLayer bootLayer
         0: .line 695
            iconst_0
            istore 1 /* extraExportsOrOpens */
        start local 1 // boolean extraExportsOrOpens
         1: .line 698
            ldc "jdk.module.addexports."
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         2: .line 699
            aload 2 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 3 /* extraExports */
        start local 3 // java.util.Map extraExports
         3: .line 700
            aload 3 /* extraExports */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 6
         4: .line 701
            aload 0 /* bootLayer */
            aload 3 /* extraExports */
            iconst_0
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
         5: .line 702
            iconst_1
            istore 1 /* extraExportsOrOpens */
         6: .line 707
      StackMap locals: int java.lang.String java.util.Map
      StackMap stack:
            ldc "jdk.module.addopens."
            astore 2 /* prefix */
         7: .line 708
            aload 2 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 4 /* extraOpens */
        start local 4 // java.util.Map extraOpens
         8: .line 709
            aload 4 /* extraOpens */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 11
         9: .line 710
            aload 0 /* bootLayer */
            aload 4 /* extraOpens */
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
        10: .line 711
            iconst_1
            istore 1 /* extraExportsOrOpens */
        11: .line 714
      StackMap locals: java.util.Map
      StackMap stack:
            iload 1 /* extraExportsOrOpens */
            ireturn
        end local 4 // java.util.Map extraOpens
        end local 3 // java.util.Map extraExports
        end local 2 // java.lang.String prefix
        end local 1 // boolean extraExportsOrOpens
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0            bootLayer  Ljava/lang/ModuleLayer;
            1   12     1  extraExportsOrOpens  Z
            2   12     2               prefix  Ljava/lang/String;
            3   12     3         extraExports  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            8   12     4           extraOpens  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
           Name  Flags
      bootLayer  

  private static void addExtraExportsOrOpens(java.lang.ModuleLayer, java.util.Map<java.lang.String, java.util.List<java.lang.String>>, );
    descriptor: (Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=16, args_size=3
        start local 0 // java.lang.ModuleLayer bootLayer
        start local 1 // java.util.Map map
        start local 2 // boolean opens
         0: .line 721
            iload 2 /* opens */
            ifeq 1
            ldc "--add-opens"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "--add-exports"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* option */
        start local 3 // java.lang.String option
         3: .line 722
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 45
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* e */
        start local 4 // java.util.Map$Entry e
         5: .line 725
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* key */
        start local 6 // java.lang.String key
         6: .line 726
            aload 6 /* key */
            ldc "/"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* s */
        start local 7 // java.lang.String[] s
         7: .line 727
            aload 7 /* s */
            arraylength
            iconst_2
            if_icmpeq 9
         8: .line 728
            aload 3 /* option */
            ldc "<module>/<package>"
            aload 6 /* key */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
         9: .line 730
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[]
      StackMap stack:
            aload 7 /* s */
            iconst_0
            aaload
            astore 8 /* mn */
        start local 8 // java.lang.String mn
        10: .line 731
            aload 7 /* s */
            iconst_1
            aaload
            astore 9 /* pn */
        start local 9 // java.lang.String pn
        11: .line 732
            aload 8 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 12
            aload 9 /* pn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        12: .line 733
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* option */
            ldc "<module>/<package>"
            aload 6 /* key */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        13: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* bootLayer */
            aload 8 /* mn */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 11 /* om */
        start local 11 // java.util.Optional om
        14: .line 738
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 17
        15: .line 739
            aload 3 /* option */
            aload 8 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 740
            goto 45
        17: .line 743
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String top java.util.Optional
      StackMap stack:
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 10 /* m */
        start local 10 // java.lang.Module m
        18: .line 745
            aload 10 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            aload 9 /* pn */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
        19: .line 746
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* pn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
        20: .line 747
            goto 45
        21: .line 751
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 44
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional top java.util.Iterator
      StackMap stack:
        22: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* name */
        start local 12 // java.lang.String name
        23: .line 752
            iconst_0
            istore 14 /* allUnnamed */
        start local 14 // boolean allUnnamed
        24: .line 753
            aconst_null
            astore 15 /* other */
        start local 15 // java.lang.Module other
        25: .line 754
            ldc "ALL-UNNAMED"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 755
            iconst_1
            istore 14 /* allUnnamed */
        27: .line 756
            goto 34
        28: .line 757
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional java.lang.String java.util.Iterator int java.lang.Module
      StackMap stack:
            aload 0 /* bootLayer */
            aload 12 /* name */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 11 /* om */
        29: .line 758
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 32
        30: .line 759
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 15 /* other */
        31: .line 760
            goto 34
        32: .line 761
      StackMap locals:
      StackMap stack:
            aload 3 /* option */
            aload 12 /* name */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        33: .line 762
            goto 44
        34: .line 765
      StackMap locals:
      StackMap stack:
            iload 14 /* allUnnamed */
            ifeq 40
        35: .line 766
            iload 2 /* opens */
            ifeq 38
        36: .line 767
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        37: .line 768
            goto 44
        38: .line 769
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addExportsToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        39: .line 771
            goto 44
        40: .line 772
      StackMap locals:
      StackMap stack:
            iload 2 /* opens */
            ifeq 43
        41: .line 773
            aload 10 /* m */
            aload 9 /* pn */
            aload 15 /* other */
            invokestatic jdk.internal.module.Modules.addOpens:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
        42: .line 774
            goto 44
        43: .line 775
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            aload 9 /* pn */
            aload 15 /* other */
            invokestatic jdk.internal.module.Modules.addExports:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
        end local 15 // java.lang.Module other
        end local 14 // boolean allUnnamed
        end local 12 // java.lang.String name
        44: .line 751
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 11 // java.util.Optional om
        end local 10 // java.lang.Module m
        end local 9 // java.lang.String pn
        end local 8 // java.lang.String mn
        end local 7 // java.lang.String[] s
        end local 6 // java.lang.String key
        end local 4 // java.util.Map$Entry e
        45: .line 722
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        46: .line 780
            return
        end local 3 // java.lang.String option
        end local 2 // boolean opens
        end local 1 // java.util.Map map
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   47     0   bootLayer  Ljava/lang/ModuleLayer;
            0   47     1         map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0   47     2       opens  Z
            3   47     3      option  Ljava/lang/String;
            5   45     4           e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            6   45     6         key  Ljava/lang/String;
            7   45     7           s  [Ljava/lang/String;
           10   45     8          mn  Ljava/lang/String;
           11   45     9          pn  Ljava/lang/String;
           18   45    10           m  Ljava/lang/Module;
           14   45    11          om  Ljava/util/Optional<Ljava/lang/Module;>;
           23   44    12        name  Ljava/lang/String;
           24   44    14  allUnnamed  Z
           25   44    15       other  Ljava/lang/Module;
    Signature: (Ljava/lang/ModuleLayer;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Z)V
    MethodParameters:
           Name  Flags
      bootLayer  
      map        
      opens      

  private static void addIllegalAccess(java.lang.String, jdk.internal.module.SystemModules, java.lang.module.ModuleFinder, java.lang.ModuleLayer, boolean);
    descriptor: (Ljava/lang/String;Ljdk/internal/module/SystemModules;Ljava/lang/module/ModuleFinder;Ljava/lang/ModuleLayer;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=19, args_size=5
        start local 0 // java.lang.String illegalAccess
        start local 1 // jdk.internal.module.SystemModules systemModules
        start local 2 // java.lang.module.ModuleFinder upgradeModulePath
        start local 3 // java.lang.ModuleLayer bootLayer
        start local 4 // boolean extraExportsOrOpens
         0: .line 792
            aload 0 /* illegalAccess */
            ldc "deny"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 793
            return
         2: .line 795
      StackMap locals:
      StackMap stack:
            aload 0 /* illegalAccess */
            dup
            astore 6
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
           -991722469: 3
              3641990: 4
             95458899: 5
              default: 9
          }
      StackMap locals: java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder java.lang.ModuleLayer int top java.lang.String
      StackMap stack:
         3: aload 6
            ldc "permit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 6
            ldc "warn"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 9
      StackMap locals:
      StackMap stack:
         5: aload 6
            ldc "debug"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 9
         6: .line 796
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.ONESHOT:Ljdk/internal/module/IllegalAccessLogger$Mode;
            goto 13
         7: .line 797
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.WARN:Ljdk/internal/module/IllegalAccessLogger$Mode;
            goto 13
         8: .line 798
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.DEBUG:Ljdk/internal/module/IllegalAccessLogger$Mode;
            goto 13
         9: .line 800
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Value specified to --illegal-access not recognized: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 801
            aload 0 /* illegalAccess */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 800
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        12: .line 802
            aconst_null
        13: .line 795
      StackMap locals: java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder java.lang.ModuleLayer int
      StackMap stack: jdk.internal.module.IllegalAccessLogger$Mode
            astore 5 /* mode */
        start local 5 // jdk.internal.module.IllegalAccessLogger$Mode mode
        14: .line 806
            new jdk.internal.module.IllegalAccessLogger$Builder
            dup
            aload 5 /* mode */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial jdk.internal.module.IllegalAccessLogger$Builder.<init>:(Ljdk/internal/module/IllegalAccessLogger$Mode;Ljava/io/PrintStream;)V
            astore 7 /* builder */
        start local 7 // jdk.internal.module.IllegalAccessLogger$Builder builder
        15: .line 807
            aload 1 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.concealedPackagesToOpen:()Ljava/util/Map;
            astore 8 /* concealedPackagesToOpen */
        start local 8 // java.util.Map concealedPackagesToOpen
        16: .line 808
            aload 1 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.exportedPackagesToOpen:()Ljava/util/Map;
            astore 9 /* exportedPackagesToOpen */
        start local 9 // java.util.Map exportedPackagesToOpen
        17: .line 809
            aload 8 /* concealedPackagesToOpen */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 21
            aload 9 /* exportedPackagesToOpen */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 21
        18: .line 811
            invokestatic jdk.internal.module.ModuleBootstrap.limitedFinder:()Ljava/lang/module/ModuleFinder;
            invokestatic jdk.internal.module.IllegalAccessMaps.generate:(Ljava/lang/module/ModuleFinder;)Ljdk/internal/module/IllegalAccessMaps;
            astore 10 /* maps */
        start local 10 // jdk.internal.module.IllegalAccessMaps maps
        19: .line 812
            aload 10 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.concealedPackagesToOpen:()Ljava/util/Map;
            astore 8 /* concealedPackagesToOpen */
        20: .line 813
            aload 10 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.exportedPackagesToOpen:()Ljava/util/Map;
            astore 9 /* exportedPackagesToOpen */
        end local 10 // jdk.internal.module.IllegalAccessMaps maps
        21: .line 817
      StackMap locals: java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder java.lang.ModuleLayer int jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map
      StackMap stack:
            invokestatic java.util.Set.of:()Ljava/util/Set;
            astore 10 /* emptySet */
        start local 10 // java.util.Set emptySet
        22: .line 818
            aload 3 /* bootLayer */
            invokevirtual java.lang.ModuleLayer.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 12
            goto 52
      StackMap locals: java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder java.lang.ModuleLayer int jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
        23: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 11 /* m */
        start local 11 // java.lang.Module m
        24: .line 819
            aload 11 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 13 /* descriptor */
        start local 13 // java.lang.module.ModuleDescriptor descriptor
        25: .line 820
            aload 11 /* m */
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            astore 14 /* name */
        start local 14 // java.lang.String name
        26: .line 823
            aload 13 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 28
        27: .line 824
            goto 52
        28: .line 828
      StackMap locals: java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder java.lang.ModuleLayer int jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map java.util.Set java.lang.Module java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String
      StackMap stack:
            aload 2 /* upgradeModulePath */
            ifnull 31
        29: .line 829
            aload 2 /* upgradeModulePath */
            aload 14 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 31
        30: .line 830
            goto 52
        31: .line 833
      StackMap locals:
      StackMap stack:
            aload 8 /* concealedPackagesToOpen */
            aload 14 /* name */
            aload 10 /* emptySet */
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 15 /* concealedPackages */
        start local 15 // java.util.Set concealedPackages
        32: .line 834
            aload 9 /* exportedPackagesToOpen */
            aload 14 /* name */
            aload 10 /* emptySet */
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 16 /* exportedPackages */
        start local 16 // java.util.Set exportedPackages
        33: .line 837
            iload 4 /* extraExportsOrOpens */
            ifeq 49
        34: .line 838
            new java.util.HashSet
            dup
            aload 15 /* concealedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 15 /* concealedPackages */
        35: .line 839
            new java.util.HashSet
            dup
            aload 16 /* exportedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 16 /* exportedPackages */
        36: .line 840
            aload 15 /* concealedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 17 /* iterator */
        start local 17 // java.util.Iterator iterator
        37: .line 841
            goto 42
        38: .line 842
      StackMap locals: java.util.Set java.util.Set java.util.Iterator
      StackMap stack:
            aload 17 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 18 /* pn */
        start local 18 // java.lang.String pn
        39: .line 843
            aload 11 /* m */
            aload 18 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isExported:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 42
        40: .line 845
            aload 17 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        41: .line 846
            aload 16 /* exportedPackages */
            aload 18 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 18 // java.lang.String pn
        42: .line 841
      StackMap locals:
      StackMap stack:
            aload 17 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        43: .line 849
            aload 16 /* exportedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 17 /* iterator */
        44: .line 850
            goto 48
        45: .line 851
      StackMap locals:
      StackMap stack:
            aload 17 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 18 /* pn */
        start local 18 // java.lang.String pn
        46: .line 852
            aload 11 /* m */
            aload 18 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 48
        47: .line 854
            aload 17 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 18 // java.lang.String pn
        48: .line 850
      StackMap locals:
      StackMap stack:
            aload 17 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 45
        end local 17 // java.util.Iterator iterator
        49: .line 860
      StackMap locals:
      StackMap stack:
            aload 7 /* builder */
            aload 11 /* m */
            aload 15 /* concealedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToConcealedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        50: .line 863
            aload 7 /* builder */
            aload 11 /* m */
            aload 16 /* exportedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToExportedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        51: .line 866
            getstatic jdk.internal.module.ModuleBootstrap.JLA:Ljdk/internal/access/JavaLangAccess;
            aload 11 /* m */
            aload 15 /* concealedPackages */
            aload 16 /* exportedPackages */
            invokeinterface jdk.internal.access.JavaLangAccess.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/util/Set;Ljava/util/Set;)V
        end local 16 // java.util.Set exportedPackages
        end local 15 // java.util.Set concealedPackages
        end local 14 // java.lang.String name
        end local 13 // java.lang.module.ModuleDescriptor descriptor
        end local 11 // java.lang.Module m
        52: .line 818
      StackMap locals: java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder java.lang.ModuleLayer int jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Map java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        53: .line 869
            aload 7 /* builder */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.complete:()V
        54: .line 870
            return
        end local 10 // java.util.Set emptySet
        end local 9 // java.util.Map exportedPackagesToOpen
        end local 8 // java.util.Map concealedPackagesToOpen
        end local 7 // jdk.internal.module.IllegalAccessLogger$Builder builder
        end local 5 // jdk.internal.module.IllegalAccessLogger$Mode mode
        end local 4 // boolean extraExportsOrOpens
        end local 3 // java.lang.ModuleLayer bootLayer
        end local 2 // java.lang.module.ModuleFinder upgradeModulePath
        end local 1 // jdk.internal.module.SystemModules systemModules
        end local 0 // java.lang.String illegalAccess
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   55     0            illegalAccess  Ljava/lang/String;
            0   55     1            systemModules  Ljdk/internal/module/SystemModules;
            0   55     2        upgradeModulePath  Ljava/lang/module/ModuleFinder;
            0   55     3                bootLayer  Ljava/lang/ModuleLayer;
            0   55     4      extraExportsOrOpens  Z
           14   55     5                     mode  Ljdk/internal/module/IllegalAccessLogger$Mode;
           15   55     7                  builder  Ljdk/internal/module/IllegalAccessLogger$Builder;
           16   55     8  concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           17   55     9   exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           19   21    10                     maps  Ljdk/internal/module/IllegalAccessMaps;
           22   55    10                 emptySet  Ljava/util/Set<Ljava/lang/String;>;
           24   52    11                        m  Ljava/lang/Module;
           25   52    13               descriptor  Ljava/lang/module/ModuleDescriptor;
           26   52    14                     name  Ljava/lang/String;
           32   52    15        concealedPackages  Ljava/util/Set<Ljava/lang/String;>;
           33   52    16         exportedPackages  Ljava/util/Set<Ljava/lang/String;>;
           37   49    17                 iterator  Ljava/util/Iterator<Ljava/lang/String;>;
           39   42    18                       pn  Ljava/lang/String;
           46   48    18                       pn  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      illegalAccess        
      systemModules        
      upgradeModulePath    
      bootLayer            
      extraExportsOrOpens  

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decode(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=15, args_size=3
        start local 0 // java.lang.String prefix
        start local 1 // java.lang.String regex
        start local 2 // boolean allowDuplicates
         0: .line 882
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: .line 884
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         2: .line 885
            aload 4 /* value */
            ifnonnull 4
         3: .line 886
            invokestatic java.util.Map.of:()Ljava/util/Map;
            areturn
         4: .line 888
      StackMap locals: int java.lang.String
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* map */
        start local 5 // java.util.Map map
         5: .line 890
            goto 30
         6: .line 892
      StackMap locals: java.util.Map
      StackMap stack:
            aload 4 /* value */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* pos */
        start local 6 // int pos
         7: .line 893
            iload 6 /* pos */
            iconst_m1
            if_icmpne 9
         8: .line 894
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
         9: .line 895
      StackMap locals: int
      StackMap stack:
            iload 6 /* pos */
            ifne 11
        10: .line 896
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        11: .line 899
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            iconst_0
            iload 6 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* key */
        start local 7 // java.lang.String key
        12: .line 901
            aload 4 /* value */
            iload 6 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* rhs */
        start local 8 // java.lang.String rhs
        13: .line 902
            aload 8 /* rhs */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        14: .line 903
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        15: .line 906
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iload 2 /* allowDuplicates */
            ifne 17
            aload 5 /* map */
            aload 7 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 907
            new java.lang.StringBuilder
            dup
            aload 7 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " specified more than once to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        17: .line 908
      StackMap locals:
      StackMap stack:
            aload 5 /* map */
            aload 7 /* key */
            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;
                  jdk/internal/module/ModuleBootstrap.lambda$15(Ljava/lang/String;)Ljava/util/List; (6)
                  (Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.List
            astore 9 /* values */
        start local 9 // java.util.List values
        18: .line 909
            iconst_0
            istore 10 /* ntargets */
        start local 10 // int ntargets
        19: .line 910
            aload 8 /* rhs */
            aload 1 /* regex */
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 25
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map int java.lang.String java.lang.String java.util.List int top int int java.lang.String[]
      StackMap stack:
        20: aload 14
            iload 12
            aaload
            astore 11 /* s */
        start local 11 // java.lang.String s
        21: .line 911
            aload 11 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 24
        22: .line 912
            aload 9 /* values */
            aload 11 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 913
            iinc 10 /* ntargets */ 1
        end local 11 // java.lang.String s
        24: .line 910
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        25: iload 12
            iload 13
            if_icmplt 20
        26: .line 916
            iload 10 /* ntargets */
            ifne 28
        27: .line 917
            new java.lang.StringBuilder
            dup
            ldc "Target must be specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)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 4 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        28: .line 919
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map int java.lang.String java.lang.String java.util.List int
      StackMap stack:
            iinc 3 /* index */ 1
        29: .line 920
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        end local 10 // int ntargets
        end local 9 // java.util.List values
        end local 8 // java.lang.String rhs
        end local 7 // java.lang.String key
        end local 6 // int pos
        30: .line 890
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map
      StackMap stack:
            aload 4 /* value */
            ifnonnull 6
        31: .line 923
            aload 5 /* map */
            areturn
        end local 5 // java.util.Map map
        end local 4 // java.lang.String value
        end local 3 // int index
        end local 2 // boolean allowDuplicates
        end local 1 // java.lang.String regex
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0           prefix  Ljava/lang/String;
            0   32     1            regex  Ljava/lang/String;
            0   32     2  allowDuplicates  Z
            1   32     3            index  I
            2   32     4            value  Ljava/lang/String;
            5   32     5              map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            7   30     6              pos  I
           12   30     7              key  Ljava/lang/String;
           13   30     8              rhs  Ljava/lang/String;
           18   30     9           values  Ljava/util/List<Ljava/lang/String;>;
           19   30    10         ntargets  I
           21   24    11                s  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                 Name  Flags
      prefix           
      regex            
      allowDuplicates  

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String prefix
         0: .line 931
            aload 0 /* prefix */
            ldc ","
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
            areturn
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  prefix  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
        Name  Flags
      prefix  

  private static java.lang.String getProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 939
            aload 0 /* key */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  private static java.lang.String getAndRemoveProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 946
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            aload 0 /* key */
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  private static void checkIncubatingStatus(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.module.Configuration cf
         0: .line 953
            aconst_null
            astore 1 /* incubating */
        start local 1 // java.lang.String incubating
         1: .line 954
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: java.lang.module.Configuration java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 2 /* resolvedModule */
        start local 2 // java.lang.module.ResolvedModule resolvedModule
         3: .line 955
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
         4: .line 958
            aload 4 /* mref */
            invokestatic jdk.internal.module.ModuleResolution.hasIncubatingWarning:(Ljava/lang/module/ModuleReference;)Z
            ifeq 10
         5: .line 959
            aload 4 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 5 /* mn */
        start local 5 // java.lang.String mn
         6: .line 960
            aload 1 /* incubating */
            ifnonnull 9
         7: .line 961
            aload 5 /* mn */
            astore 1 /* incubating */
         8: .line 962
            goto 10
         9: .line 963
      StackMap locals: java.lang.module.Configuration java.lang.String java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* incubating */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* incubating */
        end local 5 // java.lang.String mn
        end local 4 // java.lang.module.ModuleReference mref
        end local 2 // java.lang.module.ResolvedModule resolvedModule
        10: .line 954
      StackMap locals: java.lang.module.Configuration java.lang.String top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 967
            aload 1 /* incubating */
            ifnull 13
        12: .line 968
            new java.lang.StringBuilder
            dup
            ldc "Using incubator modules: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* incubating */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
        13: .line 969
      StackMap locals: java.lang.module.Configuration java.lang.String
      StackMap stack:
            return
        end local 1 // java.lang.String incubating
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0              cf  Ljava/lang/module/Configuration;
            1   14     1      incubating  Ljava/lang/String;
            3   10     2  resolvedModule  Ljava/lang/module/ResolvedModule;
            4   10     4            mref  Ljava/lang/module/ModuleReference;
            6   10     5              mn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cf    

  static void fail(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String m
         0: .line 975
            new java.lang.RuntimeException
            dup
            aload 0 /* m */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  static void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String m
         0: .line 979
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "WARNING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 980
            return
        end local 0 // java.lang.String m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  static void warnUnknownModule(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String option
        start local 1 // java.lang.String mn
         0: .line 983
            new java.lang.StringBuilder
            dup
            ldc "Unknown module: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " specified to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
         1: .line 984
            return
        end local 1 // java.lang.String mn
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  option  Ljava/lang/String;
            0    2     1      mn  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      mn      

  static java.lang.String unableToParse(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String option
        start local 1 // java.lang.String text
        start local 2 // java.lang.String value
         0: .line 987
            new java.lang.StringBuilder
            dup
            ldc "Unable to parse "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* text */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String text
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  option  Ljava/lang/String;
            0    1     1    text  Ljava/lang/String;
            0    1     2   value  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      text    
      value   

  static java.lang.String option(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String prefix
         0: .line 1002
            aload 0 /* prefix */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 5
          -1634796447: 1
            693588459: 2
            919126689: 3
            994726637: 4
           1390198411: 5
              default: 11
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "jdk.module.addmods."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 11
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "jdk.module.patch."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "jdk.module.addopens."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 11
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "jdk.module.addreads."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 11
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "jdk.module.addexports."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 11
         6: .line 1004
      StackMap locals:
      StackMap stack:
            ldc "--add-exports"
            areturn
         7: .line 1006
      StackMap locals:
      StackMap stack:
            ldc "--add-opens"
            areturn
         8: .line 1008
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            areturn
         9: .line 1010
      StackMap locals:
      StackMap stack:
            ldc "--patch-module"
            areturn
        10: .line 1012
      StackMap locals:
      StackMap stack:
            ldc "--add-modules"
            areturn
        11: .line 1014
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* prefix */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  

  private static boolean lambda$2(java.lang.module.ModuleFinder, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 355
            aload 0
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static void lambda$3(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 356
            aload 0
            aload 1 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static boolean lambda$6(java.lang.module.ModuleFinder, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 367
            aload 0
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static void lambda$7(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 368
            aload 0
            aload 1 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static boolean lambda$8(java.lang.module.Configuration, java.lang.String);
    descriptor: (Ljava/lang/module/Configuration;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 399
            aload 0
            aload 1 /* mn */
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    mn  Ljava/lang/String;

  private static void lambda$9(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String mn
         0: .line 400
            ldc "--patch-module"
            aload 0 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
            return
        end local 0 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    mn  Ljava/lang/String;

  private static void lambda$11(java.util.Map, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 559
            aload 0
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 1 /* mref */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$14(java.util.Map, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 565
            aload 0
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 1 /* mref */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  mref  Ljava/lang/module/ModuleReference;

  private static java.util.List lambda$15(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String k
         0: .line 908
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // java.lang.String k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     k  Ljava/lang/String;
}
SourceFile: "ModuleBootstrap.java"
NestMembers:
  jdk.internal.module.ModuleBootstrap$1  jdk.internal.module.ModuleBootstrap$Counters  jdk.internal.module.ModuleBootstrap$SafeModuleFinder
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Builder = jdk.internal.module.IllegalAccessLogger$Builder of jdk.internal.module.IllegalAccessLogger
  public final Mode = jdk.internal.module.IllegalAccessLogger$Mode of jdk.internal.module.IllegalAccessLogger
  jdk.internal.module.ModuleBootstrap$1
  Counters = jdk.internal.module.ModuleBootstrap$Counters of jdk.internal.module.ModuleBootstrap
  SafeModuleFinder = jdk.internal.module.ModuleBootstrap$SafeModuleFinder of jdk.internal.module.ModuleBootstrap