class io.vertx.ext.web.handler.sockjs.impl.BaseTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.web.handler.sockjs.impl.BaseTransport
  super_class: java.lang.Object
{
  private static final io.vertx.core.logging.Logger log;
    descriptor: Lio/vertx/core/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected final io.vertx.core.Vertx vertx;
    descriptor: Lio/vertx/core/Vertx;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.core.shareddata.LocalMap<java.lang.String, io.vertx.ext.web.handler.sockjs.impl.SockJSSession> sessions;
    descriptor: Lio/vertx/core/shareddata/LocalMap;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Lio/vertx/core/shareddata/LocalMap<Ljava/lang/String;Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;>;

  protected io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options;
    descriptor: Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;
    flags: (0x0004) ACC_PROTECTED

  static final java.lang.String COMMON_PATH_ELEMENT_RE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "\\/[^\\/\\.]+\\/([^\\/\\.]+)\\/"

  private static final long RAND_OFFSET;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483648

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 68
            ldc Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.log:Lio/vertx/core/logging/Logger;
         1: .line 76
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.vertx.core.Vertx, io.vertx.core.shareddata.LocalMap<java.lang.String, io.vertx.ext.web.handler.sockjs.impl.SockJSSession>, io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/core/shareddata/LocalMap;Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.core.shareddata.LocalMap sessions
        start local 3 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
         0: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.ext.web.handler.sockjs.impl.BaseTransport.vertx:Lio/vertx/core/Vertx;
         2: .line 80
            aload 0 /* this */
            aload 2 /* sessions */
            putfield io.vertx.ext.web.handler.sockjs.impl.BaseTransport.sessions:Lio/vertx/core/shareddata/LocalMap;
         3: .line 81
            aload 0 /* this */
            aload 3 /* options */
            putfield io.vertx.ext.web.handler.sockjs.impl.BaseTransport.options:Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;
         4: .line 82
            return
        end local 3 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
        end local 2 // io.vertx.core.shareddata.LocalMap sessions
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;
            0    5     1     vertx  Lio/vertx/core/Vertx;
            0    5     2  sessions  Lio/vertx/core/shareddata/LocalMap<Ljava/lang/String;Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;>;
            0    5     3   options  Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;
    Signature: (Lio/vertx/core/Vertx;Lio/vertx/core/shareddata/LocalMap<Ljava/lang/String;Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;>;Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;)V
    MethodParameters:
          Name  Flags
      vertx     
      sessions  
      options   

  protected io.vertx.ext.web.handler.sockjs.impl.SockJSSession getSession(io.vertx.ext.web.RoutingContext, long, long, java.lang.String, io.vertx.core.Handler<io.vertx.ext.web.handler.sockjs.SockJSSocket>);
    descriptor: (Lio/vertx/ext/web/RoutingContext;JJLjava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=9, args_size=6
        start local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
        start local 1 // io.vertx.ext.web.RoutingContext rc
        start local 2 // long timeout
        start local 4 // long heartbeatInterval
        start local 6 // java.lang.String sessionID
        start local 7 // io.vertx.core.Handler sockHandler
         0: .line 86
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.sockjs.impl.BaseTransport.sessions:Lio/vertx/core/shareddata/LocalMap;
            aload 6 /* sessionID */
            aload 0 /* this */
            aload 1 /* rc */
            lload 2 /* timeout */
            lload 4 /* heartbeatInterval */
            aload 7 /* sockHandler */
            invokedynamic apply(Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;Lio/vertx/ext/web/RoutingContext;JJLio/vertx/core/Handler;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/web/handler/sockjs/impl/BaseTransport.lambda$0(Lio/vertx/ext/web/RoutingContext;JJLio/vertx/core/Handler;Ljava/lang/String;)Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession; (7)
                  (Ljava/lang/String;)Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;
            invokeinterface io.vertx.core.shareddata.LocalMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast io.vertx.ext.web.handler.sockjs.impl.SockJSSession
            astore 8 /* session */
        start local 8 // io.vertx.ext.web.handler.sockjs.impl.SockJSSession session
         1: .line 87
            aload 8 /* session */
            areturn
        end local 8 // io.vertx.ext.web.handler.sockjs.impl.SockJSSession session
        end local 7 // io.vertx.core.Handler sockHandler
        end local 6 // java.lang.String sessionID
        end local 4 // long heartbeatInterval
        end local 2 // long timeout
        end local 1 // io.vertx.ext.web.RoutingContext rc
        end local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;
            0    2     1                 rc  Lio/vertx/ext/web/RoutingContext;
            0    2     2            timeout  J
            0    2     4  heartbeatInterval  J
            0    2     6          sessionID  Ljava/lang/String;
            0    2     7        sockHandler  Lio/vertx/core/Handler<Lio/vertx/ext/web/handler/sockjs/SockJSSocket;>;
            1    2     8            session  Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;
    Signature: (Lio/vertx/ext/web/RoutingContext;JJLjava/lang/String;Lio/vertx/core/Handler<Lio/vertx/ext/web/handler/sockjs/SockJSSocket;>;)Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;
    MethodParameters:
                   Name  Flags
      rc                 
      timeout            
      heartbeatInterval  
      sessionID          
      sockHandler        

  protected void sendInvalidJSON(io.vertx.core.http.HttpServerResponse);
    descriptor: (Lio/vertx/core/http/HttpServerResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
        start local 1 // io.vertx.core.http.HttpServerResponse response
         0: .line 91
            getstatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.log:Lio/vertx/core/logging/Logger;
            invokevirtual io.vertx.core.logging.Logger.isTraceEnabled:()Z
            ifeq 1
            getstatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.log:Lio/vertx/core/logging/Logger;
            ldc "Broken JSON"
            invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;)V
         1: .line 92
      StackMap locals:
      StackMap stack:
            aload 1 /* response */
            sipush 500
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            pop
         2: .line 93
            aload 1 /* response */
            ldc "Broken JSON encoding."
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)V
         3: .line 94
            return
        end local 1 // io.vertx.core.http.HttpServerResponse response
        end local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;
            0    4     1  response  Lio/vertx/core/http/HttpServerResponse;
    MethodParameters:
          Name  Flags
      response  

  protected java.lang.String escapeForJavaScript(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
        start local 1 // java.lang.String str
         0: .line 98
            aload 1 /* str */
            invokestatic io.vertx.core.impl.StringEscapeUtils.escapeJavaScript:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* str */
         1: .line 99
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 100
            getstatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.log:Lio/vertx/core/logging/Logger;
            ldc "Failed to escape"
            aload 2 /* e */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 101
            aconst_null
            astore 1 /* str */
        end local 2 // java.lang.Exception e
         5: .line 103
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            areturn
        end local 1 // java.lang.String str
        end local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;
            0    6     1   str  Ljava/lang/String;
            3    5     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      str   

  static void setJSESSIONID(io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions, io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
        start local 1 // io.vertx.ext.web.RoutingContext rc
         0: .line 133
            aload 1 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            ldc "cookie"
            invokeinterface io.vertx.core.http.HttpServerRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* cookies */
        start local 2 // java.lang.String cookies
         1: .line 134
            aload 0 /* options */
            invokevirtual io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions.isInsertJSESSIONID:()Z
            ifeq 17
         2: .line 136
            aload 2 /* cookies */
            ifnull 14
         3: .line 138
            aload 2 /* cookies */
            ldc ";"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 6
         4: .line 139
            aload 2 /* cookies */
            ldc ";"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* parts */
        start local 3 // java.lang.String[] parts
         5: .line 140
            goto 7
        end local 3 // java.lang.String[] parts
         6: .line 141
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* cookies */
            aastore
            astore 3 /* parts */
        start local 3 // java.lang.String[] parts
         7: .line 143
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 3 /* parts */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions io.vertx.ext.web.RoutingContext java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* part */
        start local 4 // java.lang.String part
         9: .line 144
            aload 4 /* part */
            ldc "JSESSIONID"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 145
            new java.lang.StringBuilder
            dup
            aload 4 /* part */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "; path=/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* cookies */
        11: .line 146
            goto 14
        end local 4 // java.lang.String part
        12: .line 143
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 8
        end local 3 // java.lang.String[] parts
        14: .line 150
      StackMap locals: io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions io.vertx.ext.web.RoutingContext java.lang.String
      StackMap stack:
            aload 2 /* cookies */
            ifnonnull 16
        15: .line 151
            ldc "JSESSIONID=dummy; path=/"
            astore 2 /* cookies */
        16: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Set-Cookie"
            aload 2 /* cookies */
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
        17: .line 155
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String cookies
        end local 1 // io.vertx.ext.web.RoutingContext rc
        end local 0 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0  options  Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;
            0   18     1       rc  Lio/vertx/ext/web/RoutingContext;
            1   18     2  cookies  Ljava/lang/String;
            5    6     3    parts  [Ljava/lang/String;
            7   14     3    parts  [Ljava/lang/String;
            9   12     4     part  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      options  
      rc       

  static void setCORS(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext rc
         0: .line 158
            aload 0 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            astore 1 /* req */
        start local 1 // io.vertx.core.http.HttpServerRequest req
         1: .line 159
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.headers:()Lio/vertx/core/MultiMap;
            ldc "origin"
            invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* origin */
        start local 2 // java.lang.String origin
         2: .line 160
            aload 2 /* origin */
            ifnonnull 4
         3: .line 161
            ldc "*"
            astore 2 /* origin */
         4: .line 163
      StackMap locals: io.vertx.core.http.HttpServerRequest java.lang.String
      StackMap stack:
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.headers:()Lio/vertx/core/MultiMap;
            ldc "Access-Control-Allow-Origin"
            aload 2 /* origin */
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 164
            ldc "*"
            aload 2 /* origin */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 165
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.headers:()Lio/vertx/core/MultiMap;
            ldc "Access-Control-Allow-Credentials"
            ldc "false"
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
         7: .line 166
            goto 9
         8: .line 167
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.headers:()Lio/vertx/core/MultiMap;
            ldc "Access-Control-Allow-Credentials"
            ldc "true"
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
         9: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.headers:()Lio/vertx/core/MultiMap;
            ldc "Access-Control-Request-Headers"
            invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* hdr */
        start local 3 // java.lang.String hdr
        10: .line 170
            aload 3 /* hdr */
            ifnull 12
        11: .line 171
            aload 1 /* req */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.headers:()Lio/vertx/core/MultiMap;
            ldc "Access-Control-Allow-Headers"
            aload 3 /* hdr */
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
        12: .line 173
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 3 // java.lang.String hdr
        end local 2 // java.lang.String origin
        end local 1 // io.vertx.core.http.HttpServerRequest req
        end local 0 // io.vertx.ext.web.RoutingContext rc
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0      rc  Lio/vertx/ext/web/RoutingContext;
            1   13     1     req  Lio/vertx/core/http/HttpServerRequest;
            2   13     2  origin  Ljava/lang/String;
           10   13     3     hdr  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      rc    

  static io.vertx.core.Handler<io.vertx.ext.web.RoutingContext> createInfoHandler(io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions);
    descriptor: (Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;)Lio/vertx/core/Handler;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
         0: .line 176
            new io.vertx.ext.web.handler.sockjs.impl.BaseTransport$1
            dup
            aload 0 /* options */
            invokespecial io.vertx.ext.web.handler.sockjs.impl.BaseTransport$1.<init>:(Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;)V
            areturn
        end local 0 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;
    Signature: (Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;)Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;
    MethodParameters:
         Name  Flags
      options  final

  static void setNoCacheHeaders(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext rc
         0: .line 196
            aload 0 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Cache-Control"
            ldc "no-store, no-cache, no-transform, must-revalidate, max-age=0"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         1: .line 197
            return
        end local 0 // io.vertx.ext.web.RoutingContext rc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    rc  Lio/vertx/ext/web/RoutingContext;
    MethodParameters:
      Name  Flags
      rc    

  static io.vertx.core.Handler<io.vertx.ext.web.RoutingContext> createCORSOptionsHandler(io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions, java.lang.String);
    descriptor: (Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;Ljava/lang/String;)Lio/vertx/core/Handler;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
        start local 1 // java.lang.String methods
         0: .line 200
            aload 1 /* methods */
            aload 0 /* options */
            invokedynamic handle(Ljava/lang/String;Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/web/handler/sockjs/impl/BaseTransport.lambda$1(Ljava/lang/String;Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;Lio/vertx/ext/web/RoutingContext;)V (6)
                  (Lio/vertx/ext/web/RoutingContext;)V
            areturn
        end local 1 // java.lang.String methods
        end local 0 // io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;
            0    1     1  methods  Ljava/lang/String;
    Signature: (Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;Ljava/lang/String;)Lio/vertx/core/Handler<Lio/vertx/ext/web/RoutingContext;>;
    MethodParameters:
         Name  Flags
      options  
      methods  

  static io.vertx.core.MultiMap removeCookieHeaders(io.vertx.core.MultiMap);
    descriptor: (Lio/vertx/core/MultiMap;)Lio/vertx/core/MultiMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // io.vertx.core.MultiMap headers
         0: .line 220
            aload 0 /* headers */
            getstatic io.vertx.core.http.HttpHeaders.COOKIE:Ljava/lang/CharSequence;
            invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 1 /* cookieHeader */
        start local 1 // java.lang.String cookieHeader
         1: .line 221
            aload 1 /* cookieHeader */
            ifnull 10
         2: .line 222
            aload 0 /* headers */
            getstatic io.vertx.core.http.HttpHeaders.COOKIE:Ljava/lang/CharSequence;
            invokeinterface io.vertx.core.MultiMap.remove:(Ljava/lang/CharSequence;)Lio/vertx/core/MultiMap;
            pop
         3: .line 223
            getstatic io.netty.handler.codec.http.cookie.ServerCookieDecoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieDecoder;
            aload 1 /* cookieHeader */
            invokevirtual io.netty.handler.codec.http.cookie.ServerCookieDecoder.decode:(Ljava/lang/String;)Ljava/util/Set;
            astore 2 /* nettyCookies */
        start local 2 // java.util.Set nettyCookies
         4: .line 224
            aload 2 /* nettyCookies */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: io.vertx.core.MultiMap java.lang.String java.util.Set top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.http.cookie.Cookie
            astore 3 /* cookie */
        start local 3 // io.netty.handler.codec.http.cookie.Cookie cookie
         6: .line 225
            aload 3 /* cookie */
            invokeinterface io.netty.handler.codec.http.cookie.Cookie.name:()Ljava/lang/String;
            ldc "JSESSIONID"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 226
            aload 0 /* headers */
            getstatic io.vertx.core.http.HttpHeaders.COOKIE:Ljava/lang/CharSequence;
            getstatic io.netty.handler.codec.http.cookie.ServerCookieEncoder.STRICT:Lio/netty/handler/codec/http/cookie/ServerCookieEncoder;
            aload 3 /* cookie */
            invokevirtual io.netty.handler.codec.http.cookie.ServerCookieEncoder.encode:(Lio/netty/handler/codec/http/cookie/Cookie;)Ljava/lang/String;
            invokeinterface io.vertx.core.MultiMap.add:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Lio/vertx/core/MultiMap;
            pop
         8: .line 227
            goto 10
        end local 3 // io.netty.handler.codec.http.cookie.Cookie cookie
         9: .line 224
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 2 // java.util.Set nettyCookies
        10: .line 231
      StackMap locals: io.vertx.core.MultiMap java.lang.String
      StackMap stack:
            aload 0 /* headers */
            areturn
        end local 1 // java.lang.String cookieHeader
        end local 0 // io.vertx.core.MultiMap headers
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0       headers  Lio/vertx/core/MultiMap;
            1   11     1  cookieHeader  Ljava/lang/String;
            4   10     2  nettyCookies  Ljava/util/Set<Lio/netty/handler/codec/http/cookie/Cookie;>;
            6    9     3        cookie  Lio/netty/handler/codec/http/cookie/Cookie;
    MethodParameters:
         Name  Flags
      headers  

  private io.vertx.ext.web.handler.sockjs.impl.SockJSSession lambda$0(io.vertx.ext.web.RoutingContext, long, long, io.vertx.core.Handler, java.lang.String);
    descriptor: (Lio/vertx/ext/web/RoutingContext;JJLio/vertx/core/Handler;Ljava/lang/String;)Lio/vertx/ext/web/handler/sockjs/impl/SockJSSession;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=11, locals=8, args_size=6
        start local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
        start local 7 // java.lang.String s
         0: .line 86
            new io.vertx.ext.web.handler.sockjs.impl.SockJSSession
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.sockjs.impl.BaseTransport.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.sockjs.impl.BaseTransport.sessions:Lio/vertx/core/shareddata/LocalMap;
            aload 1
            aload 7 /* s */
            lload 2
            lload 4
            aload 6
            invokespecial io.vertx.ext.web.handler.sockjs.impl.SockJSSession.<init>:(Lio/vertx/core/Vertx;Lio/vertx/core/shareddata/LocalMap;Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;JJLio/vertx/core/Handler;)V
            areturn
        end local 7 // java.lang.String s
        end local 0 // io.vertx.ext.web.handler.sockjs.impl.BaseTransport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/handler/sockjs/impl/BaseTransport;
            0    1     7     s  Ljava/lang/String;

  private static void lambda$1(java.lang.String, io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions, io.vertx.ext.web.RoutingContext);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=8, args_size=3
        start local 2 // io.vertx.ext.web.RoutingContext rc
         0: .line 201
            getstatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.log:Lio/vertx/core/logging/Logger;
            invokevirtual io.vertx.core.logging.Logger.isTraceEnabled:()Z
            ifeq 1
            getstatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.log:Lio/vertx/core/logging/Logger;
            ldc "In CORS options handler"
            invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;)V
         1: .line 202
      StackMap locals:
      StackMap stack:
            aload 2 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Cache-Control"
            ldc "public,max-age=31536000"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         2: .line 203
            ldc 31536000
            lstore 3 /* oneYearSeconds */
        start local 3 // long oneYearSeconds
         3: .line 204
            lload 3 /* oneYearSeconds */
            ldc 1000
            lmul
            lstore 5 /* oneYearms */
        start local 5 // long oneYearms
         4: .line 205
            new java.text.SimpleDateFormat
            dup
            ldc "EEE, dd MMM yyyy HH:mm:ss zzz"
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;)V
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 5 /* oneYearms */
            ladd
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            astore 7 /* expires */
        start local 7 // java.lang.String expires
         5: .line 206
            aload 2 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Expires"
            aload 7 /* expires */
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
         6: .line 207
            ldc "Access-Control-Allow-Methods"
            aload 0
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
         7: .line 208
            ldc "Access-Control-Max-Age"
            lload 3 /* oneYearSeconds */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         8: .line 209
            aload 2 /* rc */
            invokestatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.setCORS:(Lio/vertx/ext/web/RoutingContext;)V
         9: .line 210
            aload 1
            aload 2 /* rc */
            invokestatic io.vertx.ext.web.handler.sockjs.impl.BaseTransport.setJSESSIONID:(Lio/vertx/ext/web/handler/sockjs/SockJSHandlerOptions;Lio/vertx/ext/web/RoutingContext;)V
        10: .line 211
            aload 2 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 204
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            pop
        11: .line 212
            aload 2 /* rc */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()V
        end local 7 // java.lang.String expires
        end local 5 // long oneYearms
        end local 3 // long oneYearSeconds
        12: .line 213
            return
        end local 2 // io.vertx.ext.web.RoutingContext rc
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     2              rc  Lio/vertx/ext/web/RoutingContext;
            3   12     3  oneYearSeconds  J
            4   12     5       oneYearms  J
            5   12     7         expires  Ljava/lang/String;
}
SourceFile: "BaseTransport.java"
NestMembers:
  io.vertx.ext.web.handler.sockjs.impl.BaseTransport$1  io.vertx.ext.web.handler.sockjs.impl.BaseTransport$BaseListener
InnerClasses:
  io.vertx.ext.web.handler.sockjs.impl.BaseTransport$1
  protected abstract BaseListener = io.vertx.ext.web.handler.sockjs.impl.BaseTransport$BaseListener of io.vertx.ext.web.handler.sockjs.impl.BaseTransport
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles