public class java.lang.invoke.MethodHandles
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.invoke.MethodHandles
  super_class: java.lang.Object
{
  static final java.lang.invoke.MemberName$Factory IMPL_NAMES;
    descriptor: Ljava/lang/invoke/MemberName$Factory;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final java.security.Permission ACCESS_PERMISSION;
    descriptor: Ljava/security/Permission;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle[] IDENTITY_MHS;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle[] ZERO_MHS;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static volatile int[] $SWITCH_TABLE$sun$invoke$util$Wrapper;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 82
            ldc Ljava/lang/invoke/MethodHandles;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
         3: .line 86
            invokestatic java.lang.invoke.MemberName.getFactory:()Ljava/lang/invoke/MemberName$Factory;
            putstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
         4: .line 295
            new java.lang.reflect.ReflectPermission
            dup
            ldc "suppressAccessChecks"
            invokespecial java.lang.reflect.ReflectPermission.<init>:(Ljava/lang/String;)V
         5: .line 294
            putstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
         6: .line 4186
            bipush 10
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
         7: .line 4204
            bipush 10
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static java.lang.invoke.MethodHandles$Lookup lookup();
    descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 111
            new java.lang.invoke.MethodHandles$Lookup
            dup
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
      jdk.internal.vm.annotation.ForceInline()

  private static java.lang.invoke.MethodHandles$Lookup reflected$lookup();
    descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 120
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 0 /* caller */
        start local 0 // java.lang.Class caller
         1: .line 121
            aload 0 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ifnonnull 3
         2: .line 122
            new java.lang.StringBuilder
            dup
            ldc "illegal lookupClass: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* caller */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 124
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 0 /* caller */
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
            areturn
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  caller  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()

  public static java.lang.invoke.MethodHandles$Lookup publicLookup();
    descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 156
            getstatic java.lang.invoke.MethodHandles$Lookup.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandles$Lookup privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // java.lang.Class targetClass
        start local 1 // java.lang.invoke.MethodHandles$Lookup caller
         0: .line 222
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         1: .line 223
            aload 2 /* sm */
            ifnull 2
            aload 2 /* sm */
            getstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         2: .line 224
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 4
         3: .line 225
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* targetClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is a primitive class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 6
         5: .line 227
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* targetClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is an array class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 229
      StackMap locals:
      StackMap stack:
            aload 1 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 8
         7: .line 230
            new java.lang.IllegalAccessException
            dup
            ldc "caller does not have PRIVATE and MODULE lookup mode"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 233
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 9
            aload 1 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.previousLookupClass:()Ljava/lang/Class;
            ifnull 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 235
      StackMap locals:
      StackMap stack:
            aload 1 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            astore 3 /* callerClass */
        start local 3 // java.lang.Class callerClass
        10: .line 236
            aload 3 /* callerClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 4 /* callerModule */
        start local 4 // java.lang.Module callerModule
        11: .line 237
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 5 /* targetModule */
        start local 5 // java.lang.Module targetModule
        12: .line 238
            aconst_null
            astore 6 /* newPreviousClass */
        start local 6 // java.lang.Class newPreviousClass
        13: .line 239
            bipush 31
            istore 7 /* newModes */
        start local 7 // int newModes
        14: .line 241
            aload 5 /* targetModule */
            aload 4 /* callerModule */
            if_acmpeq 24
        15: .line 242
            aload 4 /* callerModule */
            aload 5 /* targetModule */
            invokevirtual java.lang.Module.canRead:(Ljava/lang/Module;)Z
            ifne 17
        16: .line 243
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 4 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not read "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* targetModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 244
      StackMap locals: java.lang.Class java.lang.invoke.MethodHandles$Lookup java.lang.SecurityManager java.lang.Class java.lang.Module java.lang.Module java.lang.Class int
      StackMap stack:
            aload 5 /* targetModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 22
        18: .line 245
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            astore 8 /* pn */
        start local 8 // java.lang.String pn
        19: .line 246
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 20
            aload 8 /* pn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 20
            new java.lang.AssertionError
            dup
            ldc "unnamed package cannot be in named module"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        20: .line 247
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* targetModule */
            aload 8 /* pn */
            aload 4 /* callerModule */
            invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifne 22
        21: .line 248
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* targetModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not open "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* pn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String pn
        22: .line 252
      StackMap locals:
      StackMap stack:
            aload 3 /* callerClass */
            astore 6 /* newPreviousClass */
        23: .line 253
            iload 7 /* newModes */
            bipush -17
            iand
            istore 7 /* newModes */
        24: .line 256
      StackMap locals:
      StackMap stack:
            aload 4 /* callerModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifne 28
            aload 5 /* targetModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 28
        25: .line 257
            invokestatic jdk.internal.module.IllegalAccessLogger.illegalAccessLogger:()Ljdk/internal/module/IllegalAccessLogger;
            astore 8 /* logger */
        start local 8 // jdk.internal.module.IllegalAccessLogger logger
        26: .line 258
            aload 8 /* logger */
            ifnull 28
        27: .line 259
            aload 8 /* logger */
            aload 1 /* caller */
            aload 0 /* targetClass */
            invokevirtual jdk.internal.module.IllegalAccessLogger.logIfOpenedForIllegalAccess:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;)V
        end local 8 // jdk.internal.module.IllegalAccessLogger logger
        28: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* targetClass */
            aload 6 /* newPreviousClass */
            iload 7 /* newModes */
            invokestatic java.lang.invoke.MethodHandles$Lookup.newLookup:(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
        end local 7 // int newModes
        end local 6 // java.lang.Class newPreviousClass
        end local 5 // java.lang.Module targetModule
        end local 4 // java.lang.Module callerModule
        end local 3 // java.lang.Class callerClass
        end local 2 // java.lang.SecurityManager sm
        end local 1 // java.lang.invoke.MethodHandles$Lookup caller
        end local 0 // java.lang.Class targetClass
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   29     0       targetClass  Ljava/lang/Class<*>;
            0   29     1            caller  Ljava/lang/invoke/MethodHandles$Lookup;
            1   29     2                sm  Ljava/lang/SecurityManager;
           10   29     3       callerClass  Ljava/lang/Class<*>;
           11   29     4      callerModule  Ljava/lang/Module;
           12   29     5      targetModule  Ljava/lang/Module;
           13   29     6  newPreviousClass  Ljava/lang/Class<*>;
           14   29     7          newModes  I
           19   22     8                pn  Ljava/lang/String;
           26   28     8            logger  Ljdk/internal/module/IllegalAccessLogger;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandles$Lookup;
    MethodParameters:
             Name  Flags
      targetClass  
      caller       

  public static <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/reflect/Member;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.Class expected
        start local 1 // java.lang.invoke.MethodHandle target
         0: .line 288
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* smgr */
        start local 2 // java.lang.SecurityManager smgr
         1: .line 289
            aload 2 /* smgr */
            ifnull 2
            aload 2 /* smgr */
            getstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         2: .line 290
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            astore 3 /* lookup */
        start local 3 // java.lang.invoke.MethodHandles$Lookup lookup
         3: .line 291
            aload 3 /* lookup */
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.revealDirect:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleInfo;
            aload 0 /* expected */
            aload 3 /* lookup */
            invokeinterface java.lang.invoke.MethodHandleInfo.reflectAs:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 2 // java.lang.SecurityManager smgr
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.Class expected
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  expected  Ljava/lang/Class<TT;>;
            0    4     1    target  Ljava/lang/invoke/MethodHandle;
            1    4     2      smgr  Ljava/lang/SecurityManager;
            3    4     3    lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: <T::Ljava/lang/reflect/Member;>(Ljava/lang/Class<TT;>;Ljava/lang/invoke/MethodHandle;)TT;
    MethodParameters:
          Name  Flags
      expected  
      target    

  public static java.lang.invoke.MethodHandle arrayConstructor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3325
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 2
         1: .line 3326
            new java.lang.StringBuilder
            dup
            ldc "not an array class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 3328
      StackMap locals:
      StackMap stack:
            bipush 11
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
         3: .line 3329
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
         4: .line 3328
            astore 1 /* ani */
        start local 1 // java.lang.invoke.MethodHandle ani
         5: .line 3330
            aload 1 /* ani */
            aload 1 /* ani */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* arrayClass */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodHandle ani
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0  arrayClass  Ljava/lang/Class<*>;
            5    6     1         ani  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.MethodHandle arrayLength(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3350
            aload 0 /* arrayClass */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.LENGTH:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3374
            aload 0 /* arrayClass */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.GET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3398
            aload 0 /* arrayClass */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.SET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.VarHandle arrayElementVarHandle(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3462
            aload 0 /* arrayClass */
            invokestatic java.lang.invoke.VarHandles.makeArrayElementHandle:(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.VarHandle byteArrayViewVarHandle(java.lang.Class<?>, java.nio.ByteOrder);
    descriptor: (Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class viewArrayClass
        start local 1 // java.nio.ByteOrder byteOrder
         0: .line 3543
            aload 1 /* byteOrder */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 3544
            aload 0 /* viewArrayClass */
         2: .line 3545
            aload 1 /* byteOrder */
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Class
         3: iconst_0
         4: .line 3544
      StackMap locals: java.lang.Class java.nio.ByteOrder
      StackMap stack: java.lang.Class int
            invokestatic java.lang.invoke.VarHandles.byteArrayViewHandle:(Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 1 // java.nio.ByteOrder byteOrder
        end local 0 // java.lang.Class viewArrayClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  viewArrayClass  Ljava/lang/Class<*>;
            0    5     1       byteOrder  Ljava/nio/ByteOrder;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
                Name  Flags
      viewArrayClass  
      byteOrder       

  public static java.lang.invoke.VarHandle byteBufferViewVarHandle(java.lang.Class<?>, java.nio.ByteOrder);
    descriptor: (Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class viewArrayClass
        start local 1 // java.nio.ByteOrder byteOrder
         0: .line 3630
            aload 1 /* byteOrder */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 3631
            aload 0 /* viewArrayClass */
         2: .line 3632
            aload 1 /* byteOrder */
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Class
         3: iconst_0
         4: .line 3631
      StackMap locals: java.lang.Class java.nio.ByteOrder
      StackMap stack: java.lang.Class int
            invokestatic java.lang.invoke.VarHandles.makeByteBufferViewHandle:(Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 1 // java.nio.ByteOrder byteOrder
        end local 0 // java.lang.Class viewArrayClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  viewArrayClass  Ljava/lang/Class<*>;
            0    5     1       byteOrder  Ljava/nio/ByteOrder;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
                Name  Flags
      viewArrayClass  
      byteOrder       

  public static java.lang.invoke.MethodHandle spreadInvoker(java.lang.invoke.MethodType, int);
    descriptor: (Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodType type
        start local 1 // int leadingArgCount
         0: .line 3685
            iload 1 /* leadingArgCount */
            iflt 1
            iload 1 /* leadingArgCount */
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmple 2
         1: .line 3686
      StackMap locals:
      StackMap stack:
            ldc "bad argument count"
            iload 1 /* leadingArgCount */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         2: .line 3687
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            ldc [Ljava/lang/Object;
            iload 1 /* leadingArgCount */
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iload 1 /* leadingArgCount */
            isub
            invokevirtual java.lang.invoke.MethodType.asSpreaderType:(Ljava/lang/Class;II)Ljava/lang/invoke/MethodType;
            astore 0 /* type */
         3: .line 3688
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            iload 1 /* leadingArgCount */
            invokevirtual java.lang.invoke.Invokers.spreadInvoker:(I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // int leadingArgCount
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             type  Ljava/lang/invoke/MethodType;
            0    4     1  leadingArgCount  I
    MethodParameters:
                 Name  Flags
      type             
      leadingArgCount  

  public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 3727
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            invokevirtual java.lang.invoke.Invokers.exactInvoker:()Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 3765
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            invokevirtual java.lang.invoke.Invokers.genericInvoker:()Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle varHandleExactInvoker(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
        start local 1 // java.lang.invoke.MethodType type
         0: .line 3783
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            aload 0 /* accessMode */
            invokevirtual java.lang.invoke.Invokers.varHandleMethodExactInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  accessMode  Ljava/lang/invoke/VarHandle$AccessMode;
            0    1     1        type  Ljava/lang/invoke/MethodType;
    MethodParameters:
            Name  Flags
      accessMode  
      type        

  public static java.lang.invoke.MethodHandle varHandleInvoker(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
        start local 1 // java.lang.invoke.MethodType type
         0: .line 3811
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            aload 0 /* accessMode */
            invokevirtual java.lang.invoke.Invokers.varHandleMethodInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  accessMode  Ljava/lang/invoke/VarHandle$AccessMode;
            0    1     1        type  Ljava/lang/invoke/MethodType;
    MethodParameters:
            Name  Flags
      accessMode  
      type        

  static java.lang.invoke.MethodHandle basicInvoker(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 3816
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            invokevirtual java.lang.invoke.Invokers.basicInvoker:()Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle explicitCastArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType newType
         0: .line 3866
            aload 0 /* target */
            aload 1 /* newType */
            invokestatic java.lang.invoke.MethodHandles.explicitCastArgumentsChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
         1: .line 3868
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* oldType */
        start local 2 // java.lang.invoke.MethodType oldType
         2: .line 3869
            aload 2 /* oldType */
            aload 1 /* newType */
            if_acmpne 3
            aload 0 /* target */
            areturn
         3: .line 3870
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 2 /* oldType */
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.explicitCastEquivalentToAsType:(Ljava/lang/invoke/MethodType;)Z
            ifeq 5
         4: .line 3871
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         5: .line 3873
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            aload 1 /* newType */
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.makePairwiseConvert:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodType oldType
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0   target  Ljava/lang/invoke/MethodHandle;
            0    6     1  newType  Ljava/lang/invoke/MethodType;
            2    6     2  oldType  Ljava/lang/invoke/MethodType;
    MethodParameters:
         Name  Flags
      target   
      newType  

  private static void explicitCastArgumentsChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType newType
         0: .line 3877
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmpeq 2
         1: .line 3878
            new java.lang.invoke.WrongMethodTypeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot explicitly cast "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* newType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.invoke.WrongMethodTypeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3880
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0   target  Ljava/lang/invoke/MethodHandle;
            0    3     1  newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
         Name  Flags
      target   
      newType  

  public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType newType
        start local 2 // int[] reorder
         0: .line 3945
            aload 2 /* reorder */
            invokevirtual int[].clone:()Ljava/lang/Object;
            checkcast int[]
            astore 2 /* reorder */
         1: .line 3946
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        start local 3 // java.lang.invoke.MethodType oldType
         2: .line 3947
            aload 2 /* reorder */
            aload 1 /* newType */
            aload 3 /* oldType */
            invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
            pop
         3: .line 3950
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
        start local 4 // java.lang.invoke.BoundMethodHandle result
         4: .line 3951
            aload 4 /* result */
            getfield java.lang.invoke.BoundMethodHandle.form:Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        start local 5 // java.lang.invoke.LambdaForm form
         5: .line 3952
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 6 /* newArity */
        start local 6 // int newArity
         6: .line 3957
            goto 39
        start local 7 // int ddIdx
         7: .line 3958
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int
      StackMap stack:
            iload 7 /* ddIdx */
            ifle 26
         8: .line 3965
            iload 7 /* ddIdx */
            istore 8 /* srcPos */
        start local 8 // int srcPos
         9: iload 8 /* srcPos */
            istore 9 /* dstPos */
        start local 9 // int dstPos
        10: aload 2 /* reorder */
            iload 8 /* srcPos */
            iaload
            istore 10 /* dupVal */
        start local 10 // int dupVal
        11: .line 3966
            iconst_0
            istore 11 /* killFirst */
        start local 11 // boolean killFirst
        12: .line 3967
            goto 14
        start local 12 // int val
        13: .line 3970
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int int int int int int
      StackMap stack:
            iload 10 /* dupVal */
            iload 12 /* val */
            if_icmple 14
            iconst_1
            istore 11 /* killFirst */
        end local 12 // int val
        14: .line 3967
      StackMap locals:
      StackMap stack:
            aload 2 /* reorder */
            iinc 9 /* dstPos */ -1
            iload 9 /* dstPos */
            iaload
            dup
            istore 12 /* val */
        start local 12 // int val
        15: iload 10 /* dupVal */
            if_icmpne 13
        end local 12 // int val
        16: .line 3972
            iload 11 /* killFirst */
            ifne 19
        17: .line 3973
            iload 9 /* dstPos */
            istore 8 /* srcPos */
        18: .line 3974
            iload 7 /* ddIdx */
            istore 9 /* dstPos */
        19: .line 3976
      StackMap locals:
      StackMap stack:
            aload 5 /* form */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 8 /* srcPos */
            iadd
            iconst_1
            iload 9 /* dstPos */
            iadd
            invokevirtual java.lang.invoke.LambdaFormEditor.dupArgumentForm:(II)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        20: .line 3977
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 21
            aload 2 /* reorder */
            iload 8 /* srcPos */
            iaload
            aload 2 /* reorder */
            iload 9 /* dstPos */
            iaload
            if_icmpeq 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 3978
      StackMap locals:
      StackMap stack:
            aload 3 /* oldType */
            iload 9 /* dstPos */
            iload 9 /* dstPos */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        22: .line 3980
            iload 9 /* dstPos */
            iconst_1
            iadd
            istore 12 /* tailPos */
        start local 12 // int tailPos
        23: .line 3981
            aload 2 /* reorder */
            iload 12 /* tailPos */
            aload 2 /* reorder */
            iload 9 /* dstPos */
            aload 2 /* reorder */
            arraylength
            iload 12 /* tailPos */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 3982
            aload 2 /* reorder */
            aload 2 /* reorder */
            arraylength
            iconst_1
            isub
            invokestatic java.util.Arrays.copyOf:([II)[I
            astore 2 /* reorder */
        end local 12 // int tailPos
        end local 11 // boolean killFirst
        end local 10 // int dupVal
        end local 9 // int dstPos
        end local 8 // int srcPos
        25: .line 3983
            goto 38
        26: .line 3984
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int
      StackMap stack:
            iload 7 /* ddIdx */
            iconst_m1
            ixor
            istore 8 /* dropVal */
        start local 8 // int dropVal
        27: iconst_0
            istore 9 /* insPos */
        start local 9 // int insPos
        28: .line 3985
            goto 30
        29: .line 3988
      StackMap locals: int int
      StackMap stack:
            iinc 9 /* insPos */ 1
        30: .line 3985
      StackMap locals:
      StackMap stack:
            iload 9 /* insPos */
            aload 2 /* reorder */
            arraylength
            if_icmpge 31
            aload 2 /* reorder */
            iload 9 /* insPos */
            iaload
            iload 8 /* dropVal */
            if_icmplt 29
        31: .line 3990
      StackMap locals:
      StackMap stack:
            aload 1 /* newType */
            iload 8 /* dropVal */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 10 /* ptype */
        start local 10 // java.lang.Class ptype
        32: .line 3991
            aload 5 /* form */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 9 /* insPos */
            iadd
            aload 10 /* ptype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.addArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        33: .line 3992
            aload 3 /* oldType */
            iload 9 /* insPos */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 10 /* ptype */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        34: .line 3994
            iload 9 /* insPos */
            iconst_1
            iadd
            istore 11 /* tailPos */
        start local 11 // int tailPos
        35: .line 3995
            aload 2 /* reorder */
            aload 2 /* reorder */
            arraylength
            iconst_1
            iadd
            invokestatic java.util.Arrays.copyOf:([II)[I
            astore 2 /* reorder */
        36: .line 3996
            aload 2 /* reorder */
            iload 9 /* insPos */
            aload 2 /* reorder */
            iload 11 /* tailPos */
            aload 2 /* reorder */
            arraylength
            iload 11 /* tailPos */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        37: .line 3997
            aload 2 /* reorder */
            iload 9 /* insPos */
            iload 8 /* dropVal */
            iastore
        end local 11 // int tailPos
        end local 10 // java.lang.Class ptype
        end local 9 // int insPos
        end local 8 // int dropVal
        38: .line 3999
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 39
            aload 2 /* reorder */
            aload 1 /* newType */
            aload 3 /* oldType */
            invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
            ifne 39
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 7 // int ddIdx
        39: .line 3957
      StackMap locals:
      StackMap stack:
            aload 2 /* reorder */
            iload 6 /* newArity */
            invokestatic java.lang.invoke.MethodHandles.findFirstDupOrDrop:([II)I
            dup
            istore 7 /* ddIdx */
        start local 7 // int ddIdx
        40: ifne 7
        end local 7 // int ddIdx
        41: .line 4001
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 42
            aload 2 /* reorder */
            arraylength
            iload 6 /* newArity */
            if_icmpeq 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 4003
      StackMap locals:
      StackMap stack:
            aload 5 /* form */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            aload 2 /* reorder */
            invokevirtual java.lang.invoke.LambdaFormEditor.permuteArgumentsForm:(I[I)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        43: .line 4004
            aload 1 /* newType */
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.type:()Ljava/lang/invoke/MethodType;
            if_acmpne 45
            aload 5 /* form */
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.internalForm:()Ljava/lang/invoke/LambdaForm;
            if_acmpne 45
        44: .line 4005
            aload 4 /* result */
            areturn
        45: .line 4006
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            aload 1 /* newType */
            aload 5 /* form */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 6 // int newArity
        end local 5 // java.lang.invoke.LambdaForm form
        end local 4 // java.lang.invoke.BoundMethodHandle result
        end local 3 // java.lang.invoke.MethodType oldType
        end local 2 // int[] reorder
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   46     0     target  Ljava/lang/invoke/MethodHandle;
            0   46     1    newType  Ljava/lang/invoke/MethodType;
            0   46     2    reorder  [I
            2   46     3    oldType  Ljava/lang/invoke/MethodType;
            4   46     4     result  Ljava/lang/invoke/BoundMethodHandle;
            5   46     5       form  Ljava/lang/invoke/LambdaForm;
            6   46     6   newArity  I
            7   39     7      ddIdx  I
           40   41     7      ddIdx  I
            9   25     8     srcPos  I
           10   25     9     dstPos  I
           11   25    10     dupVal  I
           12   25    11  killFirst  Z
           13   14    12        val  I
           15   16    12        val  I
           23   25    12    tailPos  I
           27   38     8    dropVal  I
           28   38     9     insPos  I
           32   38    10      ptype  Ljava/lang/Class<*>;
           35   38    11    tailPos  I
    MethodParameters:
         Name  Flags
      target   
      newType  
      reorder  

  private static int findFirstDupOrDrop(int[], int);
    descriptor: ([II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // int[] reorder
        start local 1 // int newArity
         0: .line 4018
            iload 1 /* newArity */
            bipush 63
            if_icmpge 22
         1: .line 4019
            lconst_0
            lstore 2 /* mask */
        start local 2 // long mask
         2: .line 4020
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 12
         4: .line 4021
      StackMap locals: long int
      StackMap stack:
            aload 0 /* reorder */
            iload 4 /* i */
            iaload
            istore 5 /* arg */
        start local 5 // int arg
         5: .line 4022
            iload 5 /* arg */
            iload 1 /* newArity */
            if_icmplt 7
         6: .line 4023
            aload 0 /* reorder */
            arraylength
            ireturn
         7: .line 4025
      StackMap locals: int
      StackMap stack:
            lconst_1
            iload 5 /* arg */
            lshl
            lstore 6 /* bit */
        start local 6 // long bit
         8: .line 4026
            lload 2 /* mask */
            lload 6 /* bit */
            land
            lconst_0
            lcmp
            ifeq 10
         9: .line 4027
            iload 4 /* i */
            ireturn
        10: .line 4029
      StackMap locals: long
      StackMap stack:
            lload 2 /* mask */
            lload 6 /* bit */
            lor
            lstore 2 /* mask */
        end local 6 // long bit
        end local 5 // int arg
        11: .line 4020
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 0 /* reorder */
            arraylength
            if_icmplt 4
        end local 4 // int i
        13: .line 4031
            lload 2 /* mask */
            lconst_1
            iload 1 /* newArity */
            lshl
            lconst_1
            lsub
            lcmp
            ifne 16
        14: .line 4032
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 15
            lload 2 /* mask */
            ldc -1
            lxor
            invokestatic java.lang.Long.lowestOneBit:(J)J
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            iload 1 /* newArity */
            if_icmpeq 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 4033
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 4036
      StackMap locals:
      StackMap stack:
            lload 2 /* mask */
            ldc -1
            lxor
            invokestatic java.lang.Long.lowestOneBit:(J)J
            lstore 4 /* zeroBit */
        start local 4 // long zeroBit
        17: .line 4037
            lload 4 /* zeroBit */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            istore 6 /* zeroPos */
        start local 6 // int zeroPos
        18: .line 4038
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 19
            iload 6 /* zeroPos */
            iload 1 /* newArity */
            if_icmple 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 4039
      StackMap locals: long int
      StackMap stack:
            iload 6 /* zeroPos */
            iload 1 /* newArity */
            if_icmpne 21
        20: .line 4040
            iconst_0
            ireturn
        21: .line 4042
      StackMap locals:
      StackMap stack:
            iload 6 /* zeroPos */
            iconst_m1
            ixor
            ireturn
        end local 6 // int zeroPos
        end local 4 // long zeroBit
        end local 2 // long mask
        22: .line 4045
      StackMap locals:
      StackMap stack:
            new java.util.BitSet
            dup
            iload 1 /* newArity */
            invokespecial java.util.BitSet.<init>:(I)V
            astore 2 /* mask */
        start local 2 // java.util.BitSet mask
        23: .line 4046
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        24: goto 32
        25: .line 4047
      StackMap locals: java.util.BitSet int
      StackMap stack:
            aload 0 /* reorder */
            iload 3 /* i */
            iaload
            istore 4 /* arg */
        start local 4 // int arg
        26: .line 4048
            iload 4 /* arg */
            iload 1 /* newArity */
            if_icmplt 28
        27: .line 4049
            aload 0 /* reorder */
            arraylength
            ireturn
        28: .line 4051
      StackMap locals: int
      StackMap stack:
            aload 2 /* mask */
            iload 4 /* arg */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 30
        29: .line 4052
            iload 3 /* i */
            ireturn
        30: .line 4054
      StackMap locals:
      StackMap stack:
            aload 2 /* mask */
            iload 4 /* arg */
            invokevirtual java.util.BitSet.set:(I)V
        end local 4 // int arg
        31: .line 4046
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 3 /* i */
            aload 0 /* reorder */
            arraylength
            if_icmplt 25
        end local 3 // int i
        33: .line 4056
            aload 2 /* mask */
            iconst_0
            invokevirtual java.util.BitSet.nextClearBit:(I)I
            istore 3 /* zeroPos */
        start local 3 // int zeroPos
        34: .line 4057
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 35
            iload 3 /* zeroPos */
            iload 1 /* newArity */
            if_icmple 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 4058
      StackMap locals:
      StackMap stack:
            iload 3 /* zeroPos */
            iload 1 /* newArity */
            if_icmpne 37
        36: .line 4059
            iconst_0
            ireturn
        37: .line 4061
      StackMap locals:
      StackMap stack:
            iload 3 /* zeroPos */
            iconst_m1
            ixor
            ireturn
        end local 3 // int zeroPos
        end local 2 // java.util.BitSet mask
        end local 1 // int newArity
        end local 0 // int[] reorder
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0   reorder  [I
            0   38     1  newArity  I
            2   22     2      mask  J
            3   13     4         i  I
            5   11     5       arg  I
            8   11     6       bit  J
           17   22     4   zeroBit  J
           18   22     6   zeroPos  I
           23   38     2      mask  Ljava/util/BitSet;
           24   33     3         i  I
           26   31     4       arg  I
           34   38     3   zeroPos  I
    MethodParameters:
          Name  Flags
      reorder   
      newArity  

  private static boolean permuteArgumentChecks(int[], java.lang.invoke.MethodType, java.lang.invoke.MethodType);
    descriptor: ([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // int[] reorder
        start local 1 // java.lang.invoke.MethodType newType
        start local 2 // java.lang.invoke.MethodType oldType
         0: .line 4066
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* oldType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 4
         1: .line 4067
            ldc "return types do not match"
         2: .line 4068
            aload 2 /* oldType */
            aload 1 /* newType */
         3: .line 4067
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         4: .line 4069
      StackMap locals:
      StackMap stack:
            aload 0 /* reorder */
            arraylength
            aload 2 /* oldType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmpne 21
         5: .line 4070
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* limit */
        start local 3 // int limit
         6: .line 4071
            iconst_0
            istore 4 /* bad */
        start local 4 // boolean bad
         7: .line 4072
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         8: goto 19
         9: .line 4073
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* reorder */
            iload 5 /* j */
            iaload
            istore 6 /* i */
        start local 6 // int i
        10: .line 4074
            iload 6 /* i */
            iflt 11
            iload 6 /* i */
            iload 3 /* limit */
            if_icmplt 12
        11: .line 4075
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 4 /* bad */
            goto 20
        12: .line 4077
      StackMap locals:
      StackMap stack:
            aload 1 /* newType */
            iload 6 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 7 /* src */
        start local 7 // java.lang.Class src
        13: .line 4078
            aload 2 /* oldType */
            iload 5 /* j */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 8 /* dst */
        start local 8 // java.lang.Class dst
        14: .line 4079
            aload 7 /* src */
            aload 8 /* dst */
            if_acmpeq 18
        15: .line 4080
            ldc "parameter types do not match after reorder"
        16: .line 4081
            aload 2 /* oldType */
            aload 1 /* newType */
        17: .line 4080
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.lang.Class dst
        end local 7 // java.lang.Class src
        end local 6 // int i
        18: .line 4072
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* j */
            aload 0 /* reorder */
            arraylength
            if_icmplt 9
        end local 5 // int j
        20: .line 4083
      StackMap locals:
      StackMap stack:
            iload 4 /* bad */
            ifne 21
            iconst_1
            ireturn
        end local 4 // boolean bad
        end local 3 // int limit
        21: .line 4085
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "bad reorder array: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* reorder */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.invoke.MethodType oldType
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // int[] reorder
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0  reorder  [I
            0   22     1  newType  Ljava/lang/invoke/MethodType;
            0   22     2  oldType  Ljava/lang/invoke/MethodType;
            6   21     3    limit  I
            7   21     4      bad  Z
            8   20     5        j  I
           10   18     6        i  I
           13   18     7      src  Ljava/lang/Class<*>;
           14   18     8      dst  Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      reorder  
      newType  
      oldType  

  public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // java.lang.Object value
         0: .line 4104
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 8
         1: .line 4105
            aload 0 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 4106
            ldc "void type"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 4107
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 2 /* w */
        start local 2 // sun.invoke.util.Wrapper w
         4: .line 4108
            aload 2 /* w */
            aload 1 /* value */
            aload 0 /* type */
            invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 1 /* value */
         5: .line 4109
            aload 2 /* w */
            invokevirtual sun.invoke.util.Wrapper.zero:()Ljava/lang/Object;
            aload 1 /* value */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 4110
            aload 2 /* w */
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
         7: .line 4111
      StackMap locals: sun.invoke.util.Wrapper
      StackMap stack:
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* value */
            aastore
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // sun.invoke.util.Wrapper w
         8: .line 4113
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            ifnonnull 10
         9: .line 4114
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        10: .line 4115
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            aload 1 /* value */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   type  Ljava/lang/Class<*>;
            0   11     1  value  Ljava/lang/Object;
            4    8     2      w  Lsun/invoke/util/Wrapper;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      type   
      value  

  public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class type
         0: .line 4127
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 1
            aload 0 /* type */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
      StackMap locals:
      StackMap stack: sun.invoke.util.Wrapper
         2: astore 1 /* btw */
        start local 1 // sun.invoke.util.Wrapper btw
         3: .line 4128
            aload 1 /* btw */
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            istore 2 /* pos */
        start local 2 // int pos
         4: .line 4129
            getstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aaload
            astore 3 /* ident */
        start local 3 // java.lang.invoke.MethodHandle ident
         5: .line 4130
            aload 3 /* ident */
            ifnonnull 7
         6: .line 4131
            getstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aload 1 /* btw */
            invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.makeIdentity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            invokestatic java.lang.invoke.MethodHandles.setCachedMethodHandle:([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* ident */
         7: .line 4133
      StackMap locals: sun.invoke.util.Wrapper int java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* ident */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 0 /* type */
            if_acmpne 9
         8: .line 4134
            aload 3 /* ident */
            areturn
         9: .line 4136
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 10
            aload 1 /* btw */
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            if_acmpeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 4137
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.makeIdentity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandle ident
        end local 2 // int pos
        end local 1 // sun.invoke.util.Wrapper btw
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   type  Ljava/lang/Class<*>;
            3   11     1    btw  Lsun/invoke/util/Wrapper;
            4   11     2    pos  I
            5   11     3  ident  Ljava/lang/invoke/MethodHandle;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle zero(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 4157
            aload 0 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4158
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 2
            aload 0 /* type */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         3: areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.invoke.MethodHandle identityOrVoid(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 4162
            aload 0 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 1
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         2: areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle empty(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 4182
            aload 0 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4183
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.zero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.invoke.MethodHandle makeIdentity(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class ptype
         0: .line 4188
            aload 0 /* ptype */
            aload 0 /* ptype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 1 /* mtype */
        start local 1 // java.lang.invoke.MethodType mtype
         1: .line 4189
            aload 0 /* ptype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokestatic java.lang.invoke.LambdaForm.identityForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 2 /* lform */
        start local 2 // java.lang.invoke.LambdaForm lform
         2: .line 4190
            aload 1 /* mtype */
            aload 2 /* lform */
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.IDENTITY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.LambdaForm lform
        end local 1 // java.lang.invoke.MethodType mtype
        end local 0 // java.lang.Class ptype
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  ptype  Ljava/lang/Class<*>;
            1    3     1  mtype  Ljava/lang/invoke/MethodType;
            2    3     2  lform  Ljava/lang/invoke/LambdaForm;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      ptype  

  private static java.lang.invoke.MethodHandle zero(sun.invoke.util.Wrapper, java.lang.Class<?>);
    descriptor: (Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.invoke.util.Wrapper btw
        start local 1 // java.lang.Class rtype
         0: .line 4194
            aload 0 /* btw */
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 4195
            getstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aaload
            astore 3 /* zero */
        start local 3 // java.lang.invoke.MethodHandle zero
         2: .line 4196
            aload 3 /* zero */
            ifnonnull 4
         3: .line 4197
            getstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aload 0 /* btw */
            invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.makeZero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            invokestatic java.lang.invoke.MethodHandles.setCachedMethodHandle:([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* zero */
         4: .line 4199
      StackMap locals: int java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* zero */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 1 /* rtype */
            if_acmpne 6
         5: .line 4200
            aload 3 /* zero */
            areturn
         6: .line 4201
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 7
            aload 0 /* btw */
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            if_acmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 4202
      StackMap locals:
      StackMap stack:
            aload 1 /* rtype */
            invokestatic java.lang.invoke.MethodHandles.makeZero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandle zero
        end local 2 // int pos
        end local 1 // java.lang.Class rtype
        end local 0 // sun.invoke.util.Wrapper btw
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0    btw  Lsun/invoke/util/Wrapper;
            0    8     1  rtype  Ljava/lang/Class<*>;
            1    8     2    pos  I
            2    8     3   zero  Ljava/lang/invoke/MethodHandle;
    Signature: (Lsun/invoke/util/Wrapper;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      btw    
      rtype  

  private static java.lang.invoke.MethodHandle makeZero(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class rtype
         0: .line 4206
            aload 0 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 1 /* mtype */
        start local 1 // java.lang.invoke.MethodType mtype
         1: .line 4207
            aload 0 /* rtype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokestatic java.lang.invoke.LambdaForm.zeroForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 2 /* lform */
        start local 2 // java.lang.invoke.LambdaForm lform
         2: .line 4208
            aload 1 /* mtype */
            aload 2 /* lform */
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ZERO:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.LambdaForm lform
        end local 1 // java.lang.invoke.MethodType mtype
        end local 0 // java.lang.Class rtype
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  rtype  Ljava/lang/Class<*>;
            1    3     1  mtype  Ljava/lang/invoke/MethodType;
            2    3     2  lform  Ljava/lang/invoke/LambdaForm;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      rtype  

  private static synchronized java.lang.invoke.MethodHandle setCachedMethodHandle(java.lang.invoke.MethodHandle[], int, java.lang.invoke.MethodHandle);
    descriptor: ([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.invoke.MethodHandle[] cache
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle value
         0: .line 4213
            aload 0 /* cache */
            iload 1 /* pos */
            aaload
            astore 3 /* prev */
        start local 3 // java.lang.invoke.MethodHandle prev
         1: .line 4214
            aload 3 /* prev */
            ifnull 2
            aload 3 /* prev */
            areturn
         2: .line 4215
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 0 /* cache */
            iload 1 /* pos */
            aload 2 /* value */
            dup_x2
            aastore
            areturn
        end local 3 // java.lang.invoke.MethodHandle prev
        end local 2 // java.lang.invoke.MethodHandle value
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle[] cache
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  cache  [Ljava/lang/invoke/MethodHandle;
            0    3     1    pos  I
            0    3     2  value  Ljava/lang/invoke/MethodHandle;
            1    3     3   prev  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      cache  
      pos    
      value  

  public static java.lang.invoke.MethodHandle insertArguments(java.lang.invoke.MethodHandle, int, java.lang.Object[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.Object[] values
         0: .line 4257
            aload 2 /* values */
            arraylength
            istore 3 /* insCount */
        start local 3 // int insCount
         1: .line 4258
            aload 0 /* target */
            iload 3 /* insCount */
            iload 1 /* pos */
            invokestatic java.lang.invoke.MethodHandles.insertArgumentsChecks:(Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
            astore 4 /* ptypes */
        start local 4 // java.lang.Class[] ptypes
         2: .line 4259
            iload 3 /* insCount */
            ifne 3
            aload 0 /* target */
            areturn
         3: .line 4260
      StackMap locals: int java.lang.Class[]
      StackMap stack:
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         4: .line 4261
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 14
         6: .line 4262
      StackMap locals: java.lang.invoke.BoundMethodHandle int
      StackMap stack:
            aload 2 /* values */
            iload 6 /* i */
            aaload
            astore 7 /* value */
        start local 7 // java.lang.Object value
         7: .line 4263
            aload 4 /* ptypes */
            iload 1 /* pos */
            iload 6 /* i */
            iadd
            aaload
            astore 8 /* ptype */
        start local 8 // java.lang.Class ptype
         8: .line 4264
            aload 8 /* ptype */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 11
         9: .line 4265
            aload 5 /* result */
            iload 1 /* pos */
            aload 8 /* ptype */
            aload 7 /* value */
            invokestatic java.lang.invoke.MethodHandles.insertArgumentPrimitive:(Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        10: .line 4266
            goto 13
        11: .line 4267
      StackMap locals: java.lang.Object java.lang.Class
      StackMap stack:
            aload 8 /* ptype */
            aload 7 /* value */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* value */
        12: .line 4268
            aload 5 /* result */
            iload 1 /* pos */
            aload 7 /* value */
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentL:(ILjava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        end local 8 // java.lang.Class ptype
        end local 7 // java.lang.Object value
        13: .line 4261
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 3 /* insCount */
            if_icmplt 6
        end local 6 // int i
        15: .line 4271
            aload 5 /* result */
            areturn
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.Class[] ptypes
        end local 3 // int insCount
        end local 2 // java.lang.Object[] values
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0    target  Ljava/lang/invoke/MethodHandle;
            0   16     1       pos  I
            0   16     2    values  [Ljava/lang/Object;
            1   16     3  insCount  I
            2   16     4    ptypes  [Ljava/lang/Class;
            4   16     5    result  Ljava/lang/invoke/BoundMethodHandle;
            5   15     6         i  I
            7   13     7     value  Ljava/lang/Object;
            8   13     8     ptype  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      target  
      pos     
      values  

  private static java.lang.invoke.BoundMethodHandle insertArgumentPrimitive(java.lang.invoke.BoundMethodHandle, int, java.lang.Class<?>, );
    descriptor: (Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.invoke.BoundMethodHandle result
        start local 1 // int pos
        start local 2 // java.lang.Class ptype
        start local 3 // java.lang.Object value
         0: .line 4276
            aload 2 /* ptype */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 4 /* w */
        start local 4 // sun.invoke.util.Wrapper w
         1: .line 4278
            aload 4 /* w */
            aload 3 /* value */
            aload 2 /* ptype */
            invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* value */
         2: .line 4279
            invokestatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
            aload 4 /* w */
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iaload
            tableswitch { // 5 - 8
                    5: 3
                    6: 4
                    7: 5
                    8: 6
              default: 7
          }
         3: .line 4280
      StackMap locals: sun.invoke.util.Wrapper
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentI:(II)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         4: .line 4281
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentJ:(IJ)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         5: .line 4282
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentF:(IF)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         6: .line 4283
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentD:(ID)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         7: .line 4284
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            invokestatic sun.invoke.util.ValueConversions.widenSubword:(Ljava/lang/Object;)I
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentI:(II)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 4 // sun.invoke.util.Wrapper w
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Class ptype
        end local 1 // int pos
        end local 0 // java.lang.invoke.BoundMethodHandle result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  result  Ljava/lang/invoke/BoundMethodHandle;
            0    8     1     pos  I
            0    8     2   ptype  Ljava/lang/Class<*>;
            0    8     3   value  Ljava/lang/Object;
            1    8     4       w  Lsun/invoke/util/Wrapper;
    Signature: (Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
    MethodParameters:
        Name  Flags
      result  
      pos     
      ptype   
      value   

  private static java.lang.Class<?>[] insertArgumentsChecks(java.lang.invoke.MethodHandle, int, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int insCount
        start local 2 // int pos
         0: .line 4289
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        start local 3 // java.lang.invoke.MethodType oldType
         1: .line 4290
            aload 3 /* oldType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* outargs */
        start local 4 // int outargs
         2: .line 4291
            iload 4 /* outargs */
            iload 1 /* insCount */
            isub
            istore 5 /* inargs */
        start local 5 // int inargs
         3: .line 4292
            iload 5 /* inargs */
            ifge 5
         4: .line 4293
            ldc "too many values to insert"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 4294
      StackMap locals: java.lang.invoke.MethodType int int
      StackMap stack:
            iload 2 /* pos */
            iflt 6
            iload 2 /* pos */
            iload 5 /* inargs */
            if_icmple 7
         6: .line 4295
      StackMap locals:
      StackMap stack:
            ldc "no argument type to append"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 4296
      StackMap locals:
      StackMap stack:
            aload 3 /* oldType */
            invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
            areturn
        end local 5 // int inargs
        end local 4 // int outargs
        end local 3 // java.lang.invoke.MethodType oldType
        end local 2 // int pos
        end local 1 // int insCount
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0    target  Ljava/lang/invoke/MethodHandle;
            0    8     1  insCount  I
            0    8     2       pos  I
            1    8     3   oldType  Ljava/lang/invoke/MethodType;
            2    8     4   outargs  I
            3    8     5    inargs  I
    Exceptions:
      throws java.lang.RuntimeException
    Signature: (Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      target    
      insCount  
      pos       

  public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 4342
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      target  Ljava/lang/invoke/MethodHandle;
            0    1     1         pos  I
            0    1     2  valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      target      
      pos         
      valueTypes  

  private static java.util.List<java.lang.Class<?>> copyTypes([]);
    descriptor: ([Ljava/lang/Object;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object[] array
         0: .line 4346
            aload 0 /* array */
            aload 0 /* array */
            arraylength
            ldc [Ljava/lang/Class;
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [Ljava/lang/Object;
    Signature: ([Ljava/lang/Object;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
       Name  Flags
      array  

  private static java.lang.invoke.MethodHandle dropArguments0(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 4350
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        start local 3 // java.lang.invoke.MethodType oldType
         1: .line 4351
            aload 3 /* oldType */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArgumentChecks:(Ljava/lang/invoke/MethodType;ILjava/util/List;)I
            istore 4 /* dropped */
        start local 4 // int dropped
         2: .line 4352
            aload 3 /* oldType */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            astore 5 /* newType */
        start local 5 // java.lang.invoke.MethodType newType
         3: .line 4353
            iload 4 /* dropped */
            ifne 4
            aload 0 /* target */
            areturn
         4: .line 4354
      StackMap locals: java.lang.invoke.MethodType int java.lang.invoke.MethodType
      StackMap stack:
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        start local 6 // java.lang.invoke.BoundMethodHandle result
         5: .line 4355
            aload 6 /* result */
            getfield java.lang.invoke.BoundMethodHandle.form:Ljava/lang/invoke/LambdaForm;
            astore 7 /* lform */
        start local 7 // java.lang.invoke.LambdaForm lform
         6: .line 4356
            iconst_1
            iload 1 /* pos */
            iadd
            istore 8 /* insertFormArg */
        start local 8 // int insertFormArg
         7: .line 4357
            aload 2 /* valueTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 10
      StackMap locals: java.lang.invoke.MethodHandle int java.util.List java.lang.invoke.MethodType int java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int top java.util.Iterator
      StackMap stack:
         8: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 9 /* ptype */
        start local 9 // java.lang.Class ptype
         9: .line 4358
            aload 7 /* lform */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iload 8 /* insertFormArg */
            iinc 8 /* insertFormArg */ 1
            aload 9 /* ptype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.addArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 7 /* lform */
        end local 9 // java.lang.Class ptype
        10: .line 4357
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 4360
            aload 6 /* result */
            aload 5 /* newType */
            aload 7 /* lform */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        12: .line 4361
            aload 6 /* result */
            areturn
        end local 8 // int insertFormArg
        end local 7 // java.lang.invoke.LambdaForm lform
        end local 6 // java.lang.invoke.BoundMethodHandle result
        end local 5 // java.lang.invoke.MethodType newType
        end local 4 // int dropped
        end local 3 // java.lang.invoke.MethodType oldType
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0         target  Ljava/lang/invoke/MethodHandle;
            0   13     1            pos  I
            0   13     2     valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            1   13     3        oldType  Ljava/lang/invoke/MethodType;
            2   13     4        dropped  I
            3   13     5        newType  Ljava/lang/invoke/MethodType;
            5   13     6         result  Ljava/lang/invoke/BoundMethodHandle;
            6   13     7          lform  Ljava/lang/invoke/LambdaForm;
            7   13     8  insertFormArg  I
            9   10     9          ptype  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      target      
      pos         
      valueTypes  

  private static int dropArgumentChecks(java.lang.invoke.MethodType, int, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/invoke/MethodType;ILjava/util/List;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodType oldType
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 4365
            aload 2 /* valueTypes */
            invokeinterface java.util.List.size:()I
            istore 3 /* dropped */
        start local 3 // int dropped
         1: .line 4366
            iload 3 /* dropped */
            invokestatic java.lang.invoke.MethodType.checkSlotCount:(I)V
         2: .line 4367
            aload 0 /* oldType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* outargs */
        start local 4 // int outargs
         3: .line 4368
            iload 4 /* outargs */
            iload 3 /* dropped */
            iadd
            istore 5 /* inargs */
        start local 5 // int inargs
         4: .line 4369
            iload 1 /* pos */
            iflt 5
            iload 1 /* pos */
            iload 4 /* outargs */
            if_icmple 8
         5: .line 4370
      StackMap locals: int int int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "no argument type to remove"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 4371
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* oldType */
            aastore
            dup
            iconst_1
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* valueTypes */
            aastore
            dup
            iconst_3
            iload 5 /* inargs */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            iload 4 /* outargs */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 4370
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         8: .line 4373
      StackMap locals:
      StackMap stack:
            iload 3 /* dropped */
            ireturn
        end local 5 // int inargs
        end local 4 // int outargs
        end local 3 // int dropped
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodType oldType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0     oldType  Ljava/lang/invoke/MethodType;
            0    9     1         pos  I
            0    9     2  valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            1    9     3     dropped  I
            3    9     4     outargs  I
            4    9     5      inargs  I
    Signature: (Ljava/lang/invoke/MethodType;ILjava/util/List<Ljava/lang/Class<*>;>;)I
    MethodParameters:
            Name  Flags
      oldType     
      pos         
      valueTypes  

  public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.Class[] valueTypes
         0: .line 4423
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.Class[] valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      target  Ljava/lang/invoke/MethodHandle;
            0    1     1         pos  I
            0    1     2  valueTypes  [Ljava/lang/Class;
    Signature: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      target      
      pos         
      valueTypes  

  private static java.lang.invoke.MethodHandle dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int skip
        start local 2 // java.util.List newTypes
        start local 3 // int pos
        start local 4 // boolean nullOnFailure
         0: .line 4429
            aload 2 /* newTypes */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
            astore 2 /* newTypes */
         1: .line 4430
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 5 /* oldTypes */
        start local 5 // java.util.List oldTypes
         2: .line 4431
            aload 5 /* oldTypes */
            invokeinterface java.util.List.size:()I
            istore 6 /* match */
        start local 6 // int match
         3: .line 4432
            iload 1 /* skip */
            ifeq 8
         4: .line 4433
            iload 1 /* skip */
            iflt 5
            iload 1 /* skip */
            iload 6 /* match */
            if_icmple 6
         5: .line 4434
      StackMap locals: java.util.List int
      StackMap stack:
            ldc "illegal skip"
            iload 1 /* skip */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* target */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 4436
      StackMap locals:
      StackMap stack:
            aload 5 /* oldTypes */
            iload 1 /* skip */
            iload 6 /* match */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 5 /* oldTypes */
         7: .line 4437
            iload 6 /* match */
            iload 1 /* skip */
            isub
            istore 6 /* match */
         8: .line 4439
      StackMap locals:
      StackMap stack:
            aload 2 /* newTypes */
            astore 7 /* addTypes */
        start local 7 // java.util.List addTypes
         9: .line 4440
            aload 7 /* addTypes */
            invokeinterface java.util.List.size:()I
            istore 8 /* add */
        start local 8 // int add
        10: .line 4441
            iload 3 /* pos */
            ifeq 16
        11: .line 4442
            iload 3 /* pos */
            iflt 12
            iload 3 /* pos */
            iload 8 /* add */
            if_icmple 13
        12: .line 4443
      StackMap locals: java.util.List int
      StackMap stack:
            ldc "illegal pos"
            iload 3 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* newTypes */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        13: .line 4445
      StackMap locals:
      StackMap stack:
            aload 7 /* addTypes */
            iload 3 /* pos */
            iload 8 /* add */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* addTypes */
        14: .line 4446
            iload 8 /* add */
            iload 3 /* pos */
            isub
            istore 8 /* add */
        15: .line 4447
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 16
            aload 7 /* addTypes */
            invokeinterface java.util.List.size:()I
            iload 8 /* add */
            if_icmpeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 4450
      StackMap locals:
      StackMap stack:
            iload 6 /* match */
            iload 8 /* add */
            if_icmpgt 17
            aload 5 /* oldTypes */
            aload 7 /* addTypes */
            iconst_0
            iload 6 /* match */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 20
        17: .line 4451
      StackMap locals:
      StackMap stack:
            iload 4 /* nullOnFailure */
            ifeq 19
        18: .line 4452
            aconst_null
            areturn
        19: .line 4454
      StackMap locals:
      StackMap stack:
            ldc "argument lists do not match"
            aload 5 /* oldTypes */
            aload 2 /* newTypes */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        20: .line 4456
      StackMap locals:
      StackMap stack:
            aload 7 /* addTypes */
            iload 6 /* match */
            iload 8 /* add */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* addTypes */
        21: .line 4457
            iload 8 /* add */
            iload 6 /* match */
            isub
            istore 8 /* add */
        22: .line 4458
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 23
            aload 7 /* addTypes */
            invokeinterface java.util.List.size:()I
            iload 8 /* add */
            if_icmpeq 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 4461
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            astore 9 /* adapter */
        start local 9 // java.lang.invoke.MethodHandle adapter
        24: .line 4462
            iload 8 /* add */
            ifle 26
        25: .line 4463
            aload 9 /* adapter */
            iload 1 /* skip */
            iload 6 /* match */
            iadd
            aload 7 /* addTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* adapter */
        26: .line 4466
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            iload 3 /* pos */
            ifle 28
        27: .line 4467
            aload 9 /* adapter */
            iload 1 /* skip */
            aload 2 /* newTypes */
            iconst_0
            iload 3 /* pos */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* adapter */
        28: .line 4470
      StackMap locals:
      StackMap stack:
            aload 9 /* adapter */
            areturn
        end local 9 // java.lang.invoke.MethodHandle adapter
        end local 8 // int add
        end local 7 // java.util.List addTypes
        end local 6 // int match
        end local 5 // java.util.List oldTypes
        end local 4 // boolean nullOnFailure
        end local 3 // int pos
        end local 2 // java.util.List newTypes
        end local 1 // int skip
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0         target  Ljava/lang/invoke/MethodHandle;
            0   29     1           skip  I
            0   29     2       newTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            0   29     3            pos  I
            0   29     4  nullOnFailure  Z
            2   29     5       oldTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            3   29     6          match  I
            9   29     7       addTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
           10   29     8            add  I
           24   29     9        adapter  Ljava/lang/invoke/MethodHandle;
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;IZ)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      target         
      skip           
      newTypes       
      pos            
      nullOnFailure  

  public static java.lang.invoke.MethodHandle dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int skip
        start local 2 // java.util.List newTypes
        start local 3 // int pos
         0: .line 4529
            aload 0 /* target */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4530
            aload 2 /* newTypes */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 4531
            aload 0 /* target */
            iload 1 /* skip */
            aload 2 /* newTypes */
            iload 3 /* pos */
            iconst_0
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // int pos
        end local 2 // java.util.List newTypes
        end local 1 // int skip
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0    target  Ljava/lang/invoke/MethodHandle;
            0    3     1      skip  I
            0    3     2  newTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    3     3       pos  I
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;I)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
          Name  Flags
      target    
      skip      
      newTypes  
      pos       

  public static java.lang.invoke.MethodHandle filterArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle[] filters
         0: .line 4615
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* filters */
            invokestatic java.lang.invoke.MethodHandles.filterArgumentsCheckArity:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
         1: .line 4616
            aload 0 /* target */
            astore 3 /* adapter */
        start local 3 // java.lang.invoke.MethodHandle adapter
         2: .line 4619
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         3: .line 4620
            aload 2 /* filters */
            arraylength
            newarray 10
            astore 5 /* positions */
        start local 5 // int[] positions
         4: .line 4621
            aconst_null
            astore 6 /* filter */
        start local 6 // java.lang.invoke.MethodHandle filter
         5: .line 4625
            aload 2 /* filters */
            arraylength
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         6: goto 20
         7: .line 4626
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle[] java.lang.invoke.MethodHandle int int[] java.lang.invoke.MethodHandle int
      StackMap stack:
            aload 2 /* filters */
            iload 7 /* i */
            aaload
            astore 8 /* newFilter */
        start local 8 // java.lang.invoke.MethodHandle newFilter
         8: .line 4627
            aload 8 /* newFilter */
            ifnonnull 9
            goto 19
         9: .line 4630
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 6 /* filter */
            aload 8 /* newFilter */
            if_acmpeq 17
        10: .line 4631
            aload 6 /* filter */
            ifnull 15
        11: .line 4632
            iload 4 /* index */
            iconst_1
            if_icmple 14
        12: .line 4633
            aload 3 /* adapter */
            aload 6 /* filter */
            aload 5 /* positions */
            iload 4 /* index */
            invokestatic java.util.Arrays.copyOf:([II)[I
            invokestatic java.lang.invoke.MethodHandles.filterRepeatedArgument:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        13: .line 4634
            goto 15
        14: .line 4635
      StackMap locals:
      StackMap stack:
            aload 3 /* adapter */
            aload 5 /* positions */
            iconst_0
            iaload
            iconst_1
            isub
            aload 6 /* filter */
            invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        15: .line 4638
      StackMap locals:
      StackMap stack:
            aload 8 /* newFilter */
            astore 6 /* filter */
        16: .line 4639
            iconst_0
            istore 4 /* index */
        17: .line 4642
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            iload 1 /* pos */
            iload 7 /* i */
            iadd
            aload 8 /* newFilter */
            invokestatic java.lang.invoke.MethodHandles.filterArgumentChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
        18: .line 4643
            aload 5 /* positions */
            iload 4 /* index */
            iinc 4 /* index */ 1
            iload 1 /* pos */
            iload 7 /* i */
            iadd
            iconst_1
            iadd
            iastore
        end local 8 // java.lang.invoke.MethodHandle newFilter
        19: .line 4625
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            ifge 7
        end local 7 // int i
        21: .line 4645
            iload 4 /* index */
            iconst_1
            if_icmple 24
        22: .line 4646
            aload 3 /* adapter */
            aload 6 /* filter */
            aload 5 /* positions */
            iload 4 /* index */
            invokestatic java.util.Arrays.copyOf:([II)[I
            invokestatic java.lang.invoke.MethodHandles.filterRepeatedArgument:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        23: .line 4647
            goto 26
      StackMap locals:
      StackMap stack:
        24: iload 4 /* index */
            iconst_1
            if_icmpne 26
        25: .line 4648
            aload 3 /* adapter */
            aload 5 /* positions */
            iconst_0
            iaload
            iconst_1
            isub
            aload 6 /* filter */
            invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        26: .line 4650
      StackMap locals:
      StackMap stack:
            aload 3 /* adapter */
            areturn
        end local 6 // java.lang.invoke.MethodHandle filter
        end local 5 // int[] positions
        end local 4 // int index
        end local 3 // java.lang.invoke.MethodHandle adapter
        end local 2 // java.lang.invoke.MethodHandle[] filters
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0     target  Ljava/lang/invoke/MethodHandle;
            0   27     1        pos  I
            0   27     2    filters  [Ljava/lang/invoke/MethodHandle;
            2   27     3    adapter  Ljava/lang/invoke/MethodHandle;
            3   27     4      index  I
            4   27     5  positions  [I
            5   27     6     filter  Ljava/lang/invoke/MethodHandle;
            6   21     7          i  I
            8   19     8  newFilter  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      target   
      pos      
      filters  

  private static java.lang.invoke.MethodHandle filterRepeatedArgument(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // java.lang.invoke.MethodHandle adapter
        start local 1 // java.lang.invoke.MethodHandle filter
        start local 2 // int[] positions
         0: .line 4654
            aload 0 /* adapter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 4655
            aload 1 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         2: .line 4656
            aload 0 /* adapter */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         3: .line 4657
            aload 4 /* filterType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 6 /* newParamType */
        start local 6 // java.lang.Class newParamType
         4: .line 4659
            aload 3 /* targetType */
            invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
            invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 7 /* ptypes */
        start local 7 // java.lang.Class[] ptypes
         5: .line 4660
            aload 2 /* positions */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 9
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int[] java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.Class java.lang.Class[] top int int int[]
      StackMap stack:
         6: aload 11
            iload 9
            iaload
            istore 8 /* pos */
        start local 8 // int pos
         7: .line 4661
            aload 7 /* ptypes */
            iload 8 /* pos */
            iconst_1
            isub
            aload 6 /* newParamType */
            aastore
        end local 8 // int pos
         8: .line 4660
            iinc 9 1
      StackMap locals:
      StackMap stack:
         9: iload 9
            iload 10
            if_icmplt 6
        10: .line 4663
            aload 3 /* targetType */
            invokevirtual java.lang.invoke.MethodType.rtype:()Ljava/lang/Class;
            aload 7 /* ptypes */
            iconst_1
            invokestatic java.lang.invoke.MethodType.makeImpl:(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
            astore 8 /* newType */
        start local 8 // java.lang.invoke.MethodType newType
        11: .line 4665
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 6 /* newParamType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            aload 2 /* positions */
            invokevirtual java.lang.invoke.LambdaFormEditor.filterRepeatedArgumentForm:(Ljava/lang/invoke/LambdaForm$BasicType;[I)Ljava/lang/invoke/LambdaForm;
            astore 9 /* lform */
        start local 9 // java.lang.invoke.LambdaForm lform
        12: .line 4666
            aload 5 /* result */
            aload 8 /* newType */
            aload 9 /* lform */
            aload 1 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 9 // java.lang.invoke.LambdaForm lform
        end local 8 // java.lang.invoke.MethodType newType
        end local 7 // java.lang.Class[] ptypes
        end local 6 // java.lang.Class newParamType
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // int[] positions
        end local 1 // java.lang.invoke.MethodHandle filter
        end local 0 // java.lang.invoke.MethodHandle adapter
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0       adapter  Ljava/lang/invoke/MethodHandle;
            0   13     1        filter  Ljava/lang/invoke/MethodHandle;
            0   13     2     positions  [I
            1   13     3    targetType  Ljava/lang/invoke/MethodType;
            2   13     4    filterType  Ljava/lang/invoke/MethodType;
            3   13     5        result  Ljava/lang/invoke/BoundMethodHandle;
            4   13     6  newParamType  Ljava/lang/Class<*>;
            5   13     7        ptypes  [Ljava/lang/Class;
            7    8     8           pos  I
           11   13     8       newType  Ljava/lang/invoke/MethodType;
           12   13     9         lform  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
           Name  Flags
      adapter    
      filter     
      positions  

  static java.lang.invoke.MethodHandle filterArgument(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 4671
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* filter */
            invokestatic java.lang.invoke.MethodHandles.filterArgumentChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
         1: .line 4672
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         2: .line 4673
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         3: .line 4674
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         4: .line 4675
            aload 4 /* filterType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 6 /* newParamType */
        start local 6 // java.lang.Class newParamType
         5: .line 4676
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            aload 6 /* newParamType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 7 /* lform */
        start local 7 // java.lang.invoke.LambdaForm lform
         6: .line 4677
            aload 3 /* targetType */
            iload 1 /* pos */
            aload 6 /* newParamType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 8 /* newType */
        start local 8 // java.lang.invoke.MethodType newType
         7: .line 4678
            aload 5 /* result */
            aload 8 /* newType */
            aload 7 /* lform */
            aload 2 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
         8: .line 4679
            aload 5 /* result */
            areturn
        end local 8 // java.lang.invoke.MethodType newType
        end local 7 // java.lang.invoke.LambdaForm lform
        end local 6 // java.lang.Class newParamType
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0        target  Ljava/lang/invoke/MethodHandle;
            0    9     1           pos  I
            0    9     2        filter  Ljava/lang/invoke/MethodHandle;
            2    9     3    targetType  Ljava/lang/invoke/MethodType;
            3    9     4    filterType  Ljava/lang/invoke/MethodType;
            4    9     5        result  Ljava/lang/invoke/BoundMethodHandle;
            5    9     6  newParamType  Ljava/lang/Class<*>;
            6    9     7         lform  Ljava/lang/invoke/LambdaForm;
            7    9     8       newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  private static void filterArgumentsCheckArity(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle[] filters
         0: .line 4683
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 4684
            aload 3 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* maxPos */
        start local 4 // int maxPos
         2: .line 4685
            iload 1 /* pos */
            aload 2 /* filters */
            arraylength
            iadd
            iload 4 /* maxPos */
            if_icmple 4
         3: .line 4686
            ldc "too many filters"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         4: .line 4687
      StackMap locals: java.lang.invoke.MethodType int
      StackMap stack:
            return
        end local 4 // int maxPos
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle[] filters
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      target  Ljava/lang/invoke/MethodHandle;
            0    5     1         pos  I
            0    5     2     filters  [Ljava/lang/invoke/MethodHandle;
            1    5     3  targetType  Ljava/lang/invoke/MethodType;
            2    5     4      maxPos  I
    MethodParameters:
         Name  Flags
      target   
      pos      
      filters  

  private static void filterArgumentChecks(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 4690
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 4691
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         2: .line 4692
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmpne 4
         3: .line 4693
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 3 /* targetType */
            iload 1 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 5
         4: .line 4694
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
      StackMap stack:
            ldc "target and filter types do not match"
            aload 3 /* targetType */
            aload 4 /* filterType */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         5: .line 4695
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0      target  Ljava/lang/invoke/MethodHandle;
            0    6     1         pos  I
            0    6     2      filter  Ljava/lang/invoke/MethodHandle;
            1    6     3  targetType  Ljava/lang/invoke/MethodType;
            2    6     4  filterType  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  public static java.lang.invoke.MethodHandle collectArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 4817
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* filter */
            invokestatic java.lang.invoke.MethodHandles.collectArgumentsChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            astore 3 /* newType */
        start local 3 // java.lang.invoke.MethodType newType
         1: .line 4818
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* collectorType */
        start local 4 // java.lang.invoke.MethodType collectorType
         2: .line 4819
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         3: .line 4821
            aload 4 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 7
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.intrinsicName:()Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.NEW_ARRAY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            if_acmpne 7
         4: .line 4822
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            aload 2 /* filter */
            invokevirtual java.lang.invoke.LambdaFormEditor.collectArgumentArrayForm:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/LambdaForm;
            astore 6 /* lform */
        start local 6 // java.lang.invoke.LambdaForm lform
         5: .line 4823
            aload 6 /* lform */
            ifnull 7
         6: .line 4824
            aload 5 /* result */
            aload 3 /* newType */
            aload 6 /* lform */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 6 // java.lang.invoke.LambdaForm lform
         7: .line 4827
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle
      StackMap stack:
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            aload 4 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.LambdaFormEditor.collectArgumentsForm:(ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 6 /* lform */
        start local 6 // java.lang.invoke.LambdaForm lform
         8: .line 4828
            aload 5 /* result */
            aload 3 /* newType */
            aload 6 /* lform */
            aload 2 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 6 // java.lang.invoke.LambdaForm lform
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.invoke.MethodType collectorType
        end local 3 // java.lang.invoke.MethodType newType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0         target  Ljava/lang/invoke/MethodHandle;
            0    9     1            pos  I
            0    9     2         filter  Ljava/lang/invoke/MethodHandle;
            1    9     3        newType  Ljava/lang/invoke/MethodType;
            2    9     4  collectorType  Ljava/lang/invoke/MethodType;
            3    9     5         result  Ljava/lang/invoke/BoundMethodHandle;
            5    7     6          lform  Ljava/lang/invoke/LambdaForm;
            8    9     6          lform  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  private static java.lang.invoke.MethodType collectArgumentsChecks(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 4832
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 4833
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         2: .line 4834
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 5 /* rtype */
        start local 5 // java.lang.Class rtype
         3: .line 4835
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 6 /* filterArgs */
        start local 6 // java.util.List filterArgs
         4: .line 4836
            aload 5 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 6
         5: .line 4837
            aload 3 /* targetType */
            iload 1 /* pos */
            aload 6 /* filterArgs */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            areturn
         6: .line 4839
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.util.List
      StackMap stack:
            aload 5 /* rtype */
            aload 3 /* targetType */
            iload 1 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 8
         7: .line 4840
            ldc "target and filter types do not match"
            aload 3 /* targetType */
            aload 4 /* filterType */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         8: .line 4842
      StackMap locals:
      StackMap stack:
            aload 3 /* targetType */
            iload 1 /* pos */
            iload 1 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            iload 1 /* pos */
            aload 6 /* filterArgs */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            areturn
        end local 6 // java.util.List filterArgs
        end local 5 // java.lang.Class rtype
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0      target  Ljava/lang/invoke/MethodHandle;
            0    9     1         pos  I
            0    9     2      filter  Ljava/lang/invoke/MethodHandle;
            1    9     3  targetType  Ljava/lang/invoke/MethodType;
            2    9     4  filterType  Ljava/lang/invoke/MethodType;
            3    9     5       rtype  Ljava/lang/Class<*>;
            4    9     6  filterArgs  Ljava/util/List<Ljava/lang/Class<*>;>;
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle filter
         0: .line 4910
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* targetType */
        start local 2 // java.lang.invoke.MethodType targetType
         1: .line 4911
            aload 1 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* filterType */
        start local 3 // java.lang.invoke.MethodType filterType
         2: .line 4912
            aload 2 /* targetType */
            aload 3 /* filterType */
            invokestatic java.lang.invoke.MethodHandles.filterReturnValueChecks:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
         3: .line 4913
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
        start local 4 // java.lang.invoke.BoundMethodHandle result
         4: .line 4914
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            astore 5 /* rtype */
        start local 5 // java.lang.invoke.LambdaForm$BasicType rtype
         5: .line 4915
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 5 /* rtype */
            iconst_0
            invokevirtual java.lang.invoke.LambdaFormEditor.filterReturnForm:(Ljava/lang/invoke/LambdaForm$BasicType;Z)Ljava/lang/invoke/LambdaForm;
            astore 6 /* lform */
        start local 6 // java.lang.invoke.LambdaForm lform
         6: .line 4916
            aload 2 /* targetType */
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* newType */
        start local 7 // java.lang.invoke.MethodType newType
         7: .line 4917
            aload 4 /* result */
            aload 7 /* newType */
            aload 6 /* lform */
            aload 1 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
         8: .line 4918
            aload 4 /* result */
            areturn
        end local 7 // java.lang.invoke.MethodType newType
        end local 6 // java.lang.invoke.LambdaForm lform
        end local 5 // java.lang.invoke.LambdaForm$BasicType rtype
        end local 4 // java.lang.invoke.BoundMethodHandle result
        end local 3 // java.lang.invoke.MethodType filterType
        end local 2 // java.lang.invoke.MethodType targetType
        end local 1 // java.lang.invoke.MethodHandle filter
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0      target  Ljava/lang/invoke/MethodHandle;
            0    9     1      filter  Ljava/lang/invoke/MethodHandle;
            1    9     2  targetType  Ljava/lang/invoke/MethodType;
            2    9     3  filterType  Ljava/lang/invoke/MethodType;
            4    9     4      result  Ljava/lang/invoke/BoundMethodHandle;
            5    9     5       rtype  Ljava/lang/invoke/LambdaForm$BasicType;
            6    9     6       lform  Ljava/lang/invoke/LambdaForm;
            7    9     7     newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
        Name  Flags
      target  
      filter  

  private static void filterReturnValueChecks(java.lang.invoke.MethodType, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodType targetType
        start local 1 // java.lang.invoke.MethodType filterType
         0: .line 4922
            aload 0 /* targetType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 2 /* rtype */
        start local 2 // java.lang.Class rtype
         1: .line 4923
            aload 1 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* filterValues */
        start local 3 // int filterValues
         2: .line 4924
            iload 3 /* filterValues */
            ifne 4
         3: .line 4925
            aload 2 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 6
            goto 5
         4: .line 4926
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 2 /* rtype */
            aload 1 /* filterType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpne 5
            iload 3 /* filterValues */
            iconst_1
            if_icmpeq 6
         5: .line 4927
      StackMap locals:
      StackMap stack:
            ldc "target and filter types do not match"
            aload 0 /* targetType */
            aload 1 /* filterType */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 4928
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int filterValues
        end local 2 // java.lang.Class rtype
        end local 1 // java.lang.invoke.MethodType filterType
        end local 0 // java.lang.invoke.MethodType targetType
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0    targetType  Ljava/lang/invoke/MethodType;
            0    7     1    filterType  Ljava/lang/invoke/MethodType;
            1    7     2         rtype  Ljava/lang/Class<*>;
            2    7     3  filterValues  I
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
            Name  Flags
      targetType  
      filterType  

  public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle combiner
         0: .line 5018
            aload 0 /* target */
            iconst_0
            aload 1 /* combiner */
            invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodHandle combiner
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0    target  Ljava/lang/invoke/MethodHandle;
            0    1     1  combiner  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
          Name  Flags
      target    
      combiner  

  public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle combiner
         0: .line 5092
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 5093
            aload 2 /* combiner */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* combinerType */
        start local 4 // java.lang.invoke.MethodType combinerType
         2: .line 5094
            iload 1 /* pos */
            aload 3 /* targetType */
            aload 4 /* combinerType */
            invokestatic java.lang.invoke.MethodHandles.foldArgumentChecks:(ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            astore 5 /* rtype */
        start local 5 // java.lang.Class rtype
         3: .line 5095
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        start local 6 // java.lang.invoke.BoundMethodHandle result
         4: .line 5096
            aload 5 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 5
            iconst_1
            goto 6
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.lang.invoke.BoundMethodHandle
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* dropResult */
        start local 7 // boolean dropResult
         7: .line 5097
            aload 6 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            iload 7 /* dropResult */
            aload 4 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.LambdaFormEditor.foldArgumentsForm:(IZLjava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 8 /* lform */
        start local 8 // java.lang.invoke.LambdaForm lform
         8: .line 5098
            aload 3 /* targetType */
            astore 9 /* newType */
        start local 9 // java.lang.invoke.MethodType newType
         9: .line 5099
            iload 7 /* dropResult */
            ifne 11
        10: .line 5100
            aload 9 /* newType */
            iload 1 /* pos */
            iload 1 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 9 /* newType */
        11: .line 5102
      StackMap locals: int java.lang.invoke.LambdaForm java.lang.invoke.MethodType
      StackMap stack:
            aload 6 /* result */
            aload 9 /* newType */
            aload 8 /* lform */
            aload 2 /* combiner */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        12: .line 5103
            aload 6 /* result */
            areturn
        end local 9 // java.lang.invoke.MethodType newType
        end local 8 // java.lang.invoke.LambdaForm lform
        end local 7 // boolean dropResult
        end local 6 // java.lang.invoke.BoundMethodHandle result
        end local 5 // java.lang.Class rtype
        end local 4 // java.lang.invoke.MethodType combinerType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle combiner
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0        target  Ljava/lang/invoke/MethodHandle;
            0   13     1           pos  I
            0   13     2      combiner  Ljava/lang/invoke/MethodHandle;
            1   13     3    targetType  Ljava/lang/invoke/MethodType;
            2   13     4  combinerType  Ljava/lang/invoke/MethodType;
            3   13     5         rtype  Ljava/lang/Class<*>;
            4   13     6        result  Ljava/lang/invoke/BoundMethodHandle;
            7   13     7    dropResult  Z
            8   13     8         lform  Ljava/lang/invoke/LambdaForm;
            9   13     9       newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
          Name  Flags
      target    
      pos       
      combiner  

  private static java.lang.Class<?> foldArgumentChecks(int, java.lang.invoke.MethodType, java.lang.invoke.MethodType);
    descriptor: (ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // int foldPos
        start local 1 // java.lang.invoke.MethodType targetType
        start local 2 // java.lang.invoke.MethodType combinerType
         0: .line 5107
            aload 2 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* foldArgs */
        start local 3 // int foldArgs
         1: .line 5108
            aload 2 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* rtype */
        start local 4 // java.lang.Class rtype
         2: .line 5109
            aload 4 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 3
            iconst_0
            goto 4
      StackMap locals: int java.lang.Class
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* foldVals */
        start local 5 // int foldVals
         5: .line 5110
            iload 0 /* foldPos */
            iload 5 /* foldVals */
            iadd
            istore 6 /* afterInsertPos */
        start local 6 // int afterInsertPos
         6: .line 5111
            aload 1 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iload 6 /* afterInsertPos */
            iload 3 /* foldArgs */
            iadd
            if_icmplt 7
            iconst_1
            goto 8
      StackMap locals: int int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 7 /* ok */
        start local 7 // boolean ok
         9: .line 5112
            iload 7 /* ok */
            ifeq 17
        10: .line 5113
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        11: goto 16
        12: .line 5114
      StackMap locals: int int
      StackMap stack:
            aload 2 /* combinerType */
            iload 8 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 1 /* targetType */
            iload 8 /* i */
            iload 6 /* afterInsertPos */
            iadd
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 15
        13: .line 5115
            iconst_0
            istore 7 /* ok */
        14: .line 5116
            goto 17
        15: .line 5113
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* i */
            iload 3 /* foldArgs */
            if_icmplt 12
        end local 8 // int i
        17: .line 5120
      StackMap locals:
      StackMap stack:
            iload 7 /* ok */
            ifeq 19
            iload 5 /* foldVals */
            ifeq 19
            aload 2 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 1 /* targetType */
            iload 0 /* foldPos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 19
        18: .line 5121
            iconst_0
            istore 7 /* ok */
        19: .line 5122
      StackMap locals:
      StackMap stack:
            iload 7 /* ok */
            ifne 21
        20: .line 5123
            ldc "target and combiner types"
            aload 1 /* targetType */
            aload 2 /* combinerType */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        21: .line 5124
      StackMap locals:
      StackMap stack:
            aload 4 /* rtype */
            areturn
        end local 7 // boolean ok
        end local 6 // int afterInsertPos
        end local 5 // int foldVals
        end local 4 // java.lang.Class rtype
        end local 3 // int foldArgs
        end local 2 // java.lang.invoke.MethodType combinerType
        end local 1 // java.lang.invoke.MethodType targetType
        end local 0 // int foldPos
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0         foldPos  I
            0   22     1      targetType  Ljava/lang/invoke/MethodType;
            0   22     2    combinerType  Ljava/lang/invoke/MethodType;
            1   22     3        foldArgs  I
            2   22     4           rtype  Ljava/lang/Class<*>;
            5   22     5        foldVals  I
            6   22     6  afterInsertPos  I
            9   22     7              ok  Z
           11   17     8               i  I
    Signature: (ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class<*>;
    MethodParameters:
              Name  Flags
      foldPos       
      targetType    
      combinerType  

  static java.lang.invoke.MethodHandle filterArgumentsWithCombiner(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int position
        start local 2 // java.lang.invoke.MethodHandle combiner
        start local 3 // int[] argPositions
         0: .line 5146
            iconst_1
            aload 0 /* target */
            iload 1 /* position */
            aload 2 /* combiner */
            aload 3 /* argPositions */
            invokestatic java.lang.invoke.MethodHandles.argumentsWithCombiner:(ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // int[] argPositions
        end local 2 // java.lang.invoke.MethodHandle combiner
        end local 1 // int position
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        target  Ljava/lang/invoke/MethodHandle;
            0    1     1      position  I
            0    1     2      combiner  Ljava/lang/invoke/MethodHandle;
            0    1     3  argPositions  [I
    MethodParameters:
              Name  Flags
      target        
      position      
      combiner      
      argPositions  

  static java.lang.invoke.MethodHandle foldArgumentsWithCombiner(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int position
        start local 2 // java.lang.invoke.MethodHandle combiner
        start local 3 // int[] argPositions
         0: .line 5169
            iconst_0
            aload 0 /* target */
            iload 1 /* position */
            aload 2 /* combiner */
            aload 3 /* argPositions */
            invokestatic java.lang.invoke.MethodHandles.argumentsWithCombiner:(ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // int[] argPositions
        end local 2 // java.lang.invoke.MethodHandle combiner
        end local 1 // int position
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        target  Ljava/lang/invoke/MethodHandle;
            0    1     1      position  I
            0    1     2      combiner  Ljava/lang/invoke/MethodHandle;
            0    1     3  argPositions  [I
    MethodParameters:
              Name  Flags
      target        
      position      
      combiner      
      argPositions  

  private static java.lang.invoke.MethodHandle argumentsWithCombiner(boolean, java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
    descriptor: (ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // boolean filter
        start local 1 // java.lang.invoke.MethodHandle target
        start local 2 // int position
        start local 3 // java.lang.invoke.MethodHandle combiner
        start local 4 // int[] argPositions
         0: .line 5173
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* targetType */
        start local 5 // java.lang.invoke.MethodType targetType
         1: .line 5174
            aload 3 /* combiner */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 6 /* combinerType */
        start local 6 // java.lang.invoke.MethodType combinerType
         2: .line 5175
            iload 2 /* position */
            iload 0 /* filter */
            aload 5 /* targetType */
            aload 6 /* combinerType */
            aload 4 /* argPositions */
            invokestatic java.lang.invoke.MethodHandles.argumentsWithCombinerChecks:(IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class;
            astore 7 /* rtype */
        start local 7 // java.lang.Class rtype
         3: .line 5176
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* result */
        start local 8 // java.lang.invoke.BoundMethodHandle result
         4: .line 5178
            aload 5 /* targetType */
            astore 9 /* newType */
        start local 9 // java.lang.invoke.MethodType newType
         5: .line 5180
            iload 0 /* filter */
            ifeq 8
         6: .line 5181
            aload 8 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 2 /* position */
            iadd
            aload 6 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            aload 4 /* argPositions */
            invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentsForm:(ILjava/lang/invoke/MethodType;[I)Ljava/lang/invoke/LambdaForm;
            astore 10 /* lform */
        start local 10 // java.lang.invoke.LambdaForm lform
         7: .line 5182
            goto 14
        end local 10 // java.lang.invoke.LambdaForm lform
         8: .line 5183
      StackMap locals: int java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle int[] java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.lang.invoke.BoundMethodHandle java.lang.invoke.MethodType
      StackMap stack:
            aload 7 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 11 /* dropResult */
        start local 11 // boolean dropResult
        11: .line 5184
            aload 8 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 2 /* position */
            iadd
            iload 11 /* dropResult */
            aload 6 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            aload 4 /* argPositions */
            invokevirtual java.lang.invoke.LambdaFormEditor.foldArgumentsForm:(IZLjava/lang/invoke/MethodType;[I)Ljava/lang/invoke/LambdaForm;
            astore 10 /* lform */
        start local 10 // java.lang.invoke.LambdaForm lform
        12: .line 5185
            iload 11 /* dropResult */
            ifne 14
        13: .line 5186
            aload 9 /* newType */
            iload 2 /* position */
            iload 2 /* position */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 9 /* newType */
        end local 11 // boolean dropResult
        14: .line 5189
      StackMap locals: java.lang.invoke.LambdaForm
      StackMap stack:
            aload 8 /* result */
            aload 9 /* newType */
            aload 10 /* lform */
            aload 3 /* combiner */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* result */
        15: .line 5190
            aload 8 /* result */
            areturn
        end local 10 // java.lang.invoke.LambdaForm lform
        end local 9 // java.lang.invoke.MethodType newType
        end local 8 // java.lang.invoke.BoundMethodHandle result
        end local 7 // java.lang.Class rtype
        end local 6 // java.lang.invoke.MethodType combinerType
        end local 5 // java.lang.invoke.MethodType targetType
        end local 4 // int[] argPositions
        end local 3 // java.lang.invoke.MethodHandle combiner
        end local 2 // int position
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // boolean filter
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0        filter  Z
            0   16     1        target  Ljava/lang/invoke/MethodHandle;
            0   16     2      position  I
            0   16     3      combiner  Ljava/lang/invoke/MethodHandle;
            0   16     4  argPositions  [I
            1   16     5    targetType  Ljava/lang/invoke/MethodType;
            2   16     6  combinerType  Ljava/lang/invoke/MethodType;
            3   16     7         rtype  Ljava/lang/Class<*>;
            4   16     8        result  Ljava/lang/invoke/BoundMethodHandle;
            5   16     9       newType  Ljava/lang/invoke/MethodType;
            7    8    10         lform  Ljava/lang/invoke/LambdaForm;
           12   16    10         lform  Ljava/lang/invoke/LambdaForm;
           11   14    11    dropResult  Z
    MethodParameters:
              Name  Flags
      filter        
      target        
      position      
      combiner      
      argPositions  

  private static java.lang.Class<?> argumentsWithCombinerChecks(int, boolean, java.lang.invoke.MethodType, java.lang.invoke.MethodType, int[]);
    descriptor: (IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // int position
        start local 1 // boolean filter
        start local 2 // java.lang.invoke.MethodType targetType
        start local 3 // java.lang.invoke.MethodType combinerType
        start local 4 // int[] argPos
         0: .line 5194
            aload 3 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 5 /* combinerArgs */
        start local 5 // int combinerArgs
         1: .line 5195
            aload 4 /* argPos */
            arraylength
            iload 5 /* combinerArgs */
            if_icmpeq 3
         2: .line 5196
            ldc "combiner and argument map must be equal size"
            aload 3 /* combinerType */
            aload 4 /* argPos */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         3: .line 5198
      StackMap locals: int
      StackMap stack:
            aload 3 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 6 /* rtype */
        start local 6 // java.lang.Class rtype
         4: .line 5200
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 15
         6: .line 5201
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 4 /* argPos */
            iload 7 /* i */
            iaload
            istore 8 /* arg */
        start local 8 // int arg
         7: .line 5202
            iload 8 /* arg */
            iflt 8
            iload 8 /* arg */
            aload 2 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmple 9
         8: .line 5203
      StackMap locals: int
      StackMap stack:
            ldc "arg outside of target parameterRange"
            aload 2 /* targetType */
            iload 8 /* arg */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         9: .line 5205
      StackMap locals:
      StackMap stack:
            aload 3 /* combinerType */
            iload 7 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 2 /* targetType */
            iload 8 /* arg */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 14
        10: .line 5206
            new java.lang.StringBuilder
            dup
            ldc "target argument type at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* arg */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        11: .line 5207
            ldc " must match combiner argument type at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* targetType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        12: .line 5208
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* combinerType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", map: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* argPos */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 5206
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // int arg
        14: .line 5200
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            iload 5 /* combinerArgs */
            if_icmplt 6
        end local 7 // int i
        16: .line 5211
            iload 1 /* filter */
            ifeq 18
            aload 3 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* targetType */
            iload 0 /* position */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 18
        17: .line 5212
            ldc "target and combiner types"
            aload 2 /* targetType */
            aload 3 /* combinerType */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        18: .line 5214
      StackMap locals:
      StackMap stack:
            aload 6 /* rtype */
            areturn
        end local 6 // java.lang.Class rtype
        end local 5 // int combinerArgs
        end local 4 // int[] argPos
        end local 3 // java.lang.invoke.MethodType combinerType
        end local 2 // java.lang.invoke.MethodType targetType
        end local 1 // boolean filter
        end local 0 // int position
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0      position  I
            0   19     1        filter  Z
            0   19     2    targetType  Ljava/lang/invoke/MethodType;
            0   19     3  combinerType  Ljava/lang/invoke/MethodType;
            0   19     4        argPos  [I
            1   19     5  combinerArgs  I
            4   19     6         rtype  Ljava/lang/Class<*>;
            5   16     7             i  I
            7   14     8           arg  I
    Signature: (IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class<*>;
    MethodParameters:
              Name  Flags
      position      
      filter        
      targetType    
      combinerType  
      argPos        

  public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // java.lang.invoke.MethodHandle target
        start local 2 // java.lang.invoke.MethodHandle fallback
         0: .line 5258
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* gtype */
        start local 3 // java.lang.invoke.MethodType gtype
         1: .line 5259
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* ttype */
        start local 4 // java.lang.invoke.MethodType ttype
         2: .line 5260
            aload 2 /* fallback */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* ftype */
        start local 5 // java.lang.invoke.MethodType ftype
         3: .line 5261
            aload 4 /* ttype */
            aload 5 /* ftype */
            invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 5262
            ldc "target and fallback types"
            aload 4 /* ttype */
            aload 5 /* ftype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         5: .line 5263
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType
      StackMap stack:
            aload 3 /* gtype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 7
         6: .line 5264
            new java.lang.StringBuilder
            dup
            ldc "guard type is not a predicate "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* gtype */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 5265
      StackMap locals:
      StackMap stack:
            aload 4 /* ttype */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 6 /* targs */
        start local 6 // java.util.List targs
         8: .line 5266
            aload 0 /* test */
            iconst_0
            aload 6 /* targs */
            iconst_0
            iconst_1
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
            astore 0 /* test */
         9: .line 5267
            aload 0 /* test */
            ifnonnull 11
        10: .line 5268
            ldc "target and test types"
            aload 4 /* ttype */
            aload 3 /* gtype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        11: .line 5270
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* test */
            aload 1 /* target */
            aload 2 /* fallback */
            invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 6 // java.util.List targs
        end local 5 // java.lang.invoke.MethodType ftype
        end local 4 // java.lang.invoke.MethodType ttype
        end local 3 // java.lang.invoke.MethodType gtype
        end local 2 // java.lang.invoke.MethodHandle fallback
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      test  Ljava/lang/invoke/MethodHandle;
            0   12     1    target  Ljava/lang/invoke/MethodHandle;
            0   12     2  fallback  Ljava/lang/invoke/MethodHandle;
            1   12     3     gtype  Ljava/lang/invoke/MethodType;
            2   12     4     ttype  Ljava/lang/invoke/MethodType;
            3   12     5     ftype  Ljava/lang/invoke/MethodType;
            8   12     6     targs  Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
          Name  Flags
      test      
      target    
      fallback  

  static <T> java.lang.RuntimeException misMatchedTypes(java.lang.String, T, T);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String what
        start local 1 // java.lang.Object t1
        start local 2 // java.lang.Object t2
         0: .line 5274
            new java.lang.StringBuilder
            dup
            aload 0 /* what */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " must match: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* t1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* t2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            areturn
        end local 2 // java.lang.Object t2
        end local 1 // java.lang.Object t1
        end local 0 // java.lang.String what
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  what  Ljava/lang/String;
            0    1     1    t1  TT;
            0    1     2    t2  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;TT;TT;)Ljava/lang/RuntimeException;
    MethodParameters:
      Name  Flags
      what  
      t1    
      t2    

  public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.Class exType
        start local 2 // java.lang.invoke.MethodHandle handler
         0: .line 5330
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* ttype */
        start local 3 // java.lang.invoke.MethodType ttype
         1: .line 5331
            aload 2 /* handler */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* htype */
        start local 4 // java.lang.invoke.MethodType htype
         2: .line 5332
            ldc Ljava/lang/Throwable;
            aload 1 /* exType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 4
         3: .line 5333
            new java.lang.ClassCastException
            dup
            aload 1 /* exType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 5334
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
      StackMap stack:
            aload 4 /* htype */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 6
         5: .line 5335
            aload 4 /* htype */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 1 /* exType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 7
         6: .line 5336
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "handler does not accept exception type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* exType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 5337
      StackMap locals:
      StackMap stack:
            aload 4 /* htype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 3 /* ttype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 9
         8: .line 5338
            ldc "target and handler return types"
            aload 3 /* ttype */
            aload 4 /* htype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         9: .line 5339
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            iconst_1
            aload 3 /* ttype */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            iconst_0
            iconst_1
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
            astore 2 /* handler */
        10: .line 5340
            aload 2 /* handler */
            ifnonnull 12
        11: .line 5341
            ldc "target and handler types"
            aload 3 /* ttype */
            aload 4 /* htype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        12: .line 5343
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            aload 1 /* exType */
            aload 2 /* handler */
            invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithCatch:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodType htype
        end local 3 // java.lang.invoke.MethodType ttype
        end local 2 // java.lang.invoke.MethodHandle handler
        end local 1 // java.lang.Class exType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0   target  Ljava/lang/invoke/MethodHandle;
            0   13     1   exType  Ljava/lang/Class<+Ljava/lang/Throwable;>;
            0   13     2  handler  Ljava/lang/invoke/MethodHandle;
            1   13     3    ttype  Ljava/lang/invoke/MethodType;
            2   13     4    htype  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<+Ljava/lang/Throwable;>;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      target   
      exType   
      handler  

  public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class returnType
        start local 1 // java.lang.Class exType
         0: .line 5359
            ldc Ljava/lang/Throwable;
            aload 1 /* exType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 5360
            new java.lang.ClassCastException
            dup
            aload 1 /* exType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 5361
      StackMap locals:
      StackMap stack:
            aload 0 /* returnType */
            aload 1 /* exType */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandleImpl.throwException:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.Class exType
        end local 0 // java.lang.Class returnType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  returnType  Ljava/lang/Class<*>;
            0    3     1      exType  Ljava/lang/Class<+Ljava/lang/Throwable;>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<+Ljava/lang/Throwable;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      returnType  
      exType      

  public static java.lang.invoke.MethodHandle loop(java.lang.invoke.MethodHandle[][]);
    descriptor: ([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=16, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[][] clauses
         0: .line 5665
            aload 0 /* clauses */
            invokestatic java.lang.invoke.MethodHandles.loopChecks0:([[Ljava/lang/invoke/MethodHandle;)V
         1: .line 5667
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* init */
        start local 1 // java.util.List init
         2: .line 5668
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* step */
        start local 2 // java.util.List step
         3: .line 5669
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* pred */
        start local 3 // java.util.List pred
         4: .line 5670
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* fini */
        start local 4 // java.util.List fini
         5: .line 5672
            aload 0 /* clauses */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$0([Ljava/lang/invoke/MethodHandle;)Z (6)
                  ([Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 1 /* init */
            aload 2 /* step */
            aload 3 /* pred */
            aload 4 /* fini */
            invokedynamic accept(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/invoke/MethodHandles.lambda$2(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;[Ljava/lang/invoke/MethodHandle;)V (6)
                  ([Ljava/lang/invoke/MethodHandle;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         6: .line 5679
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 7
            iconst_4
            anewarray java.util.List
            dup
            iconst_0
            aload 1 /* init */
            aastore
            dup
            iconst_1
            aload 2 /* step */
            aastore
            dup
            iconst_2
            aload 3 /* pred */
            aastore
            dup
            iconst_3
            aload 4 /* fini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/List.size()I (9 itf)
                  (Ljava/util/List;)Ljava/lang/Integer;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
            lconst_1
            lcmp
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 5680
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List
      StackMap stack:
            aload 1 /* init */
            invokeinterface java.util.List.size:()I
            istore 5 /* nclauses */
        start local 5 // int nclauses
         8: .line 5683
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* iterationVariableTypes */
        start local 6 // java.util.List iterationVariableTypes
         9: .line 5684
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: goto 24
        11: .line 5685
      StackMap locals: int java.util.List int
      StackMap stack:
            aload 1 /* init */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 8 /* in */
        start local 8 // java.lang.invoke.MethodHandle in
        12: .line 5686
            aload 2 /* step */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 9 /* st */
        start local 9 // java.lang.invoke.MethodHandle st
        13: .line 5687
            aload 8 /* in */
            ifnonnull 16
            aload 9 /* st */
            ifnonnull 16
        14: .line 5688
            aload 6 /* iterationVariableTypes */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 5689
            goto 23
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
        16: aload 8 /* in */
            ifnull 20
            aload 9 /* st */
            ifnull 20
        17: .line 5690
            iload 7 /* i */
            aload 8 /* in */
            aload 9 /* st */
            invokestatic java.lang.invoke.MethodHandles.loopChecks1a:(ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
        18: .line 5691
            aload 6 /* iterationVariableTypes */
            aload 8 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 5692
            goto 23
        20: .line 5693
      StackMap locals:
      StackMap stack:
            aload 6 /* iterationVariableTypes */
            aload 8 /* in */
            ifnonnull 21
            aload 9 /* st */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            goto 22
      StackMap locals:
      StackMap stack: java.util.List
        21: aload 8 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack: java.util.List java.lang.Class
        22: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.invoke.MethodHandle st
        end local 8 // java.lang.invoke.MethodHandle in
        23: .line 5684
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            iload 5 /* nclauses */
            if_icmplt 11
        end local 7 // int i
        25: .line 5696
            aload 6 /* iterationVariableTypes */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$4(Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        26: .line 5697
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        27: .line 5696
            astore 7 /* commonPrefix */
        start local 7 // java.util.List commonPrefix
        28: .line 5700
            aload 1 /* init */
            aload 2 /* step */
            aload 3 /* pred */
            aload 4 /* fini */
            aload 7 /* commonPrefix */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.invoke.MethodHandles.buildCommonSuffix:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)Ljava/util/List;
            astore 8 /* commonSuffix */
        start local 8 // java.util.List commonSuffix
        29: .line 5701
            aload 1 /* init */
            aload 8 /* commonSuffix */
            invokestatic java.lang.invoke.MethodHandles.loopChecks1b:(Ljava/util/List;Ljava/util/List;)V
        30: .line 5706
            aload 4 /* fini */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        31: .line 5707
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        32: .line 5706
            astore 9 /* cstream */
        start local 9 // java.util.stream.Stream cstream
        33: .line 5708
            aload 9 /* cstream */
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* loopReturnType */
        start local 10 // java.lang.Class loopReturnType
        34: .line 5709
            aload 3 /* pred */
            aload 4 /* fini */
            aload 10 /* loopReturnType */
            invokestatic java.lang.invoke.MethodHandles.loopChecks1cd:(Ljava/util/List;Ljava/util/List;Ljava/lang/Class;)V
        35: .line 5712
            new java.util.ArrayList
            dup
            aload 7 /* commonPrefix */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 11 /* commonParameterSequence */
        start local 11 // java.util.List commonParameterSequence
        36: .line 5713
            aload 11 /* commonParameterSequence */
            aload 8 /* commonSuffix */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        37: .line 5714
            aload 2 /* step */
            aload 3 /* pred */
            aload 4 /* fini */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.loopChecks2:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
        38: .line 5717
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        39: goto 50
        40: .line 5718
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List java.util.List java.util.List java.util.stream.Stream java.lang.Class java.util.List int
      StackMap stack:
            aload 6 /* iterationVariableTypes */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 13 /* t */
        start local 13 // java.lang.Class t
        41: .line 5719
            aload 1 /* init */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 43
        42: .line 5720
            aload 1 /* init */
            iload 12 /* i */
            aload 13 /* t */
            aload 8 /* commonSuffix */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 5722
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* step */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 45
        44: .line 5723
            aload 2 /* step */
            iload 12 /* i */
            aload 13 /* t */
            invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            aload 11 /* commonParameterSequence */
            iload 12 /* i */
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 5725
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 47
        46: .line 5726
            aload 3 /* pred */
            iload 12 /* i */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic java.lang.invoke.MethodHandles.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        47: .line 5728
      StackMap locals:
      StackMap stack:
            aload 4 /* fini */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 49
        48: .line 5729
            aload 4 /* fini */
            iload 12 /* i */
            aload 13 /* t */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // java.lang.Class t
        49: .line 5717
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        50: iload 12 /* i */
            iload 5 /* nclauses */
            if_icmplt 40
        end local 12 // int i
        51: .line 5735
            aload 1 /* init */
            aload 8 /* commonSuffix */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 12 /* finit */
        start local 12 // java.util.List finit
        52: .line 5736
            aload 2 /* step */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 13 /* fstep */
        start local 13 // java.util.List fstep
        53: .line 5737
            aload 3 /* pred */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 14 /* fpred */
        start local 14 // java.util.List fpred
        54: .line 5738
            aload 4 /* fini */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 15 /* ffini */
        start local 15 // java.util.List ffini
        55: .line 5740
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 57
            aload 12 /* finit */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        56: .line 5741
            aload 8 /* commonSuffix */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$10(Ljava/util/List;Ljava/util/List;)Z (6)
                  (Ljava/util/List;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifne 57
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        57: .line 5742
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List java.util.List java.util.List java.util.stream.Stream java.lang.Class java.util.List java.util.List java.util.List java.util.List java.util.List
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 59
            iconst_3
            anewarray java.util.List
            dup
            iconst_0
            aload 13 /* fstep */
            aastore
            dup
            iconst_1
            aload 14 /* fpred */
            aastore
            dup
            iconst_2
            aload 15 /* ffini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        58: .line 5743
            aload 11 /* commonParameterSequence */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$14(Ljava/util/List;Ljava/util/List;)Z (6)
                  (Ljava/util/List;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifne 59
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        59: .line 5745
      StackMap locals:
      StackMap stack:
            aload 10 /* loopReturnType */
            aload 8 /* commonSuffix */
            aload 12 /* finit */
            aload 13 /* fstep */
            aload 14 /* fpred */
            aload 15 /* ffini */
            invokestatic java.lang.invoke.MethodHandleImpl.makeLoop:(Ljava/lang/Class;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 15 // java.util.List ffini
        end local 14 // java.util.List fpred
        end local 13 // java.util.List fstep
        end local 12 // java.util.List finit
        end local 11 // java.util.List commonParameterSequence
        end local 10 // java.lang.Class loopReturnType
        end local 9 // java.util.stream.Stream cstream
        end local 8 // java.util.List commonSuffix
        end local 7 // java.util.List commonPrefix
        end local 6 // java.util.List iterationVariableTypes
        end local 5 // int nclauses
        end local 4 // java.util.List fini
        end local 3 // java.util.List pred
        end local 2 // java.util.List step
        end local 1 // java.util.List init
        end local 0 // java.lang.invoke.MethodHandle[][] clauses
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   60     0                  clauses  [[Ljava/lang/invoke/MethodHandle;
            2   60     1                     init  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            3   60     2                     step  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            4   60     3                     pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            5   60     4                     fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            8   60     5                 nclauses  I
            9   60     6   iterationVariableTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
           10   25     7                        i  I
           12   23     8                       in  Ljava/lang/invoke/MethodHandle;
           13   23     9                       st  Ljava/lang/invoke/MethodHandle;
           28   60     7             commonPrefix  Ljava/util/List<Ljava/lang/Class<*>;>;
           29   60     8             commonSuffix  Ljava/util/List<Ljava/lang/Class<*>;>;
           33   60     9                  cstream  Ljava/util/stream/Stream<Ljava/lang/Class<*>;>;
           34   60    10           loopReturnType  Ljava/lang/Class<*>;
           36   60    11  commonParameterSequence  Ljava/util/List<Ljava/lang/Class<*>;>;
           39   51    12                        i  I
           41   49    13                        t  Ljava/lang/Class<*>;
           52   60    12                    finit  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
           53   60    13                    fstep  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
           54   60    14                    fpred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
           55   60    15                    ffini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
         Name  Flags
      clauses  

  private static void loopChecks0(java.lang.invoke.MethodHandle[][]);
    descriptor: ([[Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[][] clauses
         0: .line 5749
            aload 0 /* clauses */
            ifnull 1
            aload 0 /* clauses */
            arraylength
            ifne 2
         1: .line 5750
      StackMap locals:
      StackMap stack:
            ldc "null or no clauses passed"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 5752
      StackMap locals:
      StackMap stack:
            aload 0 /* clauses */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.isNull(Ljava/lang/Object;)Z (6)
                  ([Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 4
         3: .line 5753
            ldc "null clauses are not allowed"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         4: .line 5755
      StackMap locals:
      StackMap stack:
            aload 0 /* clauses */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$16([Ljava/lang/invoke/MethodHandle;)Z (6)
                  ([Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 6
         5: .line 5756
            ldc "All loop clauses must be represented as MethodHandle arrays with at most 4 elements."
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         6: .line 5758
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.invoke.MethodHandle[][] clauses
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  clauses  [[Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      clauses  

  private static void loopChecks1a(int, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int i
        start local 1 // java.lang.invoke.MethodHandle in
        start local 2 // java.lang.invoke.MethodHandle st
         0: .line 5761
            aload 1 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* st */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 4
         1: .line 5762
            new java.lang.StringBuilder
            dup
            ldc "clause "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": init and step return types"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
         2: .line 5763
            aload 2 /* st */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
         3: .line 5762
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         4: .line 5765
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.invoke.MethodHandle st
        end local 1 // java.lang.invoke.MethodHandle in
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     i  I
            0    5     1    in  Ljava/lang/invoke/MethodHandle;
            0    5     2    st  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      i     
      in    
      st    

  private static java.util.List<java.lang.Class<?>> longestParameterList(java.util.stream.Stream<java.lang.invoke.MethodHandle>, int);
    descriptor: (Ljava/util/stream/Stream;I)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.util.stream.Stream mhs
        start local 1 // int skipSize
         0: .line 5768
            invokestatic java.util.List.of:()Ljava/util/List;
            astore 2 /* empty */
        start local 2 // java.util.List empty
         1: .line 5769
            aload 0 /* mhs */
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 5771
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 5772
            iload 1 /* skipSize */
            invokedynamic test(I)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$19(ILjava/lang/invoke/MethodType;)Z (6)
                  (Ljava/lang/invoke/MethodType;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 5773
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 5774
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              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;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandles.lambda$21(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (6)
                  (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.reduce:(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
            aload 2 /* empty */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
         6: .line 5769
            astore 3 /* longest */
        start local 3 // java.util.List longest
         7: .line 5775
            aload 3 /* longest */
            invokeinterface java.util.List.size:()I
            ifne 8
            aload 2 /* empty */
            goto 9
      StackMap locals: java.util.List java.util.List
      StackMap stack:
         8: aload 3 /* longest */
            iload 1 /* skipSize */
            aload 3 /* longest */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.List
         9: areturn
        end local 3 // java.util.List longest
        end local 2 // java.util.List empty
        end local 1 // int skipSize
        end local 0 // java.util.stream.Stream mhs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0       mhs  Ljava/util/stream/Stream<Ljava/lang/invoke/MethodHandle;>;
            0   10     1  skipSize  I
            1   10     2     empty  Ljava/util/List<Ljava/lang/Class<*>;>;
            7   10     3   longest  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/invoke/MethodHandle;>;I)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
          Name  Flags
      mhs       
      skipSize  

  private static java.util.List<java.lang.Class<?>> longestParameterList(java.util.List<java.util.List<java.lang.Class<?>>>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.List lists
         0: .line 5779
            invokestatic java.util.List.of:()Ljava/util/List;
            astore 1 /* empty */
        start local 1 // java.util.List empty
         1: .line 5780
            aload 0 /* lists */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              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;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandles.lambda$22(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (6)
                  (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.reduce:(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
            aload 1 /* empty */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 1 // java.util.List empty
        end local 0 // java.util.List lists
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  lists  Ljava/util/List<Ljava/util/List<Ljava/lang/Class<*>;>;>;
            1    2     1  empty  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/util/List<Ljava/lang/Class<*>;>;>;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
       Name  Flags
      lists  

  private static java.util.List<java.lang.Class<?>> buildCommonSuffix(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, int);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.util.List init
        start local 1 // java.util.List step
        start local 2 // java.util.List pred
        start local 3 // java.util.List fini
        start local 4 // int cpSize
         0: .line 5784
            iconst_3
            anewarray java.util.List
            dup
            iconst_0
            aload 1 /* step */
            aastore
            dup
            iconst_1
            aload 2 /* pred */
            aastore
            dup
            iconst_2
            aload 3 /* fini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            iload 4 /* cpSize */
            invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/stream/Stream;I)Ljava/util/List;
            astore 5 /* longest1 */
        start local 5 // java.util.List longest1
         1: .line 5785
            aload 0 /* init */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            iconst_0
            invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/stream/Stream;I)Ljava/util/List;
            astore 6 /* longest2 */
        start local 6 // java.util.List longest2
         2: .line 5786
            iconst_2
            anewarray java.util.List
            dup
            iconst_0
            aload 5 /* longest1 */
            aastore
            dup
            iconst_1
            aload 6 /* longest2 */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 6 // java.util.List longest2
        end local 5 // java.util.List longest1
        end local 4 // int cpSize
        end local 3 // java.util.List fini
        end local 2 // java.util.List pred
        end local 1 // java.util.List step
        end local 0 // java.util.List init
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      init  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     1      step  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     2      pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     3      fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     4    cpSize  I
            1    3     5  longest1  Ljava/util/List<Ljava/lang/Class<*>;>;
            2    3     6  longest2  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;I)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
        Name  Flags
      init    
      step    
      pred    
      fini    
      cpSize  

  private static void loopChecks1b(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.List init
        start local 1 // java.util.List commonSuffix
         0: .line 5790
            aload 0 /* init */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 5791
            aload 1 /* commonSuffix */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$26(Ljava/util/List;Ljava/lang/invoke/MethodType;)Z (6)
                  (Ljava/lang/invoke/MethodType;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 5
         2: .line 5792
            new java.lang.StringBuilder
            dup
            ldc "found non-effectively identical init parameter type lists: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* init */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 5793
            ldc " (common suffix: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* commonSuffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 5792
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 5795
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List commonSuffix
        end local 0 // java.util.List init
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          init  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     1  commonSuffix  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
    MethodParameters:
              Name  Flags
      init          
      commonSuffix  

  private static void loopChecks1cd(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.lang.Class<?>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.List pred
        start local 1 // java.util.List fini
        start local 2 // java.lang.Class loopReturnType
         0: .line 5798
            aload 1 /* fini */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 5799
            aload 2 /* loopReturnType */
            invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$30(Ljava/lang/Class;Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 5
         2: .line 5800
            new java.lang.StringBuilder
            dup
            ldc "found non-identical finalizer return types: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fini */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (return type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 5801
            aload 2 /* loopReturnType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 5800
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 5804
      StackMap locals:
      StackMap stack:
            aload 0 /* pred */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 7
         6: .line 5805
            ldc "no predicate found"
            aload 0 /* pred */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         7: .line 5807
      StackMap locals:
      StackMap stack:
            aload 0 /* pred */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 5808
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$35(Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 10
         9: .line 5809
            ldc "predicates must have boolean return type"
            aload 0 /* pred */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        10: .line 5811
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Class loopReturnType
        end local 1 // java.util.List fini
        end local 0 // java.util.List pred
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0   11     1            fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0   11     2  loopReturnType  Ljava/lang/Class<*>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      pred            
      fini            
      loopReturnType  

  private static void loopChecks2(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.util.List step
        start local 1 // java.util.List pred
        start local 2 // java.util.List fini
        start local 3 // java.util.List commonParameterSequence
         0: .line 5814
            iconst_3
            anewarray java.util.List
            dup
            iconst_0
            aload 0 /* step */
            aastore
            dup
            iconst_1
            aload 1 /* pred */
            aastore
            dup
            iconst_2
            aload 2 /* fini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 5815
            aload 3 /* commonParameterSequence */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$39(Ljava/util/List;Ljava/lang/invoke/MethodType;)Z (6)
                  (Ljava/lang/invoke/MethodType;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 5
         2: .line 5816
            new java.lang.StringBuilder
            dup
            ldc "found non-effectively identical parameter type lists:\nstep: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* step */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 5817
            ldc "\npred: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* pred */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\nfini: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* fini */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (common parameter sequence: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* commonParameterSequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 5816
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 5819
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.List commonParameterSequence
        end local 2 // java.util.List fini
        end local 1 // java.util.List pred
        end local 0 // java.util.List step
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     step  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     1                     pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     2                     fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     3  commonParameterSequence  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
    MethodParameters:
                         Name  Flags
      step                     
      pred                     
      fini                     
      commonParameterSequence  

  private static java.util.List<java.lang.invoke.MethodHandle> fillParameterTypes(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List hs
        start local 1 // java.util.List targetParams
         0: .line 5822
            aload 0 /* hs */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 1 /* targetParams */
            invokedynamic apply(Ljava/util/List;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandles.lambda$40(Ljava/util/List;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 5826
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         2: .line 5822
            areturn
        end local 1 // java.util.List targetParams
        end local 0 // java.util.List hs
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0            hs  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     1  targetParams  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
              Name  Flags
      hs            
      targetParams  final

  private static java.util.List<java.lang.invoke.MethodHandle> fixArities(java.util.List<java.lang.invoke.MethodHandle>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List hs
         0: .line 5830
            aload 0 /* hs */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.asFixedArity()Ljava/lang/invoke/MethodHandle; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 0 // java.util.List hs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    hs  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
      Name  Flags
      hs    

  public static java.lang.invoke.MethodHandle whileLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandle init
        start local 1 // java.lang.invoke.MethodHandle pred
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 5940
            aload 0 /* init */
            aload 1 /* pred */
            aload 2 /* body */
            invokestatic java.lang.invoke.MethodHandles.whileLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         1: .line 5941
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* fini */
        start local 3 // java.lang.invoke.MethodHandle fini
         2: .line 5942
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_2
            aload 1 /* pred */
            aastore
            dup
            iconst_3
            aload 3 /* fini */
            aastore
            astore 4 /* checkExit */
        start local 4 // java.lang.invoke.MethodHandle[] checkExit
         3: .line 5943
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 0 /* init */
            aastore
            dup
            iconst_1
            aload 2 /* body */
            aastore
            astore 5 /* varBody */
        start local 5 // java.lang.invoke.MethodHandle[] varBody
         4: .line 5944
            iconst_2
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 4 /* checkExit */
            aastore
            dup
            iconst_1
            aload 5 /* varBody */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 5 // java.lang.invoke.MethodHandle[] varBody
        end local 4 // java.lang.invoke.MethodHandle[] checkExit
        end local 3 // java.lang.invoke.MethodHandle fini
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle pred
        end local 0 // java.lang.invoke.MethodHandle init
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       init  Ljava/lang/invoke/MethodHandle;
            0    5     1       pred  Ljava/lang/invoke/MethodHandle;
            0    5     2       body  Ljava/lang/invoke/MethodHandle;
            2    5     3       fini  Ljava/lang/invoke/MethodHandle;
            3    5     4  checkExit  [Ljava/lang/invoke/MethodHandle;
            4    5     5    varBody  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      init  
      pred  
      body  

  public static java.lang.invoke.MethodHandle doWhileLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle init
        start local 1 // java.lang.invoke.MethodHandle body
        start local 2 // java.lang.invoke.MethodHandle pred
         0: .line 6044
            aload 0 /* init */
            aload 2 /* pred */
            aload 1 /* body */
            invokestatic java.lang.invoke.MethodHandles.whileLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         1: .line 6045
            aload 1 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* fini */
        start local 3 // java.lang.invoke.MethodHandle fini
         2: .line 6046
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 0 /* init */
            aastore
            dup
            iconst_1
            aload 1 /* body */
            aastore
            dup
            iconst_2
            aload 2 /* pred */
            aastore
            dup
            iconst_3
            aload 3 /* fini */
            aastore
            astore 4 /* clause */
        start local 4 // java.lang.invoke.MethodHandle[] clause
         3: .line 6047
            iconst_1
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 4 /* clause */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandle[] clause
        end local 3 // java.lang.invoke.MethodHandle fini
        end local 2 // java.lang.invoke.MethodHandle pred
        end local 1 // java.lang.invoke.MethodHandle body
        end local 0 // java.lang.invoke.MethodHandle init
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    init  Ljava/lang/invoke/MethodHandle;
            0    4     1    body  Ljava/lang/invoke/MethodHandle;
            0    4     2    pred  Ljava/lang/invoke/MethodHandle;
            2    4     3    fini  Ljava/lang/invoke/MethodHandle;
            3    4     4  clause  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      init  
      body  
      pred  

  private static void whileLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle init
        start local 1 // java.lang.invoke.MethodHandle pred
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6051
            aload 1 /* pred */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 6052
            aload 2 /* body */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 6053
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* bodyType */
        start local 3 // java.lang.invoke.MethodType bodyType
         3: .line 6054
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         4: .line 6055
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 5 /* innerList */
        start local 5 // java.util.List innerList
         5: .line 6056
            aload 5 /* innerList */
            astore 6 /* outerList */
        start local 6 // java.util.List outerList
         6: .line 6057
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         7: .line 6059
            aload 5 /* innerList */
            invokeinterface java.util.List.size:()I
            ifeq 8
            aload 5 /* innerList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 4 /* returnType */
            if_acmpeq 10
         8: .line 6061
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.Class java.util.List java.util.List
      StackMap stack:
            aload 3 /* bodyType */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* returnType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* expected */
        start local 7 // java.lang.invoke.MethodType expected
         9: .line 6062
            ldc "body function"
            aload 3 /* bodyType */
            aload 7 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.invoke.MethodType expected
        10: .line 6064
      StackMap locals:
      StackMap stack:
            aload 5 /* innerList */
            iconst_1
            aload 5 /* innerList */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 6 /* outerList */
        11: .line 6066
      StackMap locals:
      StackMap stack:
            aload 1 /* pred */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 7 /* predType */
        start local 7 // java.lang.invoke.MethodType predType
        12: .line 6067
            aload 7 /* predType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 14
        13: .line 6068
            aload 7 /* predType */
            iconst_0
            aload 5 /* innerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 15
        14: .line 6069
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop predicate"
            aload 7 /* predType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 5 /* innerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        15: .line 6071
      StackMap locals:
      StackMap stack:
            aload 0 /* init */
            ifnull 20
        16: .line 6072
            aload 0 /* init */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 8 /* initType */
        start local 8 // java.lang.invoke.MethodType initType
        17: .line 6073
            aload 8 /* initType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 4 /* returnType */
            if_acmpne 19
        18: .line 6074
            aload 8 /* initType */
            iconst_0
            aload 6 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 20
        19: .line 6075
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop initializer"
            aload 8 /* initType */
            aload 4 /* returnType */
            aload 6 /* outerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.lang.invoke.MethodType initType
        20: .line 6078
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.invoke.MethodType predType
        end local 6 // java.util.List outerList
        end local 5 // java.util.List innerList
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.invoke.MethodType bodyType
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle pred
        end local 0 // java.lang.invoke.MethodHandle init
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        init  Ljava/lang/invoke/MethodHandle;
            0   21     1        pred  Ljava/lang/invoke/MethodHandle;
            0   21     2        body  Ljava/lang/invoke/MethodHandle;
            3   21     3    bodyType  Ljava/lang/invoke/MethodType;
            4   21     4  returnType  Ljava/lang/Class<*>;
            5   21     5   innerList  Ljava/util/List<Ljava/lang/Class<*>;>;
            6   21     6   outerList  Ljava/util/List<Ljava/lang/Class<*>;>;
            9   10     7    expected  Ljava/lang/invoke/MethodType;
           12   21     7    predType  Ljava/lang/invoke/MethodType;
           17   20     8    initType  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      init  
      pred  
      body  

  public static java.lang.invoke.MethodHandle countedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle iterations
        start local 1 // java.lang.invoke.MethodHandle init
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6228
            aload 0 /* iterations */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            aload 0 /* iterations */
            aload 1 /* init */
            aload 2 /* body */
            invokestatic java.lang.invoke.MethodHandles.countedLoop:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle init
        end local 0 // java.lang.invoke.MethodHandle iterations
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  iterations  Ljava/lang/invoke/MethodHandle;
            0    1     1        init  Ljava/lang/invoke/MethodHandle;
            0    1     2        body  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      iterations  
      init        
      body        

  public static java.lang.invoke.MethodHandle countedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // java.lang.invoke.MethodHandle start
        start local 1 // java.lang.invoke.MethodHandle end
        start local 2 // java.lang.invoke.MethodHandle init
        start local 3 // java.lang.invoke.MethodHandle body
         0: .line 6352
            aload 0 /* start */
            aload 1 /* end */
            aload 2 /* init */
            aload 3 /* body */
            invokestatic java.lang.invoke.MethodHandles.countedLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         1: .line 6353
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* counterType */
        start local 4 // java.lang.Class counterType
         2: .line 6354
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            pop
         3: .line 6355
            aload 3 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 5 /* returnType */
        start local 5 // java.lang.Class returnType
         4: .line 6356
            bipush 7
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 6 /* incr */
        start local 6 // java.lang.invoke.MethodHandle incr
         5: .line 6357
            bipush 6
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 7 /* pred */
        start local 7 // java.lang.invoke.MethodHandle pred
         6: .line 6358
            aconst_null
            astore 8 /* retv */
        start local 8 // java.lang.invoke.MethodHandle retv
         7: .line 6359
            aload 5 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         8: .line 6360
            aload 6 /* incr */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 5 /* returnType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* incr */
         9: .line 6361
            aload 7 /* pred */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 5 /* returnType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* pred */
        10: .line 6362
            aload 5 /* returnType */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* counterType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* retv */
        11: .line 6364
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* body */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* counterType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* body */
        12: .line 6366
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 1 /* end */
            aastore
            dup
            iconst_2
            aload 7 /* pred */
            aastore
            dup
            iconst_3
            aload 8 /* retv */
            aastore
            astore 9 /* loopLimit */
        start local 9 // java.lang.invoke.MethodHandle[] loopLimit
        13: .line 6367
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 2 /* init */
            aastore
            dup
            iconst_1
            aload 3 /* body */
            aastore
            astore 10 /* bodyClause */
        start local 10 // java.lang.invoke.MethodHandle[] bodyClause
        14: .line 6368
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 0 /* start */
            aastore
            dup
            iconst_1
            aload 6 /* incr */
            aastore
            astore 11 /* indexVar */
        start local 11 // java.lang.invoke.MethodHandle[] indexVar
        15: .line 6369
            iconst_3
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 9 /* loopLimit */
            aastore
            dup
            iconst_1
            aload 10 /* bodyClause */
            aastore
            dup
            iconst_2
            aload 11 /* indexVar */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 11 // java.lang.invoke.MethodHandle[] indexVar
        end local 10 // java.lang.invoke.MethodHandle[] bodyClause
        end local 9 // java.lang.invoke.MethodHandle[] loopLimit
        end local 8 // java.lang.invoke.MethodHandle retv
        end local 7 // java.lang.invoke.MethodHandle pred
        end local 6 // java.lang.invoke.MethodHandle incr
        end local 5 // java.lang.Class returnType
        end local 4 // java.lang.Class counterType
        end local 3 // java.lang.invoke.MethodHandle body
        end local 2 // java.lang.invoke.MethodHandle init
        end local 1 // java.lang.invoke.MethodHandle end
        end local 0 // java.lang.invoke.MethodHandle start
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0        start  Ljava/lang/invoke/MethodHandle;
            0   16     1          end  Ljava/lang/invoke/MethodHandle;
            0   16     2         init  Ljava/lang/invoke/MethodHandle;
            0   16     3         body  Ljava/lang/invoke/MethodHandle;
            2   16     4  counterType  Ljava/lang/Class<*>;
            4   16     5   returnType  Ljava/lang/Class<*>;
            5   16     6         incr  Ljava/lang/invoke/MethodHandle;
            6   16     7         pred  Ljava/lang/invoke/MethodHandle;
            7   16     8         retv  Ljava/lang/invoke/MethodHandle;
           13   16     9    loopLimit  [Ljava/lang/invoke/MethodHandle;
           14   16    10   bodyClause  [Ljava/lang/invoke/MethodHandle;
           15   16    11     indexVar  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      start  
      end    
      init   
      body   

  private static void countedLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // java.lang.invoke.MethodHandle start
        start local 1 // java.lang.invoke.MethodHandle end
        start local 2 // java.lang.invoke.MethodHandle init
        start local 3 // java.lang.invoke.MethodHandle body
         0: .line 6373
            aload 0 /* start */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 6374
            aload 1 /* end */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 6375
            aload 3 /* body */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 6376
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* counterType */
        start local 4 // java.lang.Class counterType
         4: .line 6377
            aload 4 /* counterType */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 7
         5: .line 6378
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 5 /* expected */
        start local 5 // java.lang.invoke.MethodType expected
         6: .line 6379
            ldc "start function"
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 5 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.invoke.MethodType expected
         7: .line 6380
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 4 /* counterType */
            if_acmpeq 10
         8: .line 6381
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 4 /* counterType */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 5 /* expected */
        start local 5 // java.lang.invoke.MethodType expected
         9: .line 6382
            ldc "end function"
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 5 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.invoke.MethodType expected
        10: .line 6384
      StackMap locals:
      StackMap stack:
            aload 3 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* bodyType */
        start local 5 // java.lang.invoke.MethodType bodyType
        11: .line 6385
            aload 5 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 6 /* returnType */
        start local 6 // java.lang.Class returnType
        12: .line 6386
            aload 5 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 7 /* innerList */
        start local 7 // java.util.List innerList
        13: .line 6388
            aload 6 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 14
            iconst_0
            goto 15
      StackMap locals: java.lang.invoke.MethodType java.lang.Class java.util.List
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 8 /* vsize */
        start local 8 // int vsize
        16: .line 6389
            iload 8 /* vsize */
            ifeq 19
            aload 7 /* innerList */
            invokeinterface java.util.List.size:()I
            ifeq 17
            aload 7 /* innerList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 6 /* returnType */
            if_acmpeq 19
        17: .line 6391
      StackMap locals: int
      StackMap stack:
            aload 5 /* bodyType */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 6 /* returnType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* expected */
        start local 9 // java.lang.invoke.MethodType expected
        18: .line 6392
            ldc "body function"
            aload 5 /* bodyType */
            aload 9 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.invoke.MethodType expected
        19: .line 6393
      StackMap locals:
      StackMap stack:
            aload 7 /* innerList */
            invokeinterface java.util.List.size:()I
            iload 8 /* vsize */
            if_icmple 20
            aload 7 /* innerList */
            iload 8 /* vsize */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 4 /* counterType */
            if_acmpeq 22
        20: .line 6395
      StackMap locals:
      StackMap stack:
            aload 5 /* bodyType */
            iload 8 /* vsize */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* counterType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* expected */
        start local 9 // java.lang.invoke.MethodType expected
        21: .line 6396
            ldc "body function"
            aload 5 /* bodyType */
            aload 9 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.invoke.MethodType expected
        22: .line 6398
      StackMap locals:
      StackMap stack:
            aload 7 /* innerList */
            iload 8 /* vsize */
            iconst_1
            iadd
            aload 7 /* innerList */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 9 /* outerList */
        start local 9 // java.util.List outerList
        23: .line 6399
            aload 9 /* outerList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 26
        24: .line 6401
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 9 /* outerList */
        25: .line 6402
            aload 5 /* bodyType */
            iload 8 /* vsize */
            iconst_1
            iadd
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 7 /* innerList */
        26: .line 6404
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* counterType */
            aload 9 /* outerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 10 /* expected */
        start local 10 // java.lang.invoke.MethodType expected
        27: .line 6405
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 29
        28: .line 6406
            ldc "start parameter types"
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 10 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        29: .line 6408
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            if_acmpeq 32
        30: .line 6409
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 32
        31: .line 6410
            ldc "end parameter types"
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 10 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        32: .line 6412
      StackMap locals:
      StackMap stack:
            aload 2 /* init */
            ifnull 37
        33: .line 6413
            aload 2 /* init */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 11 /* initType */
        start local 11 // java.lang.invoke.MethodType initType
        34: .line 6414
            aload 11 /* initType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 6 /* returnType */
            if_acmpne 36
        35: .line 6415
            aload 11 /* initType */
            iconst_0
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 37
        36: .line 6416
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop initializer"
            aload 11 /* initType */
            aload 6 /* returnType */
            aload 9 /* outerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 11 // java.lang.invoke.MethodType initType
        37: .line 6419
      StackMap locals:
      StackMap stack:
            return
        end local 10 // java.lang.invoke.MethodType expected
        end local 9 // java.util.List outerList
        end local 8 // int vsize
        end local 7 // java.util.List innerList
        end local 6 // java.lang.Class returnType
        end local 5 // java.lang.invoke.MethodType bodyType
        end local 4 // java.lang.Class counterType
        end local 3 // java.lang.invoke.MethodHandle body
        end local 2 // java.lang.invoke.MethodHandle init
        end local 1 // java.lang.invoke.MethodHandle end
        end local 0 // java.lang.invoke.MethodHandle start
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0        start  Ljava/lang/invoke/MethodHandle;
            0   38     1          end  Ljava/lang/invoke/MethodHandle;
            0   38     2         init  Ljava/lang/invoke/MethodHandle;
            0   38     3         body  Ljava/lang/invoke/MethodHandle;
            4   38     4  counterType  Ljava/lang/Class<*>;
            6    7     5     expected  Ljava/lang/invoke/MethodType;
            9   10     5     expected  Ljava/lang/invoke/MethodType;
           11   38     5     bodyType  Ljava/lang/invoke/MethodType;
           12   38     6   returnType  Ljava/lang/Class<*>;
           13   38     7    innerList  Ljava/util/List<Ljava/lang/Class<*>;>;
           16   38     8        vsize  I
           18   19     9     expected  Ljava/lang/invoke/MethodType;
           21   22     9     expected  Ljava/lang/invoke/MethodType;
           23   38     9    outerList  Ljava/util/List<Ljava/lang/Class<*>;>;
           27   38    10     expected  Ljava/lang/invoke/MethodType;
           34   37    11     initType  Ljava/lang/invoke/MethodType;
    MethodParameters:
       Name  Flags
      start  
      end    
      init   
      body   

  public static java.lang.invoke.MethodHandle iteratedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // java.lang.invoke.MethodHandle iterator
        start local 1 // java.lang.invoke.MethodHandle init
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6563
            aload 0 /* iterator */
            aload 1 /* init */
            aload 2 /* body */
            invokestatic java.lang.invoke.MethodHandles.iteratedLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class;
            astore 3 /* iterableType */
        start local 3 // java.lang.Class iterableType
         1: .line 6564
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         2: .line 6565
            bipush 9
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 5 /* hasNext */
        start local 5 // java.lang.invoke.MethodHandle hasNext
         3: .line 6566
            bipush 10
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 6 /* nextRaw */
        start local 6 // java.lang.invoke.MethodHandle nextRaw
         4: .line 6571
            aload 0 /* iterator */
            ifnonnull 8
         5: .line 6573
            bipush 8
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 7 /* startIter */
        start local 7 // java.lang.invoke.MethodHandle startIter
         6: .line 6574
            aload 7 /* startIter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 3 /* iterableType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* iteratorType */
        start local 9 // java.lang.invoke.MethodType iteratorType
         7: .line 6575
            goto 10
        end local 9 // java.lang.invoke.MethodType iteratorType
        end local 7 // java.lang.invoke.MethodHandle startIter
         8: .line 6577
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aload 0 /* iterator */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            ldc Ljava/util/Iterator;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* iteratorType */
        start local 9 // java.lang.invoke.MethodType iteratorType
         9: .line 6578
            aload 0 /* iterator */
            astore 7 /* startIter */
        start local 7 // java.lang.invoke.MethodHandle startIter
        10: .line 6580
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType
      StackMap stack:
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 11
            iconst_0
            goto 12
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodType
        11: iconst_1
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType
      StackMap stack: java.lang.invoke.MethodType int
        12: invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 10 /* ttype */
        start local 10 // java.lang.Class ttype
        13: .line 6581
            aload 6 /* nextRaw */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 10 /* ttype */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 11 /* nextValType */
        start local 11 // java.lang.invoke.MethodType nextValType
        14: .line 6585
            aload 7 /* startIter */
            aload 9 /* iteratorType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* startIter */
        15: .line 6586
            aload 6 /* nextRaw */
            aload 11 /* nextValType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* nextVal */
        start local 8 // java.lang.invoke.MethodHandle nextVal
        16: .line 6587
            goto 19
        end local 8 // java.lang.invoke.MethodHandle nextVal
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType java.lang.Class java.lang.invoke.MethodType
      StackMap stack: java.lang.invoke.WrongMethodTypeException
        17: astore 12 /* ex */
        start local 12 // java.lang.invoke.WrongMethodTypeException ex
        18: .line 6588
            new java.lang.IllegalArgumentException
            dup
            aload 12 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 12 // java.lang.invoke.WrongMethodTypeException ex
        end local 11 // java.lang.invoke.MethodType nextValType
        end local 10 // java.lang.Class ttype
        end local 9 // java.lang.invoke.MethodType iteratorType
        start local 8 // java.lang.invoke.MethodHandle nextVal
        19: .line 6592
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aconst_null
            astore 9 /* retv */
        start local 9 // java.lang.invoke.MethodHandle retv
        20: aload 2 /* body */
            astore 10 /* step */
        start local 10 // java.lang.invoke.MethodHandle step
        21: .line 6593
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 24
        22: .line 6595
            aload 4 /* returnType */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/util/Iterator;
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* retv */
        23: .line 6597
            aload 2 /* body */
            iconst_0
            iconst_1
            invokestatic java.lang.invoke.MethodHandles.swapArguments:(Ljava/lang/invoke/MethodHandle;II)Ljava/lang/invoke/MethodHandle;
            astore 10 /* step */
        24: .line 6601
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 7 /* startIter */
            aastore
            dup
            iconst_2
            aload 5 /* hasNext */
            aastore
            dup
            iconst_3
            aload 9 /* retv */
            aastore
            astore 11 /* iterVar */
        start local 11 // java.lang.invoke.MethodHandle[] iterVar
        25: .line 6602
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 1 /* init */
            aastore
            dup
            iconst_1
            aload 10 /* step */
            iconst_0
            aload 8 /* nextVal */
            invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aastore
            astore 12 /* bodyClause */
        start local 12 // java.lang.invoke.MethodHandle[] bodyClause
        26: .line 6603
            iconst_2
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 11 /* iterVar */
            aastore
            dup
            iconst_1
            aload 12 /* bodyClause */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 12 // java.lang.invoke.MethodHandle[] bodyClause
        end local 11 // java.lang.invoke.MethodHandle[] iterVar
        end local 10 // java.lang.invoke.MethodHandle step
        end local 9 // java.lang.invoke.MethodHandle retv
        end local 8 // java.lang.invoke.MethodHandle nextVal
        end local 7 // java.lang.invoke.MethodHandle startIter
        end local 6 // java.lang.invoke.MethodHandle nextRaw
        end local 5 // java.lang.invoke.MethodHandle hasNext
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.Class iterableType
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle init
        end local 0 // java.lang.invoke.MethodHandle iterator
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0      iterator  Ljava/lang/invoke/MethodHandle;
            0   27     1          init  Ljava/lang/invoke/MethodHandle;
            0   27     2          body  Ljava/lang/invoke/MethodHandle;
            1   27     3  iterableType  Ljava/lang/Class<*>;
            2   27     4    returnType  Ljava/lang/Class<*>;
            3   27     5       hasNext  Ljava/lang/invoke/MethodHandle;
            4   27     6       nextRaw  Ljava/lang/invoke/MethodHandle;
            6    8     7     startIter  Ljava/lang/invoke/MethodHandle;
           10   27     7     startIter  Ljava/lang/invoke/MethodHandle;
           16   17     8       nextVal  Ljava/lang/invoke/MethodHandle;
           19   27     8       nextVal  Ljava/lang/invoke/MethodHandle;
            7    8     9  iteratorType  Ljava/lang/invoke/MethodType;
            9   19     9  iteratorType  Ljava/lang/invoke/MethodType;
           13   19    10         ttype  Ljava/lang/Class<*>;
           14   19    11   nextValType  Ljava/lang/invoke/MethodType;
           18   19    12            ex  Ljava/lang/invoke/WrongMethodTypeException;
           20   27     9          retv  Ljava/lang/invoke/MethodHandle;
           21   27    10          step  Ljava/lang/invoke/MethodHandle;
           25   27    11       iterVar  [Ljava/lang/invoke/MethodHandle;
           26   27    12    bodyClause  [Ljava/lang/invoke/MethodHandle;
      Exception table:
        from    to  target  type
          14    16      17  Class java.lang.invoke.WrongMethodTypeException
    MethodParameters:
          Name  Flags
      iterator  
      init      
      body      

  private static java.lang.Class<?> iteratedLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // java.lang.invoke.MethodHandle iterator
        start local 1 // java.lang.invoke.MethodHandle init
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6607
            aload 2 /* body */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 6608
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* bodyType */
        start local 3 // java.lang.invoke.MethodType bodyType
         2: .line 6609
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         3: .line 6610
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 5 /* internalParamList */
        start local 5 // java.util.List internalParamList
         4: .line 6612
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 5
            iconst_0
            goto 6
      StackMap locals: java.lang.invoke.MethodType java.lang.Class java.util.List
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* vsize */
        start local 6 // int vsize
         7: .line 6613
            iload 6 /* vsize */
            ifeq 10
            aload 5 /* internalParamList */
            invokeinterface java.util.List.size:()I
            ifeq 8
            aload 5 /* internalParamList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 4 /* returnType */
            if_acmpeq 10
         8: .line 6615
      StackMap locals: int
      StackMap stack:
            aload 3 /* bodyType */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* returnType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* expected */
        start local 7 // java.lang.invoke.MethodType expected
         9: .line 6616
            ldc "body function"
            aload 3 /* bodyType */
            aload 7 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.invoke.MethodType expected
        10: .line 6617
      StackMap locals:
      StackMap stack:
            aload 5 /* internalParamList */
            invokeinterface java.util.List.size:()I
            iload 6 /* vsize */
            if_icmpgt 13
        11: .line 6619
            aload 3 /* bodyType */
            iload 6 /* vsize */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* expected */
        start local 7 // java.lang.invoke.MethodType expected
        12: .line 6620
            ldc "body function"
            aload 3 /* bodyType */
            aload 7 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.invoke.MethodType expected
        13: .line 6622
      StackMap locals:
      StackMap stack:
            aload 5 /* internalParamList */
            iload 6 /* vsize */
            iconst_1
            iadd
            aload 5 /* internalParamList */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* externalParamList */
        start local 7 // java.util.List externalParamList
        14: .line 6623
            aconst_null
            astore 8 /* iterableType */
        start local 8 // java.lang.Class iterableType
        15: .line 6624
            aload 0 /* iterator */
            ifnull 24
        16: .line 6627
            aload 7 /* externalParamList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 18
        17: .line 6628
            aload 0 /* iterator */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 7 /* externalParamList */
        18: .line 6630
      StackMap locals: java.util.List java.lang.Class
      StackMap stack:
            aload 0 /* iterator */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 9 /* itype */
        start local 9 // java.lang.invoke.MethodType itype
        19: .line 6631
            ldc Ljava/util/Iterator;
            aload 9 /* itype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 21
        20: .line 6632
            ldc "iteratedLoop first argument must have Iterator return type"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        21: .line 6634
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 9 /* itype */
            iconst_0
            aload 7 /* externalParamList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 32
        22: .line 6635
            aload 9 /* itype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 7 /* externalParamList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 10 /* expected */
        start local 10 // java.lang.invoke.MethodType expected
        23: .line 6636
            ldc "iterator parameters"
            aload 9 /* itype */
            aload 10 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 10 // java.lang.invoke.MethodType expected
        end local 9 // java.lang.invoke.MethodType itype
        24: .line 6639
      StackMap locals:
      StackMap stack:
            aload 7 /* externalParamList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 28
        25: .line 6643
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Iterable;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 7 /* externalParamList */
        26: .line 6644
            ldc Ljava/lang/Iterable;
            astore 8 /* iterableType */
        27: .line 6645
            goto 32
        28: .line 6649
      StackMap locals:
      StackMap stack:
            aload 7 /* externalParamList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 8 /* iterableType */
        29: .line 6650
            ldc Ljava/lang/Iterable;
            aload 8 /* iterableType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 32
        30: .line 6652
            new java.lang.StringBuilder
            dup
            ldc "inferred first loop argument must inherit from Iterable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* iterableType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 6651
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        32: .line 6656
      StackMap locals:
      StackMap stack:
            aload 1 /* init */
            ifnull 37
        33: .line 6657
            aload 1 /* init */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 9 /* initType */
        start local 9 // java.lang.invoke.MethodType initType
        34: .line 6658
            aload 9 /* initType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 4 /* returnType */
            if_acmpne 36
        35: .line 6659
            aload 9 /* initType */
            iconst_0
            aload 7 /* externalParamList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 37
        36: .line 6660
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop initializer"
            aload 9 /* initType */
            aload 4 /* returnType */
            aload 7 /* externalParamList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.invoke.MethodType initType
        37: .line 6663
      StackMap locals:
      StackMap stack:
            aload 8 /* iterableType */
            areturn
        end local 8 // java.lang.Class iterableType
        end local 7 // java.util.List externalParamList
        end local 6 // int vsize
        end local 5 // java.util.List internalParamList
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.invoke.MethodType bodyType
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle init
        end local 0 // java.lang.invoke.MethodHandle iterator
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   38     0           iterator  Ljava/lang/invoke/MethodHandle;
            0   38     1               init  Ljava/lang/invoke/MethodHandle;
            0   38     2               body  Ljava/lang/invoke/MethodHandle;
            2   38     3           bodyType  Ljava/lang/invoke/MethodType;
            3   38     4         returnType  Ljava/lang/Class<*>;
            4   38     5  internalParamList  Ljava/util/List<Ljava/lang/Class<*>;>;
            7   38     6              vsize  I
            9   10     7           expected  Ljava/lang/invoke/MethodType;
           12   13     7           expected  Ljava/lang/invoke/MethodType;
           14   38     7  externalParamList  Ljava/util/List<Ljava/lang/Class<*>;>;
           15   38     8       iterableType  Ljava/lang/Class<*>;
           19   24     9              itype  Ljava/lang/invoke/MethodType;
           23   24    10           expected  Ljava/lang/invoke/MethodType;
           34   37     9           initType  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      iterator  
      init      
      body      

  static java.lang.invoke.MethodHandle swapArguments(java.lang.invoke.MethodHandle, int, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;II)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.lang.invoke.MethodHandle mh
        start local 1 // int i
        start local 2 // int j
         0: .line 6669
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* arity */
        start local 3 // int arity
         1: .line 6670
            iload 3 /* arity */
            newarray 10
            astore 4 /* order */
        start local 4 // int[] order
         2: .line 6671
            iconst_0
            istore 5 /* k */
        start local 5 // int k
         3: goto 5
      StackMap locals: int int[] int
      StackMap stack:
         4: aload 4 /* order */
            iload 5 /* k */
            iload 5 /* k */
            iastore
            iinc 5 /* k */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* k */
            iload 3 /* arity */
            if_icmplt 4
        end local 5 // int k
         6: .line 6672
            aload 4 /* order */
            iload 1 /* i */
            iload 2 /* j */
            iastore
            aload 4 /* order */
            iload 2 /* j */
            iload 1 /* i */
            iastore
         7: .line 6673
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
            astore 5 /* types */
        start local 5 // java.lang.Class[] types
         8: .line 6674
            aload 5 /* types */
            iload 1 /* i */
            aaload
            astore 6 /* ti */
        start local 6 // java.lang.Class ti
         9: aload 5 /* types */
            iload 1 /* i */
            aload 5 /* types */
            iload 2 /* j */
            aaload
            aastore
            aload 5 /* types */
            iload 2 /* j */
            aload 6 /* ti */
            aastore
        10: .line 6675
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 5 /* types */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* swapType */
        start local 7 // java.lang.invoke.MethodType swapType
        11: .line 6676
            aload 0 /* mh */
            aload 7 /* swapType */
            aload 4 /* order */
            invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 7 // java.lang.invoke.MethodType swapType
        end local 6 // java.lang.Class ti
        end local 5 // java.lang.Class[] types
        end local 4 // int[] order
        end local 3 // int arity
        end local 2 // int j
        end local 1 // int i
        end local 0 // java.lang.invoke.MethodHandle mh
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0        mh  Ljava/lang/invoke/MethodHandle;
            0   12     1         i  I
            0   12     2         j  I
            1   12     3     arity  I
            2   12     4     order  [I
            3    6     5         k  I
            8   12     5     types  [Ljava/lang/Class;
            9   12     6        ti  Ljava/lang/Class<*>;
           11   12     7  swapType  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      mh    
      i     
      j     

  public static java.lang.invoke.MethodHandle tryFinally(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle cleanup
         0: .line 6769
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 2 /* targetParamTypes */
        start local 2 // java.util.List targetParamTypes
         1: .line 6770
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 3 /* rtype */
        start local 3 // java.lang.Class rtype
         2: .line 6772
            aload 0 /* target */
            aload 1 /* cleanup */
            invokestatic java.lang.invoke.MethodHandles.tryFinallyChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         3: .line 6777
            aload 1 /* cleanup */
            aload 3 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List java.lang.Class
      StackMap stack: java.lang.invoke.MethodHandle
         4: iconst_2
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List java.lang.Class
      StackMap stack: java.lang.invoke.MethodHandle int
         5: aload 2 /* targetParamTypes */
            iconst_0
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
            astore 1 /* cleanup */
         6: .line 6781
            aload 1 /* cleanup */
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            ldc Ljava/lang/Throwable;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* cleanup */
         7: .line 6784
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            aload 3 /* rtype */
            aload 2 /* targetParamTypes */
            invokestatic java.lang.invoke.MethodHandleImpl.makeTryFinally:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.Class rtype
        end local 2 // java.util.List targetParamTypes
        end local 1 // java.lang.invoke.MethodHandle cleanup
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0            target  Ljava/lang/invoke/MethodHandle;
            0    8     1           cleanup  Ljava/lang/invoke/MethodHandle;
            1    8     2  targetParamTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            2    8     3             rtype  Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      target   
      cleanup  

  private static void tryFinallyChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle cleanup
         0: .line 6788
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 2 /* rtype */
        start local 2 // java.lang.Class rtype
         1: .line 6789
            aload 2 /* rtype */
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 3
         2: .line 6790
            ldc "target and return types"
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* rtype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         3: .line 6792
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* cleanupType */
        start local 3 // java.lang.invoke.MethodType cleanupType
         4: .line 6793
            ldc Ljava/lang/Throwable;
            aload 3 /* cleanupType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 6
         5: .line 6794
            ldc "cleanup first argument and Throwable"
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            ldc Ljava/lang/Throwable;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 6796
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 2 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 8
            aload 3 /* cleanupType */
            iconst_1
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 2 /* rtype */
            if_acmpeq 8
         7: .line 6797
            ldc "cleanup second argument and target return type"
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 2 /* rtype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         8: .line 6801
      StackMap locals:
      StackMap stack:
            aload 2 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_2
      StackMap locals:
      StackMap stack: int
        10: istore 4 /* cleanupArgIndex */
        start local 4 // int cleanupArgIndex
        11: .line 6802
            aload 3 /* cleanupType */
            iload 4 /* cleanupArgIndex */
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 15
        12: .line 6803
            ldc "cleanup parameters after (Throwable,result) and target parameter list prefix"
        13: .line 6804
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
        14: .line 6803
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        15: .line 6806
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // int cleanupArgIndex
        end local 3 // java.lang.invoke.MethodType cleanupType
        end local 2 // java.lang.Class rtype
        end local 1 // java.lang.invoke.MethodHandle cleanup
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0           target  Ljava/lang/invoke/MethodHandle;
            0   16     1          cleanup  Ljava/lang/invoke/MethodHandle;
            1   16     2            rtype  Ljava/lang/Class<*>;
            4   16     3      cleanupType  Ljava/lang/invoke/MethodType;
           11   16     4  cleanupArgIndex  I
    MethodParameters:
         Name  Flags
      target   
      cleanup  

  static int[] $SWITCH_TABLE$sun$invoke$util$Wrapper();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 82
            getstatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic sun.invoke.util.Wrapper.values:()[Lsun/invoke/util/Wrapper;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic sun.invoke.util.Wrapper.BOOLEAN:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic sun.invoke.util.Wrapper.BYTE:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic sun.invoke.util.Wrapper.CHAR:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic sun.invoke.util.Wrapper.DOUBLE:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 8
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic sun.invoke.util.Wrapper.FLOAT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic sun.invoke.util.Wrapper.INT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic sun.invoke.util.Wrapper.LONG:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 6
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 9
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic sun.invoke.util.Wrapper.SHORT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic sun.invoke.util.Wrapper.VOID:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 10
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            dup
            putstatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError

  private static boolean lambda$0(java.lang.invoke.MethodHandle[]);
    descriptor: ([Ljava/lang/invoke/MethodHandle;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[] c
         0: .line 5672
            aload 0 /* c */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 0 // java.lang.invoke.MethodHandle[] c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  [Ljava/lang/invoke/MethodHandle;

  private static void lambda$2(java.util.List, java.util.List, java.util.List, java.util.List, java.lang.invoke.MethodHandle[]);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;[Ljava/lang/invoke/MethodHandle;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=5
        start local 4 // java.lang.invoke.MethodHandle[] clause
         0: .line 5673
            aload 0
            aload 4 /* clause */
            iconst_0
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 5674
            aload 1
            aload 4 /* clause */
            arraylength
            iconst_1
            if_icmpgt 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack: java.util.List
         2: aload 4 /* clause */
            iconst_1
            aaload
      StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
      StackMap stack: java.util.List java.lang.invoke.MethodHandle
         3: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 5675
            aload 2
            aload 4 /* clause */
            arraylength
            iconst_2
            if_icmpgt 5
            aconst_null
            goto 6
      StackMap locals:
      StackMap stack: java.util.List
         5: aload 4 /* clause */
            iconst_2
            aaload
      StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
      StackMap stack: java.util.List java.lang.invoke.MethodHandle
         6: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 5676
            aload 3
            aload 4 /* clause */
            arraylength
            iconst_3
            if_icmpgt 8
            aconst_null
            goto 9
      StackMap locals:
      StackMap stack: java.util.List
         8: aload 4 /* clause */
            iconst_3
            aaload
      StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
      StackMap stack: java.util.List java.lang.invoke.MethodHandle
         9: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 5677
            return
        end local 4 // java.lang.invoke.MethodHandle[] clause
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     4  clause  [Ljava/lang/invoke/MethodHandle;

  private static boolean lambda$4(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class t
         0: .line 5696
            aload 0 /* t */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Class<*>;

  private static boolean lambda$10(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.List pl
         0: .line 5741
            aload 1 /* pl */
            aload 0
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.List pl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    pl  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static boolean lambda$14(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.List pl
         0: .line 5743
            aload 1 /* pl */
            aload 0
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.List pl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    pl  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static boolean lambda$16(java.lang.invoke.MethodHandle[]);
    descriptor: ([Ljava/lang/invoke/MethodHandle;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[] c
         0: .line 5755
            aload 0 /* c */
            arraylength
            iconst_4
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.invoke.MethodHandle[] c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  [Ljava/lang/invoke/MethodHandle;

  private static boolean lambda$19(int, java.lang.invoke.MethodType);
    descriptor: (ILjava/lang/invoke/MethodType;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.invoke.MethodType t
         0: .line 5772
            aload 1 /* t */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iload 0
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.invoke.MethodType t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/invoke/MethodType;

  private static java.util.List lambda$21(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List p
        start local 1 // java.util.List q
         0: .line 5774
            aload 0 /* p */
            invokeinterface java.util.List.size:()I
            aload 1 /* q */
            invokeinterface java.util.List.size:()I
            if_icmplt 1
            aload 0 /* p */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* q */
      StackMap locals:
      StackMap stack: java.util.List
         2: areturn
        end local 1 // java.util.List q
        end local 0 // java.util.List p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    3     1     q  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static java.util.List lambda$22(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List p
        start local 1 // java.util.List q
         0: .line 5780
            aload 0 /* p */
            invokeinterface java.util.List.size:()I
            aload 1 /* q */
            invokeinterface java.util.List.size:()I
            if_icmplt 1
            aload 0 /* p */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* q */
      StackMap locals:
      StackMap stack: java.util.List
         2: areturn
        end local 1 // java.util.List q
        end local 0 // java.util.List p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    3     1     q  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static boolean lambda$26(java.util.List, java.lang.invoke.MethodType);
    descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodType;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.invoke.MethodType t
         0: .line 5791
            aload 1 /* t */
            iconst_0
            aload 0
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.invoke.MethodType t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/invoke/MethodType;

  private static boolean lambda$30(java.lang.Class, java.lang.Class);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Class t
         0: .line 5799
            aload 1 /* t */
            aload 0
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/Class<Ljava/lang/Object;>;

  private static boolean lambda$35(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class t
         0: .line 5808
            aload 0 /* t */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Class<Ljava/lang/Object;>;

  private static boolean lambda$39(java.util.List, java.lang.invoke.MethodType);
    descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodType;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.invoke.MethodType t
         0: .line 5815
            aload 1 /* t */
            iconst_0
            aload 0
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.invoke.MethodType t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/invoke/MethodType;

  private static java.lang.invoke.MethodHandle lambda$40(java.util.List, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // java.lang.invoke.MethodHandle h
         0: .line 5823
            aload 1 /* h */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 2 /* pc */
        start local 2 // int pc
         1: .line 5824
            aload 0
            invokeinterface java.util.List.size:()I
            istore 3 /* tpsize */
        start local 3 // int tpsize
         2: .line 5825
            iload 2 /* pc */
            iload 3 /* tpsize */
            if_icmpge 3
            aload 1 /* h */
            iload 2 /* pc */
            aload 0
            iload 2 /* pc */
            iload 3 /* tpsize */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            goto 4
      StackMap locals: int int
      StackMap stack:
         3: aload 1 /* h */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         4: areturn
        end local 3 // int tpsize
        end local 2 // int pc
        end local 1 // java.lang.invoke.MethodHandle h
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     1       h  Ljava/lang/invoke/MethodHandle;
            1    5     2      pc  I
            2    5     3  tpsize  I
}
SourceFile: "MethodHandles.java"
NestMembers:
  java.lang.invoke.MethodHandles$Lookup
InnerClasses:
  final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm
  Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName
  final ArrayAccess = java.lang.invoke.MethodHandleImpl$ArrayAccess of java.lang.invoke.MethodHandleImpl
  final Intrinsic = java.lang.invoke.MethodHandleImpl$Intrinsic of java.lang.invoke.MethodHandleImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final AccessMode = java.lang.invoke.VarHandle$AccessMode of java.lang.invoke.VarHandle