public class com.googlecode.lanterna.gui2.DefaultWindowManager implements com.googlecode.lanterna.gui2.WindowManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.googlecode.lanterna.gui2.DefaultWindowManager
  super_class: java.lang.Object
{
  private final com.googlecode.lanterna.gui2.WindowDecorationRenderer windowDecorationRendererOverride;
    descriptor: Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.googlecode.lanterna.TerminalSize lastKnownScreenSize;
    descriptor: Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
         0: .line 44
            aload 0 /* this */
            aconst_null
            invokespecial com.googlecode.lanterna.gui2.DefaultWindowManager.<init>:(Lcom/googlecode/lanterna/TerminalSize;)V
         1: .line 45
            return
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;

  public void <init>(com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.TerminalSize initialScreenSize
         0: .line 57
            aload 0 /* this */
            aconst_null
            aload 1 /* initialScreenSize */
            invokespecial com.googlecode.lanterna.gui2.DefaultWindowManager.<init>:(Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;Lcom/googlecode/lanterna/TerminalSize;)V
         1: .line 58
            return
        end local 1 // com.googlecode.lanterna.TerminalSize initialScreenSize
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0    2     1  initialScreenSize  Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
                   Name  Flags
      initialScreenSize  

  public void <init>(com.googlecode.lanterna.gui2.WindowDecorationRenderer, com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.gui2.WindowDecorationRenderer windowDecorationRenderer
        start local 2 // com.googlecode.lanterna.TerminalSize initialScreenSize
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            aload 0 /* this */
            aload 1 /* windowDecorationRenderer */
            putfield com.googlecode.lanterna.gui2.DefaultWindowManager.windowDecorationRendererOverride:Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
         2: .line 71
            aload 2 /* initialScreenSize */
            ifnull 5
         3: .line 72
            aload 0 /* this */
            aload 2 /* initialScreenSize */
            putfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
         4: .line 73
            goto 6
         5: .line 75
      StackMap locals: com.googlecode.lanterna.gui2.DefaultWindowManager com.googlecode.lanterna.gui2.WindowDecorationRenderer com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 0 /* this */
            new com.googlecode.lanterna.TerminalSize
            dup
            bipush 80
            bipush 24
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            putfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
         6: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.googlecode.lanterna.TerminalSize initialScreenSize
        end local 1 // com.googlecode.lanterna.gui2.WindowDecorationRenderer windowDecorationRenderer
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    7     0                      this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0    7     1  windowDecorationRenderer  Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            0    7     2         initialScreenSize  Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
                          Name  Flags
      windowDecorationRenderer  
      initialScreenSize         

  public boolean isInvalid();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
         0: .line 81
            iconst_0
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;

  public com.googlecode.lanterna.gui2.WindowDecorationRenderer getWindowDecorationRenderer(com.googlecode.lanterna.gui2.Window);
    descriptor: (Lcom/googlecode/lanterna/gui2/Window;)Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.gui2.Window window
         0: .line 86
            aload 1 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.NO_DECORATIONS:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 87
            new com.googlecode.lanterna.gui2.EmptyWindowDecorationRenderer
            dup
            invokespecial com.googlecode.lanterna.gui2.EmptyWindowDecorationRenderer.<init>:()V
            areturn
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.windowDecorationRendererOverride:Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            ifnull 4
         3: .line 90
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.windowDecorationRendererOverride:Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            areturn
         4: .line 92
      StackMap locals:
      StackMap stack:
            aload 1 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            ifnull 6
            aload 1 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokeinterface com.googlecode.lanterna.graphics.Theme.getWindowDecorationRenderer:()Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            ifnull 6
         5: .line 93
            aload 1 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            invokeinterface com.googlecode.lanterna.graphics.Theme.getWindowDecorationRenderer:()Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            areturn
         6: .line 96
      StackMap locals:
      StackMap stack:
            new com.googlecode.lanterna.gui2.DefaultWindowDecorationRenderer
            dup
            invokespecial com.googlecode.lanterna.gui2.DefaultWindowDecorationRenderer.<init>:()V
            areturn
        end local 1 // com.googlecode.lanterna.gui2.Window window
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0    7     1  window  Lcom/googlecode/lanterna/gui2/Window;
    MethodParameters:
        Name  Flags
      window  

  public void onAdded(com.googlecode.lanterna.gui2.WindowBasedTextGUI, com.googlecode.lanterna.gui2.Window, java.util.List<com.googlecode.lanterna.gui2.Window>);
    descriptor: (Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;Lcom/googlecode/lanterna/gui2/Window;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.gui2.WindowBasedTextGUI textGUI
        start local 2 // com.googlecode.lanterna.gui2.Window window
        start local 3 // java.util.List allWindows
         0: .line 102
            aload 0 /* this */
            aload 2 /* window */
            invokevirtual com.googlecode.lanterna.gui2.DefaultWindowManager.getWindowDecorationRenderer:(Lcom/googlecode/lanterna/gui2/Window;)Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            astore 4 /* decorationRenderer */
        start local 4 // com.googlecode.lanterna.gui2.WindowDecorationRenderer decorationRenderer
         1: .line 103
            aload 4 /* decorationRenderer */
            aload 2 /* window */
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.WindowDecorationRenderer.getDecoratedSize:(Lcom/googlecode/lanterna/gui2/Window;Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            astore 5 /* expectedDecoratedSize */
        start local 5 // com.googlecode.lanterna.TerminalSize expectedDecoratedSize
         2: .line 104
            aload 2 /* window */
            aload 5 /* expectedDecoratedSize */
            invokeinterface com.googlecode.lanterna.gui2.Window.setDecoratedSize:(Lcom/googlecode/lanterna/TerminalSize;)V
         3: .line 107
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.FIXED_POSITION:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 17
         4: .line 110
            aload 3 /* allWindows */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         5: .line 111
            aload 2 /* window */
            getstatic com.googlecode.lanterna.TerminalPosition.OFFSET_1x1:Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Window.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)V
         6: .line 112
            goto 17
         7: .line 113
      StackMap locals: com.googlecode.lanterna.gui2.WindowDecorationRenderer com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.CENTERED:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 12
         8: .line 114
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 5 /* expectedDecoratedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            iconst_2
            idiv
            istore 6 /* left */
        start local 6 // int left
         9: .line 115
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 5 /* expectedDecoratedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            iconst_2
            idiv
            istore 7 /* top */
        start local 7 // int top
        10: .line 116
            aload 2 /* window */
            new com.googlecode.lanterna.TerminalPosition
            dup
            iload 6 /* left */
            iload 7 /* top */
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            invokeinterface com.googlecode.lanterna.gui2.Window.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)V
        end local 7 // int top
        end local 6 // int left
        11: .line 117
            goto 17
        12: .line 119
      StackMap locals:
      StackMap stack:
            aload 3 /* allWindows */
            aload 3 /* allWindows */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Window
            invokeinterface com.googlecode.lanterna.gui2.Window.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            iconst_2
            iconst_1
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelative:(II)Lcom/googlecode/lanterna/TerminalPosition;
            astore 6 /* nextPosition */
        start local 6 // com.googlecode.lanterna.TerminalPosition nextPosition
        13: .line 120
            aload 6 /* nextPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 5 /* expectedDecoratedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iadd
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmpgt 15
        14: .line 121
            aload 6 /* nextPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 5 /* expectedDecoratedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iadd
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmple 16
        15: .line 122
      StackMap locals: com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            getstatic com.googlecode.lanterna.TerminalPosition.OFFSET_1x1:Lcom/googlecode/lanterna/TerminalPosition;
            astore 6 /* nextPosition */
        16: .line 124
      StackMap locals:
      StackMap stack:
            aload 2 /* window */
            aload 6 /* nextPosition */
            invokeinterface com.googlecode.lanterna.gui2.Window.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)V
        end local 6 // com.googlecode.lanterna.TerminalPosition nextPosition
        17: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            aload 2 /* window */
            invokevirtual com.googlecode.lanterna.gui2.DefaultWindowManager.prepareWindow:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/gui2/Window;)V
        18: .line 129
            return
        end local 5 // com.googlecode.lanterna.TerminalSize expectedDecoratedSize
        end local 4 // com.googlecode.lanterna.gui2.WindowDecorationRenderer decorationRenderer
        end local 3 // java.util.List allWindows
        end local 2 // com.googlecode.lanterna.gui2.Window window
        end local 1 // com.googlecode.lanterna.gui2.WindowBasedTextGUI textGUI
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   19     0                   this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0   19     1                textGUI  Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;
            0   19     2                 window  Lcom/googlecode/lanterna/gui2/Window;
            0   19     3             allWindows  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Window;>;
            1   19     4     decorationRenderer  Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            2   19     5  expectedDecoratedSize  Lcom/googlecode/lanterna/TerminalSize;
            9   11     6                   left  I
           10   11     7                    top  I
           13   17     6           nextPosition  Lcom/googlecode/lanterna/TerminalPosition;
    Signature: (Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;Lcom/googlecode/lanterna/gui2/Window;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Window;>;)V
    MethodParameters:
            Name  Flags
      textGUI     
      window      
      allWindows  

  public void onRemoved(com.googlecode.lanterna.gui2.WindowBasedTextGUI, com.googlecode.lanterna.gui2.Window, java.util.List<com.googlecode.lanterna.gui2.Window>);
    descriptor: (Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;Lcom/googlecode/lanterna/gui2/Window;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.gui2.WindowBasedTextGUI textGUI
        start local 2 // com.googlecode.lanterna.gui2.Window window
        start local 3 // java.util.List allWindows
         0: .line 134
            return
        end local 3 // java.util.List allWindows
        end local 2 // com.googlecode.lanterna.gui2.Window window
        end local 1 // com.googlecode.lanterna.gui2.WindowBasedTextGUI textGUI
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0    1     1     textGUI  Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;
            0    1     2      window  Lcom/googlecode/lanterna/gui2/Window;
            0    1     3  allWindows  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Window;>;
    Signature: (Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;Lcom/googlecode/lanterna/gui2/Window;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Window;>;)V
    MethodParameters:
            Name  Flags
      textGUI     
      window      
      allWindows  

  public void prepareWindows(com.googlecode.lanterna.gui2.WindowBasedTextGUI, java.util.List<com.googlecode.lanterna.gui2.Window>, com.googlecode.lanterna.TerminalSize);
    descriptor: (Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;Ljava/util/List;Lcom/googlecode/lanterna/TerminalSize;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.gui2.WindowBasedTextGUI textGUI
        start local 2 // java.util.List allWindows
        start local 3 // com.googlecode.lanterna.TerminalSize screenSize
         0: .line 138
            aload 0 /* this */
            aload 3 /* screenSize */
            putfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
         1: .line 139
            aload 2 /* allWindows */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: com.googlecode.lanterna.gui2.DefaultWindowManager com.googlecode.lanterna.gui2.WindowBasedTextGUI java.util.List com.googlecode.lanterna.TerminalSize top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Window
            astore 4 /* window */
        start local 4 // com.googlecode.lanterna.gui2.Window window
         3: .line 140
            aload 0 /* this */
            aload 3 /* screenSize */
            aload 4 /* window */
            invokevirtual com.googlecode.lanterna.gui2.DefaultWindowManager.prepareWindow:(Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/gui2/Window;)V
        end local 4 // com.googlecode.lanterna.gui2.Window window
         4: .line 139
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 142
            return
        end local 3 // com.googlecode.lanterna.TerminalSize screenSize
        end local 2 // java.util.List allWindows
        end local 1 // com.googlecode.lanterna.gui2.WindowBasedTextGUI textGUI
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0    6     1     textGUI  Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;
            0    6     2  allWindows  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Window;>;
            0    6     3  screenSize  Lcom/googlecode/lanterna/TerminalSize;
            3    4     4      window  Lcom/googlecode/lanterna/gui2/Window;
    Signature: (Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Window;>;Lcom/googlecode/lanterna/TerminalSize;)V
    MethodParameters:
            Name  Flags
      textGUI     
      allWindows  
      screenSize  

  protected void prepareWindow(com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.gui2.Window);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Lcom/googlecode/lanterna/gui2/Window;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
        start local 1 // com.googlecode.lanterna.TerminalSize screenSize
        start local 2 // com.googlecode.lanterna.gui2.Window window
         0: .line 157
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.FIXED_SIZE:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 158
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 3 /* contentAreaSize */
        start local 3 // com.googlecode.lanterna.TerminalSize contentAreaSize
         2: .line 159
            goto 4
        end local 3 // com.googlecode.lanterna.TerminalSize contentAreaSize
         3: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 3 /* contentAreaSize */
        start local 3 // com.googlecode.lanterna.TerminalSize contentAreaSize
         4: .line 163
      StackMap locals: com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 0 /* this */
            aload 2 /* window */
            invokevirtual com.googlecode.lanterna.gui2.DefaultWindowManager.getWindowDecorationRenderer:(Lcom/googlecode/lanterna/gui2/Window;)Lcom/googlecode/lanterna/gui2/WindowDecorationRenderer;
            aload 2 /* window */
            aload 3 /* contentAreaSize */
            invokeinterface com.googlecode.lanterna.gui2.WindowDecorationRenderer.getDecoratedSize:(Lcom/googlecode/lanterna/gui2/Window;Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* size */
        start local 4 // com.googlecode.lanterna.TerminalSize size
         5: .line 164
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 5 /* position */
        start local 5 // com.googlecode.lanterna.TerminalPosition position
         6: .line 166
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.FULL_SCREEN:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 167
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            astore 5 /* position */
         8: .line 168
            aload 1 /* screenSize */
            astore 4 /* size */
         9: .line 169
            goto 35
        10: .line 170
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.EXPANDED:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 19
        11: .line 171
            getstatic com.googlecode.lanterna.TerminalPosition.OFFSET_1x1:Lcom/googlecode/lanterna/TerminalPosition;
            astore 5 /* position */
        12: .line 172
            aload 1 /* screenSize */
        13: .line 173
            iconst_4
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Math.min:(II)I
            ineg
        14: .line 174
            iconst_3
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Math.min:(II)I
            ineg
        15: .line 172
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelative:(II)Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* size */
        16: .line 175
            aload 4 /* size */
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getDecoratedSize:()Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.equals:(Ljava/lang/Object;)Z
            ifne 35
        17: .line 176
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.invalidate:()V
        18: .line 178
            goto 35
        19: .line 179
      StackMap locals:
      StackMap stack:
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.FIT_TERMINAL_WINDOW:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 23
        20: .line 180
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.CENTERED:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 35
        21: .line 183
            goto 23
        22: .line 184
      StackMap locals:
      StackMap stack:
            aload 5 /* position */
            iconst_m1
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 5 /* position */
        23: .line 183
      StackMap locals:
      StackMap stack:
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            ifle 26
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iadd
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmpgt 22
        24: .line 186
            goto 26
        25: .line 187
      StackMap locals:
      StackMap stack:
            aload 5 /* position */
            iconst_m1
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 5 /* position */
        26: .line 186
      StackMap locals:
      StackMap stack:
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            ifle 27
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iadd
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmpgt 25
        27: .line 189
      StackMap locals:
      StackMap stack:
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iadd
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmple 29
        28: .line 190
            aload 4 /* size */
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalSize.withRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* size */
        29: .line 192
      StackMap locals:
      StackMap stack:
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iadd
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmple 31
        30: .line 193
            aload 4 /* size */
            aload 1 /* screenSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 5 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalSize.withColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 4 /* size */
        31: .line 195
      StackMap locals:
      StackMap stack:
            aload 2 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getHints:()Ljava/util/Set;
            getstatic com.googlecode.lanterna.gui2.Window$Hint.CENTERED:Lcom/googlecode/lanterna/gui2/Window$Hint;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 35
        32: .line 196
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            iconst_2
            idiv
            istore 6 /* left */
        start local 6 // int left
        33: .line 197
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.DefaultWindowManager.lastKnownScreenSize:Lcom/googlecode/lanterna/TerminalSize;
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 4 /* size */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            iconst_2
            idiv
            istore 7 /* top */
        start local 7 // int top
        34: .line 198
            new com.googlecode.lanterna.TerminalPosition
            dup
            iload 6 /* left */
            iload 7 /* top */
            invokespecial com.googlecode.lanterna.TerminalPosition.<init>:(II)V
            astore 5 /* position */
        end local 7 // int top
        end local 6 // int left
        35: .line 202
      StackMap locals:
      StackMap stack:
            aload 2 /* window */
            aload 5 /* position */
            invokeinterface com.googlecode.lanterna.gui2.Window.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)V
        36: .line 203
            aload 2 /* window */
            aload 4 /* size */
            invokeinterface com.googlecode.lanterna.gui2.Window.setDecoratedSize:(Lcom/googlecode/lanterna/TerminalSize;)V
        37: .line 204
            return
        end local 5 // com.googlecode.lanterna.TerminalPosition position
        end local 4 // com.googlecode.lanterna.TerminalSize size
        end local 3 // com.googlecode.lanterna.TerminalSize contentAreaSize
        end local 2 // com.googlecode.lanterna.gui2.Window window
        end local 1 // com.googlecode.lanterna.TerminalSize screenSize
        end local 0 // com.googlecode.lanterna.gui2.DefaultWindowManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   38     0             this  Lcom/googlecode/lanterna/gui2/DefaultWindowManager;
            0   38     1       screenSize  Lcom/googlecode/lanterna/TerminalSize;
            0   38     2           window  Lcom/googlecode/lanterna/gui2/Window;
            2    3     3  contentAreaSize  Lcom/googlecode/lanterna/TerminalSize;
            4   38     3  contentAreaSize  Lcom/googlecode/lanterna/TerminalSize;
            5   38     4             size  Lcom/googlecode/lanterna/TerminalSize;
            6   38     5         position  Lcom/googlecode/lanterna/TerminalPosition;
           33   35     6             left  I
           34   35     7              top  I
    MethodParameters:
            Name  Flags
      screenSize  
      window      
}
SourceFile: "DefaultWindowManager.java"
InnerClasses:
  public Hint = com.googlecode.lanterna.gui2.Window$Hint of com.googlecode.lanterna.gui2.Window