class jdk.incubator.http.HttpClientImpl extends jdk.incubator.http.HttpClient
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.incubator.http.HttpClientImpl
  super_class: jdk.incubator.http.HttpClient
{
  private final java.net.CookieManager cookieManager;
    descriptor: Ljava/net/CookieManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.incubator.http.HttpClient$Redirect followRedirects;
    descriptor: Ljdk/incubator/http/HttpClient$Redirect;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final jdk.incubator.http.HttpClient$Version version;
    descriptor: Ljdk/incubator/http/HttpClient$Version;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.incubator.http.ConnectionPool connections;
    descriptor: Ljdk/incubator/http/ConnectionPool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.Executor executor;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.net.ssl.SSLContext sslContext;
    descriptor: Ljavax/net/ssl/SSLContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.net.ssl.SSLParameters sslParams;
    descriptor: Ljavax/net/ssl/SSLParameters;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.incubator.http.HttpClientImpl$SelectorManager selmgr;
    descriptor: Ljdk/incubator/http/HttpClientImpl$SelectorManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.incubator.http.FilterFactory filters;
    descriptor: Ljdk/incubator/http/FilterFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.incubator.http.Http2ClientImpl client2;
    descriptor: Ljdk/incubator/http/Http2ClientImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.TreeSet<jdk.incubator.http.TimeoutEvent> timeouts;
    descriptor: Ljava/util/TreeSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/TreeSet<Ljdk/incubator/http/TimeoutEvent;>;

  public static jdk.incubator.http.HttpClientImpl create(jdk.incubator.http.HttpClientBuilderImpl);
    descriptor: (Ljdk/incubator/http/HttpClientBuilderImpl;)Ljdk/incubator/http/HttpClientImpl;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.incubator.http.HttpClientBuilderImpl builder
         0: .line 100
            new jdk.incubator.http.HttpClientImpl
            dup
            aload 0 /* builder */
            invokespecial jdk.incubator.http.HttpClientImpl.<init>:(Ljdk/incubator/http/HttpClientBuilderImpl;)V
            astore 1 /* impl */
        start local 1 // jdk.incubator.http.HttpClientImpl impl
         1: .line 101
            aload 1 /* impl */
            invokevirtual jdk.incubator.http.HttpClientImpl.start:()V
         2: .line 102
            aload 1 /* impl */
            areturn
        end local 1 // jdk.incubator.http.HttpClientImpl impl
        end local 0 // jdk.incubator.http.HttpClientBuilderImpl builder
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  builder  Ljdk/incubator/http/HttpClientBuilderImpl;
            1    3     1     impl  Ljdk/incubator/http/HttpClientImpl;
    MethodParameters:
         Name  Flags
      builder  

  private void <init>(jdk.incubator.http.HttpClientBuilderImpl);
    descriptor: (Ljdk/incubator/http/HttpClientBuilderImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.HttpClientBuilderImpl builder
         0: .line 105
            aload 0 /* this */
            invokespecial jdk.incubator.http.HttpClient.<init>:()V
         1: .line 106
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.sslContext:Ljavax/net/ssl/SSLContext;
            ifnonnull 6
         2: .line 108
            aload 0 /* this */
            invokestatic javax.net.ssl.SSLContext.getDefault:()Ljavax/net/ssl/SSLContext;
            putfield jdk.incubator.http.HttpClientImpl.sslContext:Ljavax/net/ssl/SSLContext;
         3: .line 109
            goto 7
      StackMap locals: jdk.incubator.http.HttpClientImpl jdk.incubator.http.HttpClientBuilderImpl
      StackMap stack: java.security.NoSuchAlgorithmException
         4: astore 2 /* ex */
        start local 2 // java.security.NoSuchAlgorithmException ex
         5: .line 110
            new java.lang.InternalError
            dup
            aload 2 /* ex */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.NoSuchAlgorithmException ex
         6: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.sslContext:Ljavax/net/ssl/SSLContext;
            putfield jdk.incubator.http.HttpClientImpl.sslContext:Ljavax/net/ssl/SSLContext;
         7: .line 115
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.executor:Ljava/util/concurrent/Executor;
            astore 2 /* ex */
        start local 2 // java.util.concurrent.Executor ex
         8: .line 116
            aload 2 /* ex */
            ifnonnull 11
         9: .line 117
            getstatic jdk.incubator.http.HttpClientImpl$DefaultThreadFactory.INSTANCE:Ljava/util/concurrent/ThreadFactory;
            invokestatic java.util.concurrent.Executors.newCachedThreadPool:(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 2 /* ex */
        10: .line 118
            goto 12
        11: .line 119
      StackMap locals: java.util.concurrent.Executor
      StackMap stack:
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.executor:Ljava/util/concurrent/Executor;
            astore 2 /* ex */
        12: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new jdk.incubator.http.Http2ClientImpl
            dup
            aload 0 /* this */
            invokespecial jdk.incubator.http.Http2ClientImpl.<init>:(Ljdk/incubator/http/HttpClientImpl;)V
            putfield jdk.incubator.http.HttpClientImpl.client2:Ljdk/incubator/http/Http2ClientImpl;
        13: .line 122
            aload 0 /* this */
            aload 2 /* ex */
            putfield jdk.incubator.http.HttpClientImpl.executor:Ljava/util/concurrent/Executor;
        14: .line 123
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.cookieManager:Ljava/net/CookieManager;
            putfield jdk.incubator.http.HttpClientImpl.cookieManager:Ljava/net/CookieManager;
        15: .line 124
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.followRedirects:Ljdk/incubator/http/HttpClient$Redirect;
            ifnonnull 17
        16: .line 125
            getstatic jdk.incubator.http.HttpClient$Redirect.NEVER:Ljdk/incubator/http/HttpClient$Redirect;
            goto 18
      StackMap locals:
      StackMap stack: jdk.incubator.http.HttpClientImpl
        17: aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.followRedirects:Ljdk/incubator/http/HttpClient$Redirect;
        18: .line 124
      StackMap locals: jdk.incubator.http.HttpClientImpl jdk.incubator.http.HttpClientBuilderImpl java.util.concurrent.Executor
      StackMap stack: jdk.incubator.http.HttpClientImpl jdk.incubator.http.HttpClient$Redirect
            putfield jdk.incubator.http.HttpClientImpl.followRedirects:Ljdk/incubator/http/HttpClient$Redirect;
        19: .line 126
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.proxy:Ljava/net/ProxySelector;
            putfield jdk.incubator.http.HttpClientImpl.proxySelector:Ljava/net/ProxySelector;
        20: .line 127
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.authenticator:Ljava/net/Authenticator;
            putfield jdk.incubator.http.HttpClientImpl.authenticator:Ljava/net/Authenticator;
        21: .line 128
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.version:Ljdk/incubator/http/HttpClient$Version;
            ifnonnull 24
        22: .line 129
            aload 0 /* this */
            getstatic jdk.incubator.http.HttpClient$Version.HTTP_2:Ljdk/incubator/http/HttpClient$Version;
            putfield jdk.incubator.http.HttpClientImpl.version:Ljdk/incubator/http/HttpClient$Version;
        23: .line 130
            goto 25
        24: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.version:Ljdk/incubator/http/HttpClient$Version;
            putfield jdk.incubator.http.HttpClientImpl.version:Ljdk/incubator/http/HttpClient$Version;
        25: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.sslParams:Ljavax/net/ssl/SSLParameters;
            ifnonnull 28
        26: .line 134
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.sslContext:Ljavax/net/ssl/SSLContext;
            invokestatic jdk.incubator.http.HttpClientImpl.getDefaultParams:(Ljavax/net/ssl/SSLContext;)Ljavax/net/ssl/SSLParameters;
            putfield jdk.incubator.http.HttpClientImpl.sslParams:Ljavax/net/ssl/SSLParameters;
        27: .line 135
            goto 29
        28: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builder */
            getfield jdk.incubator.http.HttpClientBuilderImpl.sslParams:Ljavax/net/ssl/SSLParameters;
            putfield jdk.incubator.http.HttpClientImpl.sslParams:Ljavax/net/ssl/SSLParameters;
        29: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new jdk.incubator.http.ConnectionPool
            dup
            invokespecial jdk.incubator.http.ConnectionPool.<init>:()V
            putfield jdk.incubator.http.HttpClientImpl.connections:Ljdk/incubator/http/ConnectionPool;
        30: .line 139
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.connections:Ljdk/incubator/http/ConnectionPool;
            invokevirtual jdk.incubator.http.ConnectionPool.start:()V
        31: .line 140
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield jdk.incubator.http.HttpClientImpl.timeouts:Ljava/util/TreeSet;
        32: .line 142
            aload 0 /* this */
            new jdk.incubator.http.HttpClientImpl$SelectorManager
            dup
            aload 0 /* this */
            invokespecial jdk.incubator.http.HttpClientImpl$SelectorManager.<init>:(Ljdk/incubator/http/HttpClientImpl;)V
            putfield jdk.incubator.http.HttpClientImpl.selmgr:Ljdk/incubator/http/HttpClientImpl$SelectorManager;
        33: .line 143
            goto 36
      StackMap locals:
      StackMap stack: java.io.IOException
        34: astore 3 /* e */
        start local 3 // java.io.IOException e
        35: .line 145
            new java.lang.InternalError
            dup
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        36: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.selmgr:Ljdk/incubator/http/HttpClientImpl$SelectorManager;
            iconst_1
            invokevirtual jdk.incubator.http.HttpClientImpl$SelectorManager.setDaemon:(Z)V
        37: .line 148
            aload 0 /* this */
            new jdk.incubator.http.FilterFactory
            dup
            invokespecial jdk.incubator.http.FilterFactory.<init>:()V
            putfield jdk.incubator.http.HttpClientImpl.filters:Ljdk/incubator/http/FilterFactory;
        38: .line 149
            aload 0 /* this */
            invokevirtual jdk.incubator.http.HttpClientImpl.initFilters:()V
        39: .line 150
            return
        end local 2 // java.util.concurrent.Executor ex
        end local 1 // jdk.incubator.http.HttpClientBuilderImpl builder
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   40     0     this  Ljdk/incubator/http/HttpClientImpl;
            0   40     1  builder  Ljdk/incubator/http/HttpClientBuilderImpl;
            5    6     2       ex  Ljava/security/NoSuchAlgorithmException;
            8   40     2       ex  Ljava/util/concurrent/Executor;
           35   36     3        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.security.NoSuchAlgorithmException
          32    33      34  Class java.io.IOException
    MethodParameters:
         Name  Flags
      builder  

  private void start();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 153
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.selmgr:Ljdk/incubator/http/HttpClientImpl$SelectorManager;
            invokevirtual jdk.incubator.http.HttpClientImpl$SelectorManager.start:()V
         1: .line 154
            return
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/HttpClientImpl;

  private static javax.net.ssl.SSLParameters getDefaultParams(javax.net.ssl.SSLContext);
    descriptor: (Ljavax/net/ssl/SSLContext;)Ljavax/net/ssl/SSLParameters;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // javax.net.ssl.SSLContext ctx
         0: .line 157
            aload 0 /* ctx */
            invokevirtual javax.net.ssl.SSLContext.getSupportedSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 1 /* params */
        start local 1 // javax.net.ssl.SSLParameters params
         1: .line 158
            aload 1 /* params */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "TLSv1.2"
            aastore
            invokevirtual javax.net.ssl.SSLParameters.setProtocols:([Ljava/lang/String;)V
         2: .line 159
            aload 1 /* params */
            areturn
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // javax.net.ssl.SSLContext ctx
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     ctx  Ljavax/net/ssl/SSLContext;
            1    3     1  params  Ljavax/net/ssl/SSLParameters;
    MethodParameters:
      Name  Flags
      ctx   

  void registerEvent(jdk.incubator.http.AsyncEvent);
    descriptor: (Ljdk/incubator/http/AsyncEvent;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.AsyncEvent exchange
         0: .line 176
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.selmgr:Ljdk/incubator/http/HttpClientImpl$SelectorManager;
            aload 1 /* exchange */
            invokevirtual jdk.incubator.http.HttpClientImpl$SelectorManager.register:(Ljdk/incubator/http/AsyncEvent;)V
         1: .line 177
            return
        end local 1 // jdk.incubator.http.AsyncEvent exchange
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/incubator/http/HttpClientImpl;
            0    2     1  exchange  Ljdk/incubator/http/AsyncEvent;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      exchange  

  void cancelRegistration(java.nio.channels.SocketChannel);
    descriptor: (Ljava/nio/channels/SocketChannel;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // java.nio.channels.SocketChannel s
         0: .line 184
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.selmgr:Ljdk/incubator/http/HttpClientImpl$SelectorManager;
            aload 1 /* s */
            invokevirtual jdk.incubator.http.HttpClientImpl$SelectorManager.cancel:(Ljava/nio/channels/SocketChannel;)V
         1: .line 185
            return
        end local 1 // java.nio.channels.SocketChannel s
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/HttpClientImpl;
            0    2     1     s  Ljava/nio/channels/SocketChannel;
    MethodParameters:
      Name  Flags
      s     

  jdk.incubator.http.Http2ClientImpl client2();
    descriptor: ()Ljdk/incubator/http/Http2ClientImpl;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 189
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.client2:Ljdk/incubator/http/Http2ClientImpl;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;

  public <T> jdk.incubator.http.HttpResponse<T> send(jdk.incubator.http.HttpRequest, jdk.incubator.http.HttpResponse$BodyHandler<T>);
    descriptor: (Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpResponse$BodyHandler;)Ljdk/incubator/http/HttpResponse;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.HttpRequest req
        start local 2 // jdk.incubator.http.HttpResponse$BodyHandler responseHandler
         0: .line 233
            new jdk.incubator.http.MultiExchange
            dup
            aload 1 /* req */
            aload 0 /* this */
            aload 2 /* responseHandler */
            invokespecial jdk.incubator.http.MultiExchange.<init>:(Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpClientImpl;Ljdk/incubator/http/HttpResponse$BodyHandler;)V
            astore 3 /* mex */
        start local 3 // jdk.incubator.http.MultiExchange mex
         1: .line 234
            aload 3 /* mex */
            invokevirtual jdk.incubator.http.MultiExchange.response:()Ljdk/incubator/http/HttpResponseImpl;
            areturn
        end local 3 // jdk.incubator.http.MultiExchange mex
        end local 2 // jdk.incubator.http.HttpResponse$BodyHandler responseHandler
        end local 1 // jdk.incubator.http.HttpRequest req
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Ljdk/incubator/http/HttpClientImpl;
            0    2     1              req  Ljdk/incubator/http/HttpRequest;
            0    2     2  responseHandler  Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;
            1    2     3              mex  Ljdk/incubator/http/MultiExchange<Ljava/lang/Void;TT;>;
    Exceptions:
      throws java.io.IOException, java.lang.InterruptedException
    Signature: <T:Ljava/lang/Object;>(Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;)Ljdk/incubator/http/HttpResponse<TT;>;
    MethodParameters:
                 Name  Flags
      req              
      responseHandler  

  public <T> java.util.concurrent.CompletableFuture<jdk.incubator.http.HttpResponse<T>> sendAsync(jdk.incubator.http.HttpRequest, jdk.incubator.http.HttpResponse$BodyHandler<T>);
    descriptor: (Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpResponse$BodyHandler;)Ljava/util/concurrent/CompletableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.HttpRequest req
        start local 2 // jdk.incubator.http.HttpResponse$BodyHandler responseHandler
         0: .line 241
            new jdk.incubator.http.MultiExchange
            dup
            aload 1 /* req */
            aload 0 /* this */
            aload 2 /* responseHandler */
            invokespecial jdk.incubator.http.MultiExchange.<init>:(Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpClientImpl;Ljdk/incubator/http/HttpResponse$BodyHandler;)V
            astore 3 /* mex */
        start local 3 // jdk.incubator.http.MultiExchange mex
         1: .line 242
            aload 3 /* mex */
            invokevirtual jdk.incubator.http.MultiExchange.responseAsync:()Ljava/util/concurrent/CompletableFuture;
         2: .line 243
            invokedynamic apply()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;
                  jdk/incubator/http/HttpClientImpl.lambda$0(Ljdk/incubator/http/HttpResponseImpl;)Ljdk/incubator/http/HttpResponse; (6)
                  (Ljdk/incubator/http/HttpResponseImpl;)Ljdk/incubator/http/HttpResponse;
            invokevirtual java.util.concurrent.CompletableFuture.thenApply:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
         3: .line 242
            areturn
        end local 3 // jdk.incubator.http.MultiExchange mex
        end local 2 // jdk.incubator.http.HttpResponse$BodyHandler responseHandler
        end local 1 // jdk.incubator.http.HttpRequest req
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Ljdk/incubator/http/HttpClientImpl;
            0    4     1              req  Ljdk/incubator/http/HttpRequest;
            0    4     2  responseHandler  Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;
            1    4     3              mex  Ljdk/incubator/http/MultiExchange<Ljava/lang/Void;TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/HttpResponse<TT;>;>;
    MethodParameters:
                 Name  Flags
      req              
      responseHandler  

  public <U, T> java.util.concurrent.CompletableFuture<U> sendAsync(jdk.incubator.http.HttpRequest, jdk.incubator.http.HttpResponse$MultiProcessor<U, T>);
    descriptor: (Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpResponse$MultiProcessor;)Ljava/util/concurrent/CompletableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.HttpRequest req
        start local 2 // jdk.incubator.http.HttpResponse$MultiProcessor responseHandler
         0: .line 249
            new jdk.incubator.http.MultiExchange
            dup
            aload 1 /* req */
            aload 0 /* this */
            aload 2 /* responseHandler */
            invokespecial jdk.incubator.http.MultiExchange.<init>:(Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpClientImpl;Ljdk/incubator/http/HttpResponse$MultiProcessor;)V
            astore 3 /* mex */
        start local 3 // jdk.incubator.http.MultiExchange mex
         1: .line 250
            aload 3 /* mex */
            invokevirtual jdk.incubator.http.MultiExchange.multiResponseAsync:()Ljava/util/concurrent/CompletableFuture;
            areturn
        end local 3 // jdk.incubator.http.MultiExchange mex
        end local 2 // jdk.incubator.http.HttpResponse$MultiProcessor responseHandler
        end local 1 // jdk.incubator.http.HttpRequest req
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Ljdk/incubator/http/HttpClientImpl;
            0    2     1              req  Ljdk/incubator/http/HttpRequest;
            0    2     2  responseHandler  Ljdk/incubator/http/HttpResponse$MultiProcessor<TU;TT;>;
            1    2     3              mex  Ljdk/incubator/http/MultiExchange<TU;TT;>;
    Signature: <U:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljdk/incubator/http/HttpRequest;Ljdk/incubator/http/HttpResponse$MultiProcessor<TU;TT;>;)Ljava/util/concurrent/CompletableFuture<TU;>;
    MethodParameters:
                 Name  Flags
      req              
      responseHandler  

  public javax.net.ssl.SSLContext sslContext();
    descriptor: ()Ljavax/net/ssl/SSLContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 519
            ldc "getSSLContext"
            invokestatic jdk.incubator.http.internal.common.Utils.checkNetPermission:(Ljava/lang/String;)V
         1: .line 520
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.sslContext:Ljavax/net/ssl/SSLContext;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/HttpClientImpl;

  public java.util.Optional<javax.net.ssl.SSLParameters> sslParameters();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 525
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.sslParams:Ljavax/net/ssl/SSLParameters;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;
    Signature: ()Ljava/util/Optional<Ljavax/net/ssl/SSLParameters;>;

  public java.util.Optional<java.net.Authenticator> authenticator();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 530
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.authenticator:Ljava/net/Authenticator;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;
    Signature: ()Ljava/util/Optional<Ljava/net/Authenticator;>;

  public java.util.concurrent.Executor executor();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 535
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.executor:Ljava/util/concurrent/Executor;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;

  jdk.incubator.http.ConnectionPool connectionPool();
    descriptor: ()Ljdk/incubator/http/ConnectionPool;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 539
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.connections:Ljdk/incubator/http/ConnectionPool;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;

  public jdk.incubator.http.HttpClient$Redirect followRedirects();
    descriptor: ()Ljdk/incubator/http/HttpClient$Redirect;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 544
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.followRedirects:Ljdk/incubator/http/HttpClient$Redirect;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;

  public java.util.Optional<java.net.CookieManager> cookieManager();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 550
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.cookieManager:Ljava/net/CookieManager;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;
    Signature: ()Ljava/util/Optional<Ljava/net/CookieManager;>;

  public java.util.Optional<java.net.ProxySelector> proxy();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 555
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.proxySelector:Ljava/net/ProxySelector;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;
    Signature: ()Ljava/util/Optional<Ljava/net/ProxySelector;>;

  public jdk.incubator.http.WebSocket$Builder newWebSocketBuilder(java.net.URI, jdk.incubator.http.WebSocket$Listener);
    descriptor: (Ljava/net/URI;Ljdk/incubator/http/WebSocket$Listener;)Ljdk/incubator/http/WebSocket$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // java.net.URI uri
        start local 2 // jdk.incubator.http.WebSocket$Listener listener
         0: .line 561
            new jdk.incubator.http.internal.websocket.BuilderImpl
            dup
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* listener */
            invokespecial jdk.incubator.http.internal.websocket.BuilderImpl.<init>:(Ljdk/incubator/http/HttpClient;Ljava/net/URI;Ljdk/incubator/http/WebSocket$Listener;)V
            areturn
        end local 2 // jdk.incubator.http.WebSocket$Listener listener
        end local 1 // java.net.URI uri
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljdk/incubator/http/HttpClientImpl;
            0    1     1       uri  Ljava/net/URI;
            0    1     2  listener  Ljdk/incubator/http/WebSocket$Listener;
    MethodParameters:
          Name  Flags
      uri       
      listener  

  public jdk.incubator.http.HttpClient$Version version();
    descriptor: ()Ljdk/incubator/http/HttpClient$Version;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 566
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.version:Ljdk/incubator/http/HttpClient$Version;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;

  boolean getHttp2Allowed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 572
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.version:Ljdk/incubator/http/HttpClient$Version;
            getstatic jdk.incubator.http.HttpClient$Version.HTTP_2:Ljdk/incubator/http/HttpClient$Version;
            invokevirtual jdk.incubator.http.HttpClient$Version.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;

  private void initFilters();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 576
            aload 0 /* this */
            ldc Ljdk/incubator/http/AuthenticationFilter;
            invokevirtual jdk.incubator.http.HttpClientImpl.addFilter:(Ljava/lang/Class;)V
         1: .line 577
            aload 0 /* this */
            ldc Ljdk/incubator/http/RedirectFilter;
            invokevirtual jdk.incubator.http.HttpClientImpl.addFilter:(Ljava/lang/Class;)V
         2: .line 578
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.cookieManager:Ljava/net/CookieManager;
            ifnull 4
         3: .line 579
            aload 0 /* this */
            ldc Ljdk/incubator/http/CookieFilter;
            invokevirtual jdk.incubator.http.HttpClientImpl.addFilter:(Ljava/lang/Class;)V
         4: .line 581
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/incubator/http/HttpClientImpl;

  private void addFilter(java.lang.Class<? extends jdk.incubator.http.HeaderFilter>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // java.lang.Class f
         0: .line 584
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.filters:Ljdk/incubator/http/FilterFactory;
            aload 1 /* f */
            invokevirtual jdk.incubator.http.FilterFactory.addFilter:(Ljava/lang/Class;)V
         1: .line 585
            return
        end local 1 // java.lang.Class f
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/HttpClientImpl;
            0    2     1     f  Ljava/lang/Class<+Ljdk/incubator/http/HeaderFilter;>;
    Signature: (Ljava/lang/Class<+Ljdk/incubator/http/HeaderFilter;>;)V
    MethodParameters:
      Name  Flags
      f     

  final java.util.List<jdk.incubator.http.HeaderFilter> filterChain();
    descriptor: ()Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 588
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.filters:Ljdk/incubator/http/FilterFactory;
            invokevirtual jdk.incubator.http.FilterFactory.getFilterChain:()Ljava/util/List;
            areturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/HttpClientImpl;
    Signature: ()Ljava/util/List<Ljdk/incubator/http/HeaderFilter;>;

  synchronized void registerTimer(jdk.incubator.http.TimeoutEvent);
    descriptor: (Ljdk/incubator/http/TimeoutEvent;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.TimeoutEvent event
         0: .line 595
            ldc "Registering timer {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* event */
            aastore
            invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 596
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.timeouts:Ljava/util/TreeSet;
            aload 1 /* event */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 597
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.selmgr:Ljdk/incubator/http/HttpClientImpl$SelectorManager;
            invokevirtual jdk.incubator.http.HttpClientImpl$SelectorManager.wakeupSelector:()V
         3: .line 598
            return
        end local 1 // jdk.incubator.http.TimeoutEvent event
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljdk/incubator/http/HttpClientImpl;
            0    4     1  event  Ljdk/incubator/http/TimeoutEvent;
    MethodParameters:
       Name  Flags
      event  

  synchronized void cancelTimer(jdk.incubator.http.TimeoutEvent);
    descriptor: (Ljdk/incubator/http/TimeoutEvent;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.incubator.http.HttpClientImpl this
        start local 1 // jdk.incubator.http.TimeoutEvent event
         0: .line 601
            ldc "Canceling timer {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* event */
            aastore
            invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 602
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.timeouts:Ljava/util/TreeSet;
            aload 1 /* event */
            invokevirtual java.util.TreeSet.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 603
            return
        end local 1 // jdk.incubator.http.TimeoutEvent event
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/incubator/http/HttpClientImpl;
            0    3     1  event  Ljdk/incubator/http/TimeoutEvent;
    MethodParameters:
       Name  Flags
      event  

  private long purgeTimeoutsAndReturnNextDeadline();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 611
            lconst_0
            lstore 1 /* diff */
        start local 1 // long diff
         1: .line 612
            aconst_null
            astore 3 /* toHandle */
        start local 3 // java.util.List toHandle
         2: .line 613
            iconst_0
            istore 4 /* remaining */
        start local 4 // int remaining
         3: .line 615
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         4: .line 616
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.timeouts:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.isEmpty:()Z
            ifeq 6
            aload 5
            monitorexit
         5: lconst_0
            lreturn
         6: .line 618
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int jdk.incubator.http.HttpClientImpl
      StackMap stack:
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            astore 6 /* now */
        start local 6 // java.time.Instant now
         7: .line 619
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.timeouts:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
            astore 7 /* itr */
        start local 7 // java.util.Iterator itr
         8: .line 620
            goto 17
         9: .line 621
      StackMap locals: java.time.Instant java.util.Iterator
      StackMap stack:
            aload 7 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.incubator.http.TimeoutEvent
            astore 8 /* event */
        start local 8 // jdk.incubator.http.TimeoutEvent event
        10: .line 622
            aload 6 /* now */
            aload 8 /* event */
            invokevirtual jdk.incubator.http.TimeoutEvent.deadline:()Ljava/time/Instant;
            getstatic java.time.temporal.ChronoUnit.MILLIS:Ljava/time/temporal/ChronoUnit;
            invokevirtual java.time.Instant.until:(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
            lstore 1 /* diff */
        11: .line 623
            lload 1 /* diff */
            lconst_0
            lcmp
            ifgt 18
        12: .line 624
            aload 7 /* itr */
            invokeinterface java.util.Iterator.remove:()V
        13: .line 625
            aload 3 /* toHandle */
            ifnonnull 14
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            goto 15
      StackMap locals: jdk.incubator.http.TimeoutEvent
      StackMap stack:
        14: aload 3 /* toHandle */
      StackMap locals:
      StackMap stack: java.util.List
        15: astore 3 /* toHandle */
        16: .line 626
            aload 3 /* toHandle */
            aload 8 /* event */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // jdk.incubator.http.TimeoutEvent event
        17: .line 620
      StackMap locals:
      StackMap stack:
            aload 7 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        18: .line 631
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.HttpClientImpl.timeouts:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.size:()I
            istore 4 /* remaining */
        end local 7 // java.util.Iterator itr
        end local 6 // java.time.Instant now
        19: .line 615
            aload 5
            monitorexit
        20: goto 23
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int jdk.incubator.http.HttpClientImpl
      StackMap stack: java.lang.Throwable
        21: aload 5
            monitorexit
        22: athrow
        23: .line 635
      StackMap locals:
      StackMap stack:
            aload 3 /* toHandle */
            ifnull 33
            invokestatic jdk.incubator.http.internal.common.Log.trace:()Z
            ifeq 33
        24: .line 636
            new java.lang.StringBuilder
            dup
            ldc "purgeTimeoutsAndReturnNextDeadline: handling "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 637
            aload 3 /* toHandle */
            ifnonnull 26
            iconst_0
            goto 27
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        26: aload 3 /* toHandle */
            invokeinterface java.util.List.size:()I
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int
      StackMap stack: java.lang.StringBuilder int
        27: invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " events, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 638
            ldc "remaining "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* remaining */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        29: .line 639
            ldc ", next deadline: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* diff */
            lconst_0
            lcmp
            ifge 30
            lconst_0
            goto 31
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        30: lload 1 /* diff */
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int
      StackMap stack: java.lang.StringBuilder long
        31: invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        32: .line 636
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
        33: .line 643
      StackMap locals:
      StackMap stack:
            aload 3 /* toHandle */
            ifnull 47
        34: .line 644
            aconst_null
            astore 5 /* failed */
        start local 5 // java.lang.Throwable failed
        35: .line 645
            aload 3 /* toHandle */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 44
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int java.lang.Throwable top java.util.Iterator
      StackMap stack:
        36: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.incubator.http.TimeoutEvent
            astore 6 /* event */
        start local 6 // jdk.incubator.http.TimeoutEvent event
        37: .line 647
            ldc "Firing timer {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* event */
            aastore
            invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
        38: .line 648
            aload 6 /* event */
            invokevirtual jdk.incubator.http.TimeoutEvent.handle:()V
        39: .line 649
            goto 44
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int java.lang.Throwable jdk.incubator.http.TimeoutEvent java.util.Iterator
      StackMap stack: java.lang.Throwable
        40: astore 8 /* e */
        start local 8 // java.lang.Throwable e
        41: .line 654
            aload 5 /* failed */
            ifnonnull 42
            aload 8 /* e */
            astore 5 /* failed */
            goto 43
        42: .line 655
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5 /* failed */
            aload 8 /* e */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        43: .line 656
      StackMap locals:
      StackMap stack:
            ldc "Failed to handle event {0}: {1}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* event */
            aastore
            dup
            iconst_1
            aload 8 /* e */
            aastore
            invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 8 // java.lang.Throwable e
        end local 6 // jdk.incubator.http.TimeoutEvent event
        44: .line 645
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int java.lang.Throwable top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        45: .line 659
            aload 5 /* failed */
            instanceof java.lang.Error
            ifeq 46
            aload 5 /* failed */
            checkcast java.lang.Error
            athrow
        46: .line 660
      StackMap locals: jdk.incubator.http.HttpClientImpl long java.util.List int java.lang.Throwable
      StackMap stack:
            aload 5 /* failed */
            instanceof java.lang.RuntimeException
            ifeq 47
            aload 5 /* failed */
            checkcast java.lang.RuntimeException
            athrow
        end local 5 // java.lang.Throwable failed
        47: .line 664
      StackMap locals:
      StackMap stack:
            lload 1 /* diff */
            lconst_0
            lcmp
            ifge 48
            lconst_0
            goto 49
      StackMap locals:
      StackMap stack:
        48: lload 1 /* diff */
      StackMap locals:
      StackMap stack: long
        49: lreturn
        end local 4 // int remaining
        end local 3 // java.util.List toHandle
        end local 1 // long diff
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   50     0       this  Ljdk/incubator/http/HttpClientImpl;
            1   50     1       diff  J
            2   50     3   toHandle  Ljava/util/List<Ljdk/incubator/http/TimeoutEvent;>;
            3   50     4  remaining  I
            7   19     6        now  Ljava/time/Instant;
            8   19     7        itr  Ljava/util/Iterator<Ljdk/incubator/http/TimeoutEvent;>;
           10   17     8      event  Ljdk/incubator/http/TimeoutEvent;
           35   47     5     failed  Ljava/lang/Throwable;
           37   44     6      event  Ljdk/incubator/http/TimeoutEvent;
           41   44     8          e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     5      21  any
           6    20      21  any
          21    22      21  any
          37    39      40  Class java.lang.Error
          37    39      40  Class java.lang.RuntimeException

  int getReceiveBufferSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpClientImpl this
         0: .line 670
            ldc "jdk.httpclient.connectionWindowSize"
            ldc 262144
         1: .line 669
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            ireturn
        end local 0 // jdk.incubator.http.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/HttpClientImpl;

  private static jdk.incubator.http.HttpResponse lambda$0(jdk.incubator.http.HttpResponseImpl);
    descriptor: (Ljdk/incubator/http/HttpResponseImpl;)Ljdk/incubator/http/HttpResponse;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.HttpResponseImpl b
         0: .line 243
            aload 0 /* b */
            areturn
        end local 0 // jdk.incubator.http.HttpResponseImpl b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     b  Ljdk/incubator/http/HttpResponseImpl<TT;>;
}
SourceFile: "HttpClientImpl.java"
NestMembers:
  jdk.incubator.http.HttpClientImpl$DefaultThreadFactory  jdk.incubator.http.HttpClientImpl$SelectorAttachment  jdk.incubator.http.HttpClientImpl$SelectorManager
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Redirect = jdk.incubator.http.HttpClient$Redirect of jdk.incubator.http.HttpClient
  public final Version = jdk.incubator.http.HttpClient$Version of jdk.incubator.http.HttpClient
  private final DefaultThreadFactory = jdk.incubator.http.HttpClientImpl$DefaultThreadFactory of jdk.incubator.http.HttpClientImpl
  private SelectorAttachment = jdk.incubator.http.HttpClientImpl$SelectorAttachment of jdk.incubator.http.HttpClientImpl
  private final SelectorManager = jdk.incubator.http.HttpClientImpl$SelectorManager of jdk.incubator.http.HttpClientImpl
  public abstract BodyHandler = jdk.incubator.http.HttpResponse$BodyHandler of jdk.incubator.http.HttpResponse
  public abstract MultiProcessor = jdk.incubator.http.HttpResponse$MultiProcessor of jdk.incubator.http.HttpResponse
  public abstract Builder = jdk.incubator.http.WebSocket$Builder of jdk.incubator.http.WebSocket
  public abstract Listener = jdk.incubator.http.WebSocket$Listener of jdk.incubator.http.WebSocket