public class jdk.tools.jlink.internal.JlinkTask
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.tools.jlink.internal.JlinkTask
  super_class: java.lang.Object
{
  static final boolean DEBUG;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean IGNORE_SIGNING_DEFAULT;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final jdk.tools.jlink.internal.TaskHelper taskHelper;
    descriptor: Ljdk/tools/jlink/internal/TaskHelper;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.tools.jlink.internal.TaskHelper$Option<?>[] recognizedOptions;
    descriptor: [Ljdk/tools/jlink/internal/TaskHelper$Option;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljdk/tools/jlink/internal/TaskHelper$Option<*>;

  private static final java.lang.String PROGNAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jlink"

  private final jdk.tools.jlink.internal.JlinkTask$OptionsValues options;
    descriptor: Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final jdk.tools.jlink.internal.TaskHelper$OptionsHelper<jdk.tools.jlink.internal.JlinkTask> optionsHelper;
    descriptor: Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper<Ljdk/tools/jlink/internal/JlinkTask;>;

  private java.io.PrintWriter log;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0002) ACC_PRIVATE

  static final int EXIT_OK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int EXIT_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int EXIT_CMDERR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int EXIT_SYSERR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int EXIT_ABNORMAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  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"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=0, args_size=0
         0: .line 78
            ldc "jlink.debug"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
         1: .line 84
            new jdk.tools.jlink.internal.TaskHelper
            dup
            ldc "jdk.tools.jlink.resources.jlink"
            invokespecial jdk.tools.jlink.internal.TaskHelper.<init>:(Ljava/lang/String;)V
         2: .line 83
            putstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
         3: .line 86
            bipush 15
            anewarray jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
         4: .line 87
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$0(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 89
            ldc "--help"
            ldc "-h"
            ldc "-?"
         6: .line 87
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            iconst_1
         7: .line 90
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$1(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
         8: .line 98
            ldc "--module-path"
            ldc "-p"
         9: .line 90
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            iconst_2
        10: .line 99
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$4(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 110
            ldc "--limit-modules"
        12: .line 99
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            iconst_3
        13: .line 111
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$5(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        14: .line 119
            ldc "--add-modules"
        15: .line 111
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            iconst_4
        16: .line 120
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$6(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        17: .line 123
            ldc "--output"
        18: .line 120
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            iconst_5
        19: .line 124
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$7(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        20: .line 126
            ldc "--bind-services"
        21: .line 124
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 6
        22: .line 127
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$8(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        23: .line 129
            ldc "--suggest-providers"
            ldc ""
            iconst_1
        24: .line 127
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;Z)V
            aastore
            dup
            bipush 7
        25: .line 130
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$9(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        26: .line 150
            ldc "--launcher"
        27: .line 130
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 8
        28: .line 151
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$10(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        29: .line 159
            ldc "--endian"
        30: .line 151
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 9
        31: .line 160
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$11(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        32: .line 162
            ldc "--verbose"
            ldc "-v"
        33: .line 160
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            bipush 10
        34: .line 163
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$12(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        35: .line 165
            ldc "--version"
        36: .line 163
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 11
        37: .line 166
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$13(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        38: .line 172
            iconst_1
            ldc "--keep-packaged-modules"
        39: .line 166
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;ZLjava/lang/String;)V
            aastore
            dup
            bipush 12
        40: .line 173
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_1
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$14(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        41: .line 175
            ldc "--save-opts"
        42: .line 173
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
            dup
            bipush 13
        43: .line 176
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$15(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        44: .line 178
            iconst_1
            ldc "--full-version"
        45: .line 176
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;ZLjava/lang/String;)V
            aastore
            dup
            bipush 14
        46: .line 179
            new jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
            invokedynamic process()Ljdk/tools/jlink/internal/TaskHelper$Option$Processing;
              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/String;Ljava/lang/String;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$16(Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
        47: .line 181
            ldc "--ignore-signing-information"
        48: .line 179
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
        49: .line 86
            putstatic jdk.tools.jlink.internal.JlinkTask.recognizedOptions:[Ljdk/tools/jlink/internal/TaskHelper$Option;
        50: .line 187
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc Ljdk/tools/jlink/internal/JlinkTask;
            getstatic jdk.tools.jlink.internal.JlinkTask.recognizedOptions:[Ljdk/tools/jlink/internal/TaskHelper$Option;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newOptionsHelper:(Ljava/lang/Class;[Ljdk/tools/jlink/internal/TaskHelper$Option;)Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
        51: .line 186
            putstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
        52: .line 357
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 184
            aload 0 /* this */
            new jdk.tools.jlink.internal.JlinkTask$OptionsValues
            dup
            invokespecial jdk.tools.jlink.internal.JlinkTask$OptionsValues.<init>:()V
            putfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
         2: .line 77
            return
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/JlinkTask;

  void setLog(java.io.PrintWriter, java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;Ljava/io/PrintWriter;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.io.PrintWriter out
        start local 2 // java.io.PrintWriter err
         0: .line 191
            aload 0 /* this */
            aload 1 /* out */
            putfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
         1: .line 192
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.setLog:(Ljava/io/PrintWriter;)V
         2: .line 193
            return
        end local 2 // java.io.PrintWriter err
        end local 1 // java.io.PrintWriter out
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            0    3     1   out  Ljava/io/PrintWriter;
            0    3     2   err  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      out   
      err   

  int run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)I
    flags: (0x0000) 
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.lang.String[] args
         0: .line 224
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ifnonnull 4
         1: .line 225
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
         2: .line 226
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
         3: .line 225
            invokevirtual jdk.tools.jlink.internal.JlinkTask.setLog:(Ljava/io/PrintWriter;Ljava/io/PrintWriter;)V
         4: .line 229
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.handleOptions:(Ljava/lang/Object;[Ljava/lang/String;)Ljava/util/List;
            astore 2 /* remaining */
        start local 2 // java.util.List remaining
         5: .line 230
            aload 2 /* remaining */
            invokeinterface java.util.List.size:()I
            ifle 11
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.suggestProviders:Z
            ifne 11
         6: .line 231
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.orphan.arguments"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 232
            aload 2 /* remaining */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
         8: .line 231
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         9: .line 233
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        10: .line 231
            athrow
        11: .line 235
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.help:Z
            ifeq 15
        12: .line 236
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            ldc "jlink"
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.showHelp:(Ljava/lang/String;)V
        13: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        14: .line 237
            iconst_0
            ireturn
        15: .line 239
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.shouldListPlugins:()Z
            ifeq 19
        16: .line 240
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.listPlugins:()V
        17: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        18: .line 241
            iconst_0
            ireturn
        19: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.version:Z
            ifne 20
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.fullVersion:Z
            ifeq 23
        20: .line 244
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.fullVersion:Z
            invokevirtual jdk.tools.jlink.internal.TaskHelper.showVersion:(Z)V
        21: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        22: .line 245
            iconst_0
            ireturn
        23: .line 248
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getExistingImage:()Ljava/nio/file/Path;
            ifnull 27
        24: .line 249
            aload 0 /* this */
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getExistingImage:()Ljava/nio/file/Path;
            invokevirtual jdk.tools.jlink.internal.JlinkTask.postProcessOnly:(Ljava/nio/file/Path;)V
        25: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        26: .line 250
            iconst_0
            ireturn
        27: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 35
        28: .line 256
            invokestatic jdk.tools.jlink.internal.JlinkTask.getDefaultModulePath:()Ljava/nio/file/Path;
            astore 3 /* jmods */
        start local 3 // java.nio.file.Path jmods
        29: .line 257
            aload 3 /* jmods */
            ifnull 31
        30: .line 258
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 3 /* jmods */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 261
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 35
        32: .line 262
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.modulepath.must.be.specified"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        33: .line 263
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        34: .line 262
            athrow
        end local 3 // java.nio.file.Path jmods
        35: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.initJlinkConfig:()Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            astore 3 /* config */
        start local 3 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        36: .line 268
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.suggestProviders:Z
            ifeq 39
        37: .line 269
            aload 0 /* this */
            aload 3 /* config */
            aload 2 /* remaining */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.suggestProviders:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/util/List;)V
        38: .line 270
            goto 42
        39: .line 271
      StackMap locals: jdk.tools.jlink.internal.Jlink$JlinkConfiguration
      StackMap stack:
            aload 0 /* this */
            aload 3 /* config */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.createImage:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;)V
        40: .line 272
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.saveoptsfile:Ljava/lang/String;
            ifnull 42
        41: .line 273
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.saveoptsfile:Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aload 0 /* this */
            invokevirtual jdk.tools.jlink.internal.JlinkTask.getSaveOpts:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;[B[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
            pop
        42: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        43: .line 277
            iconst_0
            ireturn
        end local 3 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 2 // java.util.List remaining
        44: .line 278
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: java.lang.module.FindException
            astore 2 /* e */
        start local 2 // java.lang.module.FindException e
        45: .line 279
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "error.prefix"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.module.FindException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        46: .line 280
            aload 2 /* e */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.lang.module.FindException.printStackTrace:(Ljava/io/PrintWriter;)V
        47: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        48: .line 281
            iconst_1
            ireturn
        end local 2 // java.lang.module.FindException e
        49: .line 283
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        50: .line 284
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "error.prefix"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        51: .line 285
            getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
            ifeq 53
        52: .line 286
            aload 2 /* e */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintWriter;)V
        53: .line 303
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        54: .line 288
            iconst_1
            ireturn
        end local 2 // java.lang.Exception e
        55: .line 289
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: jdk.tools.jlink.internal.TaskHelper$BadArgs
            astore 2 /* e */
        start local 2 // jdk.tools.jlink.internal.TaskHelper$BadArgs e
        56: .line 290
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.key:Ljava/lang/String;
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.args:[Ljava/lang/Object;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.reportError:(Ljava/lang/String;[Ljava/lang/Object;)V
        57: .line 291
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:Z
            ifeq 59
        58: .line 292
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "main.usage.summary"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "jlink"
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        59: .line 294
      StackMap locals: jdk.tools.jlink.internal.TaskHelper$BadArgs
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
            ifeq 61
        60: .line 295
            aload 2 /* e */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.printStackTrace:(Ljava/io/PrintWriter;)V
        61: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        62: .line 297
            iconst_2
            ireturn
        end local 2 // jdk.tools.jlink.internal.TaskHelper$BadArgs e
        63: .line 298
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: java.lang.Throwable
            astore 2 /* x */
        start local 2 // java.lang.Throwable x
        64: .line 299
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "error.prefix"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* x */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        65: .line 300
            aload 2 /* x */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
        66: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        67: .line 301
            iconst_4
            ireturn
        end local 2 // java.lang.Throwable x
        68: .line 302
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        69: .line 303
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        70: .line 304
            aload 4
            athrow
        end local 1 // java.lang.String[] args
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   71     0       this  Ljdk/tools/jlink/internal/JlinkTask;
            0   71     1       args  [Ljava/lang/String;
            5   44     2  remaining  Ljava/util/List<Ljava/lang/String;>;
           29   35     3      jmods  Ljava/nio/file/Path;
           36   44     3     config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
           45   49     2          e  Ljava/lang/module/FindException;
           50   55     2          e  Ljava/lang/Exception;
           56   63     2          e  Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
           64   68     2          x  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    13      44  Class java.lang.module.FindException
          15    17      44  Class java.lang.module.FindException
          19    21      44  Class java.lang.module.FindException
          23    25      44  Class java.lang.module.FindException
          27    42      44  Class java.lang.module.FindException
           4    13      49  Class jdk.tools.jlink.plugin.PluginException
          15    17      49  Class jdk.tools.jlink.plugin.PluginException
          19    21      49  Class jdk.tools.jlink.plugin.PluginException
          23    25      49  Class jdk.tools.jlink.plugin.PluginException
          27    42      49  Class jdk.tools.jlink.plugin.PluginException
           4    13      49  Class java.lang.IllegalArgumentException
          15    17      49  Class java.lang.IllegalArgumentException
          19    21      49  Class java.lang.IllegalArgumentException
          23    25      49  Class java.lang.IllegalArgumentException
          27    42      49  Class java.lang.IllegalArgumentException
           4    13      49  Class java.io.UncheckedIOException
          15    17      49  Class java.io.UncheckedIOException
          19    21      49  Class java.io.UncheckedIOException
          23    25      49  Class java.io.UncheckedIOException
          27    42      49  Class java.io.UncheckedIOException
           4    13      49  Class java.io.IOException
          15    17      49  Class java.io.IOException
          19    21      49  Class java.io.IOException
          23    25      49  Class java.io.IOException
          27    42      49  Class java.io.IOException
           4    13      49  Class java.lang.module.ResolutionException
          15    17      49  Class java.lang.module.ResolutionException
          19    21      49  Class java.lang.module.ResolutionException
          23    25      49  Class java.lang.module.ResolutionException
          27    42      49  Class java.lang.module.ResolutionException
           4    13      55  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          15    17      55  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          19    21      55  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          23    25      55  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          27    42      55  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
           4    13      63  Class java.lang.Throwable
          15    17      63  Class java.lang.Throwable
          19    21      63  Class java.lang.Throwable
          23    25      63  Class java.lang.Throwable
          27    42      63  Class java.lang.Throwable
           4    13      68  any
          15    17      68  any
          19    21      68  any
          23    25      68  any
          27    42      68  any
          44    47      68  any
          49    53      68  any
          55    61      68  any
          63    66      68  any
    MethodParameters:
      Name  Flags
      args  

  public static void createImage(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, jdk.tools.jlink.internal.Jlink$PluginsConfiguration);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 1 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration plugins
         0: .line 313
            aload 0 /* config */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 314
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.getOutput:()Ljava/nio/file/Path;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 315
            aload 1 /* plugins */
            ifnonnull 3
            new jdk.tools.jlink.internal.Jlink$PluginsConfiguration
            dup
            invokespecial jdk.tools.jlink.internal.Jlink$PluginsConfiguration.<init>:()V
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* plugins */
      StackMap locals:
      StackMap stack: jdk.tools.jlink.internal.Jlink$PluginsConfiguration
         4: astore 1 /* plugins */
         5: .line 319
            aload 0 /* config */
         6: .line 320
            aconst_null
         7: .line 321
            iconst_1
         8: .line 322
            iconst_0
         9: .line 323
            iconst_0
        10: .line 324
            aconst_null
        11: .line 319
            invokestatic jdk.tools.jlink.internal.JlinkTask.createImageProvider:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/nio/file/Path;ZZZLjava/io/PrintWriter;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
        12: .line 318
            astore 2 /* imageProvider */
        start local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        13: .line 327
            aload 1 /* plugins */
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        14: .line 330
            aload 3 /* stack */
            aload 2 /* imageProvider */
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
        15: .line 331
            return
        end local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        end local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        end local 1 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration plugins
        end local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0         config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   16     1        plugins  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
           13   16     2  imageProvider  Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
           14   16     3          stack  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      config   
      plugins  

  public static void postProcessImage(jdk.tools.jlink.internal.ExecutableImage, java.util.List<jdk.tools.jlink.plugin.Plugin>);
    descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.ExecutableImage image
        start local 1 // java.util.List postProcessorPlugins
         0: .line 338
            aload 0 /* image */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 339
            aload 1 /* postProcessorPlugins */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 340
            new jdk.tools.jlink.internal.Jlink$PluginsConfiguration
            dup
            aload 1 /* postProcessorPlugins */
            invokespecial jdk.tools.jlink.internal.Jlink$PluginsConfiguration.<init>:(Ljava/util/List;)V
            astore 2 /* config */
        start local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
         3: .line 342
            aload 2 /* config */
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
         4: .line 341
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
         5: .line 344
            aload 3 /* stack */
            aload 0 /* image */
            invokedynamic retrieve(Ljdk/tools/jlink/internal/ExecutableImage;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
              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:
                  (Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage;
                  jdk/tools/jlink/internal/JlinkTask.lambda$17(Ljdk/tools/jlink/internal/ExecutableImage;Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage; (6)
                  (Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage;
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
         6: .line 345
            return
        end local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        end local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
        end local 1 // java.util.List postProcessorPlugins
        end local 0 // jdk.tools.jlink.internal.ExecutableImage image
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                 image  Ljdk/tools/jlink/internal/ExecutableImage;
            0    7     1  postProcessorPlugins  Ljava/util/List<Ljdk/tools/jlink/plugin/Plugin;>;
            3    7     2                config  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            5    7     3                 stack  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.lang.Exception
    Signature: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List<Ljdk/tools/jlink/plugin/Plugin;>;)V
    MethodParameters:
                      Name  Flags
      image                 
      postProcessorPlugins  

  private void postProcessOnly(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.nio.file.Path existingImage
         0: .line 348
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aconst_null
            aconst_null
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getPluginsConfig:(Ljava/nio/file/Path;Ljava/util/Map;)Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            astore 2 /* config */
        start local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
         1: .line 349
            aload 1 /* existingImage */
            invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.getExecutableImage:(Ljava/nio/file/Path;)Ljdk/tools/jlink/internal/ExecutableImage;
            astore 3 /* img */
        start local 3 // jdk.tools.jlink.internal.ExecutableImage img
         2: .line 350
            aload 3 /* img */
            ifnonnull 4
         3: .line 351
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.existing.image.invalid"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         4: .line 353
      StackMap locals: jdk.tools.jlink.internal.Jlink$PluginsConfiguration jdk.tools.jlink.internal.ExecutableImage
      StackMap stack:
            aload 3 /* img */
            aload 2 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$PluginsConfiguration.getPlugins:()Ljava/util/List;
            invokestatic jdk.tools.jlink.internal.JlinkTask.postProcessImage:(Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List;)V
         5: .line 354
            return
        end local 3 // jdk.tools.jlink.internal.ExecutableImage img
        end local 2 // jdk.tools.jlink.internal.Jlink$PluginsConfiguration config
        end local 1 // java.nio.file.Path existingImage
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Ljdk/tools/jlink/internal/JlinkTask;
            0    6     1  existingImage  Ljava/nio/file/Path;
            1    6     2         config  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            2    6     3            img  Ljdk/tools/jlink/internal/ExecutableImage;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
               Name  Flags
      existingImage  

  private jdk.tools.jlink.internal.Jlink$JlinkConfiguration initJlinkConfig();
    descriptor: ()Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 359
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* roots */
        start local 1 // java.util.Set roots
         1: .line 360
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.addMods:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* mod */
        start local 2 // java.lang.String mod
         3: .line 361
            aload 2 /* mod */
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         4: .line 362
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            invokestatic java.util.Set.of:()Ljava/util/Set;
            invokestatic jdk.tools.jlink.internal.JlinkTask.newModuleFinder:(Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 4 /* finder */
        start local 4 // java.lang.module.ModuleFinder finder
         5: .line 364
            aload 4 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
         6: .line 365
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         7: .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/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;
         8: .line 367
            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;
         9: .line 368
            aload 1 /* 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/tools/jlink/internal/JlinkTask.lambda$20(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 4 // java.lang.module.ModuleFinder finder
        10: .line 369
            goto 12
        11: .line 370
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set java.lang.String java.util.Iterator
      StackMap stack:
            aload 1 /* roots */
            aload 2 /* mod */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String mod
        12: .line 360
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 374
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            aload 1 /* roots */
            invokestatic jdk.tools.jlink.internal.JlinkTask.newModuleFinder:(Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 2 /* finder */
        start local 2 // java.lang.module.ModuleFinder finder
        14: .line 375
            aload 2 /* finder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 19
        15: .line 376
            invokestatic jdk.tools.jlink.internal.JlinkTask.getDefaultModulePath:()Ljava/nio/file/Path;
            astore 3 /* defModPath */
        start local 3 // java.nio.file.Path defModPath
        16: .line 377
            aload 3 /* defModPath */
            ifnull 18
        17: .line 378
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 3 /* defModPath */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 380
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set java.lang.module.ModuleFinder java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            aload 1 /* roots */
            invokestatic jdk.tools.jlink.internal.JlinkTask.newModuleFinder:(Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 2 /* finder */
        end local 3 // java.nio.file.Path defModPath
        19: .line 383
      StackMap locals:
      StackMap stack:
            new jdk.tools.jlink.internal.Jlink$JlinkConfiguration
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
        20: .line 384
            aload 1 /* roots */
        21: .line 385
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.endian:Ljava/nio/ByteOrder;
        22: .line 386
            aload 2 /* finder */
        23: .line 383
            invokespecial jdk.tools.jlink.internal.Jlink$JlinkConfiguration.<init>:(Ljava/nio/file/Path;Ljava/util/Set;Ljava/nio/ByteOrder;Ljava/lang/module/ModuleFinder;)V
            areturn
        end local 2 // java.lang.module.ModuleFinder finder
        end local 1 // java.util.Set roots
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Ljdk/tools/jlink/internal/JlinkTask;
            1   24     1       roots  Ljava/util/Set<Ljava/lang/String;>;
            3   12     2         mod  Ljava/lang/String;
            5   10     4      finder  Ljava/lang/module/ModuleFinder;
           14   24     2      finder  Ljava/lang/module/ModuleFinder;
           16   19     3  defModPath  Ljava/nio/file/Path;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private void createImage(jdk.tools.jlink.internal.Jlink$JlinkConfiguration);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
         0: .line 390
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
            ifnonnull 2
         1: .line 391
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.output.must.be.specified"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         2: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.addMods:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 6
         3: .line 394
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.mods.must.be.specified"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "--add-modules"
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         4: .line 395
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         5: .line 394
            athrow
         6: .line 399
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
         7: .line 400
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.packagedModulesPath:Ljava/nio/file/Path;
         8: .line 401
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.ignoreSigning:Z
         9: .line 402
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.bindServices:Z
        10: .line 403
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.verbose:Z
        11: .line 404
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
        12: .line 399
            invokestatic jdk.tools.jlink.internal.JlinkTask.createImageProvider:(Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/nio/file/Path;ZZZLjava/io/PrintWriter;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
            astore 2 /* imageProvider */
        start local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        13: .line 408
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.launchers:Ljava/util/Map;
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getPluginsConfig:(Ljava/nio/file/Path;Ljava/util/Map;)Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
        14: .line 407
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        15: .line 411
            aload 3 /* stack */
            aload 2 /* imageProvider */
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
        16: .line 412
            return
        end local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
        end local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        end local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Ljdk/tools/jlink/internal/JlinkTask;
            0   17     1         config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
           13   17     2  imageProvider  Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
           15   17     3          stack  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      config  

  public static java.nio.file.Path getDefaultModulePath();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 418
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "jmods"
            aastore
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 0 /* jmods */
        start local 0 // java.nio.file.Path jmods
         1: .line 419
            aload 0 /* jmods */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 2
            aload 0 /* jmods */
            goto 3
      StackMap locals: java.nio.file.Path
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.nio.file.Path
         3: areturn
        end local 0 // java.nio.file.Path jmods
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    4     0  jmods  Ljava/nio/file/Path;

  public static java.lang.module.ModuleFinder newModuleFinder(java.util.List<java.nio.file.Path>, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // java.util.List paths
        start local 1 // java.util.Set limitMods
        start local 2 // java.util.Set roots
         0: .line 435
            aload 0 /* paths */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 436
            new java.lang.IllegalArgumentException
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.empty.module.path"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* paths */
            iconst_0
            anewarray java.nio.file.Path
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.nio.file.Path[]
            astore 3 /* entries */
        start local 3 // java.nio.file.Path[] entries
         3: .line 440
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            astore 4 /* version */
        start local 4 // java.lang.Runtime$Version version
         4: .line 441
            aload 4 /* version */
            iconst_1
            aload 3 /* entries */
            invokestatic jdk.internal.module.ModulePath.of:(Ljava/lang/Runtime$Version;Z[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            astore 5 /* finder */
        start local 5 // java.lang.module.ModuleFinder finder
         5: .line 443
            aload 5 /* finder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 16
         6: .line 446
            aload 5 /* finder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
         7: .line 447
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.version:()Ljava/util/Optional;
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  jdk/tools/jlink/internal/JlinkTask.lambda$21()Ljava/lang/IllegalArgumentException; (6)
                  ()Ljava/lang/IllegalArgumentException;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Version
         8: .line 446
            astore 6 /* v */
        start local 6 // java.lang.module.ModuleDescriptor$Version v
         9: .line 452
            aload 6 /* v */
            invokevirtual java.lang.module.ModuleDescriptor$Version.toString:()Ljava/lang/String;
            invokestatic java.lang.Runtime$Version.parse:(Ljava/lang/String;)Ljava/lang/Runtime$Version;
            astore 4 /* version */
        10: .line 453
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.feature:()I
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.feature:()I
            if_icmpne 12
        11: .line 454
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.interim:()I
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.interim:()I
            if_icmpeq 16
        12: .line 458
      StackMap locals: java.util.List java.util.Set java.util.Set java.nio.file.Path[] java.lang.Runtime$Version java.lang.module.ModuleFinder java.lang.module.ModuleDescriptor$Version
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.jlink.version.mismatch"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 459
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.feature:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            invokevirtual java.lang.Runtime$Version.interim:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        14: .line 460
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.feature:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 4 /* version */
            invokevirtual java.lang.Runtime$Version.interim:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        15: .line 458
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.module.ModuleDescriptor$Version v
        16: .line 465
      StackMap locals:
      StackMap stack:
            aload 1 /* limitMods */
            ifnull 18
            aload 1 /* limitMods */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 18
        17: .line 466
            aload 5 /* finder */
            aload 1 /* limitMods */
            aload 2 /* roots */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokestatic jdk.tools.jlink.internal.JlinkTask.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 5 /* finder */
        18: .line 468
      StackMap locals:
      StackMap stack:
            aload 5 /* finder */
            areturn
        end local 5 // java.lang.module.ModuleFinder finder
        end local 4 // java.lang.Runtime$Version version
        end local 3 // java.nio.file.Path[] entries
        end local 2 // java.util.Set roots
        end local 1 // java.util.Set limitMods
        end local 0 // java.util.List paths
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0      paths  Ljava/util/List<Ljava/nio/file/Path;>;
            0   19     1  limitMods  Ljava/util/Set<Ljava/lang/String;>;
            0   19     2      roots  Ljava/util/Set<Ljava/lang/String;>;
            3   19     3    entries  [Ljava/nio/file/Path;
            4   19     4    version  Ljava/lang/Runtime$Version;
            5   19     5     finder  Ljava/lang/module/ModuleFinder;
            9   16     6          v  Ljava/lang/module/ModuleDescriptor$Version;
    Signature: (Ljava/util/List<Ljava/nio/file/Path;>;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleFinder;
    MethodParameters:
           Name  Flags
      paths      
      limitMods  
      roots      

  private static java.nio.file.Path toPathLocation(java.lang.module.ResolvedModule);
    descriptor: (Ljava/lang/module/ResolvedModule;)Ljava/nio/file/Path;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.module.ResolvedModule m
         0: .line 472
            aload 0 /* m */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            astore 1 /* ouri */
        start local 1 // java.util.Optional ouri
         1: .line 473
            aload 1 /* ouri */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 3
         2: .line 474
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not have a location"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 475
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 1 /* ouri */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.URI
            astore 2 /* uri */
        start local 2 // java.net.URI uri
         4: .line 476
            aload 2 /* uri */
            invokestatic java.nio.file.Paths.get:(Ljava/net/URI;)Ljava/nio/file/Path;
            areturn
        end local 2 // java.net.URI uri
        end local 1 // java.util.Optional ouri
        end local 0 // java.lang.module.ResolvedModule m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     m  Ljava/lang/module/ResolvedModule;
            1    5     1  ouri  Ljava/util/Optional<Ljava/net/URI;>;
            4    5     2   uri  Ljava/net/URI;
    MethodParameters:
      Name  Flags
      m     

  private static jdk.tools.jlink.internal.ImagePluginStack$ImageProvider createImageProvider(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, java.nio.file.Path, boolean, boolean, boolean, java.io.PrintWriter);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/nio/file/Path;ZZZLjava/io/PrintWriter;)Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 1 // java.nio.file.Path retainModulesPath
        start local 2 // boolean ignoreSigning
        start local 3 // boolean bindService
        start local 4 // boolean verbose
        start local 5 // java.io.PrintWriter log
         0: .line 488
            iload 3 /* bindService */
            ifeq 1
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolveAndBind:()Ljava/lang/module/Configuration;
            goto 2
         1: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve:()Ljava/lang/module/Configuration;
         2: .line 488
      StackMap locals:
      StackMap stack: java.lang.module.Configuration
            astore 6 /* cf */
        start local 6 // java.lang.module.Configuration cf
         3: .line 491
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 492
            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;
         5: .line 493
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/tools/jlink/internal/JlinkTask.lambda$23(Ljava/lang/module/ModuleReference;)Z (6)
                  (Ljava/lang/module/ModuleReference;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         6: .line 494
            invokeinterface java.util.stream.Stream.findAny:()Ljava/util/Optional;
         7: .line 495
            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/tools/jlink/internal/JlinkTask.lambda$24(Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
         8: .line 501
            iload 4 /* verbose */
            ifeq 17
            aload 5 /* log */
            ifnull 17
         9: .line 503
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        10: .line 504
            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.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        11: .line 505
            aload 5 /* log */
            invokedynamic accept(Ljava/io/PrintWriter;)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/tools/jlink/internal/JlinkTask.lambda$27(Ljava/io/PrintWriter;Ljava/lang/module/ResolvedModule;)V (6)
                  (Ljava/lang/module/ResolvedModule;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        12: .line 509
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        13: .line 510
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/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;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        14: .line 509
            astore 7 /* references */
        start local 7 // java.util.Set references
        15: .line 512
            ldc "%n%s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "providers.header"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        16: .line 513
            aload 5 /* log */
            aload 8 /* msg */
            aload 7 /* references */
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;)V
        end local 8 // java.lang.String msg
        end local 7 // java.util.Set references
        17: .line 517
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            aload 5 /* log */
            ifnull 28
        18: .line 518
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
        19: .line 519
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        20: .line 520
            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;
        21: .line 521
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/internal/module/ModuleResolution.hasIncubatingWarning(Ljava/lang/module/ModuleReference;)Z (6)
                  (Ljava/lang/module/ModuleReference;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        22: .line 522
            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;
        23: .line 523
            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;
        24: .line 524
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
        25: .line 518
            astore 7 /* im */
        start local 7 // java.lang.String im
        26: .line 526
            ldc ""
            aload 7 /* im */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
        27: .line 527
            aload 5 /* log */
            new java.lang.StringBuilder
            dup
            ldc "WARNING: Using incubator modules: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* im */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 7 // java.lang.String im
        28: .line 530
      StackMap locals:
      StackMap stack:
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        29: .line 531
            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.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/String;
            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/tools/jlink/internal/JlinkTask.toPathLocation(Ljava/lang/module/ResolvedModule;)Ljava/nio/file/Path; (6)
                  (Ljava/lang/module/ResolvedModule;)Ljava/nio/file/Path;
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
        30: .line 530
            astore 7 /* mods */
        start local 7 // java.util.Map mods
        31: .line 532
            new jdk.tools.jlink.internal.JlinkTask$ImageHelper
            dup
            aload 6 /* cf */
            aload 7 /* mods */
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.getByteOrder:()Ljava/nio/ByteOrder;
            aload 1 /* retainModulesPath */
            iload 2 /* ignoreSigning */
            invokespecial jdk.tools.jlink.internal.JlinkTask$ImageHelper.<init>:(Ljava/lang/module/Configuration;Ljava/util/Map;Ljava/nio/ByteOrder;Ljava/nio/file/Path;Z)V
            areturn
        end local 7 // java.util.Map mods
        end local 6 // java.lang.module.Configuration cf
        end local 5 // java.io.PrintWriter log
        end local 4 // boolean verbose
        end local 3 // boolean bindService
        end local 2 // boolean ignoreSigning
        end local 1 // java.nio.file.Path retainModulesPath
        end local 0 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0             config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   32     1  retainModulesPath  Ljava/nio/file/Path;
            0   32     2      ignoreSigning  Z
            0   32     3        bindService  Z
            0   32     4            verbose  Z
            0   32     5                log  Ljava/io/PrintWriter;
            3   32     6                 cf  Ljava/lang/module/Configuration;
           15   17     7         references  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           16   17     8                msg  Ljava/lang/String;
           26   28     7                 im  Ljava/lang/String;
           31   32     7               mods  Ljava/util/Map<Ljava/lang/String;Ljava/nio/file/Path;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      config             
      retainModulesPath  
      ignoreSigning      
      bindService        
      verbose            
      log                

  public 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: (0x0009) ACC_PUBLIC, 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 544
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
         1: .line 545
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         2: .line 546
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         3: .line 547
            aload 1 /* roots */
         4: .line 545
            invokevirtual java.lang.module.Configuration.resolve:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;Ljava/util/Collection;)Ljava/lang/module/Configuration;
         5: .line 544
            astore 3 /* cf */
        start local 3 // java.lang.module.Configuration cf
         6: .line 550
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         7: .line 551
            aload 3 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            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/tools/jlink/internal/JlinkTask.lambda$35(Ljava/util/Map;Ljava/lang/module/ResolvedModule;)V (6)
                  (Ljava/lang/module/ResolvedModule;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         8: .line 557
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 558
            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 559
            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 560
            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/tools/jlink/internal/JlinkTask.lambda$38(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 563
            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 565
            new jdk.tools.jlink.internal.JlinkTask$1
            dup
            aload 4 /* map */
            aload 6 /* mrefs */
            invokespecial jdk.tools.jlink.internal.JlinkTask$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;>;
            6   14     3         cf  Ljava/lang/module/Configuration;
            7   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.util.Map<java.lang.String, java.util.Set<java.lang.String>> uses(java.util.Set<java.lang.module.ModuleReference>);
    descriptor: (Ljava/util/Set;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Set modules
         0: .line 585
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* services */
        start local 1 // java.util.Map services
         1: .line 586
            aload 0 /* modules */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 587
            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;
         3: .line 588
            aload 1 /* services */
            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/tools/jlink/internal/JlinkTask.lambda$40(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 595
            aload 1 /* services */
            areturn
        end local 1 // java.util.Map services
        end local 0 // java.util.Set modules
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   modules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
            1    5     1  services  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleReference;>;)Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    MethodParameters:
         Name  Flags
      modules  

  private static void printProviders(java.io.PrintWriter, java.lang.String, java.util.Set<java.lang.module.ModuleReference>);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.PrintWriter log
        start local 1 // java.lang.String header
        start local 2 // java.util.Set modules
         0: .line 601
            aload 0 /* log */
            aload 1 /* header */
            aload 2 /* modules */
            aload 2 /* modules */
            invokestatic jdk.tools.jlink.internal.JlinkTask.uses:(Ljava/util/Set;)Ljava/util/Map;
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
         1: .line 602
            return
        end local 2 // java.util.Set modules
        end local 1 // java.lang.String header
        end local 0 // java.io.PrintWriter log
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0      log  Ljava/io/PrintWriter;
            0    2     1   header  Ljava/lang/String;
            0    2     2  modules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
    Signature: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleReference;>;)V
    MethodParameters:
         Name  Flags
      log      
      header   
      modules  

  private static void printProviders(java.io.PrintWriter, java.lang.String, java.util.Set<java.lang.module.ModuleReference>, java.util.Map<java.lang.String, java.util.Set<java.lang.String>>);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.io.PrintWriter log
        start local 1 // java.lang.String header
        start local 2 // java.util.Set modules
        start local 3 // java.util.Map serviceToUses
         0: .line 615
            aload 2 /* modules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 616
            return
         2: .line 619
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* providers */
        start local 4 // java.util.Map providers
         3: .line 620
            aload 2 /* modules */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 621
            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;
         5: .line 622
            aload 3 /* serviceToUses */
            aload 4 /* providers */
            invokedynamic accept(Ljava/util/Map;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/tools/jlink/internal/JlinkTask.lambda$46(Ljava/util/Map;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         6: .line 629
            aload 4 /* providers */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 8
         7: .line 630
            aload 0 /* log */
            aload 1 /* header */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         8: .line 635
      StackMap locals: java.util.Map
      StackMap stack:
            aload 4 /* providers */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 636
            invokestatic java.util.Map$Entry.comparingByKey:()Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        10: .line 637
            aload 3 /* serviceToUses */
            aload 0 /* log */
            invokedynamic accept(Ljava/util/Map;Ljava/io/PrintWriter;)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/tools/jlink/internal/JlinkTask.lambda$50(Ljava/util/Map;Ljava/io/PrintWriter;Ljava/util/Map$Entry;)V (6)
                  (Ljava/util/Map$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        11: .line 658
            return
        end local 4 // java.util.Map providers
        end local 3 // java.util.Map serviceToUses
        end local 2 // java.util.Set modules
        end local 1 // java.lang.String header
        end local 0 // java.io.PrintWriter log
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0            log  Ljava/io/PrintWriter;
            0   12     1         header  Ljava/lang/String;
            0   12     2        modules  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
            0   12     3  serviceToUses  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            3   12     4      providers  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;>;
    Signature: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleReference;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;)V
    MethodParameters:
               Name  Flags
      log            
      header         
      modules        
      serviceToUses  

  private void suggestProviders(jdk.tools.jlink.internal.Jlink$JlinkConfiguration, java.util.List<java.lang.String>);
    descriptor: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        start local 2 // java.util.List args
         0: .line 663
            aload 2 /* args */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 9
         1: .line 664
            aload 2 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 665
            aload 2 /* args */
            goto 4
         3: .line 666
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aload 2 /* args */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
         4: .line 664
      StackMap locals:
      StackMap stack: java.util.List
            astore 3 /* arguments */
        start local 3 // java.util.List arguments
         5: .line 667
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.invalid.arg.for.option"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 668
            ldc "--suggest-providers"
            aastore
            dup
            iconst_1
         7: .line 669
            aload 3 /* arguments */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
         8: .line 667
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
        end local 3 // java.util.List arguments
         9: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.bindServices:Z
            ifeq 12
        10: .line 673
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "no.suggested.providers"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        11: .line 674
            return
        12: .line 677
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.finder:()Ljava/lang/module/ModuleFinder;
            astore 3 /* finder */
        start local 3 // java.lang.module.ModuleFinder finder
        13: .line 678
            aload 2 /* args */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 21
        14: .line 680
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 4 /* mrefs */
        start local 4 // java.util.Set mrefs
        15: .line 682
            aload 4 /* mrefs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        16: .line 683
            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/tools/jlink/internal/JlinkTask.lambda$55(Ljava/lang/module/ModuleReference;)Ljava/lang/String; (6)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        17: .line 684
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/JlinkTask;)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/tools/jlink/internal/JlinkTask.lambda$56(Ljava/lang/module/ModuleReference;)V (7)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        18: .line 692
            ldc "%n%s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "suggested.providers.header"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
        19: .line 693
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            aload 5 /* msg */
            aload 4 /* mrefs */
            aload 4 /* mrefs */
            invokestatic jdk.tools.jlink.internal.JlinkTask.uses:(Ljava/util/Set;)Ljava/util/Map;
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
        end local 5 // java.lang.String msg
        end local 4 // java.util.Set mrefs
        20: .line 695
            goto 42
        21: .line 697
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 2 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
        22: .line 698
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        23: .line 697
            astore 4 /* names */
        start local 4 // java.util.Set names
        24: .line 700
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        25: .line 701
            aload 4 /* names */
            invokedynamic test(Ljava/util/Set;)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/tools/jlink/internal/JlinkTask.lambda$58(Ljava/util/Set;Ljava/lang/module/ModuleReference;)Z (6)
                  (Ljava/lang/module/ModuleReference;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        26: .line 704
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        27: .line 700
            astore 5 /* mrefs */
        start local 5 // java.util.Set mrefs
        28: .line 707
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* uses */
        start local 6 // java.util.Map uses
        29: .line 708
            aload 4 /* names */
            aload 6 /* uses */
            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/tools/jlink/internal/JlinkTask.lambda$61(Ljava/util/Map;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        30: .line 709
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        31: .line 710
            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;
        32: .line 711
            aload 4 /* names */
            aload 6 /* uses */
            invokedynamic accept(Ljava/util/Set;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/tools/jlink/internal/JlinkTask.lambda$64(Ljava/util/Set;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        33: .line 716
            aload 5 /* mrefs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        34: .line 717
            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/tools/jlink/internal/JlinkTask.lambda$67(Ljava/lang/module/ModuleReference;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/module/ModuleReference;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        35: .line 719
            aload 4 /* names */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            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
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        36: .line 720
            aload 4 /* names */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 40
        37: .line 721
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "warn.provider.notfound"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        38: .line 722
            aload 4 /* names */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            ldc ","
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
        39: .line 721
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        40: .line 725
      StackMap locals: java.util.Set java.util.Set java.util.Map
      StackMap stack:
            ldc "%n%s:"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "suggested.providers.header"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        41: .line 726
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            aload 8 /* msg */
            aload 5 /* mrefs */
            aload 6 /* uses */
            invokestatic jdk.tools.jlink.internal.JlinkTask.printProviders:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;Ljava/util/Map;)V
        end local 8 // java.lang.String msg
        end local 6 // java.util.Map uses
        end local 5 // java.util.Set mrefs
        end local 4 // java.util.Set names
        42: .line 728
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.module.ModuleFinder finder
        end local 2 // java.util.List args
        end local 1 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   43     0       this  Ljdk/tools/jlink/internal/JlinkTask;
            0   43     1     config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   43     2       args  Ljava/util/List<Ljava/lang/String;>;
            5    9     3  arguments  Ljava/util/List<Ljava/lang/String;>;
           13   43     3     finder  Ljava/lang/module/ModuleFinder;
           15   20     4      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           19   20     5        msg  Ljava/lang/String;
           24   42     4      names  Ljava/util/Set<Ljava/lang/String;>;
           28   42     5      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           29   42     6       uses  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           41   42     8        msg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs
    Signature: (Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  
      args    

  private java.lang.String getSaveOpts();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 731
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 732
            aload 1 /* sb */
            bipush 35
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 733
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.getInputCommand:()[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* c */
        start local 2 // java.lang.String c
         4: .line 734
            aload 1 /* sb */
            aload 2 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.String c
         5: .line 733
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 737
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            1    8     1    sb  Ljava/lang/StringBuilder;
            4    5     2     c  Ljava/lang/String;

  private static void lambda$0(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 88
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.help:Z
         1: .line 89
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$1(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 93
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 94
            aload 2 /* arg */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* dirs */
        start local 3 // java.lang.String[] dirs
         2: .line 95
            aload 3 /* dirs */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/tools/jlink/internal/JlinkTask.lambda$70(Ljava/lang/String;)Ljava/nio/file/Path; (6)
                  (Ljava/lang/String;)Ljava/nio/file/Path;
         3: .line 96
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 97
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.modulePath:Ljava/util/List;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/util/List.add(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 3 // java.lang.String[] dirs
         5: .line 98
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    6     1   opt  Ljava/lang/String;
            0    6     2   arg  Ljava/lang/String;
            2    5     3  dirs  [Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$4(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 102
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         1: .line 103
            aload 2 /* arg */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* mn */
        start local 3 // java.lang.String mn
         3: .line 104
            aload 3 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         4: .line 105
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.mods.must.be.specified"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 106
            ldc "--limit-modules"
            aastore
         6: .line 105
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         7: .line 108
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.limitMods:Ljava/util/Set;
            aload 3 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String mn
         8: .line 103
            iinc 4 1
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 2
        10: .line 110
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0   11     1   opt  Ljava/lang/String;
            0   11     2   arg  Ljava/lang/String;
            3    8     3    mn  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$5(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 112
            aload 2 /* arg */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* mn */
        start local 3 // java.lang.String mn
         2: .line 113
            aload 3 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         3: .line 114
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.mods.must.be.specified"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 115
            ldc "--add-modules"
            aastore
         5: .line 114
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         6: .line 117
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.addMods:Ljava/util/Set;
            aload 3 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String mn
         7: .line 112
            iinc 4 1
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 1
         9: .line 119
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0   10     1   opt  Ljava/lang/String;
            0   10     2   arg  Ljava/lang/String;
            2    7     3    mn  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$6(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 121
            aload 2 /* arg */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         1: .line 122
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            aload 3 /* path */
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.output:Ljava/nio/file/Path;
        end local 3 // java.nio.file.Path path
         2: .line 123
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    3     1   opt  Ljava/lang/String;
            0    3     2   arg  Ljava/lang/String;
            1    2     3  path  Ljava/nio/file/Path;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$7(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 125
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.bindServices:Z
         1: .line 126
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$8(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 128
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.suggestProviders:Z
         1: .line 129
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$9(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 131
            aload 2 /* arg */
            ldc "="
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* values */
        start local 3 // java.lang.String[] values
         1: .line 133
            aload 3 /* values */
            arraylength
            iconst_2
            if_icmpne 2
            aload 3 /* values */
            iconst_0
            aaload
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 2
            aload 3 /* values */
            iconst_1
            aaload
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
         2: .line 134
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.launcher.value.format"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         3: .line 136
      StackMap locals:
      StackMap stack:
            aload 3 /* values */
            iconst_0
            aaload
            astore 4 /* commandName */
        start local 4 // java.lang.String commandName
         4: .line 137
            aload 3 /* values */
            iconst_1
            aaload
            astore 5 /* moduleAndMain */
        start local 5 // java.lang.String moduleAndMain
         5: .line 138
            aload 5 /* moduleAndMain */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 6 /* idx */
        start local 6 // int idx
         6: .line 139
            iload 6 /* idx */
            iconst_m1
            if_icmpeq 11
         7: .line 140
            aload 5 /* moduleAndMain */
            iconst_0
            iload 6 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 9
         8: .line 141
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.launcher.module.name.empty"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         9: .line 144
      StackMap locals: java.lang.String java.lang.String int
      StackMap stack:
            aload 5 /* moduleAndMain */
            iload 6 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 11
        10: .line 145
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.launcher.main.class.empty"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
        11: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.launchers:Ljava/util/Map;
            aload 4 /* commandName */
            aload 5 /* moduleAndMain */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // int idx
        end local 5 // java.lang.String moduleAndMain
        end local 4 // java.lang.String commandName
        end local 3 // java.lang.String[] values
        12: .line 150
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           task  Ljdk/tools/jlink/internal/JlinkTask;
            0   13     1            opt  Ljava/lang/String;
            0   13     2            arg  Ljava/lang/String;
            1   12     3         values  [Ljava/lang/String;
            4   12     4    commandName  Ljava/lang/String;
            5   12     5  moduleAndMain  Ljava/lang/String;
            6   12     6            idx  I
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$10(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 152
            ldc "little"
            aload 2 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 153
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.endian:Ljava/nio/ByteOrder;
         2: .line 154
            goto 7
      StackMap locals:
      StackMap stack:
         3: ldc "big"
            aload 2 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 155
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.endian:Ljava/nio/ByteOrder;
         5: .line 156
            goto 7
         6: .line 157
      StackMap locals:
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.unknown.byte.order"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* arg */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         7: .line 159
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    8     1   opt  Ljava/lang/String;
            0    8     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$11(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 161
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.verbose:Z
         1: .line 162
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$12(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 164
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.version:Z
         1: .line 165
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$13(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 167
            aload 2 /* arg */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         1: .line 168
            aload 3 /* path */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 3
         2: .line 169
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.dir.exists"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* path */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         3: .line 171
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            aload 3 /* path */
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.packagedModulesPath:Ljava/nio/file/Path;
        end local 3 // java.nio.file.Path path
         4: .line 172
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    5     1   opt  Ljava/lang/String;
            0    5     2   arg  Ljava/lang/String;
            1    4     3  path  Ljava/nio/file/Path;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$14(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 174
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            aload 2 /* arg */
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.saveoptsfile:Ljava/lang/String;
         1: .line 175
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$15(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 177
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.fullVersion:Z
         1: .line 178
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static void lambda$16(jdk.tools.jlink.internal.JlinkTask, java.lang.String, java.lang.String);
    descriptor: (Ljdk/tools/jlink/internal/JlinkTask;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.JlinkTask task
        start local 1 // java.lang.String opt
        start local 2 // java.lang.String arg
         0: .line 180
            aload 0 /* task */
            getfield jdk.tools.jlink.internal.JlinkTask.options:Ljdk/tools/jlink/internal/JlinkTask$OptionsValues;
            iconst_1
            putfield jdk.tools.jlink.internal.JlinkTask$OptionsValues.ignoreSigning:Z
         1: .line 181
            return
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String opt
        end local 0 // jdk.tools.jlink.internal.JlinkTask task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  task  Ljdk/tools/jlink/internal/JlinkTask;
            0    2     1   opt  Ljava/lang/String;
            0    2     2   arg  Ljava/lang/String;
    Exceptions:
      throws jdk.tools.jlink.internal.TaskHelper$BadArgs

  private static jdk.tools.jlink.internal.ExecutableImage lambda$17(jdk.tools.jlink.internal.ExecutableImage, jdk.tools.jlink.internal.ImagePluginStack);
    descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljdk/tools/jlink/internal/ImagePluginStack;)Ljdk/tools/jlink/internal/ExecutableImage;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 1 // jdk.tools.jlink.internal.ImagePluginStack stack1
         0: .line 344
            aload 0
            areturn
        end local 1 // jdk.tools.jlink.internal.ImagePluginStack stack1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     1  stack1  Ljdk/tools/jlink/internal/ImagePluginStack;
    Exceptions:
      throws java.io.IOException

  private static void lambda$20(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 java.lang.IllegalArgumentException lambda$21();
    descriptor: ()Ljava/lang/IllegalArgumentException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 448
            new java.lang.IllegalArgumentException
            dup
            ldc "No version in java.base descriptor"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$23(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 493
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ireturn
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$24(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 496
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            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/net/URI.toString()Ljava/lang/String; (5)
                  (Ljava/net/URI;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            ldc "<unknown>"
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* loc */
        start local 1 // java.lang.String loc
         1: .line 497
            new java.lang.IllegalArgumentException
            dup
         2: .line 498
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.automatic.module"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* loc */
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 497
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String loc
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  mref  Ljava/lang/module/ModuleReference;
            1    4     1   loc  Ljava/lang/String;

  private static void lambda$27(java.io.PrintWriter, java.lang.module.ResolvedModule);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/module/ResolvedModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 1 // java.lang.module.ResolvedModule rm
         0: .line 505
            aload 0
            ldc "%s %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 506
            aload 1 /* rm */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* rm */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
         2: .line 505
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
         3: .line 506
            return
        end local 1 // java.lang.module.ResolvedModule rm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1    rm  Ljava/lang/module/ResolvedModule;

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

  private static void lambda$38(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 560
            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 void lambda$40(java.util.Map, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor md
         0: .line 590
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            aload 0
            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/tools/jlink/internal/JlinkTask.lambda$41(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         1: .line 592
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            aload 0
            aload 1 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$43(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         2: .line 594
            return
        end local 1 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    md  Ljava/lang/module/ModuleDescriptor;

  private static void lambda$46(java.util.Map, java.util.Map, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.module.ModuleDescriptor md
         0: .line 623
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 624
            aload 0
            invokedynamic test(Ljava/util/Map;)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/tools/jlink/internal/JlinkTask.lambda$47(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 625
            aload 1
            aload 2 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$48(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 627
            return
        end local 2 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2    md  Ljava/lang/module/ModuleDescriptor;

  private static void lambda$50(java.util.Map, java.io.PrintWriter, java.util.Map$Entry);
    descriptor: (Ljava/util/Map;Ljava/io/PrintWriter;Ljava/util/Map$Entry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
        start local 2 // java.util.Map$Entry e
         0: .line 638
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* service */
        start local 3 // java.lang.String service
         1: .line 639
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 640
            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;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
         3: .line 641
            aload 3 /* service */
            aload 0
            aload 1
            invokedynamic accept(Ljava/lang/String;Ljava/util/Map;Ljava/io/PrintWriter;)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/tools/jlink/internal/JlinkTask.lambda$52(Ljava/lang/String;Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;)V (6)
                  (Ljava/lang/module/ModuleDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 3 // java.lang.String service
         4: .line 657
            return
        end local 2 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     2        e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/module/ModuleDescriptor;>;>;
            1    4     3  service  Ljava/lang/String;

  private static java.lang.String lambda$55(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 683
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  mref  Ljava/lang/module/ModuleReference;

  private void lambda$56(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 685
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 2 /* md */
        start local 2 // java.lang.module.ModuleDescriptor md
         1: .line 686
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ldc "%s %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 687
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
         3: .line 686
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
         4: .line 688
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         5: .line 689
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/JlinkTask;)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/tools/jlink/internal/JlinkTask.lambda$57(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 2 // java.lang.module.ModuleDescriptor md
         6: .line 690
            return
        end local 1 // java.lang.module.ModuleReference mref
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            0    7     1  mref  Ljava/lang/module/ModuleReference;
            1    6     2    md  Ljava/lang/module/ModuleDescriptor;

  private static boolean lambda$58(java.util.Set, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Set;Ljava/lang/module/ModuleReference;)Z
    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 701
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 702
            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$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 703
            aload 0
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Set.contains(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$61(java.util.Map, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.String s
         0: .line 708
            aload 0
            aload 1 /* s */
            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/tools/jlink/internal/JlinkTask.lambda$62(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            return
        end local 1 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     s  Ljava/lang/String;

  private static void lambda$64(java.util.Set, java.util.Map, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/util/Set;Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.module.ModuleDescriptor md
         0: .line 711
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 712
            aload 0
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Set.contains(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 713
            aload 1
            aload 2 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$66(Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
            return
        end local 2 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2    md  Ljava/lang/module/ModuleDescriptor;

  private static java.util.stream.Stream lambda$67(java.lang.module.ModuleReference);
    descriptor: (Ljava/lang/module/ModuleReference;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleReference mref
         0: .line 717
            aload 0 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 718
            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$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  mref  Ljava/lang/module/ModuleReference;

  private static java.nio.file.Path lambda$70(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
        end local 0 // java.lang.String  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/lang/String;

  private static void lambda$41(java.util.Map, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 591
            aload 0
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            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/tools/jlink/internal/JlinkTask.lambda$42(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$43(java.util.Map, java.lang.module.ModuleDescriptor, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String s
         0: .line 592
            aload 0
            aload 2 /* s */
            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/tools/jlink/internal/JlinkTask.lambda$44(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
         1: .line 593
            aload 1
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     2     s  Ljava/lang/String;

  private static boolean lambda$47(java.util.Map, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor$Provides;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 624
            aload 0
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$48(java.util.Map, java.lang.module.ModuleDescriptor, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 625
            aload 0
            aload 2 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            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/tools/jlink/internal/JlinkTask.lambda$49(Ljava/lang/String;)Ljava/util/Set; (6)
                  (Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
         1: .line 626
            aload 1
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     2     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$52(java.lang.String, java.util.Map, java.io.PrintWriter, java.lang.module.ModuleDescriptor);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // java.lang.module.ModuleDescriptor md
         0: .line 642
            aload 3 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 643
            aload 0
            invokedynamic test(Ljava/lang/String;)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/tools/jlink/internal/JlinkTask.lambda$53(Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Provides;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 644
            aload 1
            aload 2
            aload 3 /* md */
            invokedynamic accept(Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/JlinkTask.lambda$54(Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 655
            return
        end local 3 // java.lang.module.ModuleDescriptor md
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     3    md  Ljava/lang/module/ModuleDescriptor;

  private void lambda$57(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
        start local 1 // java.lang.String s
         0: .line 689
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ldc "    uses %s%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* s */
            aastore
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            return
        end local 1 // java.lang.String s
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/JlinkTask;
            0    1     1     s  Ljava/lang/String;

  private static java.util.Set lambda$62(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    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 708
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

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

  private static java.util.Set lambda$42(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    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 591
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static java.util.Set lambda$44(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    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 592
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static java.util.Set lambda$49(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    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 625
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // java.lang.String _k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    _k  Ljava/lang/String;

  private static boolean lambda$53(java.lang.String, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Provides;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 643
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            aload 0
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$54(java.util.Map, java.io.PrintWriter, java.lang.module.ModuleDescriptor, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/util/Map;Ljava/io/PrintWriter;Ljava/lang/module/ModuleDescriptor;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=5, args_size=4
        start local 3 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 646
            aload 0
            aload 3 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 3
         1: .line 647
            ldc "not used by any observable module"
            astore 4 /* usedBy */
        start local 4 // java.lang.String usedBy
         2: .line 648
            goto 7
        end local 4 // java.lang.String usedBy
         3: .line 649
      StackMap locals:
      StackMap stack:
            aload 0
            aload 3 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 650
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         5: .line 651
            ldc ","
            ldc "used by "
            ldc ""
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         6: .line 649
            astore 4 /* usedBy */
        start local 4 // java.lang.String usedBy
         7: .line 653
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1
            ldc "  %s provides %s %s%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 654
            aload 2
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 4 /* usedBy */
            aastore
         9: .line 653
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        end local 4 // java.lang.String usedBy
        10: .line 655
            return
        end local 3 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     3       p  Ljava/lang/module/ModuleDescriptor$Provides;
            2    3     4  usedBy  Ljava/lang/String;
            7   10     4  usedBy  Ljava/lang/String;
}
SourceFile: "JlinkTask.java"
NestMembers:
  jdk.tools.jlink.internal.JlinkTask$1  jdk.tools.jlink.internal.JlinkTask$ImageHelper  jdk.tools.jlink.internal.JlinkTask$OptionsValues
InnerClasses:
  public final Version = java.lang.Runtime$Version of java.lang.Runtime
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract ImageProvider = jdk.tools.jlink.internal.ImagePluginStack$ImageProvider of jdk.tools.jlink.internal.ImagePluginStack
  public final JlinkConfiguration = jdk.tools.jlink.internal.Jlink$JlinkConfiguration of jdk.tools.jlink.internal.Jlink
  public final PluginsConfiguration = jdk.tools.jlink.internal.Jlink$PluginsConfiguration of jdk.tools.jlink.internal.Jlink
  jdk.tools.jlink.internal.JlinkTask$1
  private ImageHelper = jdk.tools.jlink.internal.JlinkTask$ImageHelper of jdk.tools.jlink.internal.JlinkTask
  OptionsValues = jdk.tools.jlink.internal.JlinkTask$OptionsValues of jdk.tools.jlink.internal.JlinkTask
  public final BadArgs = jdk.tools.jlink.internal.TaskHelper$BadArgs of jdk.tools.jlink.internal.TaskHelper
  public Option = jdk.tools.jlink.internal.TaskHelper$Option of jdk.tools.jlink.internal.TaskHelper
  public abstract Processing = jdk.tools.jlink.internal.TaskHelper$Option$Processing of jdk.tools.jlink.internal.TaskHelper$Option
  public final OptionsHelper = jdk.tools.jlink.internal.TaskHelper$OptionsHelper of jdk.tools.jlink.internal.TaskHelper