public class ch.qos.logback.classic.spi.ThrowableProxyUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.classic.spi.ThrowableProxyUtil
  super_class: java.lang.Object
{
  public static final int REGULAR_EXCEPTION_INDENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int SUPPRESSED_EXCEPTION_INDENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.classic.spi.ThrowableProxyUtil this
         0: .line 24
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // ch.qos.logback.classic.spi.ThrowableProxyUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/classic/spi/ThrowableProxyUtil;

  public static void build(ch.qos.logback.classic.spi.ThrowableProxy, java.lang.Throwable, ch.qos.logback.classic.spi.ThrowableProxy);
    descriptor: (Lch/qos/logback/classic/spi/ThrowableProxy;Ljava/lang/Throwable;Lch/qos/logback/classic/spi/ThrowableProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // ch.qos.logback.classic.spi.ThrowableProxy nestedTP
        start local 1 // java.lang.Throwable nestedThrowable
        start local 2 // ch.qos.logback.classic.spi.ThrowableProxy parentTP
         0: .line 32
            aload 1 /* nestedThrowable */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 3 /* nestedSTE */
        start local 3 // java.lang.StackTraceElement[] nestedSTE
         1: .line 34
            iconst_m1
            istore 4 /* commonFramesCount */
        start local 4 // int commonFramesCount
         2: .line 35
            aload 2 /* parentTP */
            ifnull 4
         3: .line 36
            aload 3 /* nestedSTE */
            aload 2 /* parentTP */
            invokevirtual ch.qos.logback.classic.spi.ThrowableProxy.getStackTraceElementProxyArray:()[Lch/qos/logback/classic/spi/StackTraceElementProxy;
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.findNumberOfCommonFrames:([Ljava/lang/StackTraceElement;[Lch/qos/logback/classic/spi/StackTraceElementProxy;)I
            istore 4 /* commonFramesCount */
         4: .line 39
      StackMap locals: java.lang.StackTraceElement[] int
      StackMap stack:
            aload 0 /* nestedTP */
            iload 4 /* commonFramesCount */
            putfield ch.qos.logback.classic.spi.ThrowableProxy.commonFrames:I
         5: .line 40
            aload 0 /* nestedTP */
            aload 3 /* nestedSTE */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.steArrayToStepArray:([Ljava/lang/StackTraceElement;)[Lch/qos/logback/classic/spi/StackTraceElementProxy;
            putfield ch.qos.logback.classic.spi.ThrowableProxy.stackTraceElementProxyArray:[Lch/qos/logback/classic/spi/StackTraceElementProxy;
         6: .line 41
            return
        end local 4 // int commonFramesCount
        end local 3 // java.lang.StackTraceElement[] nestedSTE
        end local 2 // ch.qos.logback.classic.spi.ThrowableProxy parentTP
        end local 1 // java.lang.Throwable nestedThrowable
        end local 0 // ch.qos.logback.classic.spi.ThrowableProxy nestedTP
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0           nestedTP  Lch/qos/logback/classic/spi/ThrowableProxy;
            0    7     1    nestedThrowable  Ljava/lang/Throwable;
            0    7     2           parentTP  Lch/qos/logback/classic/spi/ThrowableProxy;
            1    7     3          nestedSTE  [Ljava/lang/StackTraceElement;
            2    7     4  commonFramesCount  I
    MethodParameters:
                 Name  Flags
      nestedTP         
      nestedThrowable  
      parentTP         

  static ch.qos.logback.classic.spi.StackTraceElementProxy[] steArrayToStepArray(java.lang.StackTraceElement[]);
    descriptor: ([Ljava/lang/StackTraceElement;)[Lch/qos/logback/classic/spi/StackTraceElementProxy;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // java.lang.StackTraceElement[] stea
         0: .line 44
            aload 0 /* stea */
            ifnonnull 2
         1: .line 45
            iconst_0
            anewarray ch.qos.logback.classic.spi.StackTraceElementProxy
            areturn
         2: .line 47
      StackMap locals:
      StackMap stack:
            aload 0 /* stea */
            arraylength
            anewarray ch.qos.logback.classic.spi.StackTraceElementProxy
            astore 1 /* stepa */
        start local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepa
         3: .line 48
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 49
      StackMap locals: ch.qos.logback.classic.spi.StackTraceElementProxy[] int
      StackMap stack:
            aload 1 /* stepa */
            iload 2 /* i */
            new ch.qos.logback.classic.spi.StackTraceElementProxy
            dup
            aload 0 /* stea */
            iload 2 /* i */
            aaload
            invokespecial ch.qos.logback.classic.spi.StackTraceElementProxy.<init>:(Ljava/lang/StackTraceElement;)V
            aastore
         6: .line 48
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* stepa */
            arraylength
            if_icmplt 5
        end local 2 // int i
         8: .line 51
            aload 1 /* stepa */
            areturn
        end local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepa
        end local 0 // java.lang.StackTraceElement[] stea
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   stea  [Ljava/lang/StackTraceElement;
            3    9     1  stepa  [Lch/qos/logback/classic/spi/StackTraceElementProxy;
            4    8     2      i  I
    MethodParameters:
      Name  Flags
      stea  

  static int findNumberOfCommonFrames(java.lang.StackTraceElement[], ch.qos.logback.classic.spi.StackTraceElementProxy[]);
    descriptor: ([Ljava/lang/StackTraceElement;[Lch/qos/logback/classic/spi/StackTraceElementProxy;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.StackTraceElement[] steArray
        start local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy[] parentSTEPArray
         0: .line 55
            aload 1 /* parentSTEPArray */
            ifnull 1
            aload 0 /* steArray */
            ifnonnull 2
         1: .line 56
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 59
      StackMap locals:
      StackMap stack:
            aload 0 /* steArray */
            arraylength
            iconst_1
            isub
            istore 2 /* steIndex */
        start local 2 // int steIndex
         3: .line 60
            aload 1 /* parentSTEPArray */
            arraylength
            iconst_1
            isub
            istore 3 /* parentIndex */
        start local 3 // int parentIndex
         4: .line 61
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         5: .line 62
            goto 12
         6: .line 63
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* steArray */
            iload 2 /* steIndex */
            aaload
            astore 5 /* ste */
        start local 5 // java.lang.StackTraceElement ste
         7: .line 64
            aload 1 /* parentSTEPArray */
            iload 3 /* parentIndex */
            aaload
            getfield ch.qos.logback.classic.spi.StackTraceElementProxy.ste:Ljava/lang/StackTraceElement;
            astore 6 /* otherSte */
        start local 6 // java.lang.StackTraceElement otherSte
         8: .line 65
            aload 5 /* ste */
            aload 6 /* otherSte */
            invokevirtual java.lang.StackTraceElement.equals:(Ljava/lang/Object;)Z
            ifeq 13
         9: .line 66
            iinc 4 /* count */ 1
        10: .line 70
            iinc 2 /* steIndex */ -1
        11: .line 71
            iinc 3 /* parentIndex */ -1
        end local 6 // java.lang.StackTraceElement otherSte
        end local 5 // java.lang.StackTraceElement ste
        12: .line 62
      StackMap locals:
      StackMap stack:
            iload 2 /* steIndex */
            iflt 13
            iload 3 /* parentIndex */
            ifge 6
        13: .line 73
      StackMap locals:
      StackMap stack:
            iload 4 /* count */
            ireturn
        end local 4 // int count
        end local 3 // int parentIndex
        end local 2 // int steIndex
        end local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy[] parentSTEPArray
        end local 0 // java.lang.StackTraceElement[] steArray
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0         steArray  [Ljava/lang/StackTraceElement;
            0   14     1  parentSTEPArray  [Lch/qos/logback/classic/spi/StackTraceElementProxy;
            3   14     2         steIndex  I
            4   14     3      parentIndex  I
            5   14     4            count  I
            7   12     5              ste  Ljava/lang/StackTraceElement;
            8   12     6         otherSte  Ljava/lang/StackTraceElement;
    MethodParameters:
                 Name  Flags
      steArray         
      parentSTEPArray  

  public static java.lang.String asString(ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Lch/qos/logback/classic/spi/IThrowableProxy;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 77
            new java.lang.StringBuilder
            dup
            sipush 2048
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 79
            aload 1 /* sb */
            aconst_null
            iconst_1
            aload 0 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.recursiveAppend:(Ljava/lang/StringBuilder;Ljava/lang/String;ILch/qos/logback/classic/spi/IThrowableProxy;)V
         2: .line 81
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // ch.qos.logback.classic.spi.IThrowableProxy tp
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    tp  Lch/qos/logback/classic/spi/IThrowableProxy;
            1    3     1    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      tp    

  private static void recursiveAppend(java.lang.StringBuilder, java.lang.String, int, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;ILch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // java.lang.StringBuilder sb
        start local 1 // java.lang.String prefix
        start local 2 // int indent
        start local 3 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 85
            aload 3 /* tp */
            ifnonnull 2
         1: .line 86
            return
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            aload 1 /* prefix */
            iload 2 /* indent */
            aload 3 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinFirstLine:(Ljava/lang/StringBuilder;Ljava/lang/String;ILch/qos/logback/classic/spi/IThrowableProxy;)V
         3: .line 88
            aload 0 /* sb */
            getstatic ch.qos.logback.core.CoreConstants.LINE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 89
            aload 0 /* sb */
            iload 2 /* indent */
            aload 3 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinSTEPArray:(Ljava/lang/StringBuilder;ILch/qos/logback/classic/spi/IThrowableProxy;)V
         5: .line 90
            aload 3 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getSuppressed:()[Lch/qos/logback/classic/spi/IThrowableProxy;
            astore 4 /* suppressed */
        start local 4 // ch.qos.logback.classic.spi.IThrowableProxy[] suppressed
         6: .line 91
            aload 4 /* suppressed */
            ifnull 12
         7: .line 92
            aload 4 /* suppressed */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 11
      StackMap locals: java.lang.StringBuilder java.lang.String int ch.qos.logback.classic.spi.IThrowableProxy ch.qos.logback.classic.spi.IThrowableProxy[] top int int ch.qos.logback.classic.spi.IThrowableProxy[]
      StackMap stack:
         8: aload 8
            iload 6
            aaload
            astore 5 /* current */
        start local 5 // ch.qos.logback.classic.spi.IThrowableProxy current
         9: .line 93
            aload 0 /* sb */
            ldc "Suppressed: "
            iload 2 /* indent */
            iconst_1
            iadd
            aload 5 /* current */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.recursiveAppend:(Ljava/lang/StringBuilder;Ljava/lang/String;ILch/qos/logback/classic/spi/IThrowableProxy;)V
        end local 5 // ch.qos.logback.classic.spi.IThrowableProxy current
        10: .line 92
            iinc 6 1
      StackMap locals:
      StackMap stack:
        11: iload 6
            iload 7
            if_icmplt 8
        12: .line 96
      StackMap locals: java.lang.StringBuilder java.lang.String int ch.qos.logback.classic.spi.IThrowableProxy ch.qos.logback.classic.spi.IThrowableProxy[]
      StackMap stack:
            aload 0 /* sb */
            ldc "Caused by: "
            iload 2 /* indent */
            aload 3 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getCause:()Lch/qos/logback/classic/spi/IThrowableProxy;
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.recursiveAppend:(Ljava/lang/StringBuilder;Ljava/lang/String;ILch/qos/logback/classic/spi/IThrowableProxy;)V
        13: .line 97
            return
        end local 4 // ch.qos.logback.classic.spi.IThrowableProxy[] suppressed
        end local 3 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 2 // int indent
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0          sb  Ljava/lang/StringBuilder;
            0   14     1      prefix  Ljava/lang/String;
            0   14     2      indent  I
            0   14     3          tp  Lch/qos/logback/classic/spi/IThrowableProxy;
            6   14     4  suppressed  [Lch/qos/logback/classic/spi/IThrowableProxy;
            9   10     5     current  Lch/qos/logback/classic/spi/IThrowableProxy;
    MethodParameters:
        Name  Flags
      sb      
      prefix  
      indent  
      tp      

  public static void indent(java.lang.StringBuilder, int);
    descriptor: (Ljava/lang/StringBuilder;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.StringBuilder buf
        start local 1 // int indent
         0: .line 100
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         1: goto 4
         2: .line 101
      StackMap locals: int
      StackMap stack:
            aload 0 /* buf */
            bipush 9
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 100
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* j */
            iload 1 /* indent */
            if_icmplt 2
        end local 2 // int j
         5: .line 103
            return
        end local 1 // int indent
        end local 0 // java.lang.StringBuilder buf
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0     buf  Ljava/lang/StringBuilder;
            0    6     1  indent  I
            1    5     2       j  I
    MethodParameters:
        Name  Flags
      buf     
      indent  

  private static void subjoinFirstLine(java.lang.StringBuilder, java.lang.String, int, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;ILch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.lang.StringBuilder buf
        start local 1 // java.lang.String prefix
        start local 2 // int indent
        start local 3 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 106
            aload 0 /* buf */
            iload 2 /* indent */
            iconst_1
            isub
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.indent:(Ljava/lang/StringBuilder;I)V
         1: .line 107
            aload 1 /* prefix */
            ifnull 3
         2: .line 108
            aload 0 /* buf */
            aload 1 /* prefix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            aload 3 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinExceptionMessage:(Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
         4: .line 111
            return
        end local 3 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 2 // int indent
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.StringBuilder buf
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     buf  Ljava/lang/StringBuilder;
            0    5     1  prefix  Ljava/lang/String;
            0    5     2  indent  I
            0    5     3      tp  Lch/qos/logback/classic/spi/IThrowableProxy;
    MethodParameters:
        Name  Flags
      buf     
      prefix  
      indent  
      tp      

  public static void subjoinPackagingData(java.lang.StringBuilder, ch.qos.logback.classic.spi.StackTraceElementProxy);
    descriptor: (Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.StringBuilder builder
        start local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy step
         0: .line 114
            aload 1 /* step */
            ifnull 8
         1: .line 115
            aload 1 /* step */
            invokevirtual ch.qos.logback.classic.spi.StackTraceElementProxy.getClassPackagingData:()Lch/qos/logback/classic/spi/ClassPackagingData;
            astore 2 /* cpd */
        start local 2 // ch.qos.logback.classic.spi.ClassPackagingData cpd
         2: .line 116
            aload 2 /* cpd */
            ifnull 8
         3: .line 117
            aload 2 /* cpd */
            invokevirtual ch.qos.logback.classic.spi.ClassPackagingData.isExact:()Z
            ifne 6
         4: .line 118
            aload 0 /* builder */
            ldc " ~["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 119
            goto 7
         6: .line 120
      StackMap locals: ch.qos.logback.classic.spi.ClassPackagingData
      StackMap stack:
            aload 0 /* builder */
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* builder */
            aload 2 /* cpd */
            invokevirtual ch.qos.logback.classic.spi.ClassPackagingData.getCodeLocation:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* cpd */
            invokevirtual ch.qos.logback.classic.spi.ClassPackagingData.getVersion:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 2 // ch.qos.logback.classic.spi.ClassPackagingData cpd
         8: .line 126
      StackMap locals:
      StackMap stack:
            return
        end local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy step
        end local 0 // java.lang.StringBuilder builder
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  builder  Ljava/lang/StringBuilder;
            0    9     1     step  Lch/qos/logback/classic/spi/StackTraceElementProxy;
            2    8     2      cpd  Lch/qos/logback/classic/spi/ClassPackagingData;
    MethodParameters:
         Name  Flags
      builder  
      step     

  public static void subjoinSTEP(java.lang.StringBuilder, ch.qos.logback.classic.spi.StackTraceElementProxy);
    descriptor: (Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder sb
        start local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy step
         0: .line 129
            aload 0 /* sb */
            aload 1 /* step */
            invokevirtual ch.qos.logback.classic.spi.StackTraceElementProxy.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 130
            aload 0 /* sb */
            aload 1 /* step */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinPackagingData:(Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
         2: .line 131
            return
        end local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy step
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    sb  Ljava/lang/StringBuilder;
            0    3     1  step  Lch/qos/logback/classic/spi/StackTraceElementProxy;
    MethodParameters:
      Name  Flags
      sb    
      step  

  public static void subjoinSTEPArray(java.lang.StringBuilder, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder sb
        start local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 140
            aload 0 /* sb */
            iconst_1
            aload 1 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinSTEPArray:(Ljava/lang/StringBuilder;ILch/qos/logback/classic/spi/IThrowableProxy;)V
         1: .line 141
            return
        end local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    sb  Ljava/lang/StringBuilder;
            0    2     1    tp  Lch/qos/logback/classic/spi/IThrowableProxy;
    MethodParameters:
      Name  Flags
      sb    
      tp    

  public static void subjoinSTEPArray(java.lang.StringBuilder, int, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;ILch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.lang.StringBuilder sb
        start local 1 // int indentLevel
        start local 2 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 149
            aload 2 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getStackTraceElementProxyArray:()[Lch/qos/logback/classic/spi/StackTraceElementProxy;
            astore 3 /* stepArray */
        start local 3 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepArray
         1: .line 150
            aload 2 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getCommonFrames:()I
            istore 4 /* commonFrames */
        start local 4 // int commonFrames
         2: .line 152
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 9
         4: .line 153
      StackMap locals: ch.qos.logback.classic.spi.StackTraceElementProxy[] int int
      StackMap stack:
            aload 3 /* stepArray */
            iload 5 /* i */
            aaload
            astore 6 /* step */
        start local 6 // ch.qos.logback.classic.spi.StackTraceElementProxy step
         5: .line 154
            aload 0 /* sb */
            iload 1 /* indentLevel */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.indent:(Ljava/lang/StringBuilder;I)V
         6: .line 155
            aload 0 /* sb */
            aload 6 /* step */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinSTEP:(Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
         7: .line 156
            aload 0 /* sb */
            getstatic ch.qos.logback.core.CoreConstants.LINE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // ch.qos.logback.classic.spi.StackTraceElementProxy step
         8: .line 152
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 3 /* stepArray */
            arraylength
            iload 4 /* commonFrames */
            isub
            if_icmplt 4
        end local 5 // int i
        10: .line 159
            iload 4 /* commonFrames */
            ifle 13
        11: .line 160
            aload 0 /* sb */
            iload 1 /* indentLevel */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.indent:(Ljava/lang/StringBuilder;I)V
        12: .line 161
            aload 0 /* sb */
            ldc "... "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* commonFrames */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " common frames omitted"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic ch.qos.logback.core.CoreConstants.LINE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 164
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int commonFrames
        end local 3 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepArray
        end local 2 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 1 // int indentLevel
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0            sb  Ljava/lang/StringBuilder;
            0   14     1   indentLevel  I
            0   14     2            tp  Lch/qos/logback/classic/spi/IThrowableProxy;
            1   14     3     stepArray  [Lch/qos/logback/classic/spi/StackTraceElementProxy;
            2   14     4  commonFrames  I
            3   10     5             i  I
            5    8     6          step  Lch/qos/logback/classic/spi/StackTraceElementProxy;
    MethodParameters:
             Name  Flags
      sb           
      indentLevel  
      tp           

  public static void subjoinFirstLine(java.lang.StringBuilder, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.StringBuilder buf
        start local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 167
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getCommonFrames:()I
            istore 2 /* commonFrames */
        start local 2 // int commonFrames
         1: .line 168
            iload 2 /* commonFrames */
            ifle 3
         2: .line 169
            aload 0 /* buf */
            ldc "Caused by: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 171
      StackMap locals: int
      StackMap stack:
            aload 0 /* buf */
            aload 1 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinExceptionMessage:(Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
         4: .line 172
            return
        end local 2 // int commonFrames
        end local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 0 // java.lang.StringBuilder buf
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0           buf  Ljava/lang/StringBuilder;
            0    5     1            tp  Lch/qos/logback/classic/spi/IThrowableProxy;
            1    5     2  commonFrames  I
    MethodParameters:
      Name  Flags
      buf   
      tp    

  public static void subjoinFirstLineRootCauseFirst(java.lang.StringBuilder, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder buf
        start local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 175
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getCause:()Lch/qos/logback/classic/spi/IThrowableProxy;
            ifnull 2
         1: .line 176
            aload 0 /* buf */
            ldc "Wrapped by: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            aload 1 /* tp */
            invokestatic ch.qos.logback.classic.spi.ThrowableProxyUtil.subjoinExceptionMessage:(Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
         3: .line 179
            return
        end local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 0 // java.lang.StringBuilder buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   buf  Ljava/lang/StringBuilder;
            0    4     1    tp  Lch/qos/logback/classic/spi/IThrowableProxy;
    MethodParameters:
      Name  Flags
      buf   
      tp    

  private static void subjoinExceptionMessage(java.lang.StringBuilder, ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Ljava/lang/StringBuilder;Lch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder buf
        start local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 182
            aload 0 /* buf */
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getClassName:()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;
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 183
            return
        end local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 0 // java.lang.StringBuilder buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   buf  Ljava/lang/StringBuilder;
            0    2     1    tp  Lch/qos/logback/classic/spi/IThrowableProxy;
    MethodParameters:
      Name  Flags
      buf   
      tp    
}
SourceFile: "ThrowableProxyUtil.java"