public final class jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin implements jdk.tools.jlink.plugin.Plugin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin
  super_class: java.lang.Object
{
  private static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "generate-jli-classes"

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

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

  private static final java.lang.String DIRECT_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DirectMethodHandle$Holder"

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

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

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

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

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

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

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

  private static final java.lang.String DELEGATING_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DelegatingMethodHandle$Holder"

  private static final java.lang.String BASIC_FORMS_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/LambdaForm$Holder"

  private static final java.lang.String INVOKERS_HOLDER_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang.invoke.Invokers$Holder"

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

  private static final jdk.internal.misc.JavaLangInvokeAccess JLIA;
    descriptor: Ljdk/internal/misc/JavaLangInvokeAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  java.util.Set<java.lang.String> speciesTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.Set<java.lang.String> invokerTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.Set<java.lang.String> callSiteTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.Map<java.lang.String, java.util.Set<java.lang.String>> dmhMethods;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  java.lang.String mainArgument;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private static final java.util.Map<java.lang.String, java.lang.Integer> DMH_METHOD_TYPE_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private static final java.lang.String DIRECT_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"

  private static final java.lang.String DELEGATING_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"

  private static final java.lang.String BASIC_FORMS_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/LambdaForm$Holder.class"

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=14, locals=0, args_size=0
         0: .line 54
            ldc Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
         3: .line 58
            ldc "generate-jli-classes"
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
         4: .line 75
            ldc "java.lang.invoke.Invokers$Holder"
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
         5: .line 78
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/misc/JavaLangInvokeAccess;
         6: .line 77
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
         7: .line 175
            ldc "invokeVirtual"
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         8: .line 176
            ldc "invokeStatic"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         9: .line 177
            ldc "invokeSpecial"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        10: .line 178
            ldc "newInvokeSpecial"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        11: .line 179
            ldc "invokeInterface"
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        12: .line 180
            ldc "invokeStaticInit"
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        13: .line 181
            ldc "invokeSpecialIFC"
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        14: .line 174
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
        15: .line 173
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
        16: .line 457
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 456
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
        18: .line 457
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         2: .line 82
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         3: .line 84
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
         4: .line 86
            aload 0 /* this */
            invokestatic java.util.Map.of:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         5: .line 91
            return
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 95
            ldc "generate-jli-classes"
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 100
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.util.Set<jdk.tools.jlink.plugin.Plugin$State> getState();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 105
            getstatic jdk.tools.jlink.plugin.Plugin$State.AUTO_ENABLED:Ljdk/tools/jlink/plugin/Plugin$State;
            getstatic jdk.tools.jlink.plugin.Plugin$State.FUNCTIONAL:Ljdk/tools/jlink/plugin/Plugin$State;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
    Signature: ()Ljava/util/Set<Ljdk/tools/jlink/plugin/Plugin$State;>;

  public boolean hasArguments();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 110
            iconst_1
            ireturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getArgumentsDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 115
            ldc "generate-jli-classes"
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public static java.util.Set<java.lang.String> defaultSpecies();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 126
            bipush 27
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL"
            aastore
            dup
            iconst_1
            ldc "L3"
            aastore
            dup
            iconst_2
            ldc "L4"
            aastore
            dup
            iconst_3
            ldc "L5"
            aastore
            dup
            iconst_4
            ldc "L6"
            aastore
            dup
            iconst_5
            ldc "L7"
            aastore
            dup
            bipush 6
            ldc "L7I"
            aastore
            dup
            bipush 7
         1: .line 127
            ldc "L7II"
            aastore
            dup
            bipush 8
            ldc "L7IIL"
            aastore
            dup
            bipush 9
            ldc "L8"
            aastore
            dup
            bipush 10
            ldc "L9"
            aastore
            dup
            bipush 11
            ldc "L10"
            aastore
            dup
            bipush 12
            ldc "L10I"
            aastore
            dup
            bipush 13
            ldc "L10II"
            aastore
            dup
            bipush 14
            ldc "L10IIL"
            aastore
            dup
            bipush 15
         2: .line 128
            ldc "L11"
            aastore
            dup
            bipush 16
            ldc "L12"
            aastore
            dup
            bipush 17
            ldc "L13"
            aastore
            dup
            bipush 18
            ldc "LI"
            aastore
            dup
            bipush 19
            ldc "D"
            aastore
            dup
            bipush 20
            ldc "L3I"
            aastore
            dup
            bipush 21
            ldc "LIL"
            aastore
            dup
            bipush 22
            ldc "LLI"
            aastore
            dup
            bipush 23
            ldc "LLIL"
            aastore
            dup
            bipush 24
         3: .line 129
            ldc "LILL"
            aastore
            dup
            bipush 25
            ldc "I"
            aastore
            dup
            bipush 26
            ldc "LLILL"
            aastore
         4: .line 126
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> defaultInvokers();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 136
            ldc "LL_L"
            ldc "LL_I"
            ldc "LLLL_L"
            ldc "LLLL_I"
            ldc "LLIL_L"
            ldc "LLIL_I"
         1: .line 137
            ldc "L6_L"
         2: .line 136
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> defaultCallSiteTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 144
            ldc "L5_L"
            ldc "LIL3_L"
            ldc "ILL_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Map<java.lang.String, java.util.Set<java.lang.String>> defaultDMHMethods();
    descriptor: ()Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=12, locals=0, args_size=0
         0: .line 152
            ldc "invokeInterface"
            ldc "LL_L"
            ldc "L3_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         1: .line 153
            ldc "invokeVirtual"
            ldc "L_L"
            ldc "LL_L"
            ldc "LLI_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         2: .line 154
            ldc "invokeSpecial"
            bipush 33
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL_I"
            aastore
            dup
            iconst_1
            ldc "LL_L"
            aastore
            dup
            iconst_2
            ldc "LLF_L"
            aastore
            dup
            iconst_3
            ldc "LLD_L"
            aastore
            dup
            iconst_4
         3: .line 155
            ldc "L3_I"
            aastore
            dup
            iconst_5
            ldc "L3_L"
            aastore
            dup
            bipush 6
            ldc "L4_L"
            aastore
            dup
            bipush 7
            ldc "L5_L"
            aastore
            dup
            bipush 8
            ldc "L6_L"
            aastore
            dup
            bipush 9
            ldc "L7_L"
            aastore
            dup
            bipush 10
            ldc "L8_L"
            aastore
            dup
            bipush 11
         4: .line 156
            ldc "LLI_I"
            aastore
            dup
            bipush 12
            ldc "LLI_L"
            aastore
            dup
            bipush 13
            ldc "LLIL_I"
            aastore
            dup
            bipush 14
            ldc "LLIL_L"
            aastore
            dup
            bipush 15
            ldc "LLII_I"
            aastore
            dup
            bipush 16
            ldc "LLII_L"
            aastore
            dup
            bipush 17
         5: .line 157
            ldc "L3I_L"
            aastore
            dup
            bipush 18
            ldc "L3I_I"
            aastore
            dup
            bipush 19
            ldc "L3ILL_L"
            aastore
            dup
            bipush 20
            ldc "LLILI_I"
            aastore
            dup
            bipush 21
            ldc "LLIIL_L"
            aastore
            dup
            bipush 22
            ldc "LLIILL_L"
            aastore
            dup
            bipush 23
         6: .line 158
            ldc "LLIILL_I"
            aastore
            dup
            bipush 24
            ldc "LLIIL_I"
            aastore
            dup
            bipush 25
            ldc "LLILIL_I"
            aastore
            dup
            bipush 26
            ldc "LLILILL_I"
            aastore
            dup
            bipush 27
            ldc "LLILII_I"
            aastore
            dup
            bipush 28
         7: .line 159
            ldc "LLI3_I"
            aastore
            dup
            bipush 29
            ldc "LLI3L_I"
            aastore
            dup
            bipush 30
            ldc "LLI3LL_I"
            aastore
            dup
            bipush 31
            ldc "LLI3_L"
            aastore
            dup
            bipush 32
            ldc "LLI4_I"
            aastore
         8: .line 154
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
         9: .line 160
            ldc "invokeStatic"
            bipush 37
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LII_I"
            aastore
            dup
            iconst_1
            ldc "LIL_I"
            aastore
            dup
            iconst_2
            ldc "LILIL_I"
            aastore
            dup
            iconst_3
            ldc "LILII_I"
            aastore
            dup
            iconst_4
        10: .line 161
            ldc "L_I"
            aastore
            dup
            iconst_5
            ldc "L_L"
            aastore
            dup
            bipush 6
            ldc "L_V"
            aastore
            dup
            bipush 7
            ldc "LD_L"
            aastore
            dup
            bipush 8
            ldc "LF_L"
            aastore
            dup
            bipush 9
            ldc "LI_I"
            aastore
            dup
            bipush 10
            ldc "LII_L"
            aastore
            dup
            bipush 11
            ldc "LLI_L"
            aastore
            dup
            bipush 12
        11: .line 162
            ldc "LL_I"
            aastore
            dup
            bipush 13
            ldc "LLILL_L"
            aastore
            dup
            bipush 14
            ldc "LLIL3_L"
            aastore
            dup
            bipush 15
            ldc "LL_V"
            aastore
            dup
            bipush 16
            ldc "LL_L"
            aastore
            dup
            bipush 17
            ldc "L3_I"
            aastore
            dup
            bipush 18
            ldc "L3_L"
            aastore
            dup
            bipush 19
        12: .line 163
            ldc "L3_V"
            aastore
            dup
            bipush 20
            ldc "L4_I"
            aastore
            dup
            bipush 21
            ldc "L4_L"
            aastore
            dup
            bipush 22
            ldc "L5_L"
            aastore
            dup
            bipush 23
            ldc "L6_L"
            aastore
            dup
            bipush 24
            ldc "L7_L"
            aastore
            dup
            bipush 25
            ldc "L8_L"
            aastore
            dup
            bipush 26
            ldc "L9_L"
            aastore
            dup
            bipush 27
        13: .line 164
            ldc "L10_L"
            aastore
            dup
            bipush 28
            ldc "L10I_L"
            aastore
            dup
            bipush 29
            ldc "L10II_L"
            aastore
            dup
            bipush 30
            ldc "L10IIL_L"
            aastore
            dup
            bipush 31
            ldc "L11_L"
            aastore
            dup
            bipush 32
            ldc "L12_L"
            aastore
            dup
            bipush 33
        14: .line 165
            ldc "L13_L"
            aastore
            dup
            bipush 34
            ldc "L14_L"
            aastore
            dup
            bipush 35
            ldc "L14I_L"
            aastore
            dup
            bipush 36
            ldc "L14II_L"
            aastore
        15: .line 160
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
        16: .line 166
            ldc "newInvokeSpecial"
            ldc "L_L"
            ldc "LL_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
        17: .line 167
            ldc "invokeSpecialIFC"
            ldc "L5_I"
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
        18: .line 151
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  public void configure(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Map config
         0: .line 186
            aload 0 /* this */
            aload 1 /* config */
            ldc "generate-jli-classes"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
         1: .line 187
            return
        end local 1 // java.util.Map config
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    2     1  config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  

  public void initialize(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
         0: .line 191
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultSpecies:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 192
            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/plugins/GenerateJLIClassesPlugin.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 193
            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
         3: .line 191
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         4: .line 195
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultInvokers:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         5: .line 196
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
         6: .line 198
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultCallSiteTypes:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
         7: .line 200
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultDMHMethods:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         8: .line 201
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
      StackMap stack:
         9: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 2 /* dmhMethodTypes */
        start local 2 // java.util.Set dmhMethodTypes
        10: .line 202
            aload 0 /* this */
            aload 2 /* dmhMethodTypes */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
        end local 2 // java.util.Set dmhMethodTypes
        11: .line 201
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 207
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ifnull 13
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ldc "@"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 31
        13: .line 208
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
        14: .line 209
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "default_jli_trace.txt"
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
        15: .line 208
            astore 4 /* traceFile */
        start local 4 // java.io.InputStream traceFile
        16: .line 210
            aload 4 /* traceFile */
            ifnull 23
        17: .line 211
            aload 0 /* this */
        18: .line 212
            new java.io.BufferedReader
            dup
        19: .line 213
            new java.io.InputStreamReader
            dup
            aload 4 /* traceFile */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
        20: .line 212
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        21: .line 213
            invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
        22: .line 211
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        23: .line 215
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 4 /* traceFile */
            ifnull 34
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 2
            aload 4 /* traceFile */
            ifnull 25
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream traceFile
      StackMap locals:
      StackMap stack:
        25: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 3
            aload 2
            ifnonnull 27
            aload 3
            astore 2
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 2
            aload 3
            if_acmpeq 28
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 2
            athrow
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack: java.lang.Exception
        29: astore 2 /* e */
        start local 2 // java.lang.Exception e
        30: .line 216
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read default_jli_trace.txt"
            aload 2 /* e */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        31: .line 219
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* file */
        start local 2 // java.io.File file
        32: .line 220
            aload 2 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 34
        33: .line 221
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* file */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.fileLines:(Ljava/io/File;)Ljava/util/stream/Stream;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        end local 2 // java.io.File file
        34: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   35     1              in  Ljdk/tools/jlink/plugin/ResourcePool;
           10   11     2  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
           16   25     4       traceFile  Ljava/io/InputStream;
           30   31     2               e  Ljava/lang/Exception;
           32   34     2            file  Ljava/io/File;
      Exception table:
        from    to  target  type
          16    23      24  any
          14    26      26  any
          13    29      29  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  private void readTraceConfig(java.util.stream.Stream<java.lang.String>);
    descriptor: (Ljava/util/stream/Stream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.stream.Stream lines
         0: .line 230
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         1: .line 231
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         2: .line 232
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
         3: .line 234
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 2 /* newDMHMethods */
        start local 2 // java.util.TreeMap newDMHMethods
         4: .line 235
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.stream.Stream java.util.TreeMap top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         6: .line 236
            aload 2 /* newDMHMethods */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            new java.util.TreeSet
            dup
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Map$Entry entry
         7: .line 235
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 238
            aload 0 /* this */
            aload 2 /* newDMHMethods */
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         9: .line 239
            aload 1 /* lines */
            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/plugins/GenerateJLIClassesPlugin.lambda$1(Ljava/lang/String;)[Ljava/lang/String; (6)
                  (Ljava/lang/String;)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        10: .line 240
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/plugins/GenerateJLIClassesPlugin.lambda$2([Ljava/lang/String;)V (7)
                  ([Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        11: .line 273
            return
        end local 2 // java.util.TreeMap newDMHMethods
        end local 1 // java.util.stream.Stream lines
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   12     1          lines  Ljava/util/stream/Stream<Ljava/lang/String;>;
            4   12     2  newDMHMethods  Ljava/util/TreeMap<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            6    7     3          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      lines  

  private void addDMHMethodType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String dmh
        start local 2 // java.lang.String methodType
         0: .line 276
            aload 0 /* this */
            aload 2 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 277
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* methodTypes */
        start local 3 // java.util.Set methodTypes
         2: .line 278
            aload 3 /* methodTypes */
            ifnonnull 5
         3: .line 279
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 3 /* methodTypes */
         4: .line 280
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            aload 3 /* methodTypes */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 282
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* methodTypes */
            aload 2 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 283
            return
        end local 3 // java.util.Set methodTypes
        end local 2 // java.lang.String methodType
        end local 1 // java.lang.String dmh
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    7     1          dmh  Ljava/lang/String;
            0    7     2   methodType  Ljava/lang/String;
            2    7     3  methodTypes  Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      dmh         
      methodType  

  private java.util.stream.Stream<java.lang.String> fileLines(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.io.File file
         0: .line 287
            aload 1 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
         1: areturn
         2: .line 288
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 289
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read file"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.File file
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    4     1  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Signature: (Ljava/io/File;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      file  

  private void validateMethodTypes(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Set dmhMethodTypes
         0: .line 294
            aload 1 /* dmhMethodTypes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* type */
        start local 2 // java.lang.String type
         2: .line 295
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
        end local 2 // java.lang.String type
         3: .line 294
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 297
            return
        end local 1 // java.util.Set dmhMethodTypes
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    5     1  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
            2    3     2            type  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      dmhMethodTypes  

  private void validateMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String type
         0: .line 300
            aload 1 /* type */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* typeParts */
        start local 2 // java.lang.String[] typeParts
         1: .line 302
            aload 2 /* typeParts */
            arraylength
            iconst_2
            if_icmpne 3
            aload 2 /* typeParts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 3
         2: .line 303
            ldc "LJIFDV"
            aload 2 /* typeParts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 6
         3: .line 304
      StackMap locals: java.lang.String[]
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
         4: .line 305
            ldc "Method type signature must be of form [LJIFD]*_[LJIFDV]"
         5: .line 304
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 308
      StackMap locals:
      StackMap stack:
            aload 2 /* typeParts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            pop
         7: .line 309
            return
        end local 2 // java.lang.String[] typeParts
        end local 1 // java.lang.String type
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    8     1       type  Ljava/lang/String;
            1    8     2  typeParts  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static void requireBasicType(char);
    descriptor: (C)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 312
            ldc "LIJFD"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 4
         1: .line 313
            new jdk.tools.jlink.plugin.PluginException
            dup
         2: .line 314
            new java.lang.StringBuilder
            dup
            ldc "Character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " must correspond to a basic field type: LIJFD"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 313
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 316
      StackMap locals:
      StackMap stack:
            return
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 320
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize:(Ljdk/tools/jlink/plugin/ResourcePool;)V
         1: .line 322
            aload 1 /* in */
            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/plugins/GenerateJLIClassesPlugin.lambda$3(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
         2: .line 333
            aload 2 /* out */
         3: .line 322
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         4: .line 336
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 0 /* this */
            aload 2 /* out */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)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/plugins/GenerateJLIClassesPlugin.lambda$4(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         5: .line 339
            aload 0 /* this */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateHolderClasses:(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         6: .line 342
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         7: .line 343
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         8: .line 344
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         9: .line 346
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   10     1    in  Ljdk/tools/jlink/plugin/ResourcePool;
            0   10     2   out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
    MethodParameters:
      Name  Flags
      in    
      out   

  private void generateBMHClass(java.lang.String, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String types
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 354
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 1 /* types */
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateConcreteBMHClassBytes:(Ljava/lang/String;)Ljava/util/Map$Entry;
         1: .line 353
            astore 3 /* result */
        start local 3 // java.util.Map$Entry result
         2: .line 355
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* className */
        start local 4 // java.lang.String className
         3: .line 356
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         4: .line 360
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 361
            aload 5 /* bytes */
         6: .line 359
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 6 /* ndata */
        start local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
         7: .line 362
            aload 2 /* out */
            aload 6 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 5 // byte[] bytes
        end local 4 // java.lang.String className
        end local 3 // java.util.Map$Entry result
         8: .line 363
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        10: .line 364
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 3 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception ex
        11: .line 366
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   12     1      types  Ljava/lang/String;
            0   12     2        out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            2    8     3     result  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    8     4  className  Ljava/lang/String;
            4    8     5      bytes  [B
            7    8     6      ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           10   11     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     8       9  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      types  
      out    

  private void generateHolderClasses(jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 369
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 370
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* entry */
        start local 3 // java.util.Set entry
         3: .line 371
            iload 2 /* count */
            aload 3 /* entry */
            invokeinterface java.util.Set.size:()I
            iadd
            istore 2 /* count */
        end local 3 // java.util.Set entry
         4: .line 370
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 373
            iload 2 /* count */
            anewarray java.lang.invoke.MethodType
            astore 3 /* directMethodTypes */
        start local 3 // java.lang.invoke.MethodType[] directMethodTypes
         6: .line 374
            iload 2 /* count */
            newarray 10
            astore 4 /* dmhTypes */
        start local 4 // int[] dmhTypes
         7: .line 375
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 376
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
         9: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        10: .line 377
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* dmhType */
        start local 8 // java.lang.String dmhType
        11: .line 378
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 22
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* type */
        start local 9 // java.lang.String type
        13: .line 381
            aload 9 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 11 /* mt */
        start local 11 // java.lang.invoke.MethodType mt
        14: .line 382
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 16
        15: .line 383
            aload 11 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 19
        16: .line 384
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.invoke.MethodType
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        17: .line 385
            ldc "DMH type parameter must start with L"
        18: .line 384
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 387
      StackMap locals:
      StackMap stack:
            aload 3 /* directMethodTypes */
            iload 5 /* index */
            aload 11 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        20: .line 388
            aload 4 /* dmhTypes */
            iload 5 /* index */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 8 /* dmhType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        21: .line 389
            iinc 5 /* index */ 1
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String type
        22: .line 378
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 8 // java.lang.String dmhType
        end local 6 // java.util.Map$Entry entry
        23: .line 376
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        24: .line 395
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.invoke.MethodType
            astore 6 /* invokerMethodTypes */
        start local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        25: .line 396
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        26: .line 397
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 39
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* invokerType */
        start local 8 // java.lang.String invokerType
        28: .line 398
            aload 8 /* invokerType */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        start local 10 // java.lang.invoke.MethodType mt
        29: .line 399
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 11 /* lastParam */
        start local 11 // int lastParam
        30: .line 400
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_2
            if_icmplt 33
        31: .line 401
            aload 10 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 33
        32: .line 402
            aload 10 /* mt */
            iload 11 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 36
        33: .line 403
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        34: .line 404
            new java.lang.StringBuilder
            dup
            ldc "Invoker type parameter must start and end with Object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* invokerType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 403
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 406
      StackMap locals:
      StackMap stack:
            aload 10 /* mt */
            iload 11 /* lastParam */
            iload 11 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        37: .line 407
            aload 6 /* invokerMethodTypes */
            iload 7 /* i */
            aload 10 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        38: .line 408
            iinc 7 /* i */ 1
        end local 11 // int lastParam
        end local 10 // java.lang.invoke.MethodType mt
        end local 8 // java.lang.String invokerType
        39: .line 397
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        40: .line 413
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.invoke.MethodType
            astore 8 /* callSiteMethodTypes */
        start local 8 // java.lang.invoke.MethodType[] callSiteMethodTypes
        41: .line 414
            iconst_0
            istore 7 /* i */
        42: .line 415
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 53
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] top java.util.Iterator
      StackMap stack:
        43: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* callSiteType */
        start local 9 // java.lang.String callSiteType
        44: .line 416
            aload 9 /* callSiteType */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 11 /* mt */
        start local 11 // java.lang.invoke.MethodType mt
        45: .line 417
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 12 /* lastParam */
        start local 12 // int lastParam
        46: .line 418
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 48
        47: .line 419
            aload 11 /* mt */
            iload 12 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 51
        48: .line 420
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        49: .line 421
            new java.lang.StringBuilder
            dup
            ldc "CallSite type parameter must end with Object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* callSiteType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 420
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 423
      StackMap locals:
      StackMap stack:
            aload 8 /* callSiteMethodTypes */
            iload 7 /* i */
            aload 11 /* mt */
            iload 12 /* lastParam */
            iload 12 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        52: .line 424
            iinc 7 /* i */ 1
        end local 12 // int lastParam
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String callSiteType
        53: .line 415
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        54: .line 427
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
        55: .line 428
            ldc "java/lang/invoke/DirectMethodHandle$Holder"
            aload 3 /* directMethodTypes */
            aload 4 /* dmhTypes */
        56: .line 427
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
            astore 9 /* bytes */
        start local 9 // byte[] bytes
        57: .line 430
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
        58: .line 429
            astore 10 /* ndata */
        start local 10 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        59: .line 431
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        60: .line 433
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
        61: .line 434
            ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
            aload 3 /* directMethodTypes */
        62: .line 433
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 9 /* bytes */
        63: .line 435
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        64: .line 436
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        65: .line 438
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
        66: .line 439
            aload 6 /* invokerMethodTypes */
            aload 8 /* callSiteMethodTypes */
        67: .line 438
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodType;)[B
            astore 9 /* bytes */
        68: .line 440
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        69: .line 441
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        70: .line 443
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            ldc "java/lang/invoke/LambdaForm$Holder"
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
            astore 9 /* bytes */
        71: .line 444
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        72: .line 445
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 10 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 9 // byte[] bytes
        73: .line 446
            goto 76
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[]
      StackMap stack: java.lang.Exception
        74: astore 9 /* ex */
        start local 9 // java.lang.Exception ex
        75: .line 447
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 9 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Exception ex
        76: .line 449
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.invoke.MethodType[] callSiteMethodTypes
        end local 7 // int i
        end local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        end local 5 // int index
        end local 4 // int[] dmhTypes
        end local 3 // java.lang.invoke.MethodType[] directMethodTypes
        end local 2 // int count
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   77     0                 this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   77     1                  out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1   77     2                count  I
            3    4     3                entry  Ljava/util/Set<Ljava/lang/String;>;
            6   77     3    directMethodTypes  [Ljava/lang/invoke/MethodType;
            7   77     4             dmhTypes  [I
            8   77     5                index  I
           10   23     6                entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           11   23     8              dmhType  Ljava/lang/String;
           13   22     9                 type  Ljava/lang/String;
           14   22    11                   mt  Ljava/lang/invoke/MethodType;
           25   77     6   invokerMethodTypes  [Ljava/lang/invoke/MethodType;
           26   77     7                    i  I
           28   39     8          invokerType  Ljava/lang/String;
           29   39    10                   mt  Ljava/lang/invoke/MethodType;
           30   39    11            lastParam  I
           41   77     8  callSiteMethodTypes  [Ljava/lang/invoke/MethodType;
           44   53     9         callSiteType  Ljava/lang/String;
           45   53    11                   mt  Ljava/lang/invoke/MethodType;
           46   53    12            lastParam  I
           57   73     9                bytes  [B
           59   73    10                ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           75   76     9                   ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          54    73      74  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      out   

  public static java.lang.String expandSignature(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.String signature
         0: .line 461
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 462
            bipush 88
            istore 2 /* last */
        start local 2 // char last
         2: .line 463
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         3: .line 464
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 20
         5: .line 465
      StackMap locals: java.lang.String java.lang.StringBuilder int int int
      StackMap stack:
            aload 0 /* signature */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         6: .line 466
            iload 5 /* c */
            bipush 48
            if_icmplt 10
            iload 5 /* c */
            bipush 57
            if_icmpgt 10
         7: .line 467
            iload 3 /* count */
            bipush 10
            imul
            istore 3 /* count */
         8: .line 468
            iload 3 /* count */
            iload 5 /* c */
            bipush 48
            isub
            iadd
            istore 3 /* count */
         9: .line 469
            goto 19
        10: .line 470
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        11: .line 471
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        12: goto 15
        13: .line 472
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 471
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* j */
            iload 3 /* count */
            if_icmplt 13
        end local 6 // int j
        16: .line 474
            aload 1 /* sb */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 475
            iload 5 /* c */
            istore 2 /* last */
        18: .line 476
            iconst_0
            istore 3 /* count */
        end local 5 // char c
        19: .line 464
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* signature */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 4 // int i
        21: .line 481
            iload 3 /* count */
            iconst_1
            if_icmple 28
        22: .line 482
            iload 2 /* last */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        23: .line 483
            iconst_1
            istore 4 /* j */
        start local 4 // int j
        24: goto 27
        25: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 483
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* j */
            iload 3 /* count */
            if_icmplt 25
        end local 4 // int j
        28: .line 487
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int count
        end local 2 // char last
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String signature
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0  signature  Ljava/lang/String;
            1   29     1         sb  Ljava/lang/StringBuilder;
            2   29     2       last  C
            3   29     3      count  I
            4   21     4          i  I
            6   19     5          c  C
           12   16     6          j  I
           24   28     4          j  I
    MethodParameters:
           Name  Flags
      signature  

  private static java.lang.invoke.MethodType asMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String basicSignatureString
         0: .line 491
            aload 0 /* basicSignatureString */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* parts */
        start local 1 // java.lang.String[] parts
         1: .line 492
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 2
            aload 1 /* parts */
            arraylength
            iconst_2
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 493
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 3
            aload 1 /* parts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 494
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* parameters */
        start local 2 // java.lang.String parameters
         4: .line 495
            aload 1 /* parts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            astore 3 /* rtype */
        start local 3 // java.lang.Class rtype
         5: .line 496
            aload 2 /* parameters */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 497
            aload 3 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
         7: .line 499
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 2 /* parameters */
            invokevirtual java.lang.String.length:()I
            anewarray java.lang.Class
            astore 4 /* ptypes */
        start local 4 // java.lang.Class[] ptypes
         8: .line 500
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 12
        10: .line 501
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 4 /* ptypes */
            iload 5 /* i */
            aload 2 /* parameters */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            aastore
        11: .line 500
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 4 /* ptypes */
            arraylength
            if_icmplt 10
        end local 5 // int i
        13: .line 503
            aload 3 /* rtype */
            aload 4 /* ptypes */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
        end local 4 // java.lang.Class[] ptypes
        end local 3 // java.lang.Class rtype
        end local 2 // java.lang.String parameters
        end local 1 // java.lang.String[] parts
        end local 0 // java.lang.String basicSignatureString
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0  basicSignatureString  Ljava/lang/String;
            1   14     1                 parts  [Ljava/lang/String;
            4   14     2            parameters  Ljava/lang/String;
            5   14     3                 rtype  Ljava/lang/Class<*>;
            8   14     4                ptypes  [Ljava/lang/Class;
            9   13     5                     i  I
    MethodParameters:
                      Name  Flags
      basicSignatureString  

  private static java.lang.Class<?> simpleType(char);
    descriptor: (C)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 508
            iload 0 /* c */
            tableswitch { // 66 - 90
                   66: 7
                   67: 7
                   68: 2
                   69: 10
                   70: 1
                   71: 10
                   72: 10
                   73: 3
                   74: 5
                   75: 10
                   76: 4
                   77: 10
                   78: 10
                   79: 10
                   80: 10
                   81: 10
                   82: 10
                   83: 7
                   84: 10
                   85: 10
                   86: 6
                   87: 10
                   88: 10
                   89: 10
                   90: 7
              default: 10
          }
         1: .line 510
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
         2: .line 512
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         3: .line 514
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         4: .line 516
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
         5: .line 518
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         6: .line 520
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         7: .line 525
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a valid primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         8: .line 526
            ldc " (use I instead)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 525
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 528
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     c  C
    Signature: (C)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      c     

  private static java.lang.String lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String type
         0: .line 192
            aload 0 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/String;

  private static java.lang.String[] lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String line
         0: .line 239
            aload 0 /* line */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  line  Ljava/lang/String;

  private void lambda$2(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String[] parts
         0: .line 241
            aload 1 /* parts */
            iconst_0
            aaload
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
           -685835729: 1
           -606951941: 2
              default: 22
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "[SPECIES_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 22
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "[LF_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 22
         3: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            arraylength
            iconst_3
            if_icmpne 22
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
         4: .line 245
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* species */
        start local 3 // java.lang.String species
         5: .line 246
            ldc "L"
            aload 3 /* species */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
         6: .line 247
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 3 /* species */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String species
         7: .line 250
            goto 22
         8: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_3
            aaload
            astore 3 /* methodType */
        start local 3 // java.lang.String methodType
         9: .line 253
            aload 0 /* this */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
        10: .line 254
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.Invokers$Holder"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        11: .line 255
            ldc "linkToTargetMethod"
            aload 1 /* parts */
            iconst_2
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 256
            ldc "linkToCallSite"
            aload 1 /* parts */
            iconst_2
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 257
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            aload 3 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 258
            goto 22
        15: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            aload 3 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 261
            goto 22
      StackMap locals:
      StackMap stack:
        17: aload 1 /* parts */
            iconst_1
            aaload
            ldc "DirectMethodHandle"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 22
        18: .line 262
            aload 1 /* parts */
            iconst_2
            aaload
            astore 4 /* dmh */
        start local 4 // java.lang.String dmh
        19: .line 265
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 4 /* dmh */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 266
            aload 0 /* this */
            aload 4 /* dmh */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.lang.String dmh
        21: .line 269
            goto 22
        end local 3 // java.lang.String methodType
        22: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] parts
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   23     1       parts  [Ljava/lang/String;
            5    7     3     species  Ljava/lang/String;
            9   22     3  methodType  Ljava/lang/String;
           19   21     4         dmh  Ljava/lang/String;

  private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$3(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 324
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         1: .line 325
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         2: .line 326
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 327
            aload 1 /* path */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 328
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 329
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            areturn
         6: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* entry */
            areturn
        end local 1 // java.lang.String path
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            1    7     1   path  Ljava/lang/String;

  private void lambda$4(jdk.tools.jlink.plugin.ResourcePoolBuilder, java.lang.String);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 2 // java.lang.String types
         0: .line 336
            aload 0 /* this */
            aload 2 /* types */
            aload 1
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateBMHClass:(Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
            return
        end local 2 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    1     2  types  Ljava/lang/String;
}
SourceFile: "GenerateJLIClassesPlugin.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final State = jdk.tools.jlink.plugin.Plugin$State of jdk.tools.jlink.plugin.Plugin