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 79
            ldc "jlink.debug"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
         1: .line 85
            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 84
            putstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
         3: .line 87
            bipush 15
            anewarray jdk.tools.jlink.internal.TaskHelper$Option
            dup
            iconst_0
         4: .line 88
            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 90
            ldc "--help"
            ldc "-h"
         6: .line 88
            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_1
         7: .line 91
            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 100
            ldc "--module-path"
            ldc "-p"
         9: .line 91
            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 101
            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 112
            ldc "--limit-modules"
        12: .line 101
            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 113
            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 121
            ldc "--add-modules"
        15: .line 113
            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 122
            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 125
            ldc "--output"
        18: .line 122
            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 126
            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 128
            ldc "--bind-services"
        21: .line 126
            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 129
            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 131
            ldc "--suggest-providers"
            ldc ""
            iconst_1
        24: .line 129
            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 132
            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 152
            ldc "--launcher"
        27: .line 132
            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 153
            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 161
            ldc "--endian"
        30: .line 153
            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 162
            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 164
            ldc "--verbose"
            ldc "-v"
        33: .line 162
            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 165
            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 167
            ldc "--version"
        36: .line 165
            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 168
            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 174
            iconst_1
            ldc "--keep-packaged-modules"
        39: .line 168
            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 175
            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 177
            ldc "--save-opts"
        42: .line 175
            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 178
            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 180
            iconst_1
            ldc "--full-version"
        45: .line 178
            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 181
            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 183
            ldc "--ignore-signing-information"
        48: .line 181
            invokespecial jdk.tools.jlink.internal.TaskHelper$Option.<init>:(ZLjdk/tools/jlink/internal/TaskHelper$Option$Processing;Ljava/lang/String;)V
            aastore
        49: .line 87
            putstatic jdk.tools.jlink.internal.JlinkTask.recognizedOptions:[Ljdk/tools/jlink/internal/TaskHelper$Option;
        50: .line 189
            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 188
            putstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
        52: .line 345
            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 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 186
            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 78
            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 193
            aload 0 /* this */
            aload 1 /* out */
            putfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
         1: .line 194
            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 195
            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 226
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            ifnonnull 4
         1: .line 227
            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 228
            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 227
            invokevirtual jdk.tools.jlink.internal.JlinkTask.setLog:(Ljava/io/PrintWriter;Ljava/io/PrintWriter;)V
         4: .line 231
      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 232
            aload 2 /* remaining */
            invokeinterface java.util.List.size:()I
            ifle 9
            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 9
         6: .line 233
            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
            aload 2 /* remaining */
            invokestatic jdk.tools.jlink.internal.JlinkTask.toString:(Ljava/util/Collection;)Ljava/lang/String;
            aastore
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         7: .line 234
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         8: .line 233
            athrow
         9: .line 236
      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 13
        10: .line 237
            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
        11: .line 291
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        12: .line 238
            iconst_0
            ireturn
        13: .line 240
      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 17
        14: .line 241
            getstatic jdk.tools.jlink.internal.JlinkTask.optionsHelper:Ljdk/tools/jlink/internal/TaskHelper$OptionsHelper;
            invokevirtual jdk.tools.jlink.internal.TaskHelper$OptionsHelper.listPlugins:()V
        15: .line 291
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        16: .line 242
            iconst_0
            ireturn
        17: .line 244
      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 18
            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 21
        18: .line 245
      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
        19: .line 291
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        20: .line 246
            iconst_0
            ireturn
        21: .line 249
      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 25
        22: .line 250
            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
        23: .line 291
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        24: .line 251
            iconst_0
            ireturn
        25: .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 29
        26: .line 255
            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;
        27: .line 256
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
        28: .line 255
            athrow
        29: .line 259
      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
        30: .line 260
            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 33
        31: .line 261
            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
        32: .line 262
            goto 36
        33: .line 263
      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
        34: .line 264
            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 36
        35: .line 265
            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
        36: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        37: .line 269
            iconst_0
            ireturn
        end local 3 // jdk.tools.jlink.internal.Jlink$JlinkConfiguration config
        end local 2 // java.util.List remaining
        38: .line 271
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.String[]
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        39: .line 272
            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
        40: .line 273
            getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
            ifeq 42
        41: .line 274
            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
        42: .line 291
      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
        43: .line 276
            iconst_1
            ireturn
        end local 2 // java.lang.Exception e
        44: .line 277
      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
        45: .line 278
            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
        46: .line 279
            aload 2 /* e */
            getfield jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:Z
            ifeq 48
        47: .line 280
            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
        48: .line 282
      StackMap locals: jdk.tools.jlink.internal.TaskHelper$BadArgs
      StackMap stack:
            getstatic jdk.tools.jlink.internal.JlinkTask.DEBUG:Z
            ifeq 50
        49: .line 283
            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
        50: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        51: .line 285
            iconst_2
            ireturn
        end local 2 // jdk.tools.jlink.internal.TaskHelper$BadArgs e
        52: .line 286
      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
        53: .line 287
            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
        54: .line 288
            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
        55: .line 291
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        56: .line 289
            iconst_4
            ireturn
        end local 2 // java.lang.Throwable x
        57: .line 290
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        58: .line 291
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        59: .line 292
            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   60     0       this  Ljdk/tools/jlink/internal/JlinkTask;
            0   60     1       args  [Ljava/lang/String;
            5   38     2  remaining  Ljava/util/List<Ljava/lang/String;>;
           30   38     3     config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
           39   44     2          e  Ljava/lang/Exception;
           45   52     2          e  Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
           53   57     2          x  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    11      38  Class jdk.tools.jlink.plugin.PluginException
          13    15      38  Class jdk.tools.jlink.plugin.PluginException
          17    19      38  Class jdk.tools.jlink.plugin.PluginException
          21    23      38  Class jdk.tools.jlink.plugin.PluginException
          25    36      38  Class jdk.tools.jlink.plugin.PluginException
           4    11      38  Class java.lang.IllegalArgumentException
          13    15      38  Class java.lang.IllegalArgumentException
          17    19      38  Class java.lang.IllegalArgumentException
          21    23      38  Class java.lang.IllegalArgumentException
          25    36      38  Class java.lang.IllegalArgumentException
           4    11      38  Class java.io.UncheckedIOException
          13    15      38  Class java.io.UncheckedIOException
          17    19      38  Class java.io.UncheckedIOException
          21    23      38  Class java.io.UncheckedIOException
          25    36      38  Class java.io.UncheckedIOException
           4    11      38  Class java.io.IOException
          13    15      38  Class java.io.IOException
          17    19      38  Class java.io.IOException
          21    23      38  Class java.io.IOException
          25    36      38  Class java.io.IOException
           4    11      38  Class java.lang.module.FindException
          13    15      38  Class java.lang.module.FindException
          17    19      38  Class java.lang.module.FindException
          21    23      38  Class java.lang.module.FindException
          25    36      38  Class java.lang.module.FindException
           4    11      38  Class java.lang.module.ResolutionException
          13    15      38  Class java.lang.module.ResolutionException
          17    19      38  Class java.lang.module.ResolutionException
          21    23      38  Class java.lang.module.ResolutionException
          25    36      38  Class java.lang.module.ResolutionException
           4    11      44  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          13    15      44  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          17    19      44  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          21    23      44  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
          25    36      44  Class jdk.tools.jlink.internal.TaskHelper$BadArgs
           4    11      52  Class java.lang.Throwable
          13    15      52  Class java.lang.Throwable
          17    19      52  Class java.lang.Throwable
          21    23      52  Class java.lang.Throwable
          25    36      52  Class java.lang.Throwable
           4    11      57  any
          13    15      57  any
          17    19      57  any
          21    23      57  any
          25    36      57  any
          38    42      57  any
          44    50      57  any
          52    55      57  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 301
            aload 0 /* config */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 302
            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 303
            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 307
            aload 0 /* config */
         6: .line 308
            aconst_null
         7: .line 309
            iconst_1
         8: .line 310
            iconst_0
         9: .line 311
            iconst_0
        10: .line 312
            aconst_null
        11: .line 307
            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 306
            astore 2 /* imageProvider */
        start local 2 // jdk.tools.jlink.internal.ImagePluginStack$ImageProvider imageProvider
        13: .line 315
            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 318
            aload 3 /* stack */
            aload 2 /* imageProvider */
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
        15: .line 319
            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 326
            aload 0 /* image */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 327
            aload 1 /* postProcessorPlugins */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 328
            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 330
            aload 2 /* config */
            invokestatic jdk.tools.jlink.internal.ImagePluginConfiguration.parseConfiguration:(Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;)Ljdk/tools/jlink/internal/ImagePluginStack;
         4: .line 329
            astore 3 /* stack */
        start local 3 // jdk.tools.jlink.internal.ImagePluginStack stack
         5: .line 332
            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 333
            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 336
            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 337
            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 338
            aload 3 /* img */
            ifnonnull 4
         3: .line 339
            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 341
      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 342
            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=7, locals=6, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 347
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* roots */
        start local 1 // java.util.Set roots
         1: .line 348
            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 15
      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 349
            aload 2 /* mod */
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
         4: .line 350
            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;
            iconst_0
            anewarray java.nio.file.Path
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.nio.file.Path[]
            astore 4 /* entries */
        start local 4 // java.nio.file.Path[] entries
         5: .line 351
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            iconst_1
            aload 4 /* 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
         6: .line 352
            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;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 8
         7: .line 355
            aload 5 /* finder */
            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.Collections.emptySet:()Ljava/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 */
         8: .line 359
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.util.Set java.lang.String java.util.Iterator java.nio.file.Path[] java.lang.module.ModuleFinder
      StackMap stack:
            aload 5 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
         9: .line 360
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        10: .line 361
            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;
        11: .line 362
            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;
        12: .line 363
            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 5 // java.lang.module.ModuleFinder finder
        end local 4 // java.nio.file.Path[] entries
        13: .line 364
            goto 15
        14: .line 365
      StackMap locals:
      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
        15: .line 348
      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
        16: .line 369
            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;
        17: .line 370
            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;
        18: .line 371
            aload 1 /* roots */
        19: .line 372
            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;
        20: .line 373
            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;
        21: .line 369
            invokespecial jdk.tools.jlink.internal.Jlink$JlinkConfiguration.<init>:(Ljava/nio/file/Path;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/nio/ByteOrder;)V
            areturn
        end local 1 // java.util.Set roots
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Ljdk/tools/jlink/internal/JlinkTask;
            1   22     1    roots  Ljava/util/Set<Ljava/lang/String;>;
            3   15     2      mod  Ljava/lang/String;
            5   13     4  entries  [Ljava/nio/file/Path;
            6   13     5   finder  Ljava/lang/module/ModuleFinder;
    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 377
            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 378
            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 380
      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 381
            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 382
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         5: .line 381
            athrow
         6: .line 386
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
         7: .line 387
            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 388
            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 389
            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 390
            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 391
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.JlinkTask.log:Ljava/io/PrintWriter;
        12: .line 386
            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 395
            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 394
            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 398
            aload 3 /* stack */
            aload 2 /* imageProvider */
            invokevirtual jdk.tools.jlink.internal.ImagePluginStack.operate:(Ljdk/tools/jlink/internal/ImagePluginStack$ImageProvider;)V
        16: .line 399
            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.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=3, locals=5, 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 411
            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
         1: .line 412
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$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 4 /* finder */
        start local 4 // java.lang.module.ModuleFinder finder
         2: .line 415
            aload 1 /* limitMods */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 4
         3: .line 416
            aload 4 /* finder */
            aload 1 /* limitMods */
            aload 2 /* roots */
            invokestatic jdk.tools.jlink.internal.JlinkTask.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 4 /* finder */
         4: .line 418
      StackMap locals: java.nio.file.Path[] java.lang.module.ModuleFinder
      StackMap stack:
            aload 4 /* finder */
            areturn
        end local 4 // java.lang.module.ModuleFinder finder
        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    5     0      paths  Ljava/util/List<Ljava/nio/file/Path;>;
            0    5     1  limitMods  Ljava/util/Set<Ljava/lang/String;>;
            0    5     2      roots  Ljava/util/Set<Ljava/lang/String;>;
            1    5     3    entries  [Ljava/nio/file/Path;
            2    5     4     finder  Ljava/lang/module/ModuleFinder;
    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 422
            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 423
            aload 1 /* ouri */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 3
         2: .line 424
            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 425
      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 426
            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 438
            iload 3 /* bindService */
            ifeq 1
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolveAndBind:()Ljava/lang/module/Configuration;
            goto 2
         1: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* config */
            invokevirtual jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve:()Ljava/lang/module/Configuration;
         2: .line 438
      StackMap locals:
      StackMap stack: java.lang.module.Configuration
            astore 6 /* cf */
        start local 6 // java.lang.module.Configuration cf
         3: .line 441
            iload 4 /* verbose */
            ifeq 12
            aload 5 /* log */
            ifnull 12
         4: .line 443
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         5: .line 444
            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;
         6: .line 445
            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$22(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
         7: .line 449
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         8: .line 450
            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
         9: .line 449
            astore 7 /* references */
        start local 7 // java.util.Set references
        10: .line 452
            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
        11: .line 453
            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
        12: .line 457
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            aload 5 /* log */
            ifnull 23
        13: .line 458
            aload 6 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
        14: .line 459
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        15: .line 460
            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;
        16: .line 461
            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;
        17: .line 462
            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;
        18: .line 463
            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;
        19: .line 464
            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
        20: .line 458
            astore 7 /* im */
        start local 7 // java.lang.String im
        21: .line 466
            ldc ""
            aload 7 /* im */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 467
            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
        23: .line 470
      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;
        24: .line 471
            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
        25: .line 470
            astore 7 /* mods */
        start local 7 // java.util.Map mods
        26: .line 472
            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   27     0             config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   27     1  retainModulesPath  Ljava/nio/file/Path;
            0   27     2      ignoreSigning  Z
            0   27     3        bindService  Z
            0   27     4            verbose  Z
            0   27     5                log  Ljava/io/PrintWriter;
            3   27     6                 cf  Ljava/lang/module/Configuration;
           10   12     7         references  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           11   12     8                msg  Ljava/lang/String;
           21   23     7                 im  Ljava/lang/String;
           26   27     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 484
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
         1: .line 485
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         2: .line 486
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         3: .line 487
            aload 1 /* roots */
         4: .line 485
            invokevirtual java.lang.module.Configuration.resolve:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;Ljava/util/Collection;)Ljava/lang/module/Configuration;
         5: .line 484
            astore 3 /* cf */
        start local 3 // java.lang.module.Configuration cf
         6: .line 490
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         7: .line 491
            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$30(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 497
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 498
            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 499
            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 500
            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$33(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 503
            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 505
            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 525
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* services */
        start local 1 // java.util.Map services
         1: .line 526
            aload 0 /* modules */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 527
            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 528
            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$35(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 535
            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 541
            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 542
            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 555
            aload 2 /* modules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 556
            return
         2: .line 559
      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 560
            aload 2 /* modules */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         4: .line 561
            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 562
            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$41(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 569
            aload 4 /* providers */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 8
         7: .line 570
            aload 0 /* log */
            aload 1 /* header */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         8: .line 575
      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 576
            invokestatic java.util.Map$Entry.comparingByKey:()Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        10: .line 577
            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$45(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 598
            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 603
            aload 2 /* args */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 6
         1: .line 604
            getstatic jdk.tools.jlink.internal.JlinkTask.taskHelper:Ljdk/tools/jlink/internal/TaskHelper;
            ldc "err.orphan.argument"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 605
            aload 2 /* args */
            iconst_1
            aload 2 /* args */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic jdk.tools.jlink.internal.JlinkTask.toString:(Ljava/util/Collection;)Ljava/lang/String;
            aastore
         3: .line 604
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         4: .line 606
            iconst_1
            invokevirtual jdk.tools.jlink.internal.TaskHelper$BadArgs.showUsage:(Z)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
         5: .line 604
            athrow
         6: .line 609
      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 9
         7: .line 610
            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
         8: .line 611
            return
         9: .line 614
      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
        10: .line 615
            aload 2 /* args */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 18
        11: .line 617
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 4 /* mrefs */
        start local 4 // java.util.Set mrefs
        12: .line 619
            aload 4 /* mrefs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        13: .line 620
            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$50(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;
        14: .line 621
            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$51(Ljava/lang/module/ModuleReference;)V (7)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        15: .line 629
            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
        16: .line 630
            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
        17: .line 632
            goto 39
        18: .line 634
      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;
        19: .line 635
            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
        20: .line 634
            astore 4 /* names */
        start local 4 // java.util.Set names
        21: .line 637
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        22: .line 638
            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$53(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;
        23: .line 641
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        24: .line 637
            astore 5 /* mrefs */
        start local 5 // java.util.Set mrefs
        25: .line 644
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* uses */
        start local 6 // java.util.Map uses
        26: .line 645
            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$56(Ljava/util/Map;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        27: .line 646
            aload 3 /* finder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        28: .line 647
            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;
        29: .line 648
            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$59(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
        30: .line 653
            aload 5 /* mrefs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        31: .line 654
            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/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;
        32: .line 656
            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
        33: .line 657
            aload 4 /* names */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 37
        34: .line 658
            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
        35: .line 659
            aload 4 /* names */
            invokestatic jdk.tools.jlink.internal.JlinkTask.toString:(Ljava/util/Collection;)Ljava/lang/String;
            aastore
        36: .line 658
            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
        37: .line 662
      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
        38: .line 663
            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
        39: .line 665
      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   40     0    this  Ljdk/tools/jlink/internal/JlinkTask;
            0   40     1  config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0   40     2    args  Ljava/util/List<Ljava/lang/String;>;
           10   40     3  finder  Ljava/lang/module/ModuleFinder;
           12   17     4   mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           16   17     5     msg  Ljava/lang/String;
           21   39     4   names  Ljava/util/Set<Ljava/lang/String;>;
           25   39     5   mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           26   39     6    uses  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           38   39     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 static java.lang.String toString(java.util.Collection<java.lang.String>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 668
            aload 0 /* collection */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         1: .line 669
            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
         2: .line 668
            areturn
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  collection  Ljava/util/Collection<Ljava/lang/String;>;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
            Name  Flags
      collection  

  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 673
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 674
            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 675
            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 676
            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 675
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 679
            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 java.lang.String getBomHeader();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 683
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 0 /* sb */
        start local 0 // java.lang.StringBuilder sb
         1: .line 684
            aload 0 /* sb */
            ldc "#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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 685
            aload 0 /* sb */
            ldc "#Please DO NOT Modify this file"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 686
            aload 0 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0    sb  Ljava/lang/StringBuilder;

  private java.lang.String genBOMContent();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // jdk.tools.jlink.internal.JlinkTask this
         0: .line 690
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 691
            aload 1 /* sb */
            invokestatic jdk.tools.jlink.internal.JlinkTask.getBomHeader:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 692
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* command */
        start local 2 // java.lang.StringBuilder command
         3: .line 693
            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 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: jdk.tools.jlink.internal.JlinkTask java.lang.StringBuilder java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // java.lang.String c
         5: .line 694
            aload 2 /* command */
            aload 3 /* 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 3 // java.lang.String c
         6: .line 693
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 4
         8: .line 696
            aload 1 /* sb */
            ldc "command"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* command */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
         9: .line 697
            aload 1 /* sb */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 699
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder command
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.tools.jlink.internal.JlinkTask this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljdk/tools/jlink/internal/JlinkTask;
            1   11     1       sb  Ljava/lang/StringBuilder;
            3   11     2  command  Ljava/lang/StringBuilder;
            5    6     3        c  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private static java.lang.String genBOMContent(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;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, 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 705
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 706
            aload 2 /* sb */
            invokestatic jdk.tools.jlink.internal.JlinkTask.getBomHeader:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 707
            aload 2 /* sb */
            aload 0 /* config */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 708
            aload 2 /* sb */
            aload 1 /* plugins */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         4: .line 709
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        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    5     0   config  Ljdk/tools/jlink/internal/Jlink$JlinkConfiguration;
            0    5     1  plugins  Ljdk/tools/jlink/internal/Jlink$PluginsConfiguration;
            1    5     2       sb  Ljava/lang/StringBuilder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      config   
      plugins  

  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 89
            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 90
            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 94
            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 95
            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 97
            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$65(Ljava/lang/String;)Ljava/nio/file/Path; (6)
                  (Ljava/lang/String;)Ljava/nio/file/Path;
         3: .line 98
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 99
            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 100
            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 104
            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 105
            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 106
            aload 3 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         4: .line 107
            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 108
            ldc "--limit-modules"
            aastore
         6: .line 107
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         7: .line 110
      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 105
            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 112
            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 114
            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 115
            aload 3 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         3: .line 116
            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 117
            ldc "--add-modules"
            aastore
         5: .line 116
            invokevirtual jdk.tools.jlink.internal.TaskHelper.newBadArgs:(Ljava/lang/String;[Ljava/lang/Object;)Ljdk/tools/jlink/internal/TaskHelper$BadArgs;
            athrow
         6: .line 119
      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 114
            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 121
            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 123
            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 124
            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 125
            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 127
            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 128
            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 130
            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 131
            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 133
            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 135
            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 136
      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 138
      StackMap locals:
      StackMap stack:
            aload 3 /* values */
            iconst_0
            aaload
            astore 4 /* commandName */
        start local 4 // java.lang.String commandName
         4: .line 139
            aload 3 /* values */
            iconst_1
            aaload
            astore 5 /* moduleAndMain */
        start local 5 // java.lang.String moduleAndMain
         5: .line 140
            aload 5 /* moduleAndMain */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 6 /* idx */
        start local 6 // int idx
         6: .line 141
            iload 6 /* idx */
            iconst_m1
            if_icmpeq 11
         7: .line 142
            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 143
            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 146
      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 147
            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 150
      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 152
            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 154
            ldc "little"
            aload 2 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 155
            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 156
            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 157
            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 158
            goto 7
         6: .line 159
      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 161
      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 163
            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 164
            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 166
            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 167
            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 169
            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 170
            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 171
            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 173
      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 174
            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 176
            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 177
            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 179
            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 180
            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 182
            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 183
            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 332
            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 363
            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 void lambda$22(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 445
            aload 0
            ldc "%s %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 446
            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 445
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
         3: .line 446
            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$30(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 492
            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 493
            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 494
            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$33(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 500
            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$35(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 530
            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$36(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 532
            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$38(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 534
            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$41(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 563
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 564
            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$42(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 565
            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$43(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 567
            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$45(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 578
            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 579
            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 580
            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 581
            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$47(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 597
            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$50(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 620
            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$51(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 622
            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 623
            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 624
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
         3: .line 623
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
         4: .line 625
            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 626
            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$52(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 627
            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$53(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 638
            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 639
            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 640
            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$56(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 645
            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$57(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$59(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 648
            aload 2 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 649
            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 650
            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$61(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$62(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 654
            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 655
            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$65(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$36(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 531
            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$37(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$38(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 532
            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$39(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 533
            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$42(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 564
            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$43(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 565
            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$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 566
            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$47(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 582
            aload 3 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 583
            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$48(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 584
            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$49(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 595
            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$52(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 626
            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$57(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 645
            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$61(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 650
            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$37(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 531
            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$39(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 532
            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 565
            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$48(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 583
            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$49(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 586
            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 587
            ldc "not used by any observable module"
            astore 4 /* usedBy */
        start local 4 // java.lang.String usedBy
         2: .line 588
            goto 7
        end local 4 // java.lang.String usedBy
         3: .line 589
      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 590
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         5: .line 591
            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 589
            astore 4 /* usedBy */
        start local 4 // java.lang.String usedBy
         7: .line 593
      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 594
            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 593
            invokevirtual java.io.PrintWriter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        end local 4 // java.lang.String usedBy
        10: .line 595
            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 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