public class java.beans.XMLEncoder extends java.beans.Encoder implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.beans.XMLEncoder
  super_class: java.beans.Encoder
{
  private final java.nio.charset.CharsetEncoder encoder;
    descriptor: Ljava/nio/charset/CharsetEncoder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String charset;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean declaration;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.io.OutputStreamWriter out;
    descriptor: Ljava/io/OutputStreamWriter;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object owner;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

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

  private boolean internal;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.Object, java.beans.XMLEncoder$ValueData> valueToExpression;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/beans/XMLEncoder$ValueData;>;

  private java.util.Map<java.lang.Object, java.util.List<java.beans.Statement>> targetToStatementList;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/util/List<Ljava/beans/Statement;>;>;

  private boolean preambleWritten;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.beans.NameGenerator nameGenerator;
    descriptor: Ljava/beans/NameGenerator;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.io.OutputStream out
         0: .line 242
            aload 0 /* this */
            aload 1 /* out */
            ldc "UTF-8"
            iconst_1
            iconst_0
            invokespecial java.beans.XMLEncoder.<init>:(Ljava/io/OutputStream;Ljava/lang/String;ZI)V
         1: .line 243
            return
        end local 1 // java.io.OutputStream out
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/beans/XMLEncoder;
            0    2     1   out  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      out   

  public void <init>(java.io.OutputStream, java.lang.String, boolean, int);
    descriptor: (Ljava/io/OutputStream;Ljava/lang/String;ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.io.OutputStream out
        start local 2 // java.lang.String charset
        start local 3 // boolean declaration
        start local 4 // int indentation
         0: .line 277
            aload 0 /* this */
            invokespecial java.beans.Encoder.<init>:()V
         1: .line 215
            aload 0 /* this */
            iconst_0
            putfield java.beans.XMLEncoder.indentation:I
         2: .line 216
            aload 0 /* this */
            iconst_0
            putfield java.beans.XMLEncoder.internal:Z
         3: .line 219
            aload 0 /* this */
            iconst_0
            putfield java.beans.XMLEncoder.preambleWritten:Z
         4: .line 278
            aload 1 /* out */
            ifnonnull 6
         5: .line 279
            new java.lang.IllegalArgumentException
            dup
            ldc "the output stream cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 281
      StackMap locals: java.beans.XMLEncoder java.io.OutputStream java.lang.String int int
      StackMap stack:
            iload 4 /* indentation */
            ifge 8
         7: .line 282
            new java.lang.IllegalArgumentException
            dup
            ldc "the indentation must be >= 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 284
      StackMap locals:
      StackMap stack:
            aload 2 /* charset */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 5 /* cs */
        start local 5 // java.nio.charset.Charset cs
         9: .line 285
            aload 0 /* this */
            aload 5 /* cs */
            invokevirtual java.nio.charset.Charset.newEncoder:()Ljava/nio/charset/CharsetEncoder;
            putfield java.beans.XMLEncoder.encoder:Ljava/nio/charset/CharsetEncoder;
        10: .line 286
            aload 0 /* this */
            aload 2 /* charset */
            putfield java.beans.XMLEncoder.charset:Ljava/lang/String;
        11: .line 287
            aload 0 /* this */
            iload 3 /* declaration */
            putfield java.beans.XMLEncoder.declaration:Z
        12: .line 288
            aload 0 /* this */
            iload 4 /* indentation */
            putfield java.beans.XMLEncoder.indentation:I
        13: .line 289
            aload 0 /* this */
            new java.io.OutputStreamWriter
            dup
            aload 1 /* out */
            aload 5 /* cs */
            invokevirtual java.nio.charset.Charset.newEncoder:()Ljava/nio/charset/CharsetEncoder;
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/CharsetEncoder;)V
            putfield java.beans.XMLEncoder.out:Ljava/io/OutputStreamWriter;
        14: .line 290
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield java.beans.XMLEncoder.valueToExpression:Ljava/util/Map;
        15: .line 291
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield java.beans.XMLEncoder.targetToStatementList:Ljava/util/Map;
        16: .line 292
            aload 0 /* this */
            new java.beans.NameGenerator
            dup
            invokespecial java.beans.NameGenerator.<init>:()V
            putfield java.beans.XMLEncoder.nameGenerator:Ljava/beans/NameGenerator;
        17: .line 293
            return
        end local 5 // java.nio.charset.Charset cs
        end local 4 // int indentation
        end local 3 // boolean declaration
        end local 2 // java.lang.String charset
        end local 1 // java.io.OutputStream out
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Ljava/beans/XMLEncoder;
            0   18     1          out  Ljava/io/OutputStream;
            0   18     2      charset  Ljava/lang/String;
            0   18     3  declaration  Z
            0   18     4  indentation  I
            9   18     5           cs  Ljava/nio/charset/Charset;
    MethodParameters:
             Name  Flags
      out          
      charset      
      declaration  
      indentation  

  public void setOwner(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.Object owner
         0: .line 303
            aload 0 /* this */
            aload 1 /* owner */
            putfield java.beans.XMLEncoder.owner:Ljava/lang/Object;
         1: .line 304
            aload 0 /* this */
            new java.beans.Expression
            dup
            aload 0 /* this */
            ldc "getOwner"
            iconst_0
            anewarray java.lang.Object
            invokespecial java.beans.Expression.<init>:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
            invokevirtual java.beans.XMLEncoder.writeExpression:(Ljava/beans/Expression;)V
         2: .line 305
            return
        end local 1 // java.lang.Object owner
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljava/beans/XMLEncoder;
            0    3     1  owner  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      owner  

  public java.lang.Object getOwner();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.beans.XMLEncoder this
         0: .line 315
            aload 0 /* this */
            getfield java.beans.XMLEncoder.owner:Ljava/lang/Object;
            areturn
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/beans/XMLEncoder;

  public void writeObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.Object o
         0: .line 326
            aload 0 /* this */
            getfield java.beans.XMLEncoder.internal:Z
            ifeq 3
         1: .line 327
            aload 0 /* this */
            aload 1 /* o */
            invokespecial java.beans.Encoder.writeObject:(Ljava/lang/Object;)V
         2: .line 328
            goto 4
         3: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.beans.Statement
            dup
            aload 0 /* this */
            ldc "writeObject"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* o */
            aastore
            invokespecial java.beans.Statement.<init>:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
            invokevirtual java.beans.XMLEncoder.writeStatement:(Ljava/beans/Statement;)V
         4: .line 332
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object o
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/beans/XMLEncoder;
            0    5     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  private java.util.List<java.beans.Statement> statementList();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.Object target
         0: .line 335
            aload 0 /* this */
            getfield java.beans.XMLEncoder.targetToStatementList:Ljava/util/Map;
            aload 1 /* target */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 336
            aload 2 /* list */
            ifnonnull 4
         2: .line 337
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* list */
         3: .line 338
            aload 0 /* this */
            getfield java.beans.XMLEncoder.targetToStatementList:Ljava/util/Map;
            aload 1 /* target */
            aload 2 /* list */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 340
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* list */
            areturn
        end local 2 // java.util.List list
        end local 1 // java.lang.Object target
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljava/beans/XMLEncoder;
            0    5     1  target  Ljava/lang/Object;
            1    5     2    list  Ljava/util/List<Ljava/beans/Statement;>;
    Signature: (Ljava/lang/Object;)Ljava/util/List<Ljava/beans/Statement;>;
    MethodParameters:
        Name  Flags
      target  

  private void mark(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.Object o
        start local 2 // boolean isArgument
         0: .line 345
            aload 1 /* o */
            ifnull 1
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 346
      StackMap locals:
      StackMap stack:
            return
         2: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual java.beans.XMLEncoder.getValueData:(Ljava/lang/Object;)Ljava/beans/XMLEncoder$ValueData;
            astore 3 /* d */
        start local 3 // java.beans.XMLEncoder$ValueData d
         3: .line 349
            aload 3 /* d */
            getfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
            astore 4 /* exp */
        start local 4 // java.beans.Expression exp
         4: .line 352
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/lang/String;
            if_acmpne 6
            aload 4 /* exp */
            ifnonnull 6
         5: .line 353
            return
         6: .line 357
      StackMap locals: java.beans.XMLEncoder$ValueData java.beans.Expression
      StackMap stack:
            iload 2 /* isArgument */
            ifeq 8
         7: .line 358
            aload 3 /* d */
            dup
            getfield java.beans.XMLEncoder$ValueData.refs:I
            iconst_1
            iadd
            putfield java.beans.XMLEncoder$ValueData.refs:I
         8: .line 360
      StackMap locals:
      StackMap stack:
            aload 3 /* d */
            getfield java.beans.XMLEncoder$ValueData.marked:Z
            ifeq 10
         9: .line 361
            return
        10: .line 363
      StackMap locals:
      StackMap stack:
            aload 3 /* d */
            iconst_1
            putfield java.beans.XMLEncoder$ValueData.marked:Z
        11: .line 364
            aload 4 /* exp */
            invokevirtual java.beans.Expression.getTarget:()Ljava/lang/Object;
            astore 5 /* target */
        start local 5 // java.lang.Object target
        12: .line 365
            aload 0 /* this */
            aload 4 /* exp */
            invokevirtual java.beans.XMLEncoder.mark:(Ljava/beans/Statement;)V
        13: .line 366
            aload 5 /* target */
            instanceof java.lang.Class
            ifne 16
        14: .line 367
            aload 0 /* this */
            aload 5 /* target */
            invokevirtual java.beans.XMLEncoder.statementList:(Ljava/lang/Object;)Ljava/util/List;
            aload 4 /* exp */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 370
            aload 3 /* d */
            dup
            getfield java.beans.XMLEncoder$ValueData.refs:I
            iconst_1
            iadd
            putfield java.beans.XMLEncoder$ValueData.refs:I
        16: .line 372
      StackMap locals: java.lang.Object
      StackMap stack:
            return
        end local 5 // java.lang.Object target
        end local 4 // java.beans.Expression exp
        end local 3 // java.beans.XMLEncoder$ValueData d
        end local 2 // boolean isArgument
        end local 1 // java.lang.Object o
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Ljava/beans/XMLEncoder;
            0   17     1           o  Ljava/lang/Object;
            0   17     2  isArgument  Z
            3   17     3           d  Ljava/beans/XMLEncoder$ValueData;
            4   17     4         exp  Ljava/beans/Expression;
           12   17     5      target  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      o           
      isArgument  

  private void mark(java.beans.Statement);
    descriptor: (Ljava/beans/Statement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.beans.Statement stm
         0: .line 375
            aload 1 /* stm */
            invokevirtual java.beans.Statement.getArguments:()[Ljava/lang/Object;
            astore 2 /* args */
        start local 2 // java.lang.Object[] args
         1: .line 376
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 377
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 2 /* args */
            iload 3 /* i */
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
         4: .line 378
            aload 0 /* this */
            aload 4 /* arg */
            iconst_1
            invokevirtual java.beans.XMLEncoder.mark:(Ljava/lang/Object;Z)V
        end local 4 // java.lang.Object arg
         5: .line 376
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* args */
            arraylength
            if_icmplt 3
        end local 3 // int i
         7: .line 380
            aload 0 /* this */
            aload 1 /* stm */
            invokevirtual java.beans.Statement.getTarget:()Ljava/lang/Object;
            aload 1 /* stm */
            instanceof java.beans.Expression
            invokevirtual java.beans.XMLEncoder.mark:(Ljava/lang/Object;Z)V
         8: .line 381
            return
        end local 2 // java.lang.Object[] args
        end local 1 // java.beans.Statement stm
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/beans/XMLEncoder;
            0    9     1   stm  Ljava/beans/Statement;
            1    9     2  args  [Ljava/lang/Object;
            2    7     3     i  I
            4    5     4   arg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      stm   

  public void writeStatement(java.beans.Statement);
    descriptor: (Ljava/beans/Statement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.beans.Statement oldStm
         0: .line 397
            aload 0 /* this */
            getfield java.beans.XMLEncoder.internal:Z
            istore 2 /* internal */
        start local 2 // boolean internal
         1: .line 398
            aload 0 /* this */
            iconst_1
            putfield java.beans.XMLEncoder.internal:Z
         2: .line 400
            aload 0 /* this */
            aload 1 /* oldStm */
            invokespecial java.beans.Encoder.writeStatement:(Ljava/beans/Statement;)V
         3: .line 409
            aload 0 /* this */
            aload 1 /* oldStm */
            invokevirtual java.beans.XMLEncoder.mark:(Ljava/beans/Statement;)V
         4: .line 410
            aload 1 /* oldStm */
            invokevirtual java.beans.Statement.getTarget:()Ljava/lang/Object;
            astore 3 /* target */
        start local 3 // java.lang.Object target
         5: .line 411
            aload 3 /* target */
            instanceof java.lang.reflect.Field
            ifeq 14
         6: .line 412
            aload 1 /* oldStm */
            invokevirtual java.beans.Statement.getMethodName:()Ljava/lang/String;
            astore 4 /* method */
        start local 4 // java.lang.String method
         7: .line 413
            aload 1 /* oldStm */
            invokevirtual java.beans.Statement.getArguments:()[Ljava/lang/Object;
            astore 5 /* args */
        start local 5 // java.lang.Object[] args
         8: .line 414
            aload 4 /* method */
            ifnull 14
            aload 5 /* args */
            ifnull 14
         9: .line 416
            aload 4 /* method */
            ldc "get"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
            aload 5 /* args */
            arraylength
            iconst_1
            if_icmpne 12
        10: .line 417
            aload 5 /* args */
            iconst_0
            aaload
            astore 3 /* target */
        11: .line 418
            goto 14
        12: .line 419
      StackMap locals: java.beans.XMLEncoder java.beans.Statement int java.lang.Object java.lang.String java.lang.Object[]
      StackMap stack:
            aload 4 /* method */
            ldc "set"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
            aload 5 /* args */
            arraylength
            iconst_2
            if_icmpne 14
        13: .line 420
            aload 5 /* args */
            iconst_0
            aaload
            astore 3 /* target */
        end local 5 // java.lang.Object[] args
        end local 4 // java.lang.String method
        14: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* target */
            invokevirtual java.beans.XMLEncoder.statementList:(Ljava/lang/Object;)Ljava/util/List;
            aload 1 /* oldStm */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Object target
        15: .line 424
            goto 18
        16: .line 425
      StackMap locals: java.beans.XMLEncoder java.beans.Statement int
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        17: .line 426
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.getExceptionListener:()Ljava/beans/ExceptionListener;
            new java.lang.Exception
            dup
            new java.lang.StringBuilder
            dup
            ldc "XMLEncoder: discarding statement "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* oldStm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface java.beans.ExceptionListener.exceptionThrown:(Ljava/lang/Exception;)V
        end local 3 // java.lang.Exception e
        18: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* internal */
            putfield java.beans.XMLEncoder.internal:Z
        19: .line 429
            return
        end local 2 // boolean internal
        end local 1 // java.beans.Statement oldStm
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Ljava/beans/XMLEncoder;
            0   20     1    oldStm  Ljava/beans/Statement;
            1   20     2  internal  Z
            5   15     3    target  Ljava/lang/Object;
            7   14     4    method  Ljava/lang/String;
            8   14     5      args  [Ljava/lang/Object;
           17   18     3         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    15      16  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      oldStm  

  public void writeExpression(java.beans.Expression);
    descriptor: (Ljava/beans/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.beans.Expression oldExp
         0: .line 449
            aload 0 /* this */
            getfield java.beans.XMLEncoder.internal:Z
            istore 2 /* internal */
        start local 2 // boolean internal
         1: .line 450
            aload 0 /* this */
            iconst_1
            putfield java.beans.XMLEncoder.internal:Z
         2: .line 451
            aload 0 /* this */
            aload 1 /* oldExp */
            invokevirtual java.beans.XMLEncoder.getValue:(Ljava/beans/Expression;)Ljava/lang/Object;
            astore 3 /* oldValue */
        start local 3 // java.lang.Object oldValue
         3: .line 452
            aload 0 /* this */
            aload 3 /* oldValue */
            invokevirtual java.beans.XMLEncoder.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 4
            aload 3 /* oldValue */
            instanceof java.lang.String
            ifeq 6
            iload 2 /* internal */
            ifne 6
         4: .line 453
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 3 /* oldValue */
            invokevirtual java.beans.XMLEncoder.getValueData:(Ljava/lang/Object;)Ljava/beans/XMLEncoder$ValueData;
            aload 1 /* oldExp */
            putfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
         5: .line 454
            aload 0 /* this */
            aload 1 /* oldExp */
            invokespecial java.beans.Encoder.writeExpression:(Ljava/beans/Expression;)V
         6: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* internal */
            putfield java.beans.XMLEncoder.internal:Z
         7: .line 457
            return
        end local 3 // java.lang.Object oldValue
        end local 2 // boolean internal
        end local 1 // java.beans.Expression oldExp
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Ljava/beans/XMLEncoder;
            0    8     1    oldExp  Ljava/beans/Expression;
            1    8     2  internal  Z
            3    8     3  oldValue  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      oldExp  

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.beans.XMLEncoder this
         0: .line 468
            aload 0 /* this */
            getfield java.beans.XMLEncoder.preambleWritten:Z
            ifne 9
         1: .line 469
            aload 0 /* this */
            getfield java.beans.XMLEncoder.declaration:Z
            ifeq 5
         2: .line 470
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<?xml version="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            ldc "1.0"
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 471
            ldc " encoding="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 0 /* this */
            getfield java.beans.XMLEncoder.charset:Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(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;
         4: .line 470
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         5: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<java version="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 474
            ldc " class="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            ldc Ljava/beans/XMLDecoder;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(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;
         7: .line 473
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         8: .line 475
            aload 0 /* this */
            iconst_1
            putfield java.beans.XMLEncoder.preambleWritten:Z
         9: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield java.beans.XMLEncoder.indentation:I
            iconst_1
            iadd
            putfield java.beans.XMLEncoder.indentation:I
        10: .line 478
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.statementList:(Ljava/lang/Object;)Ljava/util/List;
            astore 1 /* statements */
        start local 1 // java.util.List statements
        11: .line 479
            goto 17
        12: .line 480
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* statements */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast java.beans.Statement
            astore 2 /* s */
        start local 2 // java.beans.Statement s
        13: .line 481
            ldc "writeObject"
            aload 2 /* s */
            invokevirtual java.beans.Statement.getMethodName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 482
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual java.beans.Statement.getArguments:()[Ljava/lang/Object;
            iconst_0
            aaload
            aload 0 /* this */
            iconst_1
            invokevirtual java.beans.XMLEncoder.outputValue:(Ljava/lang/Object;Ljava/lang/Object;Z)V
        15: .line 483
            goto 17
        16: .line 485
      StackMap locals: java.beans.Statement
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            aload 0 /* this */
            iconst_0
            invokevirtual java.beans.XMLEncoder.outputStatement:(Ljava/beans/Statement;Ljava/lang/Object;Z)V
        end local 2 // java.beans.Statement s
        17: .line 479
      StackMap locals:
      StackMap stack:
            aload 1 /* statements */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 12
        18: .line 488
            aload 0 /* this */
            dup
            getfield java.beans.XMLEncoder.indentation:I
            iconst_1
            isub
            putfield java.beans.XMLEncoder.indentation:I
        19: .line 490
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.getMissedStatement:()Ljava/beans/Statement;
            astore 2 /* statement */
        start local 2 // java.beans.Statement statement
        20: .line 491
            goto 23
        21: .line 492
      StackMap locals: java.beans.Statement
      StackMap stack:
            aload 0 /* this */
            aload 2 /* statement */
            aload 0 /* this */
            iconst_0
            invokevirtual java.beans.XMLEncoder.outputStatement:(Ljava/beans/Statement;Ljava/lang/Object;Z)V
        22: .line 493
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.getMissedStatement:()Ljava/beans/Statement;
            astore 2 /* statement */
        23: .line 491
      StackMap locals:
      StackMap stack:
            aload 2 /* statement */
            ifnonnull 21
        24: .line 497
            aload 0 /* this */
            getfield java.beans.XMLEncoder.out:Ljava/io/OutputStreamWriter;
            invokevirtual java.io.OutputStreamWriter.flush:()V
        25: .line 498
            goto 28
        26: .line 499
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        27: .line 500
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.getExceptionListener:()Ljava/beans/ExceptionListener;
            aload 3 /* e */
            invokeinterface java.beans.ExceptionListener.exceptionThrown:(Ljava/lang/Exception;)V
        end local 3 // java.io.IOException e
        28: .line 502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.clear:()V
        29: .line 503
            return
        end local 2 // java.beans.Statement statement
        end local 1 // java.util.List statements
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Ljava/beans/XMLEncoder;
           11   30     1  statements  Ljava/util/List<Ljava/beans/Statement;>;
           13   17     2           s  Ljava/beans/Statement;
           20   30     2   statement  Ljava/beans/Statement;
           27   28     3           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          24    25      26  Class java.io.IOException

  void clear();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.beans.XMLEncoder this
         0: .line 506
            aload 0 /* this */
            invokespecial java.beans.Encoder.clear:()V
         1: .line 507
            aload 0 /* this */
            getfield java.beans.XMLEncoder.nameGenerator:Ljava/beans/NameGenerator;
            invokevirtual java.beans.NameGenerator.clear:()V
         2: .line 508
            aload 0 /* this */
            getfield java.beans.XMLEncoder.valueToExpression:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         3: .line 509
            aload 0 /* this */
            getfield java.beans.XMLEncoder.targetToStatementList:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         4: .line 510
            return
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/beans/XMLEncoder;

  java.beans.Statement getMissedStatement();
    descriptor: ()Ljava/beans/Statement;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.beans.XMLEncoder this
         0: .line 513
            aload 0 /* this */
            getfield java.beans.XMLEncoder.targetToStatementList:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 8
      StackMap locals: java.beans.XMLEncoder top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 1 /* statements */
        start local 1 // java.util.List statements
         2: .line 514
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 515
      StackMap locals: java.beans.XMLEncoder java.util.List java.util.Iterator int
      StackMap stack:
            ldc Ljava/beans/Statement;
            aload 1 /* statements */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.beans.Statement
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 6
         5: .line 516
            aload 1 /* statements */
            iload 3 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast java.beans.Statement
            areturn
         6: .line 514
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 1 /* statements */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 3 // int i
        end local 1 // java.util.List statements
         8: .line 513
      StackMap locals: java.beans.XMLEncoder top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 520
            aconst_null
            areturn
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljava/beans/XMLEncoder;
            2    8     1  statements  Ljava/util/List<Ljava/beans/Statement;>;
            3    8     3           i  I

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.beans.XMLEncoder this
         0: .line 530
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.flush:()V
         1: .line 531
            aload 0 /* this */
            ldc "</java>"
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         2: .line 533
            aload 0 /* this */
            getfield java.beans.XMLEncoder.out:Ljava/io/OutputStreamWriter;
            invokevirtual java.io.OutputStreamWriter.close:()V
         3: .line 534
            goto 6
         4: .line 535
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         5: .line 536
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.getExceptionListener:()Ljava/beans/ExceptionListener;
            aload 1 /* e */
            invokeinterface java.beans.ExceptionListener.exceptionThrown:(Ljava/lang/Exception;)V
        end local 1 // java.io.IOException e
         6: .line 538
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/beans/XMLEncoder;
            5    6     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException

  private java.lang.String quote(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.String s
         0: .line 541
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s */
            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 1 // java.lang.String s
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/beans/XMLEncoder;
            0    1     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  private java.beans.XMLEncoder$ValueData getValueData(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/beans/XMLEncoder$ValueData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.Object o
         0: .line 545
            aload 0 /* this */
            getfield java.beans.XMLEncoder.valueToExpression:Ljava/util/Map;
            aload 1 /* o */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.beans.XMLEncoder$ValueData
            astore 2 /* d */
        start local 2 // java.beans.XMLEncoder$ValueData d
         1: .line 546
            aload 2 /* d */
            ifnonnull 4
         2: .line 547
            new java.beans.XMLEncoder$ValueData
            dup
            aload 0 /* this */
            invokespecial java.beans.XMLEncoder$ValueData.<init>:(Ljava/beans/XMLEncoder;)V
            astore 2 /* d */
         3: .line 548
            aload 0 /* this */
            getfield java.beans.XMLEncoder.valueToExpression:Ljava/util/Map;
            aload 1 /* o */
            aload 2 /* d */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 550
      StackMap locals: java.beans.XMLEncoder$ValueData
      StackMap stack:
            aload 2 /* d */
            areturn
        end local 2 // java.beans.XMLEncoder$ValueData d
        end local 1 // java.lang.Object o
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/beans/XMLEncoder;
            0    5     1     o  Ljava/lang/Object;
            1    5     2     d  Ljava/beans/XMLEncoder$ValueData;
    MethodParameters:
      Name  Flags
      o     

  private static boolean isValidCharCode(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int code
         0: .line 573
            bipush 32
            iload 0 /* code */
            if_icmpgt 1
            iload 0 /* code */
            ldc 55295
            if_icmple 8
         1: .line 574
      StackMap locals:
      StackMap stack:
            bipush 10
            iload 0 /* code */
            if_icmpeq 8
         2: .line 575
            bipush 9
            iload 0 /* code */
            if_icmpeq 8
         3: .line 576
            bipush 13
            iload 0 /* code */
            if_icmpeq 8
         4: .line 577
            ldc 57344
            iload 0 /* code */
            if_icmpgt 5
            iload 0 /* code */
            ldc 65533
            if_icmple 8
         5: .line 578
      StackMap locals:
      StackMap stack:
            ldc 65536
            iload 0 /* code */
            if_icmpgt 7
            iload 0 /* code */
            ldc 1114111
         6: .line 573
            if_icmple 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_1
            ireturn
        end local 0 // int code
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  code  I
    MethodParameters:
      Name  Flags
      code  

  private void writeln(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.String exp
         0: .line 583
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 584
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 585
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 584
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield java.beans.XMLEncoder.indentation:I
            if_icmplt 3
        end local 3 // int i
         6: .line 587
            aload 2 /* sb */
            aload 1 /* exp */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 588
            aload 2 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 589
            aload 0 /* this */
            getfield java.beans.XMLEncoder.out:Ljava/io/OutputStreamWriter;
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.OutputStreamWriter.write:(Ljava/lang/String;)V
        end local 2 // java.lang.StringBuilder sb
         9: .line 590
            goto 12
        10: .line 591
      StackMap locals: java.beans.XMLEncoder java.lang.String
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        11: .line 592
            aload 0 /* this */
            invokevirtual java.beans.XMLEncoder.getExceptionListener:()Ljava/beans/ExceptionListener;
            aload 2 /* e */
            invokeinterface java.beans.ExceptionListener.exceptionThrown:(Ljava/lang/Exception;)V
        end local 2 // java.io.IOException e
        12: .line 594
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String exp
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljava/beans/XMLEncoder;
            0   13     1   exp  Ljava/lang/String;
            1    9     2    sb  Ljava/lang/StringBuilder;
            2    6     3     i  I
           11   12     2     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     9      10  Class java.io.IOException
    MethodParameters:
      Name  Flags
      exp   

  private void outputValue(java.lang.Object, java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.Object value
        start local 2 // java.lang.Object outer
        start local 3 // boolean isArgument
         0: .line 597
            aload 1 /* value */
            ifnonnull 3
         1: .line 598
            aload 0 /* this */
            ldc "<null/>"
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         2: .line 599
            return
         3: .line 602
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof java.lang.Class
            ifeq 6
         4: .line 603
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<class>"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "</class>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         5: .line 604
            return
         6: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual java.beans.XMLEncoder.getValueData:(Ljava/lang/Object;)Ljava/beans/XMLEncoder$ValueData;
            astore 4 /* d */
        start local 4 // java.beans.XMLEncoder$ValueData d
         7: .line 608
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
            ifnull 38
         8: .line 609
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
            invokevirtual java.beans.Expression.getTarget:()Ljava/lang/Object;
            astore 5 /* target */
        start local 5 // java.lang.Object target
         9: .line 610
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
            invokevirtual java.beans.Expression.getMethodName:()Ljava/lang/String;
            astore 6 /* methodName */
        start local 6 // java.lang.String methodName
        10: .line 612
            aload 5 /* target */
            ifnull 11
            aload 6 /* methodName */
            ifnonnull 16
        11: .line 613
      StackMap locals: java.beans.XMLEncoder$ValueData java.lang.Object java.lang.String
      StackMap stack:
            new java.lang.NullPointerException
            dup
        12: new java.lang.StringBuilder
            dup
            aload 5 /* target */
            ifnonnull 13
            ldc "target"
            goto 14
        13: .line 614
      StackMap locals: java.beans.XMLEncoder java.lang.Object java.lang.Object int java.beans.XMLEncoder$ValueData java.lang.Object java.lang.String
      StackMap stack: new 11 new 11 new 12 new 12
            ldc "methodName"
      StackMap locals: java.beans.XMLEncoder java.lang.Object java.lang.Object int java.beans.XMLEncoder$ValueData java.lang.Object java.lang.String
      StackMap stack: new 11 new 11 new 12 new 12 java.lang.String
        14: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " should not be null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 613
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 617
      StackMap locals:
      StackMap stack:
            iload 3 /* isArgument */
            ifeq 22
            aload 5 /* target */
            instanceof java.lang.reflect.Field
            ifeq 22
            aload 6 /* methodName */
            ldc "get"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        17: .line 618
            aload 5 /* target */
            checkcast java.lang.reflect.Field
            astore 7 /* f */
        start local 7 // java.lang.reflect.Field f
        18: .line 619
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<object class="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 7 /* f */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 620
            ldc " field="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 7 /* f */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(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;
        20: .line 619
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
        21: .line 621
            return
        end local 7 // java.lang.reflect.Field f
        22: .line 624
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic java.beans.XMLEncoder.primitiveTypeFor:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 7 /* primitiveType */
        start local 7 // java.lang.Class primitiveType
        23: .line 625
            aload 7 /* primitiveType */
            ifnull 41
            aload 5 /* target */
            aload 1 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 41
        24: .line 626
            aload 6 /* methodName */
            ldc "new"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        25: .line 627
            aload 7 /* primitiveType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 8 /* primitiveTypeName */
        start local 8 // java.lang.String primitiveTypeName
        26: .line 629
            aload 7 /* primitiveType */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 34
        27: .line 630
            aload 1 /* value */
            checkcast java.lang.Character
            invokevirtual java.lang.Character.charValue:()C
            istore 9 /* code */
        start local 9 // char code
        28: .line 631
            iload 9 /* code */
            invokestatic java.beans.XMLEncoder.isValidCharCode:(I)Z
            ifne 31
        29: .line 632
            aload 0 /* this */
            iload 9 /* code */
            invokestatic java.beans.XMLEncoder.createString:(I)Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
        30: .line 633
            return
        31: .line 635
      StackMap locals: java.lang.Class java.lang.String int
      StackMap stack:
            iload 9 /* code */
            invokestatic java.beans.XMLEncoder.quoteCharCode:(I)Ljava/lang/String;
            astore 1 /* value */
        32: .line 636
            aload 1 /* value */
            ifnonnull 34
        33: .line 637
            iload 9 /* code */
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            astore 1 /* value */
        end local 9 // char code
        34: .line 640
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* primitiveTypeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "</"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 641
            aload 8 /* primitiveTypeName */
            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;
        36: .line 640
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
        37: .line 642
            return
        end local 8 // java.lang.String primitiveTypeName
        end local 7 // java.lang.Class primitiveType
        end local 6 // java.lang.String methodName
        end local 5 // java.lang.Object target
        38: .line 645
      StackMap locals: java.beans.XMLEncoder java.lang.Object java.lang.Object int java.beans.XMLEncoder$ValueData
      StackMap stack:
            aload 1 /* value */
            instanceof java.lang.String
            ifeq 41
        39: .line 646
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* value */
            checkcast java.lang.String
            invokevirtual java.beans.XMLEncoder.createString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
        40: .line 647
            return
        41: .line 650
      StackMap locals:
      StackMap stack:
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.name:Ljava/lang/String;
            ifnull 47
        42: .line 651
            iload 3 /* isArgument */
            ifeq 45
        43: .line 652
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<object idref="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.name:Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(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;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
        44: .line 653
            goto 49
        45: .line 655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "void"
            new java.lang.StringBuilder
            dup
            ldc " idref="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.name:Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* value */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.beans.XMLEncoder.outputXML:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
        46: .line 657
            goto 49
        47: .line 658
      StackMap locals:
      StackMap stack:
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
            ifnull 49
        48: .line 659
            aload 0 /* this */
            aload 4 /* d */
            getfield java.beans.XMLEncoder$ValueData.exp:Ljava/beans/Expression;
            aload 2 /* outer */
            iload 3 /* isArgument */
            invokevirtual java.beans.XMLEncoder.outputStatement:(Ljava/beans/Statement;Ljava/lang/Object;Z)V
        49: .line 661
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.beans.XMLEncoder$ValueData d
        end local 3 // boolean isArgument
        end local 2 // java.lang.Object outer
        end local 1 // java.lang.Object value
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   50     0               this  Ljava/beans/XMLEncoder;
            0   50     1              value  Ljava/lang/Object;
            0   50     2              outer  Ljava/lang/Object;
            0   50     3         isArgument  Z
            7   50     4                  d  Ljava/beans/XMLEncoder$ValueData;
            9   38     5             target  Ljava/lang/Object;
           10   38     6         methodName  Ljava/lang/String;
           18   22     7                  f  Ljava/lang/reflect/Field;
           23   38     7      primitiveType  Ljava/lang/Class<*>;
           26   38     8  primitiveTypeName  Ljava/lang/String;
           28   34     9               code  C
    MethodParameters:
            Name  Flags
      value       
      outer       
      isArgument  

  private static java.lang.String quoteCharCode(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int code
         0: .line 664
            iload 0 /* code */
            lookupswitch { // 6
                   13: 6
                   34: 4
                   38: 1
                   39: 5
                   60: 2
                   62: 3
              default: 7
          }
         1: .line 665
      StackMap locals:
      StackMap stack:
            ldc "&amp;"
            areturn
         2: .line 666
      StackMap locals:
      StackMap stack:
            ldc "&lt;"
            areturn
         3: .line 667
      StackMap locals:
      StackMap stack:
            ldc "&gt;"
            areturn
         4: .line 668
      StackMap locals:
      StackMap stack:
            ldc "&quot;"
            areturn
         5: .line 669
      StackMap locals:
      StackMap stack:
            ldc "&apos;"
            areturn
         6: .line 670
      StackMap locals:
      StackMap stack:
            ldc "&#13;"
            areturn
         7: .line 671
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // int code
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  code  I
    MethodParameters:
      Name  Flags
      code  

  private static java.lang.String createString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int code
         0: .line 676
            new java.lang.StringBuilder
            dup
            ldc "<char code=\"#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* code */
            bipush 16
            invokestatic java.lang.Integer.toString:(II)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 // int code
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  code  I
    MethodParameters:
      Name  Flags
      code  

  private java.lang.String createString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.String string
         0: .line 680
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 681
            aload 2 /* sb */
            ldc "<string>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 682
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         3: .line 683
            goto 16
         4: .line 684
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* string */
            iload 3 /* index */
            invokevirtual java.lang.String.codePointAt:(I)I
            istore 4 /* point */
        start local 4 // int point
         5: .line 685
            iload 4 /* point */
            invokestatic java.lang.Character.charCount:(I)I
            istore 5 /* count */
        start local 5 // int count
         6: .line 687
            iload 4 /* point */
            invokestatic java.beans.XMLEncoder.isValidCharCode:(I)Z
            ifeq 14
            aload 0 /* this */
            getfield java.beans.XMLEncoder.encoder:Ljava/nio/charset/CharsetEncoder;
            aload 1 /* string */
            iload 3 /* index */
            iload 3 /* index */
            iload 5 /* count */
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.nio.charset.CharsetEncoder.canEncode:(Ljava/lang/CharSequence;)Z
            ifeq 14
         7: .line 688
            iload 4 /* point */
            invokestatic java.beans.XMLEncoder.quoteCharCode:(I)Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
         8: .line 689
            aload 6 /* value */
            ifnull 11
         9: .line 690
            aload 2 /* sb */
            aload 6 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 691
            goto 12
        11: .line 692
      StackMap locals: int int java.lang.String
      StackMap stack:
            aload 2 /* sb */
            iload 4 /* point */
            invokevirtual java.lang.StringBuilder.appendCodePoint:(I)Ljava/lang/StringBuilder;
            pop
        12: .line 694
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iload 5 /* count */
            iadd
            istore 3 /* index */
        end local 6 // java.lang.String value
        13: .line 695
            goto 16
        14: .line 696
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            aload 1 /* string */
            iload 3 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.beans.XMLEncoder.createString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 697
            iinc 3 /* index */ 1
        end local 5 // int count
        end local 4 // int point
        16: .line 683
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        17: .line 700
            aload 2 /* sb */
            ldc "</string>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 701
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int index
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.String string
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Ljava/beans/XMLEncoder;
            0   19     1  string  Ljava/lang/String;
            1   19     2      sb  Ljava/lang/StringBuilder;
            3   19     3   index  I
            5   16     4   point  I
            6   16     5   count  I
            8   13     6   value  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  private void outputStatement(java.beans.Statement, java.lang.Object, boolean);
    descriptor: (Ljava/beans/Statement;Ljava/lang/Object;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.beans.Statement exp
        start local 2 // java.lang.Object outer
        start local 3 // boolean isArgument
         0: .line 705
            aload 1 /* exp */
            invokevirtual java.beans.Statement.getTarget:()Ljava/lang/Object;
            astore 4 /* target */
        start local 4 // java.lang.Object target
         1: .line 706
            aload 1 /* exp */
            invokevirtual java.beans.Statement.getMethodName:()Ljava/lang/String;
            astore 5 /* methodName */
        start local 5 // java.lang.String methodName
         2: .line 708
            aload 4 /* target */
            ifnull 3
            aload 5 /* methodName */
            ifnonnull 8
         3: .line 709
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            new java.lang.NullPointerException
            dup
         4: new java.lang.StringBuilder
            dup
            aload 4 /* target */
            ifnonnull 5
            ldc "target"
            goto 6
         5: .line 710
      StackMap locals: java.beans.XMLEncoder java.beans.Statement java.lang.Object int java.lang.Object java.lang.String
      StackMap stack: new 3 new 3 new 4 new 4
            ldc "methodName"
      StackMap locals: java.beans.XMLEncoder java.beans.Statement java.lang.Object int java.lang.Object java.lang.String
      StackMap stack: new 3 new 3 new 4 new 4 java.lang.String
         6: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " should not be null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 709
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 713
      StackMap locals:
      StackMap stack:
            aload 1 /* exp */
            invokevirtual java.beans.Statement.getArguments:()[Ljava/lang/Object;
            astore 6 /* args */
        start local 6 // java.lang.Object[] args
         9: .line 714
            aload 1 /* exp */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/beans/Expression;
            if_acmpne 10
            iconst_1
            goto 11
      StackMap locals: java.lang.Object[]
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 7 /* expression */
        start local 7 // boolean expression
        12: .line 715
            iload 7 /* expression */
            ifeq 13
            aload 0 /* this */
            aload 1 /* exp */
            checkcast java.beans.Expression
            invokevirtual java.beans.XMLEncoder.getValue:(Ljava/beans/Expression;)Ljava/lang/Object;
            goto 14
      StackMap locals: int
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
        14: astore 8 /* value */
        start local 8 // java.lang.Object value
        15: .line 717
            iload 7 /* expression */
            ifeq 16
            iload 3 /* isArgument */
            ifeq 16
            ldc "object"
            goto 17
      StackMap locals: java.lang.Object
      StackMap stack:
        16: ldc "void"
      StackMap locals:
      StackMap stack: java.lang.String
        17: astore 9 /* tag */
        start local 9 // java.lang.String tag
        18: .line 718
            ldc ""
            astore 10 /* attributes */
        start local 10 // java.lang.String attributes
        19: .line 719
            aload 0 /* this */
            aload 8 /* value */
            invokevirtual java.beans.XMLEncoder.getValueData:(Ljava/lang/Object;)Ljava/beans/XMLEncoder$ValueData;
            astore 11 /* d */
        start local 11 // java.beans.XMLEncoder$ValueData d
        20: .line 722
            aload 4 /* target */
            aload 2 /* outer */
            if_acmpeq 40
        21: .line 724
            aload 4 /* target */
            ldc Ljava/lang/reflect/Array;
            if_acmpne 27
            aload 5 /* methodName */
            ldc "newInstance"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        22: .line 725
            ldc "array"
            astore 9 /* tag */
        23: .line 726
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " class="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 6 /* args */
            iconst_0
            aaload
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        24: .line 727
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 6 /* args */
            iconst_1
            aaload
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        25: .line 728
            iconst_0
            anewarray java.lang.Object
            astore 6 /* args */
        26: .line 729
            goto 40
        27: .line 730
      StackMap locals: java.lang.String java.lang.String java.beans.XMLEncoder$ValueData
      StackMap stack:
            aload 4 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/lang/Class;
            if_acmpne 30
        28: .line 731
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " class="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 4 /* target */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        29: .line 732
            goto 40
        30: .line 734
      StackMap locals:
      StackMap stack:
            aload 11 /* d */
            iconst_2
            putfield java.beans.XMLEncoder$ValueData.refs:I
        31: .line 735
            aload 11 /* d */
            getfield java.beans.XMLEncoder$ValueData.name:Ljava/lang/String;
            ifnonnull 37
        32: .line 736
            aload 0 /* this */
            aload 4 /* target */
            invokevirtual java.beans.XMLEncoder.getValueData:(Ljava/lang/Object;)Ljava/beans/XMLEncoder$ValueData;
            dup
            getfield java.beans.XMLEncoder$ValueData.refs:I
            iconst_1
            iadd
            putfield java.beans.XMLEncoder$ValueData.refs:I
        33: .line 737
            aload 0 /* this */
            aload 4 /* target */
            invokevirtual java.beans.XMLEncoder.statementList:(Ljava/lang/Object;)Ljava/util/List;
            astore 12 /* statements */
        start local 12 // java.util.List statements
        34: .line 738
            aload 12 /* statements */
            aload 1 /* exp */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 36
        35: .line 739
            aload 12 /* statements */
            aload 1 /* exp */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 741
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 4 /* target */
            aload 2 /* outer */
            iconst_0
            invokevirtual java.beans.XMLEncoder.outputValue:(Ljava/lang/Object;Ljava/lang/Object;Z)V
        end local 12 // java.util.List statements
        37: .line 743
      StackMap locals:
      StackMap stack:
            iload 7 /* expression */
            ifeq 39
        38: .line 744
            aload 0 /* this */
            aload 8 /* value */
            aload 2 /* outer */
            iload 3 /* isArgument */
            invokevirtual java.beans.XMLEncoder.outputValue:(Ljava/lang/Object;Ljava/lang/Object;Z)V
        39: .line 746
      StackMap locals:
      StackMap stack:
            return
        40: .line 748
      StackMap locals:
      StackMap stack:
            iload 7 /* expression */
            ifeq 44
            aload 11 /* d */
            getfield java.beans.XMLEncoder$ValueData.refs:I
            iconst_1
            if_icmple 44
        41: .line 749
            aload 0 /* this */
            getfield java.beans.XMLEncoder.nameGenerator:Ljava/beans/NameGenerator;
            aload 8 /* value */
            invokevirtual java.beans.NameGenerator.instanceName:(Ljava/lang/Object;)Ljava/lang/String;
            astore 12 /* instanceName */
        start local 12 // java.lang.String instanceName
        42: .line 750
            aload 11 /* d */
            aload 12 /* instanceName */
            putfield java.beans.XMLEncoder$ValueData.name:Ljava/lang/String;
        43: .line 751
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 12 /* instanceName */
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        end local 12 // java.lang.String instanceName
        44: .line 755
      StackMap locals:
      StackMap stack:
            iload 7 /* expression */
            ifne 46
            aload 5 /* methodName */
            ldc "set"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 46
            aload 6 /* args */
            arraylength
            iconst_2
            if_icmpne 46
        45: .line 756
            aload 6 /* args */
            iconst_0
            aaload
            instanceof java.lang.Integer
            ifne 48
        46: .line 757
      StackMap locals:
      StackMap stack:
            iload 7 /* expression */
            ifeq 53
            aload 5 /* methodName */
            ldc "get"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
            aload 6 /* args */
            arraylength
            iconst_1
            if_icmpne 53
        47: .line 758
            aload 6 /* args */
            iconst_0
            aaload
            instanceof java.lang.Integer
            ifeq 53
        48: .line 759
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " index="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 6 /* args */
            iconst_0
            aaload
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        49: .line 760
            aload 6 /* args */
            arraylength
            iconst_1
            if_icmpne 50
            iconst_0
            anewarray java.lang.Object
            goto 51
      StackMap locals:
      StackMap stack:
        50: iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* args */
            iconst_1
            aaload
            aastore
      StackMap locals:
      StackMap stack: java.lang.Object[]
        51: astore 6 /* args */
        52: .line 761
            goto 62
        53: .line 762
      StackMap locals:
      StackMap stack:
            iload 7 /* expression */
            ifne 54
            aload 5 /* methodName */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 54
            aload 6 /* args */
            arraylength
            iconst_1
            if_icmpeq 55
        54: .line 763
      StackMap locals:
      StackMap stack:
            iload 7 /* expression */
            ifeq 60
            aload 5 /* methodName */
            ldc "get"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 60
            aload 6 /* args */
            arraylength
            ifne 60
        55: .line 764
      StackMap locals:
      StackMap stack:
            iconst_3
            aload 5 /* methodName */
            invokevirtual java.lang.String.length:()I
            if_icmpge 62
        56: .line 765
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " property="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        57: .line 766
            aload 0 /* this */
            aload 5 /* methodName */
            iconst_3
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.beans.Introspector.decapitalize:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        58: .line 765
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        59: .line 768
            goto 62
        60: .line 769
      StackMap locals:
      StackMap stack:
            aload 5 /* methodName */
            ldc "new"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
            aload 5 /* methodName */
            ldc "newInstance"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        61: .line 770
            new java.lang.StringBuilder
            dup
            aload 10 /* attributes */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " method="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 5 /* methodName */
            invokevirtual java.beans.XMLEncoder.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* attributes */
        62: .line 772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* tag */
            aload 10 /* attributes */
            aload 8 /* value */
            aload 6 /* args */
            invokevirtual java.beans.XMLEncoder.outputXML:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
        63: .line 773
            return
        end local 11 // java.beans.XMLEncoder$ValueData d
        end local 10 // java.lang.String attributes
        end local 9 // java.lang.String tag
        end local 8 // java.lang.Object value
        end local 7 // boolean expression
        end local 6 // java.lang.Object[] args
        end local 5 // java.lang.String methodName
        end local 4 // java.lang.Object target
        end local 3 // boolean isArgument
        end local 2 // java.lang.Object outer
        end local 1 // java.beans.Statement exp
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   64     0          this  Ljava/beans/XMLEncoder;
            0   64     1           exp  Ljava/beans/Statement;
            0   64     2         outer  Ljava/lang/Object;
            0   64     3    isArgument  Z
            1   64     4        target  Ljava/lang/Object;
            2   64     5    methodName  Ljava/lang/String;
            9   64     6          args  [Ljava/lang/Object;
           12   64     7    expression  Z
           15   64     8         value  Ljava/lang/Object;
           18   64     9           tag  Ljava/lang/String;
           19   64    10    attributes  Ljava/lang/String;
           20   64    11             d  Ljava/beans/XMLEncoder$ValueData;
           34   37    12    statements  Ljava/util/List<Ljava/beans/Statement;>;
           42   44    12  instanceName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      exp         
      outer       
      isArgument  

  private void outputXML(java.lang.String, java.lang.String, java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.beans.XMLEncoder this
        start local 1 // java.lang.String tag
        start local 2 // java.lang.String attributes
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object[] args
         0: .line 776
            aload 0 /* this */
            aload 3 /* value */
            invokevirtual java.beans.XMLEncoder.statementList:(Ljava/lang/Object;)Ljava/util/List;
            astore 5 /* statements */
        start local 5 // java.util.List statements
         1: .line 778
            aload 4 /* args */
            arraylength
            ifne 4
            aload 5 /* statements */
            invokeinterface java.util.List.size:()I
            ifne 4
         2: .line 779
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tag */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* attributes */
            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;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         3: .line 780
            return
         4: .line 783
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tag */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* attributes */
            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;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
         5: .line 784
            aload 0 /* this */
            dup
            getfield java.beans.XMLEncoder.indentation:I
            iconst_1
            iadd
            putfield java.beans.XMLEncoder.indentation:I
         6: .line 786
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 10
         8: .line 787
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* args */
            iload 6 /* i */
            aaload
            aconst_null
            iconst_1
            invokevirtual java.beans.XMLEncoder.outputValue:(Ljava/lang/Object;Ljava/lang/Object;Z)V
         9: .line 786
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            aload 4 /* args */
            arraylength
            if_icmplt 8
        end local 6 // int i
        11: .line 790
            goto 14
        12: .line 791
      StackMap locals:
      StackMap stack:
            aload 5 /* statements */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast java.beans.Statement
            astore 6 /* s */
        start local 6 // java.beans.Statement s
        13: .line 792
            aload 0 /* this */
            aload 6 /* s */
            aload 3 /* value */
            iconst_0
            invokevirtual java.beans.XMLEncoder.outputStatement:(Ljava/beans/Statement;Ljava/lang/Object;Z)V
        end local 6 // java.beans.Statement s
        14: .line 790
      StackMap locals:
      StackMap stack:
            aload 5 /* statements */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 12
        15: .line 795
            aload 0 /* this */
            dup
            getfield java.beans.XMLEncoder.indentation:I
            iconst_1
            isub
            putfield java.beans.XMLEncoder.indentation:I
        16: .line 796
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "</"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tag */
            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;
            invokevirtual java.beans.XMLEncoder.writeln:(Ljava/lang/String;)V
        17: .line 797
            return
        end local 5 // java.util.List statements
        end local 4 // java.lang.Object[] args
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String attributes
        end local 1 // java.lang.String tag
        end local 0 // java.beans.XMLEncoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Ljava/beans/XMLEncoder;
            0   18     1         tag  Ljava/lang/String;
            0   18     2  attributes  Ljava/lang/String;
            0   18     3       value  Ljava/lang/Object;
            0   18     4        args  [Ljava/lang/Object;
            1   18     5  statements  Ljava/util/List<Ljava/beans/Statement;>;
            7   11     6           i  I
           13   14     6           s  Ljava/beans/Statement;
    MethodParameters:
            Name  Flags
      tag         
      attributes  
      value       
      args        

  static java.lang.Class primitiveTypeFor(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class wrapper
         0: .line 801
            aload 0 /* wrapper */
            ldc Ljava/lang/Boolean;
            if_acmpne 1
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            areturn
         1: .line 802
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Byte;
            if_acmpne 2
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            areturn
         2: .line 803
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Character;
            if_acmpne 3
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            areturn
         3: .line 804
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Short;
            if_acmpne 4
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            areturn
         4: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Integer;
            if_acmpne 5
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         5: .line 806
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Long;
            if_acmpne 6
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         6: .line 807
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Float;
            if_acmpne 7
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
         7: .line 808
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Double;
            if_acmpne 8
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         8: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            ldc Ljava/lang/Void;
            if_acmpne 9
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         9: .line 810
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Class wrapper
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  wrapper  Ljava/lang/Class;
    MethodParameters:
         Name  Flags
      wrapper  
}
SourceFile: "XMLEncoder.java"
NestMembers:
  java.beans.XMLEncoder$ValueData
InnerClasses:
  private ValueData = java.beans.XMLEncoder$ValueData of java.beans.XMLEncoder