public class org.apache.http.conn.ssl.SSLConnectionSocketFactory implements org.apache.http.conn.socket.LayeredConnectionSocketFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.http.conn.ssl.SSLConnectionSocketFactory
  super_class: java.lang.Object
{
  public static final java.lang.String TLS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "TLS"

  public static final java.lang.String SSL;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SSL"

  public static final java.lang.String SSLV2;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SSLv2"

  public static final org.apache.http.conn.ssl.X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER;
    descriptor: Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final org.apache.http.conn.ssl.X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
    descriptor: Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final org.apache.http.conn.ssl.X509HostnameVerifier STRICT_HOSTNAME_VERIFIER;
    descriptor: Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private final org.apache.commons.logging.Log log;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 150
            getstatic org.apache.http.conn.ssl.AllowAllHostnameVerifier.INSTANCE:Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier;
         1: .line 149
            putstatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
         2: .line 157
            getstatic org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.INSTANCE:Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;
         3: .line 156
            putstatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
         4: .line 164
            getstatic org.apache.http.conn.ssl.StrictHostnameVerifier.INSTANCE:Lorg/apache/http/conn/ssl/StrictHostnameVerifier;
         5: .line 163
            putstatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
         6: .line 164
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier();
    descriptor: ()Ljavax/net/ssl/HostnameVerifier;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 172
            new org.apache.http.conn.ssl.DefaultHostnameVerifier
            dup
            invokestatic org.apache.http.conn.util.PublicSuffixMatcherLoader.getDefault:()Lorg/apache/http/conn/util/PublicSuffixMatcher;
            invokespecial org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>:(Lorg/apache/http/conn/util/PublicSuffixMatcher;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.http.conn.ssl.SSLConnectionSocketFactory getSocketFactory();
    descriptor: ()Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 183
            new org.apache.http.conn.ssl.SSLConnectionSocketFactory
            dup
            invokestatic org.apache.http.ssl.SSLContexts.createDefault:()Ljavax/net/ssl/SSLContext;
            invokestatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.getDefaultHostnameVerifier:()Ljavax/net/ssl/HostnameVerifier;
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws org.apache.http.conn.ssl.SSLInitializationException

  private static java.lang.String[] split(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 187
            aload 0 /* s */
            invokestatic org.apache.http.util.TextUtils.isBlank:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 188
            aconst_null
            areturn
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            ldc " *, *"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     final

  public static org.apache.http.conn.ssl.SSLConnectionSocketFactory getSystemSocketFactory();
    descriptor: ()Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 202
            new org.apache.http.conn.ssl.SSLConnectionSocketFactory
            dup
         1: .line 203
            invokestatic javax.net.ssl.SSLSocketFactory.getDefault:()Ljavax/net/SocketFactory;
            checkcast javax.net.ssl.SSLSocketFactory
         2: .line 204
            ldc "https.protocols"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.split:(Ljava/lang/String;)[Ljava/lang/String;
         3: .line 205
            ldc "https.cipherSuites"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.split:(Ljava/lang/String;)[Ljava/lang/String;
         4: .line 206
            invokestatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.getDefaultHostnameVerifier:()Ljavax/net/ssl/HostnameVerifier;
         5: .line 202
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws org.apache.http.conn.ssl.SSLInitializationException

  public void <init>(javax.net.ssl.SSLContext);
    descriptor: (Ljavax/net/ssl/SSLContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLContext sslContext
         0: .line 215
            aload 0 /* this */
            aload 1 /* sslContext */
            invokestatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.getDefaultHostnameVerifier:()Ljavax/net/ssl/HostnameVerifier;
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V
         1: .line 216
            return
        end local 1 // javax.net.ssl.SSLContext sslContext
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    2     1  sslContext  Ljavax/net/ssl/SSLContext;
    MethodParameters:
            Name  Flags
      sslContext  final

  public void <init>(javax.net.ssl.SSLContext, org.apache.http.conn.ssl.X509HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLContext;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLContext sslContext
        start local 2 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
         0: .line 225
            aload 0 /* this */
            aload 1 /* sslContext */
            ldc "SSL context"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.net.ssl.SSLContext
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
         1: .line 226
            aconst_null
            aconst_null
            aload 2 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
         2: .line 227
            return
        end local 2 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
        end local 1 // javax.net.ssl.SSLContext sslContext
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    3     1        sslContext  Ljavax/net/ssl/SSLContext;
            0    3     2  hostnameVerifier  Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                  Name  Flags
      sslContext        final
      hostnameVerifier  final

  public void <init>(javax.net.ssl.SSLContext, java.lang.String[], java.lang.String[], org.apache.http.conn.ssl.X509HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLContext;[Ljava/lang/String;[Ljava/lang/String;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLContext sslContext
        start local 2 // java.lang.String[] supportedProtocols
        start local 3 // java.lang.String[] supportedCipherSuites
        start local 4 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
         0: .line 239
            aload 0 /* this */
            aload 1 /* sslContext */
            ldc "SSL context"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.net.ssl.SSLContext
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
         1: .line 240
            aload 2 /* supportedProtocols */
            aload 3 /* supportedCipherSuites */
            aload 4 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
         2: .line 241
            return
        end local 4 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
        end local 3 // java.lang.String[] supportedCipherSuites
        end local 2 // java.lang.String[] supportedProtocols
        end local 1 // javax.net.ssl.SSLContext sslContext
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    3     1             sslContext  Ljavax/net/ssl/SSLContext;
            0    3     2     supportedProtocols  [Ljava/lang/String;
            0    3     3  supportedCipherSuites  [Ljava/lang/String;
            0    3     4       hostnameVerifier  Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                       Name  Flags
      sslContext             final
      supportedProtocols     final
      supportedCipherSuites  final
      hostnameVerifier       final

  public void <init>(javax.net.ssl.SSLSocketFactory, org.apache.http.conn.ssl.X509HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLSocketFactory;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        start local 2 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
         0: .line 251
            aload 0 /* this */
            aload 1 /* socketfactory */
            aconst_null
            aconst_null
            aload 2 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
         1: .line 252
            return
        end local 2 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
        end local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    2     1     socketfactory  Ljavax/net/ssl/SSLSocketFactory;
            0    2     2  hostnameVerifier  Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                  Name  Flags
      socketfactory     final
      hostnameVerifier  final

  public void <init>(javax.net.ssl.SSLSocketFactory, java.lang.String[], java.lang.String[], org.apache.http.conn.ssl.X509HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        start local 2 // java.lang.String[] supportedProtocols
        start local 3 // java.lang.String[] supportedCipherSuites
        start local 4 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
         0: .line 264
            aload 0 /* this */
            aload 1 /* socketfactory */
            aload 2 /* supportedProtocols */
            aload 3 /* supportedCipherSuites */
            aload 4 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
         1: .line 265
            return
        end local 4 // org.apache.http.conn.ssl.X509HostnameVerifier hostnameVerifier
        end local 3 // java.lang.String[] supportedCipherSuites
        end local 2 // java.lang.String[] supportedProtocols
        end local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    2     1          socketfactory  Ljavax/net/ssl/SSLSocketFactory;
            0    2     2     supportedProtocols  [Ljava/lang/String;
            0    2     3  supportedCipherSuites  [Ljava/lang/String;
            0    2     4       hostnameVerifier  Lorg/apache/http/conn/ssl/X509HostnameVerifier;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                       Name  Flags
      socketfactory          final
      supportedProtocols     final
      supportedCipherSuites  final
      hostnameVerifier       final

  public void <init>(javax.net.ssl.SSLContext, javax.net.ssl.HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLContext sslContext
        start local 2 // javax.net.ssl.HostnameVerifier hostnameVerifier
         0: .line 272
            aload 0 /* this */
            aload 1 /* sslContext */
            ldc "SSL context"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.net.ssl.SSLContext
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
         1: .line 273
            aconst_null
            aconst_null
            aload 2 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
         2: .line 274
            return
        end local 2 // javax.net.ssl.HostnameVerifier hostnameVerifier
        end local 1 // javax.net.ssl.SSLContext sslContext
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    3     1        sslContext  Ljavax/net/ssl/SSLContext;
            0    3     2  hostnameVerifier  Ljavax/net/ssl/HostnameVerifier;
    MethodParameters:
                  Name  Flags
      sslContext        final
      hostnameVerifier  final

  public void <init>(javax.net.ssl.SSLContext, java.lang.String[], java.lang.String[], javax.net.ssl.HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLContext;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLContext sslContext
        start local 2 // java.lang.String[] supportedProtocols
        start local 3 // java.lang.String[] supportedCipherSuites
        start local 4 // javax.net.ssl.HostnameVerifier hostnameVerifier
         0: .line 284
            aload 0 /* this */
            aload 1 /* sslContext */
            ldc "SSL context"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.net.ssl.SSLContext
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
         1: .line 285
            aload 2 /* supportedProtocols */
            aload 3 /* supportedCipherSuites */
            aload 4 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
         2: .line 286
            return
        end local 4 // javax.net.ssl.HostnameVerifier hostnameVerifier
        end local 3 // java.lang.String[] supportedCipherSuites
        end local 2 // java.lang.String[] supportedProtocols
        end local 1 // javax.net.ssl.SSLContext sslContext
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    3     1             sslContext  Ljavax/net/ssl/SSLContext;
            0    3     2     supportedProtocols  [Ljava/lang/String;
            0    3     3  supportedCipherSuites  [Ljava/lang/String;
            0    3     4       hostnameVerifier  Ljavax/net/ssl/HostnameVerifier;
    MethodParameters:
                       Name  Flags
      sslContext             final
      supportedProtocols     final
      supportedCipherSuites  final
      hostnameVerifier       final

  public void <init>(javax.net.ssl.SSLSocketFactory, javax.net.ssl.HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        start local 2 // javax.net.ssl.HostnameVerifier hostnameVerifier
         0: .line 294
            aload 0 /* this */
            aload 1 /* socketfactory */
            aconst_null
            aconst_null
            aload 2 /* hostnameVerifier */
            invokespecial org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>:(Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
         1: .line 295
            return
        end local 2 // javax.net.ssl.HostnameVerifier hostnameVerifier
        end local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    2     1     socketfactory  Ljavax/net/ssl/SSLSocketFactory;
            0    2     2  hostnameVerifier  Ljavax/net/ssl/HostnameVerifier;
    MethodParameters:
                  Name  Flags
      socketfactory     final
      hostnameVerifier  final

  public void <init>(javax.net.ssl.SSLSocketFactory, java.lang.String[], java.lang.String[], javax.net.ssl.HostnameVerifier);
    descriptor: (Ljavax/net/ssl/SSLSocketFactory;[Ljava/lang/String;[Ljava/lang/String;Ljavax/net/ssl/HostnameVerifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        start local 2 // java.lang.String[] supportedProtocols
        start local 3 // java.lang.String[] supportedCipherSuites
        start local 4 // javax.net.ssl.HostnameVerifier hostnameVerifier
         0: .line 300
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 166
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
         2: .line 305
            aload 0 /* this */
            aload 1 /* socketfactory */
            ldc "SSL socket factory"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.net.ssl.SSLSocketFactory
            putfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.socketfactory:Ljavax/net/ssl/SSLSocketFactory;
         3: .line 306
            aload 0 /* this */
            aload 2 /* supportedProtocols */
            putfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.supportedProtocols:[Ljava/lang/String;
         4: .line 307
            aload 0 /* this */
            aload 3 /* supportedCipherSuites */
            putfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.supportedCipherSuites:[Ljava/lang/String;
         5: .line 308
            aload 0 /* this */
            aload 4 /* hostnameVerifier */
            ifnull 6
            aload 4 /* hostnameVerifier */
            goto 7
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocketFactory java.lang.String[] java.lang.String[] javax.net.ssl.HostnameVerifier
      StackMap stack: org.apache.http.conn.ssl.SSLConnectionSocketFactory
         6: invokestatic org.apache.http.conn.ssl.SSLConnectionSocketFactory.getDefaultHostnameVerifier:()Ljavax/net/ssl/HostnameVerifier;
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocketFactory java.lang.String[] java.lang.String[] javax.net.ssl.HostnameVerifier
      StackMap stack: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.HostnameVerifier
         7: putfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
         8: .line 309
            return
        end local 4 // javax.net.ssl.HostnameVerifier hostnameVerifier
        end local 3 // java.lang.String[] supportedCipherSuites
        end local 2 // java.lang.String[] supportedProtocols
        end local 1 // javax.net.ssl.SSLSocketFactory socketfactory
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    9     1          socketfactory  Ljavax/net/ssl/SSLSocketFactory;
            0    9     2     supportedProtocols  [Ljava/lang/String;
            0    9     3  supportedCipherSuites  [Ljava/lang/String;
            0    9     4       hostnameVerifier  Ljavax/net/ssl/HostnameVerifier;
    MethodParameters:
                       Name  Flags
      socketfactory          final
      supportedProtocols     final
      supportedCipherSuites  final
      hostnameVerifier       final

  protected void prepareSocket(javax.net.ssl.SSLSocket);
    descriptor: (Ljavax/net/ssl/SSLSocket;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLSocket socket
         0: .line 320
            return
        end local 1 // javax.net.ssl.SSLSocket socket
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    1     1  socket  Ljavax/net/ssl/SSLSocket;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      socket  final

  public java.net.Socket createSocket(org.apache.http.protocol.HttpContext);
    descriptor: (Lorg/apache/http/protocol/HttpContext;)Ljava/net/Socket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // org.apache.http.protocol.HttpContext context
         0: .line 324
            invokestatic javax.net.SocketFactory.getDefault:()Ljavax/net/SocketFactory;
            invokevirtual javax.net.SocketFactory.createSocket:()Ljava/net/Socket;
            areturn
        end local 1 // org.apache.http.protocol.HttpContext context
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0    1     1  context  Lorg/apache/http/protocol/HttpContext;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  final

  public java.net.Socket connectSocket(int, java.net.Socket, org.apache.http.HttpHost, java.net.InetSocketAddress, java.net.InetSocketAddress, org.apache.http.protocol.HttpContext);
    descriptor: (ILjava/net/Socket;Lorg/apache/http/HttpHost;Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;Lorg/apache/http/protocol/HttpContext;)Ljava/net/Socket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=7
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // int connectTimeout
        start local 2 // java.net.Socket socket
        start local 3 // org.apache.http.HttpHost host
        start local 4 // java.net.InetSocketAddress remoteAddress
        start local 5 // java.net.InetSocketAddress localAddress
        start local 6 // org.apache.http.protocol.HttpContext context
         0: .line 335
            aload 3 /* host */
            ldc "HTTP host"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 336
            aload 4 /* remoteAddress */
            ldc "Remote address"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 337
            aload 2 /* socket */
            ifnull 3
            aload 2 /* socket */
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            aload 6 /* context */
            invokevirtual org.apache.http.conn.ssl.SSLConnectionSocketFactory.createSocket:(Lorg/apache/http/protocol/HttpContext;)Ljava/net/Socket;
      StackMap locals:
      StackMap stack: java.net.Socket
         4: astore 7 /* sock */
        start local 7 // java.net.Socket sock
         5: .line 338
            aload 5 /* localAddress */
            ifnull 7
         6: .line 339
            aload 7 /* sock */
            aload 5 /* localAddress */
            invokevirtual java.net.Socket.bind:(Ljava/net/SocketAddress;)V
         7: .line 342
      StackMap locals: java.net.Socket
      StackMap stack:
            iload 1 /* connectTimeout */
            ifle 9
            aload 7 /* sock */
            invokevirtual java.net.Socket.getSoTimeout:()I
            ifne 9
         8: .line 343
            aload 7 /* sock */
            iload 1 /* connectTimeout */
            invokevirtual java.net.Socket.setSoTimeout:(I)V
         9: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 11
        10: .line 346
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Connecting socket to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* remoteAddress */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with timeout "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* connectTimeout */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        11: .line 348
      StackMap locals:
      StackMap stack:
            aload 7 /* sock */
            aload 4 /* remoteAddress */
            iload 1 /* connectTimeout */
            invokevirtual java.net.Socket.connect:(Ljava/net/SocketAddress;I)V
        12: .line 349
            goto 18
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 8 /* ex */
        start local 8 // java.io.IOException ex
        14: .line 351
            aload 7 /* sock */
            invokevirtual java.net.Socket.close:()V
        15: .line 352
            goto 17
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory int java.net.Socket org.apache.http.HttpHost java.net.InetSocketAddress java.net.InetSocketAddress org.apache.http.protocol.HttpContext java.net.Socket java.io.IOException
      StackMap stack: java.io.IOException
        16: pop
        17: .line 354
      StackMap locals:
      StackMap stack:
            aload 8 /* ex */
            athrow
        end local 8 // java.io.IOException ex
        18: .line 357
      StackMap locals:
      StackMap stack:
            aload 7 /* sock */
            instanceof javax.net.ssl.SSLSocket
            ifeq 24
        19: .line 358
            aload 7 /* sock */
            checkcast javax.net.ssl.SSLSocket
            astore 8 /* sslsock */
        start local 8 // javax.net.ssl.SSLSocket sslsock
        20: .line 359
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            ldc "Starting handshake"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        21: .line 360
            aload 8 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
        22: .line 361
            aload 0 /* this */
            aload 8 /* sslsock */
            aload 3 /* host */
            invokevirtual org.apache.http.HttpHost.getHostName:()Ljava/lang/String;
            invokevirtual org.apache.http.conn.ssl.SSLConnectionSocketFactory.verifyHostname:(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;)V
        23: .line 362
            aload 7 /* sock */
            areturn
        end local 8 // javax.net.ssl.SSLSocket sslsock
        24: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* sock */
            aload 3 /* host */
            invokevirtual org.apache.http.HttpHost.getHostName:()Ljava/lang/String;
            aload 4 /* remoteAddress */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            aload 6 /* context */
            invokevirtual org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket:(Ljava/net/Socket;Ljava/lang/String;ILorg/apache/http/protocol/HttpContext;)Ljava/net/Socket;
            areturn
        end local 7 // java.net.Socket sock
        end local 6 // org.apache.http.protocol.HttpContext context
        end local 5 // java.net.InetSocketAddress localAddress
        end local 4 // java.net.InetSocketAddress remoteAddress
        end local 3 // org.apache.http.HttpHost host
        end local 2 // java.net.Socket socket
        end local 1 // int connectTimeout
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0   25     1  connectTimeout  I
            0   25     2          socket  Ljava/net/Socket;
            0   25     3            host  Lorg/apache/http/HttpHost;
            0   25     4   remoteAddress  Ljava/net/InetSocketAddress;
            0   25     5    localAddress  Ljava/net/InetSocketAddress;
            0   25     6         context  Lorg/apache/http/protocol/HttpContext;
            5   25     7            sock  Ljava/net/Socket;
           14   18     8              ex  Ljava/io/IOException;
           20   24     8         sslsock  Ljavax/net/ssl/SSLSocket;
      Exception table:
        from    to  target  type
           7    12      13  Class java.io.IOException
          14    15      16  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      connectTimeout  final
      socket          final
      host            final
      remoteAddress   final
      localAddress    final
      context         final

  public java.net.Socket createLayeredSocket(java.net.Socket, java.lang.String, int, org.apache.http.protocol.HttpContext);
    descriptor: (Ljava/net/Socket;Ljava/lang/String;ILorg/apache/http/protocol/HttpContext;)Ljava/net/Socket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // java.net.Socket socket
        start local 2 // java.lang.String target
        start local 3 // int port
        start local 4 // org.apache.http.protocol.HttpContext context
         0: .line 373
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.socketfactory:Ljavax/net/ssl/SSLSocketFactory;
         1: .line 374
            aload 1 /* socket */
         2: .line 375
            aload 2 /* target */
         3: .line 376
            iload 3 /* port */
         4: .line 377
            iconst_1
         5: .line 373
            invokevirtual javax.net.ssl.SSLSocketFactory.createSocket:(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
            checkcast javax.net.ssl.SSLSocket
            astore 5 /* sslsock */
        start local 5 // javax.net.ssl.SSLSocket sslsock
         6: .line 378
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.supportedProtocols:[Ljava/lang/String;
            ifnull 9
         7: .line 379
            aload 5 /* sslsock */
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.supportedProtocols:[Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLSocket.setEnabledProtocols:([Ljava/lang/String;)V
         8: .line 380
            goto 19
         9: .line 382
      StackMap locals: javax.net.ssl.SSLSocket
      StackMap stack:
            aload 5 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getEnabledProtocols:()[Ljava/lang/String;
            astore 6 /* allProtocols */
        start local 6 // java.lang.String[] allProtocols
        10: .line 383
            new java.util.ArrayList
            dup
            aload 6 /* allProtocols */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* enabledProtocols */
        start local 7 // java.util.List enabledProtocols
        11: .line 384
            aload 6 /* allProtocols */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 16
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory java.net.Socket java.lang.String int org.apache.http.protocol.HttpContext javax.net.ssl.SSLSocket java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
        12: aload 11
            iload 9
            aaload
            astore 8 /* protocol */
        start local 8 // java.lang.String protocol
        13: .line 385
            aload 8 /* protocol */
            ldc "SSL"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 15
        14: .line 386
            aload 7 /* enabledProtocols */
            aload 8 /* protocol */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String protocol
        15: .line 384
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        16: iload 9
            iload 10
            if_icmplt 12
        17: .line 389
            aload 7 /* enabledProtocols */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 19
        18: .line 390
            aload 5 /* sslsock */
            aload 7 /* enabledProtocols */
            aload 7 /* enabledProtocols */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokevirtual javax.net.ssl.SSLSocket.setEnabledProtocols:([Ljava/lang/String;)V
        end local 7 // java.util.List enabledProtocols
        end local 6 // java.lang.String[] allProtocols
        19: .line 393
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory java.net.Socket java.lang.String int org.apache.http.protocol.HttpContext javax.net.ssl.SSLSocket
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.supportedCipherSuites:[Ljava/lang/String;
            ifnull 21
        20: .line 394
            aload 5 /* sslsock */
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.supportedCipherSuites:[Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLSocket.setEnabledCipherSuites:([Ljava/lang/String;)V
        21: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 24
        22: .line 398
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Enabled protocols: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getEnabledProtocols:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        23: .line 399
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Enabled cipher suites:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getEnabledCipherSuites:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        24: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* sslsock */
            invokevirtual org.apache.http.conn.ssl.SSLConnectionSocketFactory.prepareSocket:(Ljavax/net/ssl/SSLSocket;)V
        25: .line 403
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            ldc "Starting handshake"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        26: .line 404
            aload 5 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
        27: .line 405
            aload 0 /* this */
            aload 5 /* sslsock */
            aload 2 /* target */
            invokevirtual org.apache.http.conn.ssl.SSLConnectionSocketFactory.verifyHostname:(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;)V
        28: .line 406
            aload 5 /* sslsock */
            areturn
        end local 5 // javax.net.ssl.SSLSocket sslsock
        end local 4 // org.apache.http.protocol.HttpContext context
        end local 3 // int port
        end local 2 // java.lang.String target
        end local 1 // java.net.Socket socket
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   29     0              this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0   29     1            socket  Ljava/net/Socket;
            0   29     2            target  Ljava/lang/String;
            0   29     3              port  I
            0   29     4           context  Lorg/apache/http/protocol/HttpContext;
            6   29     5           sslsock  Ljavax/net/ssl/SSLSocket;
           10   19     6      allProtocols  [Ljava/lang/String;
           11   19     7  enabledProtocols  Ljava/util/List<Ljava/lang/String;>;
           13   15     8          protocol  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      socket   final
      target   final
      port     final
      context  final

  private void verifyHostname(javax.net.ssl.SSLSocket, java.lang.String);
    descriptor: (Ljavax/net/ssl/SSLSocket;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
        start local 1 // javax.net.ssl.SSLSocket sslsock
        start local 2 // java.lang.String hostname
         0: .line 411
            aload 1 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
            astore 3 /* session */
        start local 3 // javax.net.ssl.SSLSession session
         1: .line 412
            aload 3 /* session */
            ifnonnull 8
         2: .line 416
            aload 1 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getInputStream:()Ljava/io/InputStream;
            astore 4 /* in */
        start local 4 // java.io.InputStream in
         3: .line 417
            aload 4 /* in */
            invokevirtual java.io.InputStream.available:()I
            pop
         4: .line 420
            aload 1 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
            astore 3 /* session */
         5: .line 421
            aload 3 /* session */
            ifnonnull 8
         6: .line 424
            aload 1 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
         7: .line 425
            aload 1 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
            astore 3 /* session */
        end local 4 // java.io.InputStream in
         8: .line 428
      StackMap locals: javax.net.ssl.SSLSession
      StackMap stack:
            aload 3 /* session */
            ifnonnull 10
         9: .line 429
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "SSL session not available"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 40
        11: .line 433
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            ldc "Secure session established"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        12: .line 434
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " negotiated protocol: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* session */
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        13: .line 435
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " negotiated cipher suite: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* session */
            invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        14: .line 439
            aload 3 /* session */
            invokeinterface javax.net.ssl.SSLSession.getPeerCertificates:()[Ljava/security/cert/Certificate;
            astore 4 /* certs */
        start local 4 // java.security.cert.Certificate[] certs
        15: .line 440
            aload 4 /* certs */
            iconst_0
            aaload
            checkcast java.security.cert.X509Certificate
            astore 5 /* x509 */
        start local 5 // java.security.cert.X509Certificate x509
        16: .line 441
            aload 5 /* x509 */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 6 /* peer */
        start local 6 // javax.security.auth.x500.X500Principal peer
        17: .line 443
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " peer principal: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* peer */
            invokevirtual javax.security.auth.x500.X500Principal.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        18: .line 444
            aload 5 /* x509 */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 7 /* altNames1 */
        start local 7 // java.util.Collection altNames1
        19: .line 445
            aload 7 /* altNames1 */
            ifnull 27
        20: .line 446
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* altNames */
        start local 8 // java.util.List altNames
        21: .line 447
            aload 7 /* altNames1 */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 25
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocket java.lang.String javax.net.ssl.SSLSession java.security.cert.Certificate[] java.security.cert.X509Certificate javax.security.auth.x500.X500Principal java.util.Collection java.util.List top java.util.Iterator
      StackMap stack:
        22: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 9 /* aC */
        start local 9 // java.util.List aC
        23: .line 448
            aload 9 /* aC */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 25
        24: .line 449
            aload 8 /* altNames */
            aload 9 /* aC */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.util.List aC
        25: .line 447
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        26: .line 452
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " peer alternative names: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* altNames */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 8 // java.util.List altNames
        27: .line 455
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocket java.lang.String javax.net.ssl.SSLSession java.security.cert.Certificate[] java.security.cert.X509Certificate javax.security.auth.x500.X500Principal java.util.Collection
      StackMap stack:
            aload 5 /* x509 */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 8 /* issuer */
        start local 8 // javax.security.auth.x500.X500Principal issuer
        28: .line 456
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " issuer principal: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* issuer */
            invokevirtual javax.security.auth.x500.X500Principal.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        29: .line 457
            aload 5 /* x509 */
            invokevirtual java.security.cert.X509Certificate.getIssuerAlternativeNames:()Ljava/util/Collection;
            astore 9 /* altNames2 */
        start local 9 // java.util.Collection altNames2
        30: .line 458
            aload 9 /* altNames2 */
            ifnull 40
        31: .line 459
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* altNames */
        start local 10 // java.util.List altNames
        32: .line 460
            aload 9 /* altNames2 */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12
            goto 36
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocket java.lang.String javax.net.ssl.SSLSession java.security.cert.Certificate[] java.security.cert.X509Certificate javax.security.auth.x500.X500Principal java.util.Collection javax.security.auth.x500.X500Principal java.util.Collection java.util.List top java.util.Iterator
      StackMap stack:
        33: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* aC */
        start local 11 // java.util.List aC
        34: .line 461
            aload 11 /* aC */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 36
        35: .line 462
            aload 10 /* altNames */
            aload 11 /* aC */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.util.List aC
        36: .line 460
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        37: .line 465
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.log:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " issuer alternative names: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* altNames */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 10 // java.util.List altNames
        end local 9 // java.util.Collection altNames2
        end local 8 // javax.security.auth.x500.X500Principal issuer
        end local 7 // java.util.Collection altNames1
        end local 6 // javax.security.auth.x500.X500Principal peer
        end local 5 // java.security.cert.X509Certificate x509
        end local 4 // java.security.cert.Certificate[] certs
        38: .line 467
            goto 40
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocket java.lang.String javax.net.ssl.SSLSession
      StackMap stack: java.lang.Exception
        39: pop
        40: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.conn.ssl.SSLConnectionSocketFactory.hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
            aload 2 /* hostname */
            aload 3 /* session */
            invokeinterface javax.net.ssl.HostnameVerifier.verify:(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
            ifne 52
        41: .line 472
            aload 3 /* session */
            invokeinterface javax.net.ssl.SSLSession.getPeerCertificates:()[Ljava/security/cert/Certificate;
            astore 4 /* certs */
        start local 4 // java.security.cert.Certificate[] certs
        42: .line 473
            aload 4 /* certs */
            iconst_0
            aaload
            checkcast java.security.cert.X509Certificate
            astore 5 /* x509 */
        start local 5 // java.security.cert.X509Certificate x509
        43: .line 474
            aload 5 /* x509 */
            invokestatic org.apache.http.conn.ssl.DefaultHostnameVerifier.getSubjectAltNames:(Ljava/security/cert/X509Certificate;)Ljava/util/List;
            astore 6 /* subjectAlts */
        start local 6 // java.util.List subjectAlts
        44: .line 475
            new javax.net.ssl.SSLPeerUnverifiedException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Certificate for <"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* hostname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "> doesn't match any "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        45: .line 476
            ldc "of the subject alternative names: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* subjectAlts */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 475
            invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.util.List subjectAlts
        end local 5 // java.security.cert.X509Certificate x509
        end local 4 // java.security.cert.Certificate[] certs
        end local 3 // javax.net.ssl.SSLSession session
        47: .line 479
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocket java.lang.String
      StackMap stack: java.io.IOException
            astore 3 /* iox */
        start local 3 // java.io.IOException iox
        48: .line 481
            aload 1 /* sslsock */
            invokevirtual javax.net.ssl.SSLSocket.close:()V
        49: goto 51
      StackMap locals: org.apache.http.conn.ssl.SSLConnectionSocketFactory javax.net.ssl.SSLSocket java.lang.String java.io.IOException
      StackMap stack: java.lang.Exception
        50: pop
        51: .line 482
      StackMap locals:
      StackMap stack:
            aload 3 /* iox */
            athrow
        end local 3 // java.io.IOException iox
        52: .line 484
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String hostname
        end local 1 // javax.net.ssl.SSLSocket sslsock
        end local 0 // org.apache.http.conn.ssl.SSLConnectionSocketFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   53     0         this  Lorg/apache/http/conn/ssl/SSLConnectionSocketFactory;
            0   53     1      sslsock  Ljavax/net/ssl/SSLSocket;
            0   53     2     hostname  Ljava/lang/String;
            1   47     3      session  Ljavax/net/ssl/SSLSession;
            3    8     4           in  Ljava/io/InputStream;
           15   38     4        certs  [Ljava/security/cert/Certificate;
           16   38     5         x509  Ljava/security/cert/X509Certificate;
           17   38     6         peer  Ljavax/security/auth/x500/X500Principal;
           19   38     7    altNames1  Ljava/util/Collection<Ljava/util/List<*>;>;
           21   27     8     altNames  Ljava/util/List<Ljava/lang/String;>;
           23   25     9           aC  Ljava/util/List<*>;
           28   38     8       issuer  Ljavax/security/auth/x500/X500Principal;
           30   38     9    altNames2  Ljava/util/Collection<Ljava/util/List<*>;>;
           32   38    10     altNames  Ljava/util/List<Ljava/lang/String;>;
           34   36    11           aC  Ljava/util/List<*>;
           42   47     4        certs  [Ljava/security/cert/Certificate;
           43   47     5         x509  Ljava/security/cert/X509Certificate;
           44   47     6  subjectAlts  Ljava/util/List<Lorg/apache/http/conn/ssl/SubjectName;>;
           48   52     3          iox  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          14    38      39  Class java.lang.Exception
           0    47      47  Class java.io.IOException
          48    49      50  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      sslsock   final
      hostname  final
}
SourceFile: "SSLConnectionSocketFactory.java"
    RuntimeInvisibleAnnotations: 
      org.apache.http.annotation.Contract(threading = org.apache.http.annotation.ThreadingBehavior.SAFE:Lorg/apache/http/annotation/ThreadingBehavior;)