class org.springframework.boot.devtools.livereload.Connection
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.boot.devtools.livereload.Connection
  super_class: java.lang.Object
{
  private static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern WEBSOCKET_KEY_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String WEBSOCKET_GUID;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"

  private final java.net.Socket socket;
    descriptor: Ljava/net/Socket;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.boot.devtools.livereload.ConnectionInputStream inputStream;
    descriptor: Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.boot.devtools.livereload.ConnectionOutputStream outputStream;
    descriptor: Lorg/springframework/boot/devtools/livereload/ConnectionOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private volatile boolean webSocket;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean running;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 42
            ldc Lorg/springframework/boot/devtools/livereload/Connection;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.boot.devtools.livereload.Connection.logger:Lorg/apache/commons/logging/Log;
         1: .line 44
            ldc "^Sec-WebSocket-Key:(.*)$"
            bipush 8
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
            putstatic org.springframework.boot.devtools.livereload.Connection.WEBSOCKET_KEY_PATTERN:Ljava/util/regex/Pattern;
         2: .line 46
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.net.Socket, java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/net/Socket;Ljava/io/InputStream;Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
        start local 1 // java.net.Socket socket
        start local 2 // java.io.InputStream inputStream
        start local 3 // java.io.OutputStream outputStream
         0: .line 67
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 58
            aload 0 /* this */
            iconst_1
            putfield org.springframework.boot.devtools.livereload.Connection.running:Z
         2: .line 68
            aload 0 /* this */
            aload 1 /* socket */
            putfield org.springframework.boot.devtools.livereload.Connection.socket:Ljava/net/Socket;
         3: .line 69
            aload 0 /* this */
            new org.springframework.boot.devtools.livereload.ConnectionInputStream
            dup
            aload 2 /* inputStream */
            invokespecial org.springframework.boot.devtools.livereload.ConnectionInputStream.<init>:(Ljava/io/InputStream;)V
            putfield org.springframework.boot.devtools.livereload.Connection.inputStream:Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;
         4: .line 70
            aload 0 /* this */
            new org.springframework.boot.devtools.livereload.ConnectionOutputStream
            dup
            aload 3 /* outputStream */
            invokespecial org.springframework.boot.devtools.livereload.ConnectionOutputStream.<init>:(Ljava/io/OutputStream;)V
            putfield org.springframework.boot.devtools.livereload.Connection.outputStream:Lorg/springframework/boot/devtools/livereload/ConnectionOutputStream;
         5: .line 71
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.inputStream:Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;
            invokevirtual org.springframework.boot.devtools.livereload.ConnectionInputStream.readHeader:()Ljava/lang/String;
            putfield org.springframework.boot.devtools.livereload.Connection.header:Ljava/lang/String;
         6: .line 72
            getstatic org.springframework.boot.devtools.livereload.Connection.logger:Lorg/apache/commons/logging/Log;
            ldc "Established livereload connection [%s]"
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.header:Ljava/lang/String;
            invokestatic org.springframework.core.log.LogMessage.format:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/core/log/LogMessage;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         7: .line 73
            return
        end local 3 // java.io.OutputStream outputStream
        end local 2 // java.io.InputStream inputStream
        end local 1 // java.net.Socket socket
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/springframework/boot/devtools/livereload/Connection;
            0    8     1        socket  Ljava/net/Socket;
            0    8     2   inputStream  Ljava/io/InputStream;
            0    8     3  outputStream  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      socket        
      inputStream   
      outputStream  

  void run();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
         0: .line 80
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.header:Ljava/lang/String;
            ldc "Upgrade: websocket"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 2
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.header:Ljava/lang/String;
            ldc "Sec-WebSocket-Version: 13"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 81
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.livereload.Connection.runWebSocket:()V
         2: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.header:Ljava/lang/String;
            ldc "GET /livereload.js"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         3: .line 84
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.outputStream:Lorg/springframework/boot/devtools/livereload/ConnectionOutputStream;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "livereload.js"
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            ldc "text/javascript"
            invokevirtual org.springframework.boot.devtools.livereload.ConnectionOutputStream.writeHttp:(Ljava/io/InputStream;Ljava/lang/String;)V
         4: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/devtools/livereload/Connection;
    Exceptions:
      throws java.lang.Exception

  private void runWebSocket();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
         0: .line 89
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.livereload.Connection.getWebsocketAcceptResponse:()Ljava/lang/String;
            astore 1 /* accept */
        start local 1 // java.lang.String accept
         1: .line 90
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.outputStream:Lorg/springframework/boot/devtools/livereload/ConnectionOutputStream;
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "HTTP/1.1 101 Switching Protocols"
            aastore
            dup
            iconst_1
            ldc "Upgrade: websocket"
            aastore
            dup
            iconst_2
            ldc "Connection: Upgrade"
            aastore
            dup
            iconst_3
         2: .line 91
            new java.lang.StringBuilder
            dup
            ldc "Sec-WebSocket-Accept: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* accept */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
         3: .line 90
            invokevirtual org.springframework.boot.devtools.livereload.ConnectionOutputStream.writeHeaders:([Ljava/lang/String;)V
         4: .line 92
            new org.springframework.boot.devtools.livereload.Frame
            dup
            ldc "{\"command\":\"hello\",\"protocols\":[\"http://livereload.com/protocols/official-7\"],\"serverName\":\"spring-boot\"}"
            invokespecial org.springframework.boot.devtools.livereload.Frame.<init>:(Ljava/lang/String;)V
         5: .line 93
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.outputStream:Lorg/springframework/boot/devtools/livereload/ConnectionOutputStream;
            invokevirtual org.springframework.boot.devtools.livereload.Frame.write:(Ljava/io/OutputStream;)V
         6: .line 94
            ldc 100
            invokestatic java.lang.Thread.sleep:(J)V
         7: .line 95
            aload 0 /* this */
            iconst_1
            putfield org.springframework.boot.devtools.livereload.Connection.webSocket:Z
         8: .line 96
            goto 10
         9: .line 97
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.livereload.Connection.readWebSocketFrame:()V
        10: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.running:Z
            ifne 9
        11: .line 99
            return
        end local 1 // java.lang.String accept
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/springframework/boot/devtools/livereload/Connection;
            1   12     1  accept  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception

  private void readWebSocketFrame();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
         0: .line 103
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.inputStream:Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;
            invokestatic org.springframework.boot.devtools.livereload.Frame.read:(Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;)Lorg/springframework/boot/devtools/livereload/Frame;
            astore 1 /* frame */
        start local 1 // org.springframework.boot.devtools.livereload.Frame frame
         1: .line 104
            aload 1 /* frame */
            invokevirtual org.springframework.boot.devtools.livereload.Frame.getType:()Lorg/springframework/boot/devtools/livereload/Frame$Type;
            getstatic org.springframework.boot.devtools.livereload.Frame$Type.PING:Lorg/springframework/boot/devtools/livereload/Frame$Type;
            if_acmpne 4
         2: .line 105
            aload 0 /* this */
            new org.springframework.boot.devtools.livereload.Frame
            dup
            getstatic org.springframework.boot.devtools.livereload.Frame$Type.PONG:Lorg/springframework/boot/devtools/livereload/Frame$Type;
            invokespecial org.springframework.boot.devtools.livereload.Frame.<init>:(Lorg/springframework/boot/devtools/livereload/Frame$Type;)V
            invokevirtual org.springframework.boot.devtools.livereload.Connection.writeWebSocketFrame:(Lorg/springframework/boot/devtools/livereload/Frame;)V
         3: .line 106
            goto 15
         4: .line 107
      StackMap locals: org.springframework.boot.devtools.livereload.Frame
      StackMap stack:
            aload 1 /* frame */
            invokevirtual org.springframework.boot.devtools.livereload.Frame.getType:()Lorg/springframework/boot/devtools/livereload/Frame$Type;
            getstatic org.springframework.boot.devtools.livereload.Frame$Type.CLOSE:Lorg/springframework/boot/devtools/livereload/Frame$Type;
            if_acmpne 6
         5: .line 108
            new org.springframework.boot.devtools.livereload.ConnectionClosedException
            dup
            invokespecial org.springframework.boot.devtools.livereload.ConnectionClosedException.<init>:()V
            athrow
         6: .line 110
      StackMap locals:
      StackMap stack:
            aload 1 /* frame */
            invokevirtual org.springframework.boot.devtools.livereload.Frame.getType:()Lorg/springframework/boot/devtools/livereload/Frame$Type;
            getstatic org.springframework.boot.devtools.livereload.Frame$Type.TEXT:Lorg/springframework/boot/devtools/livereload/Frame$Type;
            if_acmpne 9
         7: .line 111
            getstatic org.springframework.boot.devtools.livereload.Connection.logger:Lorg/apache/commons/logging/Log;
            ldc "Received LiveReload text frame %s"
            aload 1 /* frame */
            invokestatic org.springframework.core.log.LogMessage.format:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/core/log/LogMessage;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 112
            goto 15
         9: .line 114
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected Frame Type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* frame */
            invokevirtual org.springframework.boot.devtools.livereload.Frame.getType:()Lorg/springframework/boot/devtools/livereload/Frame$Type;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.springframework.boot.devtools.livereload.Frame frame
        10: .line 117
      StackMap locals: org.springframework.boot.devtools.livereload.Connection
      StackMap stack: java.net.SocketTimeoutException
            pop
        11: .line 118
            aload 0 /* this */
            new org.springframework.boot.devtools.livereload.Frame
            dup
            getstatic org.springframework.boot.devtools.livereload.Frame$Type.PING:Lorg/springframework/boot/devtools/livereload/Frame$Type;
            invokespecial org.springframework.boot.devtools.livereload.Frame.<init>:(Lorg/springframework/boot/devtools/livereload/Frame$Type;)V
            invokevirtual org.springframework.boot.devtools.livereload.Connection.writeWebSocketFrame:(Lorg/springframework/boot/devtools/livereload/Frame;)V
        12: .line 119
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.inputStream:Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;
            invokestatic org.springframework.boot.devtools.livereload.Frame.read:(Lorg/springframework/boot/devtools/livereload/ConnectionInputStream;)Lorg/springframework/boot/devtools/livereload/Frame;
            astore 1 /* frame */
        start local 1 // org.springframework.boot.devtools.livereload.Frame frame
        13: .line 120
            aload 1 /* frame */
            invokevirtual org.springframework.boot.devtools.livereload.Frame.getType:()Lorg/springframework/boot/devtools/livereload/Frame$Type;
            getstatic org.springframework.boot.devtools.livereload.Frame$Type.PONG:Lorg/springframework/boot/devtools/livereload/Frame$Type;
            if_acmpeq 15
        14: .line 121
            new java.lang.IllegalStateException
            dup
            ldc "No Pong"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.springframework.boot.devtools.livereload.Frame frame
        15: .line 124
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lorg/springframework/boot/devtools/livereload/Connection;
            1   10     1  frame  Lorg/springframework/boot/devtools/livereload/Frame;
           13   15     1  frame  Lorg/springframework/boot/devtools/livereload/Frame;
      Exception table:
        from    to  target  type
           0    10      10  Class java.net.SocketTimeoutException
    Exceptions:
      throws java.io.IOException

  void triggerReload();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
         0: .line 131
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.webSocket:Z
            ifeq 3
         1: .line 132
            getstatic org.springframework.boot.devtools.livereload.Connection.logger:Lorg/apache/commons/logging/Log;
            ldc "Triggering LiveReload"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 133
            aload 0 /* this */
            new org.springframework.boot.devtools.livereload.Frame
            dup
            ldc "{\"command\":\"reload\",\"path\":\"/\"}"
            invokespecial org.springframework.boot.devtools.livereload.Frame.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.boot.devtools.livereload.Connection.writeWebSocketFrame:(Lorg/springframework/boot/devtools/livereload/Frame;)V
         3: .line 135
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/boot/devtools/livereload/Connection;
    Exceptions:
      throws java.io.IOException

  private void writeWebSocketFrame(org.springframework.boot.devtools.livereload.Frame);
    descriptor: (Lorg/springframework/boot/devtools/livereload/Frame;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
        start local 1 // org.springframework.boot.devtools.livereload.Frame frame
         0: .line 138
            aload 1 /* frame */
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.outputStream:Lorg/springframework/boot/devtools/livereload/ConnectionOutputStream;
            invokevirtual org.springframework.boot.devtools.livereload.Frame.write:(Ljava/io/OutputStream;)V
         1: .line 139
            return
        end local 1 // org.springframework.boot.devtools.livereload.Frame frame
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/boot/devtools/livereload/Connection;
            0    2     1  frame  Lorg/springframework/boot/devtools/livereload/Frame;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      frame  

  private java.lang.String getWebsocketAcceptResponse();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
         0: .line 142
            getstatic org.springframework.boot.devtools.livereload.Connection.WEBSOCKET_KEY_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.header:Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 143
            aload 1 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 3
         2: .line 144
            new java.lang.IllegalStateException
            dup
            ldc "No Sec-WebSocket-Key"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 146
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* response */
        start local 2 // java.lang.String response
         4: .line 147
            ldc "SHA-1"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 3 /* messageDigest */
        start local 3 // java.security.MessageDigest messageDigest
         5: .line 148
            aload 3 /* messageDigest */
            aload 2 /* response */
            invokevirtual java.lang.String.getBytes:()[B
            iconst_0
            aload 2 /* response */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.security.MessageDigest.update:([BII)V
         6: .line 149
            aload 3 /* messageDigest */
            invokevirtual java.security.MessageDigest.digest:()[B
            invokestatic org.springframework.util.Base64Utils.encodeToString:([B)Ljava/lang/String;
            areturn
        end local 3 // java.security.MessageDigest messageDigest
        end local 2 // java.lang.String response
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/springframework/boot/devtools/livereload/Connection;
            1    7     1        matcher  Ljava/util/regex/Matcher;
            4    7     2       response  Ljava/lang/String;
            5    7     3  messageDigest  Ljava/security/MessageDigest;
    Exceptions:
      throws java.security.NoSuchAlgorithmException

  void close();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.livereload.Connection this
         0: .line 157
            aload 0 /* this */
            iconst_0
            putfield org.springframework.boot.devtools.livereload.Connection.running:Z
         1: .line 158
            aload 0 /* this */
            getfield org.springframework.boot.devtools.livereload.Connection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
         2: .line 159
            return
        end local 0 // org.springframework.boot.devtools.livereload.Connection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/devtools/livereload/Connection;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "Connection.java"
InnerClasses:
  final Type = org.springframework.boot.devtools.livereload.Frame$Type of org.springframework.boot.devtools.livereload.Frame