public class net.bytebuddy.build.Plugin$Factory$UsingReflection implements net.bytebuddy.build.Plugin$Factory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.bytebuddy.build.Plugin$Factory$UsingReflection
  super_class: java.lang.Object
{
  private final java.lang.Class<? extends net.bytebuddy.build.Plugin> type;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+Lnet/bytebuddy/build/Plugin;>;

  private final java.util.List<net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver> argumentResolvers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;>;

  public void <init>(java.lang.Class<? extends net.bytebuddy.build.Plugin>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
        start local 1 // java.lang.Class type
         0: .line 122
            aload 0 /* this */
            aload 1 /* type */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokespecial net.bytebuddy.build.Plugin$Factory$UsingReflection.<init>:(Ljava/lang/Class;Ljava/util/List;)V
         1: .line 123
            return
        end local 1 // java.lang.Class type
        end local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
            0    2     1  type  Ljava/lang/Class<+Lnet/bytebuddy/build/Plugin;>;
    Signature: (Ljava/lang/Class<+Lnet/bytebuddy/build/Plugin;>;)V
    MethodParameters:
      Name  Flags
      type  

  protected void <init>(java.lang.Class<? extends net.bytebuddy.build.Plugin>, java.util.List<net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
        start local 1 // java.lang.Class type
        start local 2 // java.util.List argumentResolvers
         0: .line 131
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 132
            aload 0 /* this */
            aload 1 /* type */
            putfield net.bytebuddy.build.Plugin$Factory$UsingReflection.type:Ljava/lang/Class;
         2: .line 133
            aload 0 /* this */
            aload 2 /* argumentResolvers */
            putfield net.bytebuddy.build.Plugin$Factory$UsingReflection.argumentResolvers:Ljava/util/List;
         3: .line 134
            return
        end local 2 // java.util.List argumentResolvers
        end local 1 // java.lang.Class type
        end local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
            0    4     1               type  Ljava/lang/Class<+Lnet/bytebuddy/build/Plugin;>;
            0    4     2  argumentResolvers  Ljava/util/List<Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;>;
    Signature: (Ljava/lang/Class<+Lnet/bytebuddy/build/Plugin;>;Ljava/util/List<Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;>;)V
    MethodParameters:
                   Name  Flags
      type               
      argumentResolvers  

  public net.bytebuddy.build.Plugin$Factory$UsingReflection with(net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver[]);
    descriptor: ([Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;)Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
        start local 1 // net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver[] argumentResolver
         0: .line 143
            aload 0 /* this */
            aload 1 /* argumentResolver */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual net.bytebuddy.build.Plugin$Factory$UsingReflection.with:(Ljava/util/List;)Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
            areturn
        end local 1 // net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver[] argumentResolver
        end local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
            0    1     1  argumentResolver  [Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;
    MethodParameters:
                  Name  Flags
      argumentResolver  

  public net.bytebuddy.build.Plugin$Factory$UsingReflection with(java.util.List<? extends net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver>);
    descriptor: (Ljava/util/List;)Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
        start local 1 // java.util.List argumentResolvers
         0: .line 153
            new net.bytebuddy.build.Plugin$Factory$UsingReflection
            dup
            aload 0 /* this */
            getfield net.bytebuddy.build.Plugin$Factory$UsingReflection.type:Ljava/lang/Class;
            aload 1 /* argumentResolvers */
            aload 0 /* this */
            getfield net.bytebuddy.build.Plugin$Factory$UsingReflection.argumentResolvers:Ljava/util/List;
            invokestatic net.bytebuddy.utility.CompoundList.of:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokespecial net.bytebuddy.build.Plugin$Factory$UsingReflection.<init>:(Ljava/lang/Class;Ljava/util/List;)V
            areturn
        end local 1 // java.util.List argumentResolvers
        end local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
            0    1     1  argumentResolvers  Ljava/util/List<+Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;>;
    Signature: (Ljava/util/List<+Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;>;)Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
    MethodParameters:
                   Name  Flags
      argumentResolvers  

  public net.bytebuddy.build.Plugin make();
    descriptor: ()Lnet/bytebuddy/build/Plugin;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=16, args_size=1
        start local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
         0: .line 161
            new net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator$Unresolved
            dup
            aload 0 /* this */
            getfield net.bytebuddy.build.Plugin$Factory$UsingReflection.type:Ljava/lang/Class;
            invokespecial net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator$Unresolved.<init>:(Ljava/lang/Class;)V
            astore 1 /* instantiator */
        start local 1 // net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator instantiator
         1: .line 163
            aload 0 /* this */
            getfield net.bytebuddy.build.Plugin$Factory$UsingReflection.type:Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 23
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator top int int java.lang.reflect.Constructor[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* constructor */
        start local 2 // java.lang.reflect.Constructor constructor
         3: .line 164
            aload 2 /* constructor */
            invokevirtual java.lang.reflect.Constructor.isSynthetic:()Z
            ifne 22
         4: .line 165
            new java.util.ArrayList
            dup
            aload 2 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* arguments */
        start local 6 // java.util.List arguments
         5: .line 166
            iconst_0
            istore 7 /* index */
        start local 7 // int index
         6: .line 167
            aload 2 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 20
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.util.List int top int int java.lang.Class[]
      StackMap stack:
         7: aload 11
            iload 9
            aaload
            astore 8 /* type */
        start local 8 // java.lang.Class type
         8: .line 168
            iconst_0
            istore 12 /* resolved */
        start local 12 // boolean resolved
         9: .line 169
            aload 0 /* this */
            getfield net.bytebuddy.build.Plugin$Factory$UsingReflection.argumentResolvers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 16
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.util.List int java.lang.Class int int java.lang.Class[] int top java.util.Iterator
      StackMap stack:
        10: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver
            astore 13 /* argumentResolver */
        start local 13 // net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver argumentResolver
        11: .line 170
            aload 13 /* argumentResolver */
            iload 7 /* index */
            aload 8 /* type */
            invokeinterface net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver.resolve:(ILjava/lang/Class;)Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver$Resolution;
            astore 15 /* resolution */
        start local 15 // net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver$Resolution resolution
        12: .line 171
            aload 15 /* resolution */
            invokeinterface net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver$Resolution.isResolved:()Z
            ifeq 16
        13: .line 172
            aload 6 /* arguments */
            aload 15 /* resolution */
            invokeinterface net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver$Resolution.getArgument:()Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 173
            iconst_1
            istore 12 /* resolved */
        15: .line 174
            goto 17
        end local 15 // net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver$Resolution resolution
        end local 13 // net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver argumentResolver
        16: .line 169
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        17: .line 177
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.util.List int java.lang.Class int int java.lang.Class[] int
      StackMap stack:
            iload 12 /* resolved */
            ifeq 24
        18: .line 178
            iinc 7 /* index */ 1
        end local 12 // boolean resolved
        end local 8 // java.lang.Class type
        19: .line 167
            iinc 9 1
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.util.List int top int int java.lang.Class[]
      StackMap stack:
        20: iload 9
            iload 10
            if_icmplt 7
        21: .line 183
            aload 1 /* instantiator */
            new net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator$Resolved
            dup
            aload 2 /* constructor */
            aload 6 /* arguments */
            invokespecial net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator$Resolved.<init>:(Ljava/lang/reflect/Constructor;Ljava/util/List;)V
            invokeinterface net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator.replaceBy:(Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$Instantiator$Resolved;)Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$Instantiator;
            astore 1 /* instantiator */
        end local 7 // int index
        end local 6 // java.util.List arguments
        end local 2 // java.lang.reflect.Constructor constructor
        22: .line 163
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator top int int java.lang.reflect.Constructor[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        23: iload 3
            iload 4
            if_icmplt 2
        24: .line 186
      StackMap locals: net.bytebuddy.build.Plugin$Factory$UsingReflection net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator
      StackMap stack:
            aload 1 /* instantiator */
            invokeinterface net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator.instantiate:()Lnet/bytebuddy/build/Plugin;
            areturn
        end local 1 // net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator instantiator
        end local 0 // net.bytebuddy.build.Plugin$Factory$UsingReflection this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0              this  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection;
            1   25     1      instantiator  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$Instantiator;
            3   22     2       constructor  Ljava/lang/reflect/Constructor<*>;
            5   22     6         arguments  Ljava/util/List<Ljava/lang/Object;>;
            6   22     7             index  I
            8   19     8              type  Ljava/lang/Class<*>;
            9   19    12          resolved  Z
           11   16    13  argumentResolver  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver;
           12   16    15        resolution  Lnet/bytebuddy/build/Plugin$Factory$UsingReflection$ArgumentResolver$Resolution;
}
SourceFile: "Plugin.java"
NestHost: net.bytebuddy.build.Plugin
InnerClasses:
  public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
  public abstract Factory = net.bytebuddy.build.Plugin$Factory of net.bytebuddy.build.Plugin
  public UsingReflection = net.bytebuddy.build.Plugin$Factory$UsingReflection of net.bytebuddy.build.Plugin$Factory
  public abstract ArgumentResolver = net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver of net.bytebuddy.build.Plugin$Factory$UsingReflection
  public abstract Resolution = net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver$Resolution of net.bytebuddy.build.Plugin$Factory$UsingReflection$ArgumentResolver
  protected abstract Instantiator = net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator of net.bytebuddy.build.Plugin$Factory$UsingReflection
  public Resolved = net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator$Resolved of net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator
  public Unresolved = net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator$Unresolved of net.bytebuddy.build.Plugin$Factory$UsingReflection$Instantiator
  public abstract Priority = net.bytebuddy.build.Plugin$Factory$UsingReflection$Priority of net.bytebuddy.build.Plugin$Factory$UsingReflection
    RuntimeVisibleAnnotations: 
      net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()