public class io.vertx.core.net.impl.SSLHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.core.net.impl.SSLHelper
  super_class: java.lang.Object
{
  private static final java.util.Map<io.vertx.core.http.HttpVersion, java.lang.String> PROTOCOL_NAME_MAPPING;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lio/vertx/core/http/HttpVersion;Ljava/lang/String;>;

  private static final io.vertx.core.impl.logging.Logger log;
    descriptor: Lio/vertx/core/impl/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private boolean ssl;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean sni;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long sslHandshakeTimeout;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.TimeUnit sslHandshakeTimeoutUnit;
    descriptor: Ljava/util/concurrent/TimeUnit;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.net.KeyCertOptions keyCertOptions;
    descriptor: Lio/vertx/core/net/KeyCertOptions;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.net.TrustOptions trustOptions;
    descriptor: Lio/vertx/core/net/TrustOptions;
    flags: (0x0002) ACC_PRIVATE

  private boolean trustAll;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<java.lang.String> crlPaths;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Ljava/lang/String;>;

  private java.util.ArrayList<io.vertx.core.buffer.Buffer> crlValues;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lio/vertx/core/buffer/Buffer;>;

  private io.vertx.core.http.ClientAuth clientAuth;
    descriptor: Lio/vertx/core/http/ClientAuth;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<java.lang.String> enabledCipherSuites;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private boolean openSsl;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean client;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean useAlpn;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<io.vertx.core.http.HttpVersion> applicationProtocols;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lio/vertx/core/http/HttpVersion;>;

  private java.util.Set<java.lang.String> enabledProtocols;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private java.lang.String endpointIdentificationAlgorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private io.netty.handler.ssl.SslContext sslContext;
    descriptor: Lio/netty/handler/ssl/SslContext;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.security.cert.Certificate, io.netty.handler.ssl.SslContext> sslContextMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/security/cert/Certificate;Lio/netty/handler/ssl/SslContext;>;

  private boolean openSslSessionCacheEnabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$io$vertx$core$http$ClientAuth;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 100
            new java.util.EnumMap
            dup
            ldc Lio/vertx/core/http/HttpVersion;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putstatic io.vertx.core.net.impl.SSLHelper.PROTOCOL_NAME_MAPPING:Ljava/util/Map;
         1: .line 103
            getstatic io.vertx.core.net.impl.SSLHelper.PROTOCOL_NAME_MAPPING:Ljava/util/Map;
            getstatic io.vertx.core.http.HttpVersion.HTTP_2:Lio/vertx/core/http/HttpVersion;
            ldc "h2"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 104
            getstatic io.vertx.core.net.impl.SSLHelper.PROTOCOL_NAME_MAPPING:Ljava/util/Map;
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_1:Lio/vertx/core/http/HttpVersion;
            ldc "http/1.1"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 105
            getstatic io.vertx.core.net.impl.SSLHelper.PROTOCOL_NAME_MAPPING:Ljava/util/Map;
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_0:Lio/vertx/core/http/HttpVersion;
            ldc "http/1.0"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 108
            ldc Lio/vertx/core/net/impl/SSLHelper;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putstatic io.vertx.core.net.impl.SSLHelper.log:Lio/vertx/core/impl/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static io.vertx.core.net.SSLEngineOptions resolveEngineOptions(io.vertx.core.net.TCPSSLOptions);
    descriptor: (Lio/vertx/core/net/TCPSSLOptions;)Lio/vertx/core/net/SSLEngineOptions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // io.vertx.core.net.TCPSSLOptions options
         0: .line 62
            aload 0 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getSslEngineOptions:()Lio/vertx/core/net/SSLEngineOptions;
            astore 1 /* engineOptions */
        start local 1 // io.vertx.core.net.SSLEngineOptions engineOptions
         1: .line 63
            aload 1 /* engineOptions */
            ifnonnull 8
         2: .line 64
            aload 0 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.isUseAlpn:()Z
            ifeq 8
         3: .line 65
            invokestatic io.vertx.core.net.JdkSSLEngineOptions.isAlpnAvailable:()Z
            ifeq 6
         4: .line 66
            new io.vertx.core.net.JdkSSLEngineOptions
            dup
            invokespecial io.vertx.core.net.JdkSSLEngineOptions.<init>:()V
            astore 1 /* engineOptions */
         5: .line 67
            goto 8
      StackMap locals: io.vertx.core.net.SSLEngineOptions
      StackMap stack:
         6: invokestatic io.vertx.core.net.OpenSSLEngineOptions.isAlpnAvailable:()Z
            ifeq 8
         7: .line 68
            new io.vertx.core.net.OpenSSLEngineOptions
            dup
            invokespecial io.vertx.core.net.OpenSSLEngineOptions.<init>:()V
            astore 1 /* engineOptions */
         8: .line 72
      StackMap locals:
      StackMap stack:
            aload 1 /* engineOptions */
            ifnonnull 11
         9: .line 73
            new io.vertx.core.net.JdkSSLEngineOptions
            dup
            invokespecial io.vertx.core.net.JdkSSLEngineOptions.<init>:()V
            astore 1 /* engineOptions */
        10: .line 74
            goto 18
      StackMap locals:
      StackMap stack:
        11: aload 1 /* engineOptions */
            instanceof io.vertx.core.net.OpenSSLEngineOptions
            ifeq 18
        12: .line 75
            invokestatic io.netty.handler.ssl.OpenSsl.isAvailable:()Z
            ifne 18
        13: .line 76
            new io.vertx.core.VertxException
            dup
            ldc "OpenSSL is not available"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            astore 2 /* ex */
        start local 2 // io.vertx.core.VertxException ex
        14: .line 77
            invokestatic io.netty.handler.ssl.OpenSsl.unavailabilityCause:()Ljava/lang/Throwable;
            astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
        15: .line 78
            aload 3 /* cause */
            ifnull 17
        16: .line 79
            aload 2 /* ex */
            aload 3 /* cause */
            invokevirtual io.vertx.core.VertxException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        17: .line 81
      StackMap locals: io.vertx.core.VertxException java.lang.Throwable
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 3 // java.lang.Throwable cause
        end local 2 // io.vertx.core.VertxException ex
        18: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.isUseAlpn:()Z
            ifeq 25
        19: .line 86
            aload 1 /* engineOptions */
            instanceof io.vertx.core.net.JdkSSLEngineOptions
            ifeq 22
        20: .line 87
            invokestatic io.vertx.core.net.JdkSSLEngineOptions.isAlpnAvailable:()Z
            ifne 22
        21: .line 88
            new io.vertx.core.VertxException
            dup
            ldc "ALPN not available for JDK SSL/TLS engine"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 91
      StackMap locals:
      StackMap stack:
            aload 1 /* engineOptions */
            instanceof io.vertx.core.net.OpenSSLEngineOptions
            ifeq 25
        23: .line 92
            invokestatic io.vertx.core.net.OpenSSLEngineOptions.isAlpnAvailable:()Z
            ifne 25
        24: .line 93
            new io.vertx.core.VertxException
            dup
            ldc "ALPN is not available for OpenSSL SSL/TLS engine"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 97
      StackMap locals:
      StackMap stack:
            aload 1 /* engineOptions */
            areturn
        end local 1 // io.vertx.core.net.SSLEngineOptions engineOptions
        end local 0 // io.vertx.core.net.TCPSSLOptions options
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0        options  Lio/vertx/core/net/TCPSSLOptions;
            1   26     1  engineOptions  Lio/vertx/core/net/SSLEngineOptions;
           14   18     2             ex  Lio/vertx/core/VertxException;
           15   18     3          cause  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      options  

  private void <init>(io.vertx.core.net.TCPSSLOptions, io.vertx.core.net.KeyCertOptions, io.vertx.core.net.TrustOptions);
    descriptor: (Lio/vertx/core/net/TCPSSLOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.net.TCPSSLOptions options
        start local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        start local 3 // io.vertx.core.net.TrustOptions trustOptions
         0: .line 133
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 119
            aload 0 /* this */
            getstatic io.vertx.core.http.ClientAuth.NONE:Lio/vertx/core/http/ClientAuth;
            putfield io.vertx.core.net.impl.SSLHelper.clientAuth:Lio/vertx/core/http/ClientAuth;
         2: .line 127
            aload 0 /* this */
            ldc ""
            putfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
         3: .line 130
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.net.impl.SSLHelper.sslContextMap:Ljava/util/Map;
         4: .line 131
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.net.impl.SSLHelper.openSslSessionCacheEnabled:Z
         5: .line 134
            aload 1 /* options */
            invokestatic io.vertx.core.net.impl.SSLHelper.resolveEngineOptions:(Lio/vertx/core/net/TCPSSLOptions;)Lio/vertx/core/net/SSLEngineOptions;
            astore 4 /* sslEngineOptions */
        start local 4 // io.vertx.core.net.SSLEngineOptions sslEngineOptions
         6: .line 135
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.isSsl:()Z
            putfield io.vertx.core.net.impl.SSLHelper.ssl:Z
         7: .line 136
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getSslHandshakeTimeout:()J
            putfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeout:J
         8: .line 137
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getSslHandshakeTimeoutUnit:()Ljava/util/concurrent/TimeUnit;
            putfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeoutUnit:Ljava/util/concurrent/TimeUnit;
         9: .line 138
            aload 0 /* this */
            aload 2 /* keyCertOptions */
            putfield io.vertx.core.net.impl.SSLHelper.keyCertOptions:Lio/vertx/core/net/KeyCertOptions;
        10: .line 139
            aload 0 /* this */
            aload 3 /* trustOptions */
            putfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
        11: .line 140
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getCrlPaths:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield io.vertx.core.net.impl.SSLHelper.crlPaths:Ljava/util/ArrayList;
        12: .line 141
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getCrlValues:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield io.vertx.core.net.impl.SSLHelper.crlValues:Ljava/util/ArrayList;
        13: .line 142
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getEnabledCipherSuites:()Ljava/util/Set;
            putfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
        14: .line 143
            aload 0 /* this */
            aload 4 /* sslEngineOptions */
            instanceof io.vertx.core.net.OpenSSLEngineOptions
            putfield io.vertx.core.net.impl.SSLHelper.openSsl:Z
        15: .line 144
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.isUseAlpn:()Z
            putfield io.vertx.core.net.impl.SSLHelper.useAlpn:Z
        16: .line 145
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.TCPSSLOptions.getEnabledSecureTransportProtocols:()Ljava/util/Set;
            putfield io.vertx.core.net.impl.SSLHelper.enabledProtocols:Ljava/util/Set;
        17: .line 146
            aload 0 /* this */
            aload 4 /* sslEngineOptions */
            instanceof io.vertx.core.net.OpenSSLEngineOptions
            ifeq 18
            aload 4 /* sslEngineOptions */
            checkcast io.vertx.core.net.OpenSSLEngineOptions
            invokevirtual io.vertx.core.net.OpenSSLEngineOptions.isSessionCacheEnabled:()Z
            ifeq 18
            iconst_1
            goto 19
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.net.TCPSSLOptions io.vertx.core.net.KeyCertOptions io.vertx.core.net.TrustOptions io.vertx.core.net.SSLEngineOptions
      StackMap stack: io.vertx.core.net.impl.SSLHelper
        18: iconst_0
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.net.TCPSSLOptions io.vertx.core.net.KeyCertOptions io.vertx.core.net.TrustOptions io.vertx.core.net.SSLEngineOptions
      StackMap stack: io.vertx.core.net.impl.SSLHelper int
        19: putfield io.vertx.core.net.impl.SSLHelper.openSslSessionCacheEnabled:Z
        20: .line 147
            return
        end local 4 // io.vertx.core.net.SSLEngineOptions sslEngineOptions
        end local 3 // io.vertx.core.net.TrustOptions trustOptions
        end local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        end local 1 // io.vertx.core.net.TCPSSLOptions options
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lio/vertx/core/net/impl/SSLHelper;
            0   21     1           options  Lio/vertx/core/net/TCPSSLOptions;
            0   21     2    keyCertOptions  Lio/vertx/core/net/KeyCertOptions;
            0   21     3      trustOptions  Lio/vertx/core/net/TrustOptions;
            6   21     4  sslEngineOptions  Lio/vertx/core/net/SSLEngineOptions;
    MethodParameters:
                Name  Flags
      options         
      keyCertOptions  
      trustOptions    

  private void <init>(io.vertx.core.net.ClientOptionsBase, io.vertx.core.net.KeyCertOptions, io.vertx.core.net.TrustOptions);
    descriptor: (Lio/vertx/core/net/ClientOptionsBase;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.net.ClientOptionsBase options
        start local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        start local 3 // io.vertx.core.net.TrustOptions trustOptions
         0: .line 150
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* keyCertOptions */
            aload 3 /* trustOptions */
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/net/TCPSSLOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
         1: .line 151
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.net.impl.SSLHelper.client:Z
         2: .line 152
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.ClientOptionsBase.isTrustAll:()Z
            putfield io.vertx.core.net.impl.SSLHelper.trustAll:Z
         3: .line 153
            return
        end local 3 // io.vertx.core.net.TrustOptions trustOptions
        end local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        end local 1 // io.vertx.core.net.ClientOptionsBase options
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lio/vertx/core/net/impl/SSLHelper;
            0    4     1         options  Lio/vertx/core/net/ClientOptionsBase;
            0    4     2  keyCertOptions  Lio/vertx/core/net/KeyCertOptions;
            0    4     3    trustOptions  Lio/vertx/core/net/TrustOptions;
    MethodParameters:
                Name  Flags
      options         
      keyCertOptions  
      trustOptions    

  public void <init>(io.vertx.core.http.HttpClientOptions, io.vertx.core.net.KeyCertOptions, io.vertx.core.net.TrustOptions);
    descriptor: (Lio/vertx/core/http/HttpClientOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.http.HttpClientOptions options
        start local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        start local 3 // io.vertx.core.net.TrustOptions trustOptions
         0: .line 156
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* keyCertOptions */
            aload 3 /* trustOptions */
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/net/ClientOptionsBase;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
         1: .line 157
            aload 1 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.isVerifyHost:()Z
            ifeq 3
         2: .line 158
            aload 0 /* this */
            ldc "HTTPS"
            putfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
         3: .line 160
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.http.HttpClientOptions io.vertx.core.net.KeyCertOptions io.vertx.core.net.TrustOptions
      StackMap stack:
            return
        end local 3 // io.vertx.core.net.TrustOptions trustOptions
        end local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        end local 1 // io.vertx.core.http.HttpClientOptions options
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lio/vertx/core/net/impl/SSLHelper;
            0    4     1         options  Lio/vertx/core/http/HttpClientOptions;
            0    4     2  keyCertOptions  Lio/vertx/core/net/KeyCertOptions;
            0    4     3    trustOptions  Lio/vertx/core/net/TrustOptions;
    MethodParameters:
                Name  Flags
      options         
      keyCertOptions  
      trustOptions    

  public void <init>(io.vertx.core.net.NetClientOptions, io.vertx.core.net.KeyCertOptions, io.vertx.core.net.TrustOptions);
    descriptor: (Lio/vertx/core/net/NetClientOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.net.NetClientOptions options
        start local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        start local 3 // io.vertx.core.net.TrustOptions trustOptions
         0: .line 163
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* keyCertOptions */
            aload 3 /* trustOptions */
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/net/ClientOptionsBase;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
         1: .line 164
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.NetClientOptions.getHostnameVerificationAlgorithm:()Ljava/lang/String;
            putfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
         2: .line 165
            return
        end local 3 // io.vertx.core.net.TrustOptions trustOptions
        end local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        end local 1 // io.vertx.core.net.NetClientOptions options
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lio/vertx/core/net/impl/SSLHelper;
            0    3     1         options  Lio/vertx/core/net/NetClientOptions;
            0    3     2  keyCertOptions  Lio/vertx/core/net/KeyCertOptions;
            0    3     3    trustOptions  Lio/vertx/core/net/TrustOptions;
    MethodParameters:
                Name  Flags
      options         
      keyCertOptions  
      trustOptions    

  public void <init>(io.vertx.core.net.NetServerOptions, io.vertx.core.net.KeyCertOptions, io.vertx.core.net.TrustOptions);
    descriptor: (Lio/vertx/core/net/NetServerOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.net.NetServerOptions options
        start local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        start local 3 // io.vertx.core.net.TrustOptions trustOptions
         0: .line 168
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* keyCertOptions */
            aload 3 /* trustOptions */
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/net/TCPSSLOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
         1: .line 169
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.NetServerOptions.getClientAuth:()Lio/vertx/core/http/ClientAuth;
            putfield io.vertx.core.net.impl.SSLHelper.clientAuth:Lio/vertx/core/http/ClientAuth;
         2: .line 170
            aload 0 /* this */
            iconst_0
            putfield io.vertx.core.net.impl.SSLHelper.client:Z
         3: .line 171
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.net.NetServerOptions.isSni:()Z
            putfield io.vertx.core.net.impl.SSLHelper.sni:Z
         4: .line 172
            return
        end local 3 // io.vertx.core.net.TrustOptions trustOptions
        end local 2 // io.vertx.core.net.KeyCertOptions keyCertOptions
        end local 1 // io.vertx.core.net.NetServerOptions options
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lio/vertx/core/net/impl/SSLHelper;
            0    5     1         options  Lio/vertx/core/net/NetServerOptions;
            0    5     2  keyCertOptions  Lio/vertx/core/net/KeyCertOptions;
            0    5     3    trustOptions  Lio/vertx/core/net/TrustOptions;
    MethodParameters:
                Name  Flags
      options         
      keyCertOptions  
      trustOptions    

  public void <init>(io.vertx.core.net.impl.SSLHelper);
    descriptor: (Lio/vertx/core/net/impl/SSLHelper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.net.impl.SSLHelper that
         0: .line 177
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 119
            aload 0 /* this */
            getstatic io.vertx.core.http.ClientAuth.NONE:Lio/vertx/core/http/ClientAuth;
            putfield io.vertx.core.net.impl.SSLHelper.clientAuth:Lio/vertx/core/http/ClientAuth;
         2: .line 127
            aload 0 /* this */
            ldc ""
            putfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
         3: .line 130
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.net.impl.SSLHelper.sslContextMap:Ljava/util/Map;
         4: .line 131
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.net.impl.SSLHelper.openSslSessionCacheEnabled:Z
         5: .line 178
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.ssl:Z
            putfield io.vertx.core.net.impl.SSLHelper.ssl:Z
         6: .line 179
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.sni:Z
            putfield io.vertx.core.net.impl.SSLHelper.sni:Z
         7: .line 180
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeout:J
            putfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeout:J
         8: .line 181
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeoutUnit:Ljava/util/concurrent/TimeUnit;
            putfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeoutUnit:Ljava/util/concurrent/TimeUnit;
         9: .line 182
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.keyCertOptions:Lio/vertx/core/net/KeyCertOptions;
            putfield io.vertx.core.net.impl.SSLHelper.keyCertOptions:Lio/vertx/core/net/KeyCertOptions;
        10: .line 183
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
            putfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
        11: .line 184
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.trustAll:Z
            putfield io.vertx.core.net.impl.SSLHelper.trustAll:Z
        12: .line 185
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.crlPaths:Ljava/util/ArrayList;
            putfield io.vertx.core.net.impl.SSLHelper.crlPaths:Ljava/util/ArrayList;
        13: .line 186
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.crlValues:Ljava/util/ArrayList;
            putfield io.vertx.core.net.impl.SSLHelper.crlValues:Ljava/util/ArrayList;
        14: .line 187
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.clientAuth:Lio/vertx/core/http/ClientAuth;
            putfield io.vertx.core.net.impl.SSLHelper.clientAuth:Lio/vertx/core/http/ClientAuth;
        15: .line 188
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
            putfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
        16: .line 189
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.openSsl:Z
            putfield io.vertx.core.net.impl.SSLHelper.openSsl:Z
        17: .line 190
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.client:Z
            putfield io.vertx.core.net.impl.SSLHelper.client:Z
        18: .line 191
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.useAlpn:Z
            putfield io.vertx.core.net.impl.SSLHelper.useAlpn:Z
        19: .line 192
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
            putfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
        20: .line 193
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.enabledProtocols:Ljava/util/Set;
            putfield io.vertx.core.net.impl.SSLHelper.enabledProtocols:Ljava/util/Set;
        21: .line 194
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
            putfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
        22: .line 195
            aload 0 /* this */
            aload 1 /* that */
            getfield io.vertx.core.net.impl.SSLHelper.openSslSessionCacheEnabled:Z
            putfield io.vertx.core.net.impl.SSLHelper.openSslSessionCacheEnabled:Z
        23: .line 196
            return
        end local 1 // io.vertx.core.net.impl.SSLHelper that
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lio/vertx/core/net/impl/SSLHelper;
            0   24     1  that  Lio/vertx/core/net/impl/SSLHelper;
    MethodParameters:
      Name  Flags
      that  

  public boolean isUseAlpn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 199
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.useAlpn:Z
            ireturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;

  public io.vertx.core.net.impl.SSLHelper setUseAlpn(boolean);
    descriptor: (Z)Lio/vertx/core/net/impl/SSLHelper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // boolean useAlpn
         0: .line 203
            aload 0 /* this */
            iload 1 /* useAlpn */
            putfield io.vertx.core.net.impl.SSLHelper.useAlpn:Z
         1: .line 204
            aload 0 /* this */
            areturn
        end local 1 // boolean useAlpn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/core/net/impl/SSLHelper;
            0    2     1  useAlpn  Z
    MethodParameters:
         Name  Flags
      useAlpn  

  public boolean isSSL();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 208
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.ssl:Z
            ireturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;

  public boolean isSNI();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 212
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sni:Z
            ireturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;

  public long getSslHandshakeTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 216
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeout:J
            lreturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;

  public java.util.concurrent.TimeUnit getSslHandshakeTimeoutUnit();
    descriptor: ()Ljava/util/concurrent/TimeUnit;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 220
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sslHandshakeTimeoutUnit:Ljava/util/concurrent/TimeUnit;
            areturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;

  public io.vertx.core.http.ClientAuth getClientAuth();
    descriptor: ()Lio/vertx/core/http/ClientAuth;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 224
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.clientAuth:Lio/vertx/core/http/ClientAuth;
            areturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;

  public java.util.List<io.vertx.core.http.HttpVersion> getApplicationProtocols();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.SSLHelper this
         0: .line 228
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
            areturn
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;
    Signature: ()Ljava/util/List<Lio/vertx/core/http/HttpVersion;>;

  public io.vertx.core.net.impl.SSLHelper setApplicationProtocols(java.util.List<io.vertx.core.http.HttpVersion>);
    descriptor: (Ljava/util/List;)Lio/vertx/core/net/impl/SSLHelper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // java.util.List applicationProtocols
         0: .line 232
            aload 0 /* this */
            aload 1 /* applicationProtocols */
            putfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
         1: .line 233
            aload 0 /* this */
            areturn
        end local 1 // java.util.List applicationProtocols
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lio/vertx/core/net/impl/SSLHelper;
            0    2     1  applicationProtocols  Ljava/util/List<Lio/vertx/core/http/HttpVersion;>;
    Signature: (Ljava/util/List<Lio/vertx/core/http/HttpVersion;>;)Lio/vertx/core/net/impl/SSLHelper;
    MethodParameters:
                      Name  Flags
      applicationProtocols  

  private io.netty.handler.ssl.SslContext createContext(io.vertx.core.impl.VertxInternal, javax.net.ssl.X509KeyManager, javax.net.ssl.TrustManagerFactory);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljavax/net/ssl/X509KeyManager;Ljavax/net/ssl/TrustManagerFactory;)Lio/netty/handler/ssl/SslContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=9, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // javax.net.ssl.X509KeyManager mgr
        start local 3 // javax.net.ssl.TrustManagerFactory trustMgrFactory
         0: .line 247
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.client:Z
            ifeq 6
         1: .line 248
            invokestatic io.netty.handler.ssl.SslContextBuilder.forClient:()Lio/netty/handler/ssl/SslContextBuilder;
            astore 4 /* builder */
        start local 4 // io.netty.handler.ssl.SslContextBuilder builder
         2: .line 249
            aload 0 /* this */
            aload 1 /* vertx */
            invokevirtual io.vertx.core.net.impl.SSLHelper.getKeyMgrFactory:(Lio/vertx/core/impl/VertxInternal;)Ljavax/net/ssl/KeyManagerFactory;
            astore 5 /* keyMgrFactory */
        start local 5 // javax.net.ssl.KeyManagerFactory keyMgrFactory
         3: .line 250
            aload 5 /* keyMgrFactory */
            ifnull 13
         4: .line 251
            aload 4 /* builder */
            aload 5 /* keyMgrFactory */
            invokevirtual io.netty.handler.ssl.SslContextBuilder.keyManager:(Ljavax/net/ssl/KeyManagerFactory;)Lio/netty/handler/ssl/SslContextBuilder;
            pop
        end local 5 // javax.net.ssl.KeyManagerFactory keyMgrFactory
         5: .line 253
            goto 13
        end local 4 // io.netty.handler.ssl.SslContextBuilder builder
         6: .line 254
      StackMap locals:
      StackMap stack:
            aload 2 /* mgr */
            ifnull 9
         7: .line 255
            aload 2 /* mgr */
            aconst_null
            invokeinterface javax.net.ssl.X509KeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
            aconst_null
            aload 2 /* mgr */
            aconst_null
            invokeinterface javax.net.ssl.X509KeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
            invokestatic io.netty.handler.ssl.SslContextBuilder.forServer:(Ljava/security/PrivateKey;Ljava/lang/String;[Ljava/security/cert/X509Certificate;)Lio/netty/handler/ssl/SslContextBuilder;
            astore 4 /* builder */
        start local 4 // io.netty.handler.ssl.SslContextBuilder builder
         8: .line 256
            goto 13
        end local 4 // io.netty.handler.ssl.SslContextBuilder builder
         9: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* vertx */
            invokevirtual io.vertx.core.net.impl.SSLHelper.getKeyMgrFactory:(Lio/vertx/core/impl/VertxInternal;)Ljavax/net/ssl/KeyManagerFactory;
            astore 5 /* keyMgrFactory */
        start local 5 // javax.net.ssl.KeyManagerFactory keyMgrFactory
        10: .line 258
            aload 5 /* keyMgrFactory */
            ifnonnull 12
        11: .line 259
            new io.vertx.core.VertxException
            dup
            ldc "Key/certificate is mandatory for SSL"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 261
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal javax.net.ssl.X509KeyManager javax.net.ssl.TrustManagerFactory top javax.net.ssl.KeyManagerFactory
      StackMap stack:
            aload 5 /* keyMgrFactory */
            invokestatic io.netty.handler.ssl.SslContextBuilder.forServer:(Ljavax/net/ssl/KeyManagerFactory;)Lio/netty/handler/ssl/SslContextBuilder;
            astore 4 /* builder */
        end local 5 // javax.net.ssl.KeyManagerFactory keyMgrFactory
        start local 4 // io.netty.handler.ssl.SslContextBuilder builder
        13: .line 264
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal javax.net.ssl.X509KeyManager javax.net.ssl.TrustManagerFactory io.netty.handler.ssl.SslContextBuilder
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
            astore 5 /* cipherSuites */
        start local 5 // java.util.Collection cipherSuites
        14: .line 265
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.openSsl:Z
            ifeq 19
        15: .line 266
            aload 4 /* builder */
            getstatic io.netty.handler.ssl.SslProvider.OPENSSL:Lio/netty/handler/ssl/SslProvider;
            invokevirtual io.netty.handler.ssl.SslContextBuilder.sslProvider:(Lio/netty/handler/ssl/SslProvider;)Lio/netty/handler/ssl/SslContextBuilder;
            pop
        16: .line 267
            aload 5 /* cipherSuites */
            ifnull 17
            aload 5 /* cipherSuites */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 22
        17: .line 268
      StackMap locals: java.util.Collection
      StackMap stack:
            invokestatic io.netty.handler.ssl.OpenSsl.availableOpenSslCipherSuites:()Ljava/util/Set;
            astore 5 /* cipherSuites */
        18: .line 270
            goto 22
        19: .line 271
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            getstatic io.netty.handler.ssl.SslProvider.JDK:Lio/netty/handler/ssl/SslProvider;
            invokevirtual io.netty.handler.ssl.SslContextBuilder.sslProvider:(Lio/netty/handler/ssl/SslProvider;)Lio/netty/handler/ssl/SslContextBuilder;
            pop
        20: .line 272
            aload 5 /* cipherSuites */
            ifnull 21
            aload 5 /* cipherSuites */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 22
        21: .line 273
      StackMap locals:
      StackMap stack:
            invokestatic io.vertx.core.net.impl.DefaultJDKCipherSuite.get:()Ljava/util/List;
            astore 5 /* cipherSuites */
        22: .line 276
      StackMap locals:
      StackMap stack:
            aload 3 /* trustMgrFactory */
            ifnull 24
        23: .line 277
            aload 4 /* builder */
            aload 3 /* trustMgrFactory */
            invokevirtual io.netty.handler.ssl.SslContextBuilder.trustManager:(Ljavax/net/ssl/TrustManagerFactory;)Lio/netty/handler/ssl/SslContextBuilder;
            pop
        24: .line 279
      StackMap locals:
      StackMap stack:
            aload 5 /* cipherSuites */
            ifnull 26
            aload 5 /* cipherSuites */
            invokeinterface java.util.Collection.size:()I
            ifle 26
        25: .line 280
            aload 4 /* builder */
            aload 5 /* cipherSuites */
            invokevirtual io.netty.handler.ssl.SslContextBuilder.ciphers:(Ljava/lang/Iterable;)Lio/netty/handler/ssl/SslContextBuilder;
            pop
        26: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.useAlpn:Z
            ifeq 33
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
            ifnull 33
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 33
        27: .line 283
            aload 4 /* builder */
            new io.netty.handler.ssl.ApplicationProtocolConfig
            dup
        28: .line 284
            getstatic io.netty.handler.ssl.ApplicationProtocolConfig$Protocol.ALPN:Lio/netty/handler/ssl/ApplicationProtocolConfig$Protocol;
        29: .line 285
            getstatic io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior.NO_ADVERTISE:Lio/netty/handler/ssl/ApplicationProtocolConfig$SelectorFailureBehavior;
        30: .line 286
            getstatic io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior.ACCEPT:Lio/netty/handler/ssl/ApplicationProtocolConfig$SelectedListenerFailureBehavior;
        31: .line 287
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.applicationProtocols:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            getstatic io.vertx.core.net.impl.SSLHelper.PROTOCOL_NAME_MAPPING:Ljava/util/Map;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/Map;)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;
                  java/util/Map.get(Ljava/lang/Object;)Ljava/lang/Object; (9 itf)
                  (Lio/vertx/core/http/HttpVersion;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokespecial io.netty.handler.ssl.ApplicationProtocolConfig.<init>:(Lio/netty/handler/ssl/ApplicationProtocolConfig$Protocol;Lio/netty/handler/ssl/ApplicationProtocolConfig$SelectorFailureBehavior;Lio/netty/handler/ssl/ApplicationProtocolConfig$SelectedListenerFailureBehavior;Ljava/lang/Iterable;)V
        32: .line 283
            invokevirtual io.netty.handler.ssl.SslContextBuilder.applicationProtocolConfig:(Lio/netty/handler/ssl/ApplicationProtocolConfig;)Lio/netty/handler/ssl/SslContextBuilder;
            pop
        33: .line 290
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            invokevirtual io.netty.handler.ssl.SslContextBuilder.build:()Lio/netty/handler/ssl/SslContext;
            astore 7 /* ctx */
        start local 7 // io.netty.handler.ssl.SslContext ctx
        34: .line 291
            aload 7 /* ctx */
            instanceof io.netty.handler.ssl.OpenSslServerContext
            ifeq 38
        35: .line 292
            aload 7 /* ctx */
            invokevirtual io.netty.handler.ssl.SslContext.sessionContext:()Ljavax/net/ssl/SSLSessionContext;
            astore 8 /* sslSessionContext */
        start local 8 // javax.net.ssl.SSLSessionContext sslSessionContext
        36: .line 293
            aload 8 /* sslSessionContext */
            instanceof io.netty.handler.ssl.OpenSslServerSessionContext
            ifeq 38
        37: .line 294
            aload 8 /* sslSessionContext */
            checkcast io.netty.handler.ssl.OpenSslServerSessionContext
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.openSslSessionCacheEnabled:Z
            invokevirtual io.netty.handler.ssl.OpenSslServerSessionContext.setSessionCacheEnabled:(Z)V
        end local 8 // javax.net.ssl.SSLSessionContext sslSessionContext
        38: .line 297
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal javax.net.ssl.X509KeyManager javax.net.ssl.TrustManagerFactory io.netty.handler.ssl.SslContextBuilder java.util.Collection top io.netty.handler.ssl.SslContext
      StackMap stack:
            aload 7 /* ctx */
        39: areturn
        end local 7 // io.netty.handler.ssl.SslContext ctx
        end local 5 // java.util.Collection cipherSuites
        end local 4 // io.netty.handler.ssl.SslContextBuilder builder
        40: .line 298
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal javax.net.ssl.X509KeyManager javax.net.ssl.TrustManagerFactory
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        41: .line 299
            new io.vertx.core.VertxException
            dup
            aload 4 /* e */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // javax.net.ssl.TrustManagerFactory trustMgrFactory
        end local 2 // javax.net.ssl.X509KeyManager mgr
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   42     0               this  Lio/vertx/core/net/impl/SSLHelper;
            0   42     1              vertx  Lio/vertx/core/impl/VertxInternal;
            0   42     2                mgr  Ljavax/net/ssl/X509KeyManager;
            0   42     3    trustMgrFactory  Ljavax/net/ssl/TrustManagerFactory;
            2    6     4            builder  Lio/netty/handler/ssl/SslContextBuilder;
            8    9     4            builder  Lio/netty/handler/ssl/SslContextBuilder;
           13   40     4            builder  Lio/netty/handler/ssl/SslContextBuilder;
            3    5     5      keyMgrFactory  Ljavax/net/ssl/KeyManagerFactory;
           10   13     5      keyMgrFactory  Ljavax/net/ssl/KeyManagerFactory;
           14   40     5       cipherSuites  Ljava/util/Collection<Ljava/lang/String;>;
           34   40     7                ctx  Lio/netty/handler/ssl/SslContext;
           36   38     8  sslSessionContext  Ljavax/net/ssl/SSLSessionContext;
           41   42     4                  e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    39      40  Class java.lang.Exception
    MethodParameters:
                 Name  Flags
      vertx            
      mgr              
      trustMgrFactory  

  private javax.net.ssl.KeyManagerFactory getKeyMgrFactory(io.vertx.core.impl.VertxInternal);
    descriptor: (Lio/vertx/core/impl/VertxInternal;)Ljavax/net/ssl/KeyManagerFactory;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 304
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.keyCertOptions:Lio/vertx/core/net/KeyCertOptions;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.keyCertOptions:Lio/vertx/core/net/KeyCertOptions;
            aload 1 /* vertx */
            invokeinterface io.vertx.core.net.KeyCertOptions.getKeyManagerFactory:(Lio/vertx/core/Vertx;)Ljavax/net/ssl/KeyManagerFactory;
      StackMap locals:
      StackMap stack: javax.net.ssl.KeyManagerFactory
         2: areturn
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/vertx/core/net/impl/SSLHelper;
            0    3     1  vertx  Lio/vertx/core/impl/VertxInternal;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
       Name  Flags
      vertx  

  private javax.net.ssl.TrustManagerFactory getTrustMgrFactory(io.vertx.core.impl.VertxInternal, java.lang.String);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // java.lang.String serverName
         0: .line 308
            aconst_null
            astore 3 /* mgrs */
        start local 3 // javax.net.ssl.TrustManager[] mgrs
         1: .line 309
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.trustAll:Z
            ifeq 4
         2: .line 310
            iconst_1
            anewarray javax.net.ssl.TrustManager
            dup
            iconst_0
            invokestatic io.vertx.core.net.impl.SSLHelper.createTrustAllTrustManager:()Ljavax/net/ssl/TrustManager;
            aastore
            astore 3 /* mgrs */
         3: .line 311
            goto 17
      StackMap locals: javax.net.ssl.TrustManager[]
      StackMap stack:
         4: aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
            ifnull 17
         5: .line 312
            aload 2 /* serverName */
            ifnull 14
         6: .line 313
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
            aload 1 /* vertx */
            invokeinterface io.vertx.core.net.TrustOptions.trustManagerMapper:(Lio/vertx/core/Vertx;)Ljava/util/function/Function;
            astore 4 /* mapper */
        start local 4 // java.util.function.Function mapper
         7: .line 314
            aload 4 /* mapper */
            ifnull 9
         8: .line 315
            aload 4 /* mapper */
            aload 2 /* serverName */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.net.ssl.TrustManager[]
            astore 3 /* mgrs */
         9: .line 317
      StackMap locals: java.util.function.Function
      StackMap stack:
            aload 3 /* mgrs */
            ifnonnull 17
        10: .line 318
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
            aload 1 /* vertx */
            invokeinterface io.vertx.core.net.TrustOptions.getTrustManagerFactory:(Lio/vertx/core/Vertx;)Ljavax/net/ssl/TrustManagerFactory;
            astore 5 /* fact */
        start local 5 // javax.net.ssl.TrustManagerFactory fact
        11: .line 319
            aload 5 /* fact */
            ifnull 17
        12: .line 320
            aload 5 /* fact */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 3 /* mgrs */
        end local 5 // javax.net.ssl.TrustManagerFactory fact
        end local 4 // java.util.function.Function mapper
        13: .line 323
            goto 17
        14: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.trustOptions:Lio/vertx/core/net/TrustOptions;
            aload 1 /* vertx */
            invokeinterface io.vertx.core.net.TrustOptions.getTrustManagerFactory:(Lio/vertx/core/Vertx;)Ljavax/net/ssl/TrustManagerFactory;
            astore 4 /* fact */
        start local 4 // javax.net.ssl.TrustManagerFactory fact
        15: .line 325
            aload 4 /* fact */
            ifnull 17
        16: .line 326
            aload 4 /* fact */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 3 /* mgrs */
        end local 4 // javax.net.ssl.TrustManagerFactory fact
        17: .line 330
      StackMap locals:
      StackMap stack:
            aload 3 /* mgrs */
            ifnonnull 19
        18: .line 331
            aconst_null
            areturn
        19: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.crlPaths:Ljava/util/ArrayList;
            ifnull 33
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.crlValues:Ljava/util/ArrayList;
            ifnull 33
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.crlPaths:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifgt 20
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.crlValues:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifle 33
        20: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.crlPaths:Ljava/util/ArrayList;
        21: .line 335
            invokevirtual java.util.ArrayList.stream:()Ljava/util/stream/Stream;
        22: .line 336
            aload 1 /* vertx */
            invokedynamic apply(Lio/vertx/core/impl/VertxInternal;)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/core/net/impl/SSLHelper.lambda$1(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        23: .line 337
            aload 1 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.fileSystem:()Lio/vertx/core/file/FileSystem;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lio/vertx/core/file/FileSystem;)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/core/file/FileSystem.readFileBlocking(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer; (9 itf)
                  (Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        24: .line 334
            astore 4 /* tmp */
        start local 4 // java.util.stream.Stream tmp
        25: .line 338
            aload 4 /* tmp */
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.crlValues:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.stream:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            astore 4 /* tmp */
        26: .line 339
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 6 /* certificatefactory */
        start local 6 // java.security.cert.CertificateFactory certificatefactory
        27: .line 340
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* crls */
        start local 7 // java.util.ArrayList crls
        28: .line 341
            aload 4 /* tmp */
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 31
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal java.lang.String javax.net.ssl.TrustManager[] java.util.stream.Stream top java.security.cert.CertificateFactory java.util.ArrayList top java.util.Iterator
      StackMap stack:
        29: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.core.buffer.Buffer
            astore 8 /* crlValue */
        start local 8 // io.vertx.core.buffer.Buffer crlValue
        30: .line 342
            aload 7 /* crls */
            aload 6 /* certificatefactory */
            new java.io.ByteArrayInputStream
            dup
            aload 8 /* crlValue */
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual java.security.cert.CertificateFactory.generateCRLs:(Ljava/io/InputStream;)Ljava/util/Collection;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        end local 8 // io.vertx.core.buffer.Buffer crlValue
        31: .line 341
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        32: .line 344
            aload 3 /* mgrs */
            aload 7 /* crls */
            invokestatic io.vertx.core.net.impl.SSLHelper.createUntrustRevokedCertTrustManager:([Ljavax/net/ssl/TrustManager;Ljava/util/ArrayList;)[Ljavax/net/ssl/TrustManager;
            astore 3 /* mgrs */
        end local 7 // java.util.ArrayList crls
        end local 6 // java.security.cert.CertificateFactory certificatefactory
        end local 4 // java.util.stream.Stream tmp
        33: .line 346
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal java.lang.String javax.net.ssl.TrustManager[]
      StackMap stack:
            new io.vertx.core.net.impl.VertxTrustManagerFactory
            dup
            aload 3 /* mgrs */
            invokespecial io.vertx.core.net.impl.VertxTrustManagerFactory.<init>:([Ljavax/net/ssl/TrustManager;)V
            areturn
        end local 3 // javax.net.ssl.TrustManager[] mgrs
        end local 2 // java.lang.String serverName
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   34     0                this  Lio/vertx/core/net/impl/SSLHelper;
            0   34     1               vertx  Lio/vertx/core/impl/VertxInternal;
            0   34     2          serverName  Ljava/lang/String;
            1   34     3                mgrs  [Ljavax/net/ssl/TrustManager;
            7   13     4              mapper  Ljava/util/function/Function<Ljava/lang/String;[Ljavax/net/ssl/TrustManager;>;
           11   13     5                fact  Ljavax/net/ssl/TrustManagerFactory;
           15   17     4                fact  Ljavax/net/ssl/TrustManagerFactory;
           25   33     4                 tmp  Ljava/util/stream/Stream<Lio/vertx/core/buffer/Buffer;>;
           27   33     6  certificatefactory  Ljava/security/cert/CertificateFactory;
           28   33     7                crls  Ljava/util/ArrayList<Ljava/security/cert/CRL;>;
           30   31     8            crlValue  Lio/vertx/core/buffer/Buffer;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      vertx       
      serverName  

  private static javax.net.ssl.TrustManager[] createUntrustRevokedCertTrustManager(javax.net.ssl.TrustManager[], java.util.ArrayList<java.security.cert.CRL>);
    descriptor: ([Ljavax/net/ssl/TrustManager;Ljava/util/ArrayList;)[Ljavax/net/ssl/TrustManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // javax.net.ssl.TrustManager[] trustMgrs
        start local 1 // java.util.ArrayList crls
         0: .line 354
            aload 0 /* trustMgrs */
            invokevirtual javax.net.ssl.TrustManager[].clone:()Ljava/lang/Object;
            checkcast javax.net.ssl.TrustManager[]
            astore 0 /* trustMgrs */
         1: .line 355
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 8
         3: .line 356
      StackMap locals: int
      StackMap stack:
            aload 0 /* trustMgrs */
            iload 2 /* i */
            aaload
            astore 3 /* trustMgr */
        start local 3 // javax.net.ssl.TrustManager trustMgr
         4: .line 357
            aload 3 /* trustMgr */
            instanceof javax.net.ssl.X509TrustManager
            ifeq 7
         5: .line 358
            aload 3 /* trustMgr */
            checkcast javax.net.ssl.X509TrustManager
            astore 4 /* x509TrustManager */
        start local 4 // javax.net.ssl.X509TrustManager x509TrustManager
         6: .line 359
            aload 0 /* trustMgrs */
            iload 2 /* i */
            new io.vertx.core.net.impl.SSLHelper$1
            dup
            aload 4 /* x509TrustManager */
            aload 1 /* crls */
            invokespecial io.vertx.core.net.impl.SSLHelper$1.<init>:(Ljavax/net/ssl/X509TrustManager;Ljava/util/ArrayList;)V
            aastore
        end local 4 // javax.net.ssl.X509TrustManager x509TrustManager
        end local 3 // javax.net.ssl.TrustManager trustMgr
         7: .line 355
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* trustMgrs */
            arraylength
            if_icmplt 3
        end local 2 // int i
         9: .line 386
            aload 0 /* trustMgrs */
            areturn
        end local 1 // java.util.ArrayList crls
        end local 0 // javax.net.ssl.TrustManager[] trustMgrs
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0         trustMgrs  [Ljavax/net/ssl/TrustManager;
            0   10     1              crls  Ljava/util/ArrayList<Ljava/security/cert/CRL;>;
            2    9     2                 i  I
            4    7     3          trustMgr  Ljavax/net/ssl/TrustManager;
            6    7     4  x509TrustManager  Ljavax/net/ssl/X509TrustManager;
    Signature: ([Ljavax/net/ssl/TrustManager;Ljava/util/ArrayList<Ljava/security/cert/CRL;>;)[Ljavax/net/ssl/TrustManager;
    MethodParameters:
           Name  Flags
      trustMgrs  
      crls       

  private static javax.net.ssl.TrustManager createTrustAllTrustManager();
    descriptor: ()Ljavax/net/ssl/TrustManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 391
            new io.vertx.core.net.impl.SSLHelper$2
            dup
            invokespecial io.vertx.core.net.impl.SSLHelper$2.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.util.Mapping<? super java.lang.String, ? extends io.netty.handler.ssl.SslContext> serverNameMapper(io.vertx.core.impl.VertxInternal);
    descriptor: (Lio/vertx/core/impl/VertxInternal;)Lio/netty/util/Mapping;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 408
            aload 0 /* this */
            aload 1 /* vertx */
            invokedynamic map(Lio/vertx/core/net/impl/SSLHelper;Lio/vertx/core/impl/VertxInternal;)Lio/netty/util/Mapping;
              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/core/net/impl/SSLHelper.lambda$3(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext; (7)
                  (Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            areturn
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/core/net/impl/SSLHelper;
            0    1     1  vertx  Lio/vertx/core/impl/VertxInternal;
    Signature: (Lio/vertx/core/impl/VertxInternal;)Lio/netty/util/Mapping<-Ljava/lang/String;+Lio/netty/handler/ssl/SslContext;>;
    MethodParameters:
       Name  Flags
      vertx  

  public void configureEngine(javax.net.ssl.SSLEngine, java.lang.String);
    descriptor: (Ljavax/net/ssl/SSLEngine;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // javax.net.ssl.SSLEngine engine
        start local 2 // java.lang.String serverName
         0: .line 423
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
            ifnull 3
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 3
         1: .line 424
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.enabledCipherSuites:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* toUse */
        start local 3 // java.lang.String[] toUse
         2: .line 425
            aload 1 /* engine */
            aload 3 /* toUse */
            invokevirtual javax.net.ssl.SSLEngine.setEnabledCipherSuites:([Ljava/lang/String;)V
        end local 3 // java.lang.String[] toUse
         3: .line 427
      StackMap locals:
      StackMap stack:
            aload 1 /* engine */
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.client:Z
            invokevirtual javax.net.ssl.SSLEngine.setUseClientMode:(Z)V
         4: .line 428
            new java.util.LinkedHashSet
            dup
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.enabledProtocols:Ljava/util/Set;
            invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* protocols */
        start local 3 // java.util.Set protocols
         5: .line 429
            aload 3 /* protocols */
            aload 1 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSupportedProtocols:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.retainAll:(Ljava/util/Collection;)Z
            pop
         6: .line 430
            aload 3 /* protocols */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 8
         7: .line 431
            getstatic io.vertx.core.net.impl.SSLHelper.log:Lio/vertx/core/impl/logging/Logger;
            ldc "no SSL/TLS protocols are enabled due to configuration restrictions"
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;)V
         8: .line 433
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* engine */
            aload 3 /* protocols */
            aload 3 /* protocols */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokevirtual javax.net.ssl.SSLEngine.setEnabledProtocols:([Ljava/lang/String;)V
         9: .line 434
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.client:Z
            ifne 17
        10: .line 435
            invokestatic io.vertx.core.net.impl.SSLHelper.$SWITCH_TABLE$io$vertx$core$http$ClientAuth:()[I
            aload 0 /* this */
            invokevirtual io.vertx.core.net.impl.SSLHelper.getClientAuth:()Lio/vertx/core/http/ClientAuth;
            invokevirtual io.vertx.core.http.ClientAuth.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 15
                    2: 11
                    3: 13
              default: 16
          }
        11: .line 437
      StackMap locals:
      StackMap stack:
            aload 1 /* engine */
            iconst_1
            invokevirtual javax.net.ssl.SSLEngine.setWantClientAuth:(Z)V
        12: .line 438
            goto 21
        13: .line 441
      StackMap locals:
      StackMap stack:
            aload 1 /* engine */
            iconst_1
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        14: .line 442
            goto 21
        15: .line 445
      StackMap locals:
      StackMap stack:
            aload 1 /* engine */
            iconst_0
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        16: .line 449
      StackMap locals:
      StackMap stack:
            goto 21
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 21
        18: .line 450
            aload 1 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 4 /* sslParameters */
        start local 4 // javax.net.ssl.SSLParameters sslParameters
        19: .line 451
            aload 4 /* sslParameters */
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.endpointIdentificationAlgorithm:Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm:(Ljava/lang/String;)V
        20: .line 452
            aload 1 /* engine */
            aload 4 /* sslParameters */
            invokevirtual javax.net.ssl.SSLEngine.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
        end local 4 // javax.net.ssl.SSLParameters sslParameters
        21: .line 454
      StackMap locals:
      StackMap stack:
            aload 2 /* serverName */
            ifnull 25
        22: .line 455
            aload 1 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 4 /* sslParameters */
        start local 4 // javax.net.ssl.SSLParameters sslParameters
        23: .line 456
            aload 4 /* sslParameters */
            new javax.net.ssl.SNIHostName
            dup
            aload 2 /* serverName */
            invokespecial javax.net.ssl.SNIHostName.<init>:(Ljava/lang/String;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual javax.net.ssl.SSLParameters.setServerNames:(Ljava/util/List;)V
        24: .line 457
            aload 1 /* engine */
            aload 4 /* sslParameters */
            invokevirtual javax.net.ssl.SSLEngine.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
        end local 4 // javax.net.ssl.SSLParameters sslParameters
        25: .line 459
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Set protocols
        end local 2 // java.lang.String serverName
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lio/vertx/core/net/impl/SSLHelper;
            0   26     1         engine  Ljavax/net/ssl/SSLEngine;
            0   26     2     serverName  Ljava/lang/String;
            2    3     3          toUse  [Ljava/lang/String;
            5   26     3      protocols  Ljava/util/Set<Ljava/lang/String;>;
           19   21     4  sslParameters  Ljavax/net/ssl/SSLParameters;
           23   25     4  sslParameters  Ljavax/net/ssl/SSLParameters;
    MethodParameters:
            Name  Flags
      engine      
      serverName  

  public io.netty.handler.ssl.SslContext getContext(io.vertx.core.impl.VertxInternal);
    descriptor: (Lio/vertx/core/impl/VertxInternal;)Lio/netty/handler/ssl/SslContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 462
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            areturn
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/core/net/impl/SSLHelper;
            0    1     1  vertx  Lio/vertx/core/impl/VertxInternal;
    MethodParameters:
       Name  Flags
      vertx  

  public io.netty.handler.ssl.SslContext getContext(io.vertx.core.impl.VertxInternal, java.lang.String);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // java.lang.String serverName
         0: .line 466
            aload 2 /* serverName */
            ifnonnull 9
         1: .line 467
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sslContext:Lio/netty/handler/ssl/SslContext;
            ifnonnull 8
         2: .line 468
            aconst_null
            astore 3 /* trustMgrFactory */
        start local 3 // javax.net.ssl.TrustManagerFactory trustMgrFactory
         3: .line 470
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getTrustMgrFactory:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 3 /* trustMgrFactory */
         4: .line 471
            goto 7
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal java.lang.String javax.net.ssl.TrustManagerFactory
      StackMap stack: java.lang.Exception
         5: astore 4 /* e */
        start local 4 // java.lang.Exception e
         6: .line 472
            new io.vertx.core.VertxException
            dup
            aload 4 /* e */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
         7: .line 474
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            aload 3 /* trustMgrFactory */
            invokevirtual io.vertx.core.net.impl.SSLHelper.createContext:(Lio/vertx/core/impl/VertxInternal;Ljavax/net/ssl/X509KeyManager;Ljavax/net/ssl/TrustManagerFactory;)Lio/netty/handler/ssl/SslContext;
            putfield io.vertx.core.net.impl.SSLHelper.sslContext:Lio/netty/handler/ssl/SslContext;
        end local 3 // javax.net.ssl.TrustManagerFactory trustMgrFactory
         8: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sslContext:Lio/netty/handler/ssl/SslContext;
            areturn
         9: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.keyCertOptions:Lio/vertx/core/net/KeyCertOptions;
            aload 1 /* vertx */
            invokeinterface io.vertx.core.net.KeyCertOptions.keyManagerMapper:(Lio/vertx/core/Vertx;)Ljava/util/function/Function;
            aload 2 /* serverName */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.net.ssl.X509KeyManager
            astore 3 /* mgr */
        start local 3 // javax.net.ssl.X509KeyManager mgr
        10: .line 481
            goto 13
        end local 3 // javax.net.ssl.X509KeyManager mgr
      StackMap locals:
      StackMap stack: java.lang.Exception
        11: astore 4 /* e */
        start local 4 // java.lang.Exception e
        12: .line 482
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        start local 3 // javax.net.ssl.X509KeyManager mgr
        13: .line 484
      StackMap locals: javax.net.ssl.X509KeyManager
      StackMap stack:
            aload 3 /* mgr */
            ifnonnull 15
        14: .line 485
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sslContext:Lio/netty/handler/ssl/SslContext;
            areturn
        15: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* vertx */
            aload 2 /* serverName */
            invokevirtual io.vertx.core.net.impl.SSLHelper.getTrustMgrFactory:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 4 /* trustMgrFactory */
        start local 4 // javax.net.ssl.TrustManagerFactory trustMgrFactory
        16: .line 489
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.sslContextMap:Ljava/util/Map;
            aload 3 /* mgr */
            aconst_null
            invokeinterface javax.net.ssl.X509KeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
            iconst_0
            aaload
            aload 0 /* this */
            aload 1 /* vertx */
            aload 3 /* mgr */
            aload 4 /* trustMgrFactory */
            invokedynamic apply(Lio/vertx/core/net/impl/SSLHelper;Lio/vertx/core/impl/VertxInternal;Ljavax/net/ssl/X509KeyManager;Ljavax/net/ssl/TrustManagerFactory;)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/core/net/impl/SSLHelper.lambda$4(Lio/vertx/core/impl/VertxInternal;Ljavax/net/ssl/X509KeyManager;Ljavax/net/ssl/TrustManagerFactory;Ljava/security/cert/Certificate;)Lio/netty/handler/ssl/SslContext; (7)
                  (Ljava/security/cert/Certificate;)Lio/netty/handler/ssl/SslContext;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast io.netty.handler.ssl.SslContext
        17: areturn
        end local 4 // javax.net.ssl.TrustManagerFactory trustMgrFactory
        18: .line 490
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        19: .line 491
            new io.vertx.core.VertxException
            dup
            aload 4 /* e */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // javax.net.ssl.X509KeyManager mgr
        end local 2 // java.lang.String serverName
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lio/vertx/core/net/impl/SSLHelper;
            0   20     1            vertx  Lio/vertx/core/impl/VertxInternal;
            0   20     2       serverName  Ljava/lang/String;
            3    8     3  trustMgrFactory  Ljavax/net/ssl/TrustManagerFactory;
            6    7     4                e  Ljava/lang/Exception;
           10   11     3              mgr  Ljavax/net/ssl/X509KeyManager;
           13   20     3              mgr  Ljavax/net/ssl/X509KeyManager;
           12   13     4                e  Ljava/lang/Exception;
           16   18     4  trustMgrFactory  Ljavax/net/ssl/TrustManagerFactory;
           19   20     4                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
           9    10      11  Class java.lang.Exception
          15    17      18  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      vertx       
      serverName  

  public synchronized void validate(io.vertx.core.impl.VertxInternal);
    descriptor: (Lio/vertx/core/impl/VertxInternal;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 498
            aload 0 /* this */
            getfield io.vertx.core.net.impl.SSLHelper.ssl:Z
            ifeq 2
         1: .line 499
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            pop
         2: .line 501
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/vertx/core/net/impl/SSLHelper;
            0    3     1  vertx  Lio/vertx/core/impl/VertxInternal;
    MethodParameters:
       Name  Flags
      vertx  

  public javax.net.ssl.SSLEngine createEngine(io.netty.handler.ssl.SslContext);
    descriptor: (Lio/netty/handler/ssl/SslContext;)Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.netty.handler.ssl.SslContext sslContext
         0: .line 504
            aload 1 /* sslContext */
            getstatic io.netty.buffer.ByteBufAllocator.DEFAULT:Lio/netty/buffer/ByteBufAllocator;
            invokevirtual io.netty.handler.ssl.SslContext.newEngine:(Lio/netty/buffer/ByteBufAllocator;)Ljavax/net/ssl/SSLEngine;
            astore 2 /* engine */
        start local 2 // javax.net.ssl.SSLEngine engine
         1: .line 505
            aload 0 /* this */
            aload 2 /* engine */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.configureEngine:(Ljavax/net/ssl/SSLEngine;Ljava/lang/String;)V
         2: .line 506
            aload 2 /* engine */
            areturn
        end local 2 // javax.net.ssl.SSLEngine engine
        end local 1 // io.netty.handler.ssl.SslContext sslContext
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/core/net/impl/SSLHelper;
            0    3     1  sslContext  Lio/netty/handler/ssl/SslContext;
            1    3     2      engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
            Name  Flags
      sslContext  

  public javax.net.ssl.SSLEngine createEngine(io.vertx.core.impl.VertxInternal, io.vertx.core.net.SocketAddress, java.lang.String);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;)Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // io.vertx.core.net.SocketAddress socketAddress
        start local 3 // java.lang.String serverName
         0: .line 510
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            astore 4 /* context */
        start local 4 // io.netty.handler.ssl.SslContext context
         1: .line 512
            aload 2 /* socketAddress */
            invokeinterface io.vertx.core.net.SocketAddress.isDomainSocket:()Z
            ifeq 4
         2: .line 513
            aload 4 /* context */
            getstatic io.netty.buffer.ByteBufAllocator.DEFAULT:Lio/netty/buffer/ByteBufAllocator;
            invokevirtual io.netty.handler.ssl.SslContext.newEngine:(Lio/netty/buffer/ByteBufAllocator;)Ljavax/net/ssl/SSLEngine;
            astore 5 /* engine */
        start local 5 // javax.net.ssl.SSLEngine engine
         3: .line 514
            goto 5
        end local 5 // javax.net.ssl.SSLEngine engine
         4: .line 515
      StackMap locals: io.netty.handler.ssl.SslContext
      StackMap stack:
            aload 4 /* context */
            getstatic io.netty.buffer.ByteBufAllocator.DEFAULT:Lio/netty/buffer/ByteBufAllocator;
            aload 2 /* socketAddress */
            invokeinterface io.vertx.core.net.SocketAddress.host:()Ljava/lang/String;
            aload 2 /* socketAddress */
            invokeinterface io.vertx.core.net.SocketAddress.port:()I
            invokevirtual io.netty.handler.ssl.SslContext.newEngine:(Lio/netty/buffer/ByteBufAllocator;Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
            astore 5 /* engine */
        start local 5 // javax.net.ssl.SSLEngine engine
         5: .line 517
      StackMap locals: javax.net.ssl.SSLEngine
      StackMap stack:
            aload 0 /* this */
            aload 5 /* engine */
            aload 3 /* serverName */
            invokevirtual io.vertx.core.net.impl.SSLHelper.configureEngine:(Ljavax/net/ssl/SSLEngine;Ljava/lang/String;)V
         6: .line 518
            aload 5 /* engine */
            areturn
        end local 5 // javax.net.ssl.SSLEngine engine
        end local 4 // io.netty.handler.ssl.SslContext context
        end local 3 // java.lang.String serverName
        end local 2 // io.vertx.core.net.SocketAddress socketAddress
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/vertx/core/net/impl/SSLHelper;
            0    7     1          vertx  Lio/vertx/core/impl/VertxInternal;
            0    7     2  socketAddress  Lio/vertx/core/net/SocketAddress;
            0    7     3     serverName  Ljava/lang/String;
            1    7     4        context  Lio/netty/handler/ssl/SslContext;
            3    4     5         engine  Ljavax/net/ssl/SSLEngine;
            5    7     5         engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
               Name  Flags
      vertx          
      socketAddress  
      serverName     

  public javax.net.ssl.SSLEngine createEngine(io.vertx.core.impl.VertxInternal, java.lang.String, int, boolean);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;IZ)Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // java.lang.String host
        start local 3 // int port
        start local 4 // boolean forceSNI
         0: .line 522
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            getstatic io.netty.buffer.ByteBufAllocator.DEFAULT:Lio/netty/buffer/ByteBufAllocator;
            aload 2 /* host */
            iload 3 /* port */
            invokevirtual io.netty.handler.ssl.SslContext.newEngine:(Lio/netty/buffer/ByteBufAllocator;Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
            astore 5 /* engine */
        start local 5 // javax.net.ssl.SSLEngine engine
         1: .line 523
            aload 0 /* this */
            aload 5 /* engine */
            iload 4 /* forceSNI */
            ifeq 2
            aload 2 /* host */
            goto 3
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal java.lang.String int int javax.net.ssl.SSLEngine
      StackMap stack: io.vertx.core.net.impl.SSLHelper javax.net.ssl.SSLEngine
         2: aconst_null
      StackMap locals: io.vertx.core.net.impl.SSLHelper io.vertx.core.impl.VertxInternal java.lang.String int int javax.net.ssl.SSLEngine
      StackMap stack: io.vertx.core.net.impl.SSLHelper javax.net.ssl.SSLEngine java.lang.String
         3: invokevirtual io.vertx.core.net.impl.SSLHelper.configureEngine:(Ljavax/net/ssl/SSLEngine;Ljava/lang/String;)V
         4: .line 524
            aload 5 /* engine */
            areturn
        end local 5 // javax.net.ssl.SSLEngine engine
        end local 4 // boolean forceSNI
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lio/vertx/core/net/impl/SSLHelper;
            0    5     1     vertx  Lio/vertx/core/impl/VertxInternal;
            0    5     2      host  Ljava/lang/String;
            0    5     3      port  I
            0    5     4  forceSNI  Z
            1    5     5    engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
          Name  Flags
      vertx     
      host      
      port      
      forceSNI  

  public javax.net.ssl.SSLEngine createEngine(io.vertx.core.impl.VertxInternal, java.lang.String, int);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // java.lang.String host
        start local 3 // int port
         0: .line 528
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            getstatic io.netty.buffer.ByteBufAllocator.DEFAULT:Lio/netty/buffer/ByteBufAllocator;
            aload 2 /* host */
            iload 3 /* port */
            invokevirtual io.netty.handler.ssl.SslContext.newEngine:(Lio/netty/buffer/ByteBufAllocator;Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
            astore 4 /* engine */
        start local 4 // javax.net.ssl.SSLEngine engine
         1: .line 529
            aload 0 /* this */
            aload 4 /* engine */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.configureEngine:(Ljavax/net/ssl/SSLEngine;Ljava/lang/String;)V
         2: .line 530
            aload 4 /* engine */
            areturn
        end local 4 // javax.net.ssl.SSLEngine engine
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/vertx/core/net/impl/SSLHelper;
            0    3     1   vertx  Lio/vertx/core/impl/VertxInternal;
            0    3     2    host  Ljava/lang/String;
            0    3     3    port  I
            1    3     4  engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
       Name  Flags
      vertx  
      host   
      port   

  public javax.net.ssl.SSLEngine createEngine(io.vertx.core.impl.VertxInternal);
    descriptor: (Lio/vertx/core/impl/VertxInternal;)Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 534
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            getstatic io.netty.buffer.ByteBufAllocator.DEFAULT:Lio/netty/buffer/ByteBufAllocator;
            invokevirtual io.netty.handler.ssl.SslContext.newEngine:(Lio/netty/buffer/ByteBufAllocator;)Ljavax/net/ssl/SSLEngine;
            astore 2 /* engine */
        start local 2 // javax.net.ssl.SSLEngine engine
         1: .line 535
            aload 0 /* this */
            aload 2 /* engine */
            aconst_null
            invokevirtual io.vertx.core.net.impl.SSLHelper.configureEngine:(Ljavax/net/ssl/SSLEngine;Ljava/lang/String;)V
         2: .line 536
            aload 2 /* engine */
            areturn
        end local 2 // javax.net.ssl.SSLEngine engine
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/vertx/core/net/impl/SSLHelper;
            0    3     1   vertx  Lio/vertx/core/impl/VertxInternal;
            1    3     2  engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
       Name  Flags
      vertx  

  static int[] $SWITCH_TABLE$io$vertx$core$http$ClientAuth();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 56
            getstatic io.vertx.core.net.impl.SSLHelper.$SWITCH_TABLE$io$vertx$core$http$ClientAuth:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.core.http.ClientAuth.values:()[Lio/vertx/core/http/ClientAuth;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.core.http.ClientAuth.NONE:Lio/vertx/core/http/ClientAuth;
            invokevirtual io.vertx.core.http.ClientAuth.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.core.http.ClientAuth.REQUEST:Lio/vertx/core/http/ClientAuth;
            invokevirtual io.vertx.core.http.ClientAuth.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.core.http.ClientAuth.REQUIRED:Lio/vertx/core/http/ClientAuth;
            invokevirtual io.vertx.core.http.ClientAuth.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic io.vertx.core.net.impl.SSLHelper.$SWITCH_TABLE$io$vertx$core$http$ClientAuth:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError

  private static java.lang.String lambda$1(io.vertx.core.impl.VertxInternal, java.lang.String);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String path
         0: .line 336
            aload 0
            aload 1 /* path */
            invokeinterface io.vertx.core.impl.VertxInternal.resolveFile:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  path  Ljava/lang/String;

  private io.netty.handler.ssl.SslContext lambda$3(io.vertx.core.impl.VertxInternal, java.lang.String);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 2 // java.lang.String serverName
         0: .line 409
            aload 0 /* this */
            aload 1
            aload 2 /* serverName */
            invokevirtual io.vertx.core.net.impl.SSLHelper.getContext:(Lio/vertx/core/impl/VertxInternal;Ljava/lang/String;)Lio/netty/handler/ssl/SslContext;
            astore 3 /* ctx */
        start local 3 // io.netty.handler.ssl.SslContext ctx
         1: .line 410
            aload 3 /* ctx */
            ifnull 3
         2: .line 411
            new io.vertx.core.net.impl.SSLHelper$3
            dup
            aload 0 /* this */
            aload 3 /* ctx */
            aload 2 /* serverName */
            invokespecial io.vertx.core.net.impl.SSLHelper$3.<init>:(Lio/vertx/core/net/impl/SSLHelper;Lio/netty/handler/ssl/SslContext;Ljava/lang/String;)V
            astore 3 /* ctx */
         3: .line 418
      StackMap locals: io.netty.handler.ssl.SslContext
      StackMap stack:
            aload 3 /* ctx */
            areturn
        end local 3 // io.netty.handler.ssl.SslContext ctx
        end local 2 // java.lang.String serverName
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/core/net/impl/SSLHelper;
            0    4     2  serverName  Ljava/lang/String;
            1    4     3         ctx  Lio/netty/handler/ssl/SslContext;

  private io.netty.handler.ssl.SslContext lambda$4(io.vertx.core.impl.VertxInternal, javax.net.ssl.X509KeyManager, javax.net.ssl.TrustManagerFactory, java.security.cert.Certificate);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Ljavax/net/ssl/X509KeyManager;Ljavax/net/ssl/TrustManagerFactory;Ljava/security/cert/Certificate;)Lio/netty/handler/ssl/SslContext;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.vertx.core.net.impl.SSLHelper this
        start local 4 // java.security.cert.Certificate s
         0: .line 489
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            invokevirtual io.vertx.core.net.impl.SSLHelper.createContext:(Lio/vertx/core/impl/VertxInternal;Ljavax/net/ssl/X509KeyManager;Ljavax/net/ssl/TrustManagerFactory;)Lio/netty/handler/ssl/SslContext;
            areturn
        end local 4 // java.security.cert.Certificate s
        end local 0 // io.vertx.core.net.impl.SSLHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/net/impl/SSLHelper;
            0    1     4     s  Ljava/security/cert/Certificate;
}
SourceFile: "SSLHelper.java"
NestMembers:
  io.vertx.core.net.impl.SSLHelper$1  io.vertx.core.net.impl.SSLHelper$2  io.vertx.core.net.impl.SSLHelper$3
InnerClasses:
  public final Protocol = io.netty.handler.ssl.ApplicationProtocolConfig$Protocol of io.netty.handler.ssl.ApplicationProtocolConfig
  public final SelectedListenerFailureBehavior = io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior of io.netty.handler.ssl.ApplicationProtocolConfig
  public final SelectorFailureBehavior = io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior of io.netty.handler.ssl.ApplicationProtocolConfig
  io.vertx.core.net.impl.SSLHelper$1
  io.vertx.core.net.impl.SSLHelper$2
  io.vertx.core.net.impl.SSLHelper$3
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles