public class sun.misc.ProxyGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.misc.ProxyGenerator
  super_class: java.lang.Object
{
  private static final int CLASSFILE_MAJOR_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 49

  private static final int CLASSFILE_MINOR_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int CONSTANT_UTF8;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int CONSTANT_UNICODE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int CONSTANT_INTEGER;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int CONSTANT_FLOAT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int CONSTANT_LONG;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int CONSTANT_DOUBLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final int CONSTANT_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final int CONSTANT_STRING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int CONSTANT_FIELD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private static final int CONSTANT_METHOD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final int CONSTANT_INTERFACEMETHOD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final int CONSTANT_NAMEANDTYPE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  private static final int ACC_PUBLIC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int ACC_PRIVATE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int ACC_STATIC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int ACC_FINAL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int ACC_SUPER;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int opc_aconst_null;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int opc_iconst_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int opc_bipush;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int opc_sipush;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 17

  private static final int opc_ldc;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  private static final int opc_ldc_w;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 19

  private static final int opc_iload;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 21

  private static final int opc_lload;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 22

  private static final int opc_fload;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 23

  private static final int opc_dload;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 24

  private static final int opc_aload;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 25

  private static final int opc_iload_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 26

  private static final int opc_lload_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 30

  private static final int opc_fload_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  private static final int opc_dload_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 38

  private static final int opc_aload_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 42

  private static final int opc_astore;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 58

  private static final int opc_astore_0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 75

  private static final int opc_aastore;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 83

  private static final int opc_pop;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 87

  private static final int opc_dup;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 89

  private static final int opc_ireturn;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 172

  private static final int opc_lreturn;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 173

  private static final int opc_freturn;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 174

  private static final int opc_dreturn;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 175

  private static final int opc_areturn;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 176

  private static final int opc_return;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 177

  private static final int opc_getstatic;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 178

  private static final int opc_putstatic;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 179

  private static final int opc_getfield;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 180

  private static final int opc_invokevirtual;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 182

  private static final int opc_invokespecial;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 183

  private static final int opc_invokestatic;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 184

  private static final int opc_invokeinterface;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 185

  private static final int opc_new;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 187

  private static final int opc_anewarray;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 189

  private static final int opc_athrow;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 191

  private static final int opc_checkcast;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 192

  private static final int opc_wide;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 196

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

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

  private static final boolean saveGeneratedFiles;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.reflect.Method hashCodeMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method equalsMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method toStringMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Class[] interfaces;
    descriptor: [Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE

  private sun.misc.ProxyGenerator$ConstantPool cp;
    descriptor: Lsun/misc/ProxyGenerator$ConstantPool;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<sun.misc.ProxyGenerator$FieldInfo> fields;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lsun/misc/ProxyGenerator$FieldInfo;>;

  private java.util.List<sun.misc.ProxyGenerator$MethodInfo> methods;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lsun/misc/ProxyGenerator$MethodInfo;>;

  private java.util.Map<java.lang.String, java.util.List<sun.misc.ProxyGenerator$ProxyMethod>> proxyMethods;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;>;

  private int proxyMethodCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 53
            ldc Lsun/misc/ProxyGenerator;
            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 sun.misc.ProxyGenerator.$assertionsDisabled:Z
         3: .line 313
            new sun.security.action.GetBooleanAction
            dup
         4: .line 314
            ldc "sun.misc.ProxyGenerator.saveGeneratedFiles"
         5: .line 313
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         6: .line 312
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
         7: .line 314
            invokevirtual java.lang.Boolean.booleanValue:()Z
         8: .line 311
            putstatic sun.misc.ProxyGenerator.saveGeneratedFiles:Z
         9: .line 352
            ldc Ljava/lang/Object;
            ldc "hashCode"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic sun.misc.ProxyGenerator.hashCodeMethod:Ljava/lang/reflect/Method;
        10: .line 354
            ldc Ljava/lang/Object;
            ldc "equals"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        11: .line 353
            putstatic sun.misc.ProxyGenerator.equalsMethod:Ljava/lang/reflect/Method;
        12: .line 355
            ldc Ljava/lang/Object;
            ldc "toString"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic sun.misc.ProxyGenerator.toStringMethod:Ljava/lang/reflect/Method;
        13: .line 356
            goto 16
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        14: astore 0 /* e */
        start local 0 // java.lang.NoSuchMethodException e
        15: .line 357
            new java.lang.NoSuchMethodError
            dup
            aload 0 /* e */
            invokevirtual java.lang.NoSuchMethodException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodError.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.NoSuchMethodException e
        16: .line 359
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           15   16     0     e  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           9    13      14  Class java.lang.NoSuchMethodException

  public static byte[] generateProxyClass(java.lang.String, java.lang.Class[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class[] interfaces
         0: .line 322
            new sun.misc.ProxyGenerator
            dup
            aload 0 /* name */
            aload 1 /* interfaces */
            invokespecial sun.misc.ProxyGenerator.<init>:(Ljava/lang/String;[Ljava/lang/Class;)V
            astore 2 /* gen */
        start local 2 // sun.misc.ProxyGenerator gen
         1: .line 323
            aload 2 /* gen */
            invokevirtual sun.misc.ProxyGenerator.generateClassFile:()[B
            astore 3 /* classFile */
        start local 3 // byte[] classFile
         2: .line 325
            getstatic sun.misc.ProxyGenerator.saveGeneratedFiles:Z
            ifeq 5
         3: .line 327
            new sun.misc.ProxyGenerator$1
            dup
            aload 0 /* name */
            aload 3 /* classFile */
            invokespecial sun.misc.ProxyGenerator$1.<init>:(Ljava/lang/String;[B)V
         4: .line 326
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 343
      StackMap locals: sun.misc.ProxyGenerator byte[]
      StackMap stack:
            aload 3 /* classFile */
            areturn
        end local 3 // byte[] classFile
        end local 2 // sun.misc.ProxyGenerator gen
        end local 1 // java.lang.Class[] interfaces
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        name  Ljava/lang/String;
            0    6     1  interfaces  [Ljava/lang/Class;
            1    6     2         gen  Lsun/misc/ProxyGenerator;
            2    6     3   classFile  [B
    MethodParameters:
            Name  Flags
      name        final
      interfaces  

  private void <init>(java.lang.String, java.lang.Class[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // java.lang.String className
        start local 2 // java.lang.Class[] interfaces
         0: .line 393
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 368
            aload 0 /* this */
            new sun.misc.ProxyGenerator$ConstantPool
            dup
            invokespecial sun.misc.ProxyGenerator$ConstantPool.<init>:()V
            putfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
         2: .line 371
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
         3: .line 374
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
         4: .line 380
            aload 0 /* this */
         5: .line 381
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
         6: .line 384
            aload 0 /* this */
            iconst_0
            putfield sun.misc.ProxyGenerator.proxyMethodCount:I
         7: .line 394
            aload 0 /* this */
            aload 1 /* className */
            putfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
         8: .line 395
            aload 0 /* this */
            aload 2 /* interfaces */
            putfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
         9: .line 396
            return
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.String className
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/misc/ProxyGenerator;
            0   10     1   className  Ljava/lang/String;
            0   10     2  interfaces  [Ljava/lang/Class;
    MethodParameters:
            Name  Flags
      className   
      interfaces  

  private byte[] generateClassFile();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // sun.misc.ProxyGenerator this
         0: .line 416
            aload 0 /* this */
            getstatic sun.misc.ProxyGenerator.hashCodeMethod:Ljava/lang/reflect/Method;
            ldc Ljava/lang/Object;
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         1: .line 417
            aload 0 /* this */
            getstatic sun.misc.ProxyGenerator.equalsMethod:Ljava/lang/reflect/Method;
            ldc Ljava/lang/Object;
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         2: .line 418
            aload 0 /* this */
            getstatic sun.misc.ProxyGenerator.toStringMethod:Ljava/lang/reflect/Method;
            ldc Ljava/lang/Object;
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         3: .line 425
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         4: goto 12
         5: .line 426
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            iload 1 /* i */
            aaload
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            astore 2 /* methods */
        start local 2 // java.lang.reflect.Method[] methods
         6: .line 427
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         7: goto 10
         8: .line 428
      StackMap locals: java.lang.reflect.Method[] int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* methods */
            iload 3 /* j */
            aaload
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            iload 1 /* i */
            aaload
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         9: .line 427
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* j */
            aload 2 /* methods */
            arraylength
            if_icmplt 8
        end local 3 // int j
        end local 2 // java.lang.reflect.Method[] methods
        11: .line 425
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 1 /* i */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            arraylength
            if_icmplt 5
        end local 1 // int i
        13: .line 436
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 16
      StackMap locals: sun.misc.ProxyGenerator top java.util.Iterator
      StackMap stack:
        14: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 1 /* sigmethods */
        start local 1 // java.util.List sigmethods
        15: .line 437
            aload 1 /* sigmethods */
            invokestatic sun.misc.ProxyGenerator.checkReturnTypes:(Ljava/util/List;)V
        end local 1 // java.util.List sigmethods
        16: .line 436
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 445
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            aload 0 /* this */
            invokevirtual sun.misc.ProxyGenerator.generateConstructor:()Lsun/misc/ProxyGenerator$MethodInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 447
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 28
      StackMap locals:
      StackMap stack:
        19: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 1 /* sigmethods */
        start local 1 // java.util.List sigmethods
        20: .line 448
            aload 1 /* sigmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 27
      StackMap locals: sun.misc.ProxyGenerator java.util.List java.util.Iterator top java.util.Iterator
      StackMap stack:
        21: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 3 /* pm */
        start local 3 // sun.misc.ProxyGenerator$ProxyMethod pm
        22: .line 451
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            new sun.misc.ProxyGenerator$FieldInfo
            dup
            aload 0 /* this */
            aload 3 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.methodFieldName:Ljava/lang/String;
        23: .line 452
            ldc "Ljava/lang/reflect/Method;"
        24: .line 453
            bipush 10
            invokespecial sun.misc.ProxyGenerator$FieldInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
        25: .line 451
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 456
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            aload 3 /* pm */
            invokevirtual sun.misc.ProxyGenerator$ProxyMethod.generateMethod:()Lsun/misc/ProxyGenerator$MethodInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // sun.misc.ProxyGenerator$ProxyMethod pm
        27: .line 448
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 1 // java.util.List sigmethods
        28: .line 447
      StackMap locals: sun.misc.ProxyGenerator top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        29: .line 460
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            aload 0 /* this */
            invokevirtual sun.misc.ProxyGenerator.generateStaticInitializer:()Lsun/misc/ProxyGenerator$MethodInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        30: .line 462
            goto 33
      StackMap locals: sun.misc.ProxyGenerator
      StackMap stack: java.io.IOException
        31: pop
        32: .line 463
            new java.lang.InternalError
            dup
            ldc "unexpected I/O Exception"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ldc 65535
            if_icmple 35
        34: .line 467
            new java.lang.IllegalArgumentException
            dup
            ldc "method limit exceeded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ldc 65535
            if_icmple 37
        36: .line 470
            new java.lang.IllegalArgumentException
            dup
            ldc "field limit exceeded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        37: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            pop
        38: .line 482
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/reflect/Proxy"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            pop
        39: .line 483
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        40: goto 43
        41: .line 484
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            iload 1 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            pop
        42: .line 483
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 1 /* i */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            arraylength
            if_icmplt 41
        end local 1 // int i
        44: .line 491
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.setReadOnly:()V
        45: .line 493
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 1 /* bout */
        start local 1 // java.io.ByteArrayOutputStream bout
        46: .line 494
            new java.io.DataOutputStream
            dup
            aload 1 /* bout */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* dout */
        start local 2 // java.io.DataOutputStream dout
        47: .line 502
            aload 2 /* dout */
            ldc -889275714
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        48: .line 504
            aload 2 /* dout */
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        49: .line 506
            aload 2 /* dout */
            bipush 49
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        50: .line 508
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 2 /* dout */
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.write:(Ljava/io/OutputStream;)V
        51: .line 511
            aload 2 /* dout */
            bipush 49
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        52: .line 513
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        53: .line 515
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/reflect/Proxy"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        54: .line 518
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            arraylength
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        55: .line 520
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        56: goto 61
        57: .line 521
      StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream int
      StackMap stack:
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        58: .line 522
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            iload 3 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
        59: .line 521
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        60: .line 520
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        61: iload 3 /* i */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            arraylength
            if_icmplt 57
        end local 3 // int i
        62: .line 526
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        63: .line 528
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 66
      StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream top java.util.Iterator
      StackMap stack:
        64: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$FieldInfo
            astore 3 /* f */
        start local 3 // sun.misc.ProxyGenerator$FieldInfo f
        65: .line 529
            aload 3 /* f */
            aload 2 /* dout */
            invokevirtual sun.misc.ProxyGenerator$FieldInfo.write:(Ljava/io/DataOutputStream;)V
        end local 3 // sun.misc.ProxyGenerator$FieldInfo f
        66: .line 528
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 64
        67: .line 533
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        68: .line 535
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 71
      StackMap locals:
      StackMap stack:
        69: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$MethodInfo
            astore 3 /* m */
        start local 3 // sun.misc.ProxyGenerator$MethodInfo m
        70: .line 536
            aload 3 /* m */
            aload 2 /* dout */
            invokevirtual sun.misc.ProxyGenerator$MethodInfo.write:(Ljava/io/DataOutputStream;)V
        end local 3 // sun.misc.ProxyGenerator$MethodInfo m
        71: .line 535
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 69
        72: .line 540
            aload 2 /* dout */
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        73: .line 542
            goto 76
      StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream
      StackMap stack: java.io.IOException
        74: pop
        75: .line 543
            new java.lang.InternalError
            dup
            ldc "unexpected I/O Exception"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 546
      StackMap locals:
      StackMap stack:
            aload 1 /* bout */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 2 // java.io.DataOutputStream dout
        end local 1 // java.io.ByteArrayOutputStream bout
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   77     0        this  Lsun/misc/ProxyGenerator;
            4   13     1           i  I
            6   11     2     methods  [Ljava/lang/reflect/Method;
            7   11     3           j  I
           15   16     1  sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
           20   28     1  sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
           22   27     3          pm  Lsun/misc/ProxyGenerator$ProxyMethod;
           40   44     1           i  I
           46   77     1        bout  Ljava/io/ByteArrayOutputStream;
           47   77     2        dout  Ljava/io/DataOutputStream;
           56   62     3           i  I
           65   66     3           f  Lsun/misc/ProxyGenerator$FieldInfo;
           70   71     3           m  Lsun/misc/ProxyGenerator$MethodInfo;
      Exception table:
        from    to  target  type
          17    30      31  Class java.io.IOException
          47    73      74  Class java.io.IOException

  private void addProxyMethod(java.lang.reflect.Method, java.lang.Class);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // java.lang.reflect.Method m
        start local 2 // java.lang.Class fromClass
         0: .line 563
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 564
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 4 /* parameterTypes */
        start local 4 // java.lang.Class[] parameterTypes
         2: .line 565
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 5 /* returnType */
        start local 5 // java.lang.Class returnType
         3: .line 566
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
            astore 6 /* exceptionTypes */
        start local 6 // java.lang.Class[] exceptionTypes
         4: .line 568
            new java.lang.StringBuilder
            dup
            aload 3 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* parameterTypes */
            invokestatic sun.misc.ProxyGenerator.getParameterDescriptors:([Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* sig */
        start local 7 // java.lang.String sig
         5: .line 569
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            aload 7 /* sig */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* sigmethods */
        start local 8 // java.util.List sigmethods
         6: .line 570
            aload 8 /* sigmethods */
            ifnull 22
         7: .line 571
            aload 8 /* sigmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 20
      StackMap locals: sun.misc.ProxyGenerator java.lang.reflect.Method java.lang.Class java.lang.String java.lang.Class[] java.lang.Class java.lang.Class[] java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 9 /* pm */
        start local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
         9: .line 572
            aload 5 /* returnType */
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
            if_acmpne 20
        10: .line 579
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* legalExceptions */
        start local 11 // java.util.List legalExceptions
        11: .line 581
            aload 6 /* exceptionTypes */
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
            aload 11 /* legalExceptions */
        12: .line 580
            invokestatic sun.misc.ProxyGenerator.collectCompatibleTypes:([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
        13: .line 583
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
            aload 6 /* exceptionTypes */
            aload 11 /* legalExceptions */
        14: .line 582
            invokestatic sun.misc.ProxyGenerator.collectCompatibleTypes:([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
        15: .line 584
            aload 9 /* pm */
            aload 11 /* legalExceptions */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Class
            putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
        16: .line 585
            aload 9 /* pm */
        17: .line 586
            aload 11 /* legalExceptions */
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
        18: .line 585
            putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
        19: .line 587
            return
        end local 11 // java.util.List legalExceptions
        end local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
        20: .line 571
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        21: .line 590
            goto 24
        22: .line 591
      StackMap locals: sun.misc.ProxyGenerator java.lang.reflect.Method java.lang.Class java.lang.String java.lang.Class[] java.lang.Class java.lang.Class[] java.lang.String java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* sigmethods */
        23: .line 592
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            aload 7 /* sig */
            aload 8 /* sigmethods */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 594
      StackMap locals:
      StackMap stack:
            aload 8 /* sigmethods */
            new sun.misc.ProxyGenerator$ProxyMethod
            dup
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* parameterTypes */
            aload 5 /* returnType */
        25: .line 595
            aload 6 /* exceptionTypes */
            aload 2 /* fromClass */
            invokespecial sun.misc.ProxyGenerator$ProxyMethod.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Class;)V
        26: .line 594
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 596
            return
        end local 8 // java.util.List sigmethods
        end local 7 // java.lang.String sig
        end local 6 // java.lang.Class[] exceptionTypes
        end local 5 // java.lang.Class returnType
        end local 4 // java.lang.Class[] parameterTypes
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class fromClass
        end local 1 // java.lang.reflect.Method m
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lsun/misc/ProxyGenerator;
            0   28     1                m  Ljava/lang/reflect/Method;
            0   28     2        fromClass  Ljava/lang/Class;
            1   28     3             name  Ljava/lang/String;
            2   28     4   parameterTypes  [Ljava/lang/Class;
            3   28     5       returnType  Ljava/lang/Class;
            4   28     6   exceptionTypes  [Ljava/lang/Class;
            5   28     7              sig  Ljava/lang/String;
            6   28     8       sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
            9   20     9               pm  Lsun/misc/ProxyGenerator$ProxyMethod;
           11   20    11  legalExceptions  Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
           Name  Flags
      m          
      fromClass  

  private static void checkReturnTypes(java.util.List<sun.misc.ProxyGenerator$ProxyMethod>);
    descriptor: (Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.util.List methods
         0: .line 613
            aload 0 /* methods */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpge 2
         1: .line 614
            return
         2: .line 621
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 1 /* uncoveredReturnTypes */
        start local 1 // java.util.LinkedList uncoveredReturnTypes
         3: .line 624
            aload 0 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 31
      StackMap locals: java.util.List java.util.LinkedList top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 2 /* pm */
        start local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
         5: .line 625
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
            astore 4 /* newReturnType */
        start local 4 // java.lang.Class newReturnType
         6: .line 626
            aload 4 /* newReturnType */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 16
         7: .line 627
            new java.lang.IllegalArgumentException
            dup
         8: .line 628
            new java.lang.StringBuilder
            dup
            ldc "methods with same signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 629
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
        10: .line 630
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
        11: .line 629
            invokestatic sun.misc.ProxyGenerator.getFriendlyMethodSignature:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 631
            ldc " but incompatible return types: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 632
            aload 4 /* newReturnType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " and others"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 628
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 627
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 634
      StackMap locals: java.util.List java.util.LinkedList sun.misc.ProxyGenerator$ProxyMethod java.util.Iterator java.lang.Class
      StackMap stack:
            iconst_0
            istore 5 /* added */
        start local 5 // boolean added
        17: .line 640
            aload 1 /* uncoveredReturnTypes */
            invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
            astore 6 /* liter */
        start local 6 // java.util.ListIterator liter
        18: .line 641
            goto 28
        19: .line 642
      StackMap locals: int java.util.ListIterator
      StackMap stack:
            aload 6 /* liter */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* uncoveredReturnType */
        start local 7 // java.lang.Class uncoveredReturnType
        20: .line 648
            aload 4 /* newReturnType */
            aload 7 /* uncoveredReturnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 22
        21: .line 649
            getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
            ifne 31
            iload 5 /* added */
            ifeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 659
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 7 /* uncoveredReturnType */
            aload 4 /* newReturnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 28
        23: .line 661
            iload 5 /* added */
            ifne 27
        24: .line 662
            aload 6 /* liter */
            aload 4 /* newReturnType */
            invokeinterface java.util.ListIterator.set:(Ljava/lang/Object;)V
        25: .line 663
            iconst_1
            istore 5 /* added */
        26: .line 664
            goto 28
        27: .line 665
      StackMap locals:
      StackMap stack:
            aload 6 /* liter */
            invokeinterface java.util.ListIterator.remove:()V
        end local 7 // java.lang.Class uncoveredReturnType
        28: .line 641
      StackMap locals:
      StackMap stack:
            aload 6 /* liter */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 19
        29: .line 675
            iload 5 /* added */
            ifne 31
        30: .line 676
            aload 1 /* uncoveredReturnTypes */
            aload 4 /* newReturnType */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.ListIterator liter
        end local 5 // boolean added
        end local 4 // java.lang.Class newReturnType
        end local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
        31: .line 624
      StackMap locals: java.util.List java.util.LinkedList top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        32: .line 684
            aload 1 /* uncoveredReturnTypes */
            invokevirtual java.util.LinkedList.size:()I
            iconst_1
            if_icmple 40
        33: .line 685
            aload 0 /* methods */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 2 /* pm */
        start local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
        34: .line 686
            new java.lang.IllegalArgumentException
            dup
        35: .line 687
            new java.lang.StringBuilder
            dup
            ldc "methods with same signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 688
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
            invokestatic sun.misc.ProxyGenerator.getFriendlyMethodSignature:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 689
            ldc " but incompatible return types: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* uncoveredReturnTypes */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        38: .line 687
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 686
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
        40: .line 691
      StackMap locals: java.util.List java.util.LinkedList
      StackMap stack:
            return
        end local 1 // java.util.LinkedList uncoveredReturnTypes
        end local 0 // java.util.List methods
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   41     0               methods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
            3   41     1  uncoveredReturnTypes  Ljava/util/LinkedList<Ljava/lang/Class<*>;>;
            5   31     2                    pm  Lsun/misc/ProxyGenerator$ProxyMethod;
            6   31     4         newReturnType  Ljava/lang/Class<*>;
           17   31     5                 added  Z
           18   31     6                 liter  Ljava/util/ListIterator<Ljava/lang/Class<*>;>;
           20   28     7   uncoveredReturnType  Ljava/lang/Class<*>;
           34   40     2                    pm  Lsun/misc/ProxyGenerator$ProxyMethod;
    Signature: (Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;)V
    MethodParameters:
         Name  Flags
      methods  

  private sun.misc.ProxyGenerator$MethodInfo generateConstructor();
    descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // sun.misc.ProxyGenerator this
         0: .line 1141
            new sun.misc.ProxyGenerator$MethodInfo
            dup
            aload 0 /* this */
         1: .line 1142
            ldc "<init>"
            ldc "(Ljava/lang/reflect/InvocationHandler;)V"
         2: .line 1143
            iconst_1
         3: .line 1141
            invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
            astore 1 /* minfo */
        start local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
         4: .line 1145
            new java.io.DataOutputStream
            dup
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* out */
        start local 2 // java.io.DataOutputStream out
         5: .line 1147
            aload 0 /* this */
            iconst_0
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
         6: .line 1149
            aload 0 /* this */
            iconst_1
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
         7: .line 1151
            aload 2 /* out */
            sipush 183
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         8: .line 1152
            aload 2 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
         9: .line 1153
            ldc "java/lang/reflect/Proxy"
        10: .line 1154
            ldc "<init>"
            ldc "(Ljava/lang/reflect/InvocationHandler;)V"
        11: .line 1152
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        12: .line 1156
            aload 2 /* out */
            sipush 177
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        13: .line 1158
            aload 1 /* minfo */
            bipush 10
            putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
        14: .line 1159
            aload 1 /* minfo */
            iconst_2
            putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
        15: .line 1160
            aload 1 /* minfo */
            iconst_0
            newarray 9
            putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
        16: .line 1162
            aload 1 /* minfo */
            areturn
        end local 2 // java.io.DataOutputStream out
        end local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lsun/misc/ProxyGenerator;
            4   17     1  minfo  Lsun/misc/ProxyGenerator$MethodInfo;
            5   17     2    out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException

  private sun.misc.ProxyGenerator$MethodInfo generateStaticInitializer();
    descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=11, args_size=1
        start local 0 // sun.misc.ProxyGenerator this
         0: .line 1169
            new sun.misc.ProxyGenerator$MethodInfo
            dup
            aload 0 /* this */
         1: .line 1170
            ldc "<clinit>"
            ldc "()V"
            bipush 8
         2: .line 1169
            invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
            astore 1 /* minfo */
        start local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
         3: .line 1172
            iconst_1
            istore 2 /* localSlot0 */
        start local 2 // int localSlot0
         4: .line 1173
            iconst_0
            istore 4 /* tryBegin */
        start local 4 // short tryBegin
         5: .line 1175
            new java.io.DataOutputStream
            dup
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* out */
        start local 6 // java.io.DataOutputStream out
         6: .line 1177
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* sigmethods */
        start local 7 // java.util.List sigmethods
         8: .line 1178
            aload 7 /* sigmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 11
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream java.util.List java.util.Iterator top java.util.Iterator
      StackMap stack:
         9: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 9 /* pm */
        start local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
        10: .line 1179
            aload 9 /* pm */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator$ProxyMethod.codeFieldInitialization:(Ljava/io/DataOutputStream;)V
        end local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
        11: .line 1178
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 7 // java.util.List sigmethods
        12: .line 1177
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 1183
            aload 6 /* out */
            sipush 177
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        14: .line 1185
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2s
            dup
            istore 3 /* pc */
        start local 3 // short pc
        15: istore 5 /* tryEnd */
        start local 5 // short tryEnd
        16: .line 1187
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
            new sun.misc.ProxyGenerator$ExceptionTableEntry
            dup
        17: .line 1188
            iload 4 /* tryBegin */
            iload 5 /* tryEnd */
            iload 3 /* pc */
        18: .line 1189
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/NoSuchMethodException"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
        19: .line 1187
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 1191
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
        21: .line 1193
            aload 6 /* out */
            sipush 187
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        22: .line 1194
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/NoSuchMethodError"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        23: .line 1196
            aload 6 /* out */
            bipush 89
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        24: .line 1198
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
        25: .line 1200
            aload 6 /* out */
            sipush 182
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        26: .line 1201
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        27: .line 1202
            ldc "java/lang/Throwable"
            ldc "getMessage"
            ldc "()Ljava/lang/String;"
        28: .line 1201
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        29: .line 1204
            aload 6 /* out */
            sipush 183
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        30: .line 1205
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        31: .line 1206
            ldc "java/lang/NoSuchMethodError"
            ldc "<init>"
            ldc "(Ljava/lang/String;)V"
        32: .line 1205
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        33: .line 1208
            aload 6 /* out */
            sipush 191
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        34: .line 1210
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2s
            istore 3 /* pc */
        35: .line 1212
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
            new sun.misc.ProxyGenerator$ExceptionTableEntry
            dup
        36: .line 1213
            iload 4 /* tryBegin */
            iload 5 /* tryEnd */
            iload 3 /* pc */
        37: .line 1214
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/ClassNotFoundException"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
        38: .line 1212
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 1216
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
        40: .line 1218
            aload 6 /* out */
            sipush 187
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        41: .line 1219
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/NoClassDefFoundError"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        42: .line 1221
            aload 6 /* out */
            bipush 89
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        43: .line 1223
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
        44: .line 1225
            aload 6 /* out */
            sipush 182
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        45: .line 1226
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        46: .line 1227
            ldc "java/lang/Throwable"
            ldc "getMessage"
            ldc "()Ljava/lang/String;"
        47: .line 1226
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        48: .line 1229
            aload 6 /* out */
            sipush 183
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        49: .line 1230
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        50: .line 1231
            ldc "java/lang/NoClassDefFoundError"
        51: .line 1232
            ldc "<init>"
            ldc "(Ljava/lang/String;)V"
        52: .line 1230
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        53: .line 1234
            aload 6 /* out */
            sipush 191
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        54: .line 1236
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ldc 65535
            if_icmple 56
        55: .line 1237
            new java.lang.IllegalArgumentException
            dup
            ldc "code size limit exceeded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        56: .line 1240
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int int int int java.io.DataOutputStream
      StackMap stack:
            aload 1 /* minfo */
            bipush 10
            putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
        57: .line 1241
            aload 1 /* minfo */
            iload 2 /* localSlot0 */
            iconst_1
            iadd
            i2s
            putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
        58: .line 1242
            aload 1 /* minfo */
            iconst_0
            newarray 9
            putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
        59: .line 1244
            aload 1 /* minfo */
            areturn
        end local 6 // java.io.DataOutputStream out
        end local 5 // short tryEnd
        end local 4 // short tryBegin
        end local 3 // short pc
        end local 2 // int localSlot0
        end local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   60     0        this  Lsun/misc/ProxyGenerator;
            3   60     1       minfo  Lsun/misc/ProxyGenerator$MethodInfo;
            4   60     2  localSlot0  I
           15   60     3          pc  S
            5   60     4    tryBegin  S
           16   60     5      tryEnd  S
            6   60     6         out  Ljava/io/DataOutputStream;
            8   12     7  sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
           10   11     9          pm  Lsun/misc/ProxyGenerator$ProxyMethod;
    Exceptions:
      throws java.io.IOException

  private void code_iload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1261
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 21
            bipush 26
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1262
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_lload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1267
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 22
            bipush 30
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1268
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_fload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1273
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 23
            bipush 34
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1274
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_dload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1279
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 24
            bipush 38
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1280
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_aload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1285
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 25
            bipush 42
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1286
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_astore(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1315
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 58
            bipush 75
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1316
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void codeLocalLoadStore(int, int, int, java.io.DataOutputStream);
    descriptor: (IIILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // int opcode
        start local 3 // int opcode_0
        start local 4 // java.io.DataOutputStream out
         0: .line 1331
            getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
            ifne 2
            iload 1 /* lvar */
            iflt 1
            iload 1 /* lvar */
            ldc 65535
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1332
      StackMap locals:
      StackMap stack:
            iload 1 /* lvar */
            iconst_3
            if_icmpgt 5
         3: .line 1333
            aload 4 /* out */
            iload 3 /* opcode_0 */
            iload 1 /* lvar */
            iadd
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 1334
            goto 12
      StackMap locals:
      StackMap stack:
         5: iload 1 /* lvar */
            sipush 255
            if_icmpgt 9
         6: .line 1335
            aload 4 /* out */
            iload 2 /* opcode */
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 1336
            aload 4 /* out */
            iload 1 /* lvar */
            sipush 255
            iand
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         8: .line 1337
            goto 12
         9: .line 1342
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            sipush 196
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        10: .line 1343
            aload 4 /* out */
            iload 2 /* opcode */
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        11: .line 1344
            aload 4 /* out */
            iload 1 /* lvar */
            ldc 65535
            iand
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        12: .line 1346
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.io.DataOutputStream out
        end local 3 // int opcode_0
        end local 2 // int opcode
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/misc/ProxyGenerator;
            0   13     1      lvar  I
            0   13     2    opcode  I
            0   13     3  opcode_0  I
            0   13     4       out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      lvar      
      opcode    
      opcode_0  
      out       

  private void code_ldc(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int index
        start local 2 // java.io.DataOutputStream out
         0: .line 1356
            getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
            ifne 2
            iload 1 /* index */
            iflt 1
            iload 1 /* index */
            ldc 65535
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1357
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            sipush 255
            if_icmpgt 6
         3: .line 1358
            aload 2 /* out */
            bipush 18
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 1359
            aload 2 /* out */
            iload 1 /* index */
            sipush 255
            iand
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         5: .line 1360
            goto 8
         6: .line 1361
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            bipush 19
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 1362
            aload 2 /* out */
            iload 1 /* index */
            ldc 65535
            iand
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         8: .line 1364
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int index
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lsun/misc/ProxyGenerator;
            0    9     1  index  I
            0    9     2    out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  
      out    

  private void code_ipush(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int value
        start local 2 // java.io.DataOutputStream out
         0: .line 1375
            iload 1 /* value */
            iconst_m1
            if_icmplt 3
            iload 1 /* value */
            iconst_5
            if_icmpgt 3
         1: .line 1376
            aload 2 /* out */
            iconst_3
            iload 1 /* value */
            iadd
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 1377
            goto 12
      StackMap locals:
      StackMap stack:
         3: iload 1 /* value */
            bipush -128
            if_icmplt 7
            iload 1 /* value */
            bipush 127
            if_icmpgt 7
         4: .line 1378
            aload 2 /* out */
            bipush 16
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         5: .line 1379
            aload 2 /* out */
            iload 1 /* value */
            sipush 255
            iand
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         6: .line 1380
            goto 12
      StackMap locals:
      StackMap stack:
         7: iload 1 /* value */
            sipush -32768
            if_icmplt 11
            iload 1 /* value */
            sipush 32767
            if_icmpgt 11
         8: .line 1381
            aload 2 /* out */
            bipush 17
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         9: .line 1382
            aload 2 /* out */
            iload 1 /* value */
            ldc 65535
            iand
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        10: .line 1383
            goto 12
        11: .line 1384
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1386
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int value
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lsun/misc/ProxyGenerator;
            0   13     1  value  I
            0   13     2    out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      value  
      out    

  private void codeClassForName(java.lang.Class, java.io.DataOutputStream);
    descriptor: (Ljava/lang/Class;Ljava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // java.lang.Class cl
        start local 2 // java.io.DataOutputStream out
         0: .line 1397
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 1 /* cl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getString:(Ljava/lang/String;)S
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_ldc:(ILjava/io/DataOutputStream;)V
         1: .line 1399
            aload 2 /* out */
            sipush 184
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 1400
            aload 2 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
         3: .line 1401
            ldc "java/lang/Class"
         4: .line 1402
            ldc "forName"
            ldc "(Ljava/lang/String;)Ljava/lang/Class;"
         5: .line 1400
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         6: .line 1403
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // java.lang.Class cl
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/misc/ProxyGenerator;
            0    7     1    cl  Ljava/lang/Class;
            0    7     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cl    
      out   

  private static java.lang.String dotToSlash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 1418
            aload 0 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.String getMethodDescriptor(java.lang.Class[], java.lang.Class);
    descriptor: ([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class[] parameterTypes
        start local 1 // java.lang.Class returnType
         0: .line 1428
            new java.lang.StringBuilder
            dup
            aload 0 /* parameterTypes */
            invokestatic sun.misc.ProxyGenerator.getParameterDescriptors:([Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 1429
            aload 1 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 2
            ldc "V"
            goto 3
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         2: aload 1 /* returnType */
            invokestatic sun.misc.ProxyGenerator.getFieldType:(Ljava/lang/Class;)Ljava/lang/String;
      StackMap locals: java.lang.Class[] java.lang.Class
      StackMap stack: java.lang.StringBuilder java.lang.String
         3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 1428
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Class returnType
        end local 0 // java.lang.Class[] parameterTypes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  parameterTypes  [Ljava/lang/Class;
            0    5     1      returnType  Ljava/lang/Class;
    MethodParameters:
                Name  Flags
      parameterTypes  
      returnType      

  private static java.lang.String getParameterDescriptors(java.lang.Class[]);
    descriptor: ([Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class[] parameterTypes
         0: .line 1440
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* desc */
        start local 1 // java.lang.StringBuilder desc
         1: .line 1441
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 1442
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* desc */
            aload 0 /* parameterTypes */
            iload 2 /* i */
            aaload
            invokestatic sun.misc.ProxyGenerator.getFieldType:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1441
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* parameterTypes */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 1444
            aload 1 /* desc */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 1445
            aload 1 /* desc */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder desc
        end local 0 // java.lang.Class[] parameterTypes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0  parameterTypes  [Ljava/lang/Class;
            1    8     1            desc  Ljava/lang/StringBuilder;
            2    6     2               i  I
    MethodParameters:
                Name  Flags
      parameterTypes  

  private static java.lang.String getFieldType(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 1454
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 2
         1: .line 1455
            aload 0 /* type */
            invokestatic sun.misc.ProxyGenerator$PrimitiveTypeInfo.get:(Ljava/lang/Class;)Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
            getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.baseTypeString:Ljava/lang/String;
            areturn
         2: .line 1456
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 4
         3: .line 1464
            aload 0 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
         4: .line 1466
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "L"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  type  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.String getFriendlyMethodSignature(java.lang.String, java.lang.Class[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class[] parameterTypes
         0: .line 1477
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sig */
        start local 2 // java.lang.StringBuilder sig
         1: .line 1478
            aload 2 /* sig */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 1479
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 17
         4: .line 1480
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 3 /* i */
            ifle 6
         5: .line 1481
            aload 2 /* sig */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 1483
      StackMap locals:
      StackMap stack:
            aload 1 /* parameterTypes */
            iload 3 /* i */
            aaload
            astore 4 /* parameterType */
        start local 4 // java.lang.Class parameterType
         7: .line 1484
            iconst_0
            istore 5 /* dimensions */
        start local 5 // int dimensions
         8: .line 1485
            goto 11
         9: .line 1486
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 4 /* parameterType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 4 /* parameterType */
        10: .line 1487
            iinc 5 /* dimensions */ 1
        11: .line 1485
      StackMap locals:
      StackMap stack:
            aload 4 /* parameterType */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 9
        12: .line 1489
            aload 2 /* sig */
            aload 4 /* parameterType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1490
            goto 15
        14: .line 1491
      StackMap locals:
      StackMap stack:
            aload 2 /* sig */
            ldc "[]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 1490
      StackMap locals:
      StackMap stack:
            iload 5 /* dimensions */
            iinc 5 /* dimensions */ -1
            ifgt 14
        end local 5 // int dimensions
        end local 4 // java.lang.Class parameterType
        16: .line 1479
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            aload 1 /* parameterTypes */
            arraylength
            if_icmplt 4
        end local 3 // int i
        18: .line 1494
            aload 2 /* sig */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 1495
            aload 2 /* sig */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sig
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            name  Ljava/lang/String;
            0   20     1  parameterTypes  [Ljava/lang/Class;
            1   20     2             sig  Ljava/lang/StringBuilder;
            3   18     3               i  I
            7   16     4   parameterType  Ljava/lang/Class;
            8   16     5      dimensions  I
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  

  private static int getWordsPerType(java.lang.Class);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 1508
            aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 2
         1: .line 1509
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         2: .line 1511
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      type  

  private static void collectCompatibleTypes(java.lang.Class<?>[], java.lang.Class<?>[], java.util.List<java.lang.Class<?>>);
    descriptor: ([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.Class[] from
        start local 1 // java.lang.Class[] with
        start local 2 // java.util.List list
         0: .line 1528
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 11
         2: .line 1529
      StackMap locals: int
      StackMap stack:
            aload 2 /* list */
            aload 0 /* from */
            iload 3 /* i */
            aaload
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 10
         3: .line 1530
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         4: goto 9
         5: .line 1531
      StackMap locals: int
      StackMap stack:
            aload 1 /* with */
            iload 4 /* j */
            aaload
            aload 0 /* from */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         6: .line 1532
            aload 2 /* list */
            aload 0 /* from */
            iload 3 /* i */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1533
            goto 10
         8: .line 1530
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* j */
            aload 1 /* with */
            arraylength
            if_icmplt 5
        end local 4 // int j
        10: .line 1528
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            aload 0 /* from */
            arraylength
            if_icmplt 2
        end local 3 // int i
        12: .line 1538
            return
        end local 2 // java.util.List list
        end local 1 // java.lang.Class[] with
        end local 0 // java.lang.Class[] from
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  from  [Ljava/lang/Class;
            0   13     1  with  [Ljava/lang/Class;
            0   13     2  list  Ljava/util/List<Ljava/lang/Class<*>;>;
            1   12     3     i  I
            4   10     4     j  I
    Signature: ([Ljava/lang/Class<*>;[Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
    MethodParameters:
      Name  Flags
      from  
      with  
      list  

  private static java.util.List<java.lang.Class<?>> computeUniqueCatchList(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.Class[] exceptions
         0: .line 1562
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* uniqueList */
        start local 1 // java.util.List uniqueList
         1: .line 1565
            aload 1 /* uniqueList */
            ldc Ljava/lang/Error;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1566
            aload 1 /* uniqueList */
            ldc Ljava/lang/RuntimeException;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1569
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 23
         5: .line 1570
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* exceptions */
            iload 2 /* i */
            aaload
            astore 3 /* ex */
        start local 3 // java.lang.Class ex
         6: .line 1571
            aload 3 /* ex */
            ldc Ljava/lang/Throwable;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         7: .line 1577
            aload 1 /* uniqueList */
            invokeinterface java.util.List.clear:()V
         8: .line 1578
            goto 24
         9: .line 1579
      StackMap locals: java.lang.Class
      StackMap stack:
            ldc Ljava/lang/Throwable;
            aload 3 /* ex */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 11
        10: .line 1583
            goto 22
        11: .line 1589
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* j */
        start local 4 // int j
        12: goto 20
        13: .line 1590
      StackMap locals: int
      StackMap stack:
            aload 1 /* uniqueList */
            iload 4 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* ex2 */
        start local 5 // java.lang.Class ex2
        14: .line 1591
            aload 5 /* ex2 */
            aload 3 /* ex */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 16
        15: .line 1596
            goto 22
        16: .line 1597
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* ex */
            aload 5 /* ex2 */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
        17: .line 1602
            aload 1 /* uniqueList */
            iload 4 /* j */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        18: .line 1603
            goto 20
        19: .line 1604
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ 1
        end local 5 // java.lang.Class ex2
        20: .line 1589
      StackMap locals:
      StackMap stack:
            iload 4 /* j */
            aload 1 /* uniqueList */
            invokeinterface java.util.List.size:()I
            if_icmplt 13
        end local 4 // int j
        21: .line 1608
            aload 1 /* uniqueList */
            aload 3 /* ex */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Class ex
        22: .line 1569
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 2 /* i */
            aload 0 /* exceptions */
            arraylength
            if_icmplt 5
        end local 2 // int i
        24: .line 1610
      StackMap locals:
      StackMap stack:
            aload 1 /* uniqueList */
            areturn
        end local 1 // java.util.List uniqueList
        end local 0 // java.lang.Class[] exceptions
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0  exceptions  [Ljava/lang/Class;
            1   25     1  uniqueList  Ljava/util/List<Ljava/lang/Class<*>;>;
            4   24     2           i  I
            6   22     3          ex  Ljava/lang/Class<*>;
           12   21     4           j  I
           14   20     5         ex2  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
            Name  Flags
      exceptions  
}
SourceFile: "ProxyGenerator.java"
NestMembers:
  sun.misc.ProxyGenerator$1  sun.misc.ProxyGenerator$ConstantPool  sun.misc.ProxyGenerator$ConstantPool$Entry  sun.misc.ProxyGenerator$ConstantPool$IndirectEntry  sun.misc.ProxyGenerator$ConstantPool$ValueEntry  sun.misc.ProxyGenerator$ExceptionTableEntry  sun.misc.ProxyGenerator$FieldInfo  sun.misc.ProxyGenerator$MethodInfo  sun.misc.ProxyGenerator$PrimitiveTypeInfo  sun.misc.ProxyGenerator$ProxyMethod
InnerClasses:
  sun.misc.ProxyGenerator$1
  private ConstantPool = sun.misc.ProxyGenerator$ConstantPool of sun.misc.ProxyGenerator
  private ExceptionTableEntry = sun.misc.ProxyGenerator$ExceptionTableEntry of sun.misc.ProxyGenerator
  private FieldInfo = sun.misc.ProxyGenerator$FieldInfo of sun.misc.ProxyGenerator
  private MethodInfo = sun.misc.ProxyGenerator$MethodInfo of sun.misc.ProxyGenerator
  private PrimitiveTypeInfo = sun.misc.ProxyGenerator$PrimitiveTypeInfo of sun.misc.ProxyGenerator
  private ProxyMethod = sun.misc.ProxyGenerator$ProxyMethod of sun.misc.ProxyGenerator