abstract class com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer implements com.googlecode.lanterna.gui2.Border$BorderRenderer
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer
  super_class: java.lang.Object
{
  private final com.googlecode.lanterna.gui2.Borders$BorderStyle borderStyle;
    descriptor: Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(com.googlecode.lanterna.gui2.Borders$BorderStyle);
    descriptor: (Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
        start local 1 // com.googlecode.lanterna.gui2.Borders$BorderStyle borderStyle
         0: .line 179
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 180
            aload 0 /* this */
            aload 1 /* borderStyle */
            putfield com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.borderStyle:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
         2: .line 181
            return
        end local 1 // com.googlecode.lanterna.gui2.Borders$BorderStyle borderStyle
        end local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/googlecode/lanterna/gui2/Borders$AbstractBorderRenderer;
            0    3     1  borderStyle  Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
    MethodParameters:
             Name  Flags
      borderStyle  

  public com.googlecode.lanterna.TerminalSize getPreferredSize(com.googlecode.lanterna.gui2.Border);
    descriptor: (Lcom/googlecode/lanterna/gui2/Border;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
        start local 1 // com.googlecode.lanterna.gui2.Border component
         0: .line 185
            aload 1 /* component */
            checkcast com.googlecode.lanterna.gui2.Borders$StandardBorder
            astore 2 /* border */
        start local 2 // com.googlecode.lanterna.gui2.Borders$StandardBorder border
         1: .line 186
            aload 2 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getComponent:()Lcom/googlecode/lanterna/gui2/Component;
            astore 3 /* wrappedComponent */
        start local 3 // com.googlecode.lanterna.gui2.Component wrappedComponent
         2: .line 188
            aload 3 /* wrappedComponent */
            ifnonnull 5
         3: .line 189
            getstatic com.googlecode.lanterna.TerminalSize.ZERO:Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* preferredSize */
        start local 4 // com.googlecode.lanterna.TerminalSize preferredSize
         4: .line 190
            goto 6
        end local 4 // com.googlecode.lanterna.TerminalSize preferredSize
         5: .line 191
      StackMap locals: com.googlecode.lanterna.gui2.Borders$StandardBorder com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 3 /* wrappedComponent */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* preferredSize */
        start local 4 // com.googlecode.lanterna.TerminalSize preferredSize
         6: .line 193
      StackMap locals: com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 4 /* preferredSize */
            iconst_2
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            iconst_2
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* preferredSize */
         7: .line 194
            aload 2 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getTitle:()Ljava/lang/String;
            astore 5 /* borderTitle */
        start local 5 // java.lang.String borderTitle
         8: .line 195
            aload 4 /* preferredSize */
         9: new com.googlecode.lanterna.TerminalSize
            dup
            aload 5 /* borderTitle */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 10
            iconst_2
            goto 11
      StackMap locals: com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer com.googlecode.lanterna.gui2.Border com.googlecode.lanterna.gui2.Borders$StandardBorder com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.TerminalSize java.lang.String
      StackMap stack: com.googlecode.lanterna.TerminalSize new 9 new 9
        10: aload 5 /* borderTitle */
            invokestatic com.googlecode.lanterna.TerminalTextUtils.getColumnWidth:(Ljava/lang/String;)I
            iconst_4
            iadd
      StackMap locals: com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer com.googlecode.lanterna.gui2.Border com.googlecode.lanterna.gui2.Borders$StandardBorder com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.TerminalSize java.lang.String
      StackMap stack: com.googlecode.lanterna.TerminalSize new 9 new 9 int
        11: iconst_2
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            invokevirtual com.googlecode.lanterna.TerminalSize.max:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            areturn
        end local 5 // java.lang.String borderTitle
        end local 4 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 3 // com.googlecode.lanterna.gui2.Component wrappedComponent
        end local 2 // com.googlecode.lanterna.gui2.Borders$StandardBorder border
        end local 1 // com.googlecode.lanterna.gui2.Border component
        end local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lcom/googlecode/lanterna/gui2/Borders$AbstractBorderRenderer;
            0   12     1         component  Lcom/googlecode/lanterna/gui2/Border;
            1   12     2            border  Lcom/googlecode/lanterna/gui2/Borders$StandardBorder;
            2   12     3  wrappedComponent  Lcom/googlecode/lanterna/gui2/Component;
            4    5     4     preferredSize  Lcom/googlecode/lanterna/TerminalSize;
            6   12     4     preferredSize  Lcom/googlecode/lanterna/TerminalSize;
            8   12     5       borderTitle  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      component  

  public com.googlecode.lanterna.TerminalPosition getWrappedComponentTopLeftOffset();
    descriptor: ()Lcom/googlecode/lanterna/TerminalPosition;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
         0: .line 200
            getstatic com.googlecode.lanterna.TerminalPosition.OFFSET_1x1:Lcom/googlecode/lanterna/TerminalPosition;
            areturn
        end local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/Borders$AbstractBorderRenderer;

  public com.googlecode.lanterna.TerminalSize getWrappedComponentSize(com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
        start local 1 // com.googlecode.lanterna.TerminalSize borderSize
         0: .line 205
            aload 1 /* borderSize */
         1: .line 206
            iconst_2
            aload 1 /* borderSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Math.min:(II)I
            ineg
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
         2: .line 207
            iconst_2
            aload 1 /* borderSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Math.min:(II)I
            ineg
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeRows:(I)Lcom/googlecode/lanterna/TerminalSize;
         3: .line 205
            areturn
        end local 1 // com.googlecode.lanterna.TerminalSize borderSize
        end local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/googlecode/lanterna/gui2/Borders$AbstractBorderRenderer;
            0    4     1  borderSize  Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
            Name  Flags
      borderSize  

  public void drawComponent(com.googlecode.lanterna.gui2.TextGUIGraphics, com.googlecode.lanterna.gui2.Border);
    descriptor: (Lcom/googlecode/lanterna/gui2/TextGUIGraphics;Lcom/googlecode/lanterna/gui2/Border;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
        start local 1 // com.googlecode.lanterna.gui2.TextGUIGraphics graphics
        start local 2 // com.googlecode.lanterna.gui2.Border component
         0: .line 212
            aload 2 /* component */
            checkcast com.googlecode.lanterna.gui2.Borders$StandardBorder
            astore 3 /* border */
        start local 3 // com.googlecode.lanterna.gui2.Borders$StandardBorder border
         1: .line 213
            aload 3 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getComponent:()Lcom/googlecode/lanterna/gui2/Component;
            astore 4 /* wrappedComponent */
        start local 4 // com.googlecode.lanterna.gui2.Component wrappedComponent
         2: .line 214
            aload 4 /* wrappedComponent */
            ifnonnull 4
         3: .line 215
            return
         4: .line 217
      StackMap locals: com.googlecode.lanterna.gui2.Borders$StandardBorder com.googlecode.lanterna.gui2.Component
      StackMap stack:
            aload 1 /* graphics */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 5 /* drawableArea */
        start local 5 // com.googlecode.lanterna.TerminalSize drawableArea
         5: .line 219
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getHorizontalLine:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 6 /* horizontalLine */
        start local 6 // char horizontalLine
         6: .line 220
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getVerticalLine:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 7 /* verticalLine */
        start local 7 // char verticalLine
         7: .line 221
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getBottomLeftCorner:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 8 /* bottomLeftCorner */
        start local 8 // char bottomLeftCorner
         8: .line 222
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getTopLeftCorner:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 9 /* topLeftCorner */
        start local 9 // char topLeftCorner
         9: .line 223
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getBottomRightCorner:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 10 /* bottomRightCorner */
        start local 10 // char bottomRightCorner
        10: .line 224
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getTopRightCorner:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 11 /* topRightCorner */
        start local 11 // char topRightCorner
        11: .line 225
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getTitleLeft:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 12 /* titleLeft */
        start local 12 // char titleLeft
        12: .line 226
            aload 0 /* this */
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getTitleRight:(Lcom/googlecode/lanterna/graphics/Theme;)C
            istore 13 /* titleRight */
        start local 13 // char titleRight
        13: .line 228
            aload 2 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Border.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            ldc Lcom/googlecode/lanterna/gui2/AbstractBorder;
            invokeinterface com.googlecode.lanterna.graphics.Theme.getDefinition:(Ljava/lang/Class;)Lcom/googlecode/lanterna/graphics/ThemeDefinition;
            astore 14 /* themeDefinition */
        start local 14 // com.googlecode.lanterna.graphics.ThemeDefinition themeDefinition
        14: .line 229
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.borderStyle:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
            getstatic com.googlecode.lanterna.gui2.Borders$BorderStyle.Bevel:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
            if_acmpne 17
        15: .line 230
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getPreLight:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        16: .line 231
            goto 18
        17: .line 233
      StackMap locals: com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer com.googlecode.lanterna.gui2.TextGUIGraphics com.googlecode.lanterna.gui2.Border com.googlecode.lanterna.gui2.Borders$StandardBorder com.googlecode.lanterna.gui2.Component com.googlecode.lanterna.TerminalSize int int int int int int int int com.googlecode.lanterna.graphics.ThemeDefinition
      StackMap stack:
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getNormal:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        18: .line 235
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            iconst_0
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            iload 8 /* bottomLeftCorner */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        19: .line 236
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_2
            if_icmple 21
        20: .line 237
            aload 1 /* graphics */
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_0
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_2
            isub
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_0
            iconst_1
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            iload 7 /* verticalLine */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.drawLine:(Lcom/googlecode/lanterna/TerminalPosition;Lcom/googlecode/lanterna/TerminalPosition;C)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        21: .line 239
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            iconst_0
            iconst_0
            iload 9 /* topLeftCorner */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        22: .line 240
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_2
            if_icmple 24
        23: .line 241
            aload 1 /* graphics */
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_1
            iconst_0
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            new com.googlecode.lanterna.TerminalPosition
            dup
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_2
            isub
            iconst_0
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            iload 6 /* horizontalLine */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.drawLine:(Lcom/googlecode/lanterna/TerminalPosition;Lcom/googlecode/lanterna/TerminalPosition;C)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        24: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.borderStyle:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
            getstatic com.googlecode.lanterna.gui2.Borders$BorderStyle.ReverseBevel:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
            if_acmpne 27
        25: .line 245
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getPreLight:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        26: .line 246
            goto 28
        27: .line 248
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getNormal:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        28: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            iconst_0
            iload 11 /* topRightCorner */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        29: .line 251
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_2
            if_icmple 34
        30: .line 252
            aload 1 /* graphics */
            new com.googlecode.lanterna.TerminalPosition
            dup
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            iconst_1
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
        31: .line 253
            new com.googlecode.lanterna.TerminalPosition
            dup
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_2
            isub
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
        32: .line 254
            iload 7 /* verticalLine */
        33: .line 252
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.drawLine:(Lcom/googlecode/lanterna/TerminalPosition;Lcom/googlecode/lanterna/TerminalPosition;C)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        34: .line 256
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_1
            isub
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            iload 10 /* bottomRightCorner */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        35: .line 257
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_2
            if_icmple 40
        36: .line 258
            aload 1 /* graphics */
            new com.googlecode.lanterna.TerminalPosition
            dup
            iconst_1
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
        37: .line 259
            new com.googlecode.lanterna.TerminalPosition
            dup
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iconst_2
            isub
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iconst_1
            isub
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
        38: .line 260
            iload 6 /* horizontalLine */
        39: .line 258
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.drawLine:(Lcom/googlecode/lanterna/TerminalPosition;Lcom/googlecode/lanterna/TerminalPosition;C)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        40: .line 264
      StackMap locals:
      StackMap stack:
            aload 3 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getTitle:()Ljava/lang/String;
            ifnull 50
            aload 3 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getTitle:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 50
        41: .line 265
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 3 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getTitle:()Ljava/lang/String;
            invokestatic com.googlecode.lanterna.TerminalTextUtils.getColumnWidth:(Ljava/lang/String;)I
            iconst_4
            iadd
            if_icmplt 50
        42: .line 266
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getActive:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        43: .line 267
            aload 1 /* graphics */
            iconst_2
            iconst_0
            aload 3 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getTitle:()Ljava/lang/String;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.putString:(IILjava/lang/String;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        44: .line 269
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.borderStyle:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
            getstatic com.googlecode.lanterna.gui2.Borders$BorderStyle.Bevel:Lcom/googlecode/lanterna/gui2/Borders$BorderStyle;
            if_acmpne 47
        45: .line 270
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getPreLight:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        46: .line 271
            goto 48
        47: .line 273
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            aload 14 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getNormal:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        48: .line 275
      StackMap locals:
      StackMap stack:
            aload 1 /* graphics */
            iconst_1
            iconst_0
            iload 12 /* titleLeft */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        49: .line 276
            aload 1 /* graphics */
            iconst_2
            aload 3 /* border */
            invokevirtual com.googlecode.lanterna.gui2.Borders$StandardBorder.getTitle:()Ljava/lang/String;
            invokestatic com.googlecode.lanterna.TerminalTextUtils.getColumnWidth:(Ljava/lang/String;)I
            iadd
            iconst_0
            iload 13 /* titleRight */
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            pop
        50: .line 279
      StackMap locals:
      StackMap stack:
            aload 4 /* wrappedComponent */
            aload 1 /* graphics */
            aload 0 /* this */
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getWrappedComponentTopLeftOffset:()Lcom/googlecode/lanterna/TerminalPosition;
            aload 0 /* this */
            aload 5 /* drawableArea */
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getWrappedComponentSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.TextGUIGraphics.newTextGraphics:(Lcom/googlecode/lanterna/TerminalPosition;Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            invokeinterface com.googlecode.lanterna.gui2.Component.draw:(Lcom/googlecode/lanterna/gui2/TextGUIGraphics;)V
        51: .line 280
            aload 1 /* graphics */
            invokestatic com.googlecode.lanterna.gui2.Borders.joinLinesWithFrame:(Lcom/googlecode/lanterna/graphics/TextGraphics;)V
        52: .line 281
            return
        end local 14 // com.googlecode.lanterna.graphics.ThemeDefinition themeDefinition
        end local 13 // char titleRight
        end local 12 // char titleLeft
        end local 11 // char topRightCorner
        end local 10 // char bottomRightCorner
        end local 9 // char topLeftCorner
        end local 8 // char bottomLeftCorner
        end local 7 // char verticalLine
        end local 6 // char horizontalLine
        end local 5 // com.googlecode.lanterna.TerminalSize drawableArea
        end local 4 // com.googlecode.lanterna.gui2.Component wrappedComponent
        end local 3 // com.googlecode.lanterna.gui2.Borders$StandardBorder border
        end local 2 // com.googlecode.lanterna.gui2.Border component
        end local 1 // com.googlecode.lanterna.gui2.TextGUIGraphics graphics
        end local 0 // com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   53     0               this  Lcom/googlecode/lanterna/gui2/Borders$AbstractBorderRenderer;
            0   53     1           graphics  Lcom/googlecode/lanterna/gui2/TextGUIGraphics;
            0   53     2          component  Lcom/googlecode/lanterna/gui2/Border;
            1   53     3             border  Lcom/googlecode/lanterna/gui2/Borders$StandardBorder;
            2   53     4   wrappedComponent  Lcom/googlecode/lanterna/gui2/Component;
            5   53     5       drawableArea  Lcom/googlecode/lanterna/TerminalSize;
            6   53     6     horizontalLine  C
            7   53     7       verticalLine  C
            8   53     8   bottomLeftCorner  C
            9   53     9      topLeftCorner  C
           10   53    10  bottomRightCorner  C
           11   53    11     topRightCorner  C
           12   53    12          titleLeft  C
           13   53    13         titleRight  C
           14   53    14    themeDefinition  Lcom/googlecode/lanterna/graphics/ThemeDefinition;
    MethodParameters:
           Name  Flags
      graphics   
      component  

  protected abstract char getHorizontalLine(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getVerticalLine(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getBottomLeftCorner(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getTopLeftCorner(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getBottomRightCorner(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getTopRightCorner(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getTitleLeft(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  protected abstract char getTitleRight(com.googlecode.lanterna.graphics.Theme);
    descriptor: (Lcom/googlecode/lanterna/graphics/Theme;)C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      theme  

  public void drawComponent(com.googlecode.lanterna.gui2.TextGUIGraphics, com.googlecode.lanterna.gui2.Component);
    descriptor: (Lcom/googlecode/lanterna/gui2/TextGUIGraphics;Lcom/googlecode/lanterna/gui2/Component;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast com.googlecode.lanterna.gui2.Border
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.drawComponent:(Lcom/googlecode/lanterna/gui2/TextGUIGraphics;Lcom/googlecode/lanterna/gui2/Border;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.googlecode.lanterna.TerminalSize getPreferredSize(com.googlecode.lanterna.gui2.Component);
    descriptor: (Lcom/googlecode/lanterna/gui2/Component;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.googlecode.lanterna.gui2.Border
            invokevirtual com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer.getPreferredSize:(Lcom/googlecode/lanterna/gui2/Border;)Lcom/googlecode/lanterna/TerminalSize;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Borders.java"
NestHost: com.googlecode.lanterna.gui2.Borders
InnerClasses:
  public abstract BorderRenderer = com.googlecode.lanterna.gui2.Border$BorderRenderer of com.googlecode.lanterna.gui2.Border
  private abstract AbstractBorderRenderer = com.googlecode.lanterna.gui2.Borders$AbstractBorderRenderer of com.googlecode.lanterna.gui2.Borders
  private final BorderStyle = com.googlecode.lanterna.gui2.Borders$BorderStyle of com.googlecode.lanterna.gui2.Borders
  private abstract StandardBorder = com.googlecode.lanterna.gui2.Borders$StandardBorder of com.googlecode.lanterna.gui2.Borders