public class org.apache.http.impl.auth.NTLMScheme extends org.apache.http.impl.auth.AuthSchemeBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.http.impl.auth.NTLMScheme
  super_class: org.apache.http.impl.auth.AuthSchemeBase
{
  private final org.apache.http.impl.auth.NTLMEngine engine;
    descriptor: Lorg/apache/http/impl/auth/NTLMEngine;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.http.impl.auth.NTLMScheme$State state;
    descriptor: Lorg/apache/http/impl/auth/NTLMScheme$State;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>(org.apache.http.impl.auth.NTLMEngine);
    descriptor: (Lorg/apache/http/impl/auth/NTLMEngine;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
        start local 1 // org.apache.http.impl.auth.NTLMEngine engine
         0: .line 64
            aload 0 /* this */
            invokespecial org.apache.http.impl.auth.AuthSchemeBase.<init>:()V
         1: .line 65
            aload 1 /* engine */
            ldc "NTLM engine"
            invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 66
            aload 0 /* this */
            aload 1 /* engine */
            putfield org.apache.http.impl.auth.NTLMScheme.engine:Lorg/apache/http/impl/auth/NTLMEngine;
         3: .line 67
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.UNINITIATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
         4: .line 68
            aload 0 /* this */
            aconst_null
            putfield org.apache.http.impl.auth.NTLMScheme.challenge:Ljava/lang/String;
         5: .line 69
            return
        end local 1 // org.apache.http.impl.auth.NTLMEngine engine
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/http/impl/auth/NTLMScheme;
            0    6     1  engine  Lorg/apache/http/impl/auth/NTLMEngine;
    MethodParameters:
        Name  Flags
      engine  final

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
         0: .line 75
            aload 0 /* this */
            new org.apache.http.impl.auth.NTLMEngineImpl
            dup
            invokespecial org.apache.http.impl.auth.NTLMEngineImpl.<init>:()V
            invokespecial org.apache.http.impl.auth.NTLMScheme.<init>:(Lorg/apache/http/impl/auth/NTLMEngine;)V
         1: .line 76
            return
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/http/impl/auth/NTLMScheme;

  public java.lang.String getSchemeName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
         0: .line 80
            ldc "ntlm"
            areturn
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NTLMScheme;

  public java.lang.String getParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
        start local 1 // java.lang.String name
         0: .line 86
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NTLMScheme;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public java.lang.String getRealm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
         0: .line 92
            aconst_null
            areturn
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NTLMScheme;

  public boolean isConnectionBased();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
         0: .line 97
            iconst_1
            ireturn
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/http/impl/auth/NTLMScheme;

  protected void parseChallenge(org.apache.http.util.CharArrayBuffer, int, int);
    descriptor: (Lorg/apache/http/util/CharArrayBuffer;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
        start local 1 // org.apache.http.util.CharArrayBuffer buffer
        start local 2 // int beginIndex
        start local 3 // int endIndex
         0: .line 104
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* beginIndex */
            iload 3 /* endIndex */
            invokevirtual org.apache.http.util.CharArrayBuffer.substringTrimmed:(II)Ljava/lang/String;
            putfield org.apache.http.impl.auth.NTLMScheme.challenge:Ljava/lang/String;
         1: .line 105
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.challenge:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         2: .line 106
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.UNINITIATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpne 5
         3: .line 107
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.CHALLENGE_RECEIVED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
         4: .line 108
            goto 12
         5: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.FAILED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
         6: .line 111
            goto 12
         7: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE1_GENERATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            invokevirtual org.apache.http.impl.auth.NTLMScheme$State.compareTo:(Ljava/lang/Enum;)I
            ifge 10
         8: .line 113
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.FAILED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
         9: .line 114
            new org.apache.http.auth.MalformedChallengeException
            dup
            ldc "Out of sequence NTLM response message"
            invokespecial org.apache.http.auth.MalformedChallengeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE1_GENERATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpne 12
        11: .line 116
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE2_RECEVIED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
        12: .line 119
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int endIndex
        end local 2 // int beginIndex
        end local 1 // org.apache.http.util.CharArrayBuffer buffer
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/apache/http/impl/auth/NTLMScheme;
            0   13     1      buffer  Lorg/apache/http/util/CharArrayBuffer;
            0   13     2  beginIndex  I
            0   13     3    endIndex  I
    Exceptions:
      throws org.apache.http.auth.MalformedChallengeException
    MethodParameters:
            Name  Flags
      buffer      final
      beginIndex  final
      endIndex    final

  public org.apache.http.Header authenticate(org.apache.http.auth.Credentials, org.apache.http.HttpRequest);
    descriptor: (Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
        start local 1 // org.apache.http.auth.Credentials credentials
        start local 2 // org.apache.http.HttpRequest request
         0: .line 125
            aconst_null
            astore 3 /* ntcredentials */
        start local 3 // org.apache.http.auth.NTCredentials ntcredentials
         1: .line 127
            aload 1 /* credentials */
            checkcast org.apache.http.auth.NTCredentials
            astore 3 /* ntcredentials */
         2: .line 128
            goto 9
      StackMap locals: org.apache.http.impl.auth.NTLMScheme org.apache.http.auth.Credentials org.apache.http.HttpRequest org.apache.http.auth.NTCredentials
      StackMap stack: java.lang.ClassCastException
         3: pop
         4: .line 129
            new org.apache.http.auth.InvalidCredentialsException
            dup
         5: .line 130
            new java.lang.StringBuilder
            dup
            ldc "Credentials cannot be used for NTLM authentication: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 131
            aload 1 /* credentials */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 130
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 129
            invokespecial org.apache.http.auth.InvalidCredentialsException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 133
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* response */
        start local 4 // java.lang.String response
        10: .line 134
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.FAILED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpne 12
        11: .line 135
            new org.apache.http.auth.AuthenticationException
            dup
            ldc "NTLM authentication failed"
            invokespecial org.apache.http.auth.AuthenticationException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 136
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.CHALLENGE_RECEIVED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpne 19
        13: .line 137
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.engine:Lorg/apache/http/impl/auth/NTLMEngine;
        14: .line 138
            aload 3 /* ntcredentials */
            invokevirtual org.apache.http.auth.NTCredentials.getDomain:()Ljava/lang/String;
        15: .line 139
            aload 3 /* ntcredentials */
            invokevirtual org.apache.http.auth.NTCredentials.getWorkstation:()Ljava/lang/String;
        16: .line 137
            invokeinterface org.apache.http.impl.auth.NTLMEngine.generateType1Msg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* response */
        17: .line 140
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE1_GENERATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
        18: .line 141
            goto 30
      StackMap locals:
      StackMap stack:
        19: aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE2_RECEVIED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpne 29
        20: .line 142
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.engine:Lorg/apache/http/impl/auth/NTLMEngine;
        21: .line 143
            aload 3 /* ntcredentials */
            invokevirtual org.apache.http.auth.NTCredentials.getUserName:()Ljava/lang/String;
        22: .line 144
            aload 3 /* ntcredentials */
            invokevirtual org.apache.http.auth.NTCredentials.getPassword:()Ljava/lang/String;
        23: .line 145
            aload 3 /* ntcredentials */
            invokevirtual org.apache.http.auth.NTCredentials.getDomain:()Ljava/lang/String;
        24: .line 146
            aload 3 /* ntcredentials */
            invokevirtual org.apache.http.auth.NTCredentials.getWorkstation:()Ljava/lang/String;
        25: .line 147
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.challenge:Ljava/lang/String;
        26: .line 142
            invokeinterface org.apache.http.impl.auth.NTLMEngine.generateType3Msg:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* response */
        27: .line 148
            aload 0 /* this */
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE3_GENERATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            putfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
        28: .line 149
            goto 30
        29: .line 150
      StackMap locals:
      StackMap stack:
            new org.apache.http.auth.AuthenticationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.http.auth.AuthenticationException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 152
      StackMap locals:
      StackMap stack:
            new org.apache.http.util.CharArrayBuffer
            dup
            bipush 32
            invokespecial org.apache.http.util.CharArrayBuffer.<init>:(I)V
            astore 5 /* buffer */
        start local 5 // org.apache.http.util.CharArrayBuffer buffer
        31: .line 153
            aload 0 /* this */
            invokevirtual org.apache.http.impl.auth.NTLMScheme.isProxy:()Z
            ifeq 34
        32: .line 154
            aload 5 /* buffer */
            ldc "Proxy-Authorization"
            invokevirtual org.apache.http.util.CharArrayBuffer.append:(Ljava/lang/String;)V
        33: .line 155
            goto 35
        34: .line 156
      StackMap locals: org.apache.http.util.CharArrayBuffer
      StackMap stack:
            aload 5 /* buffer */
            ldc "Authorization"
            invokevirtual org.apache.http.util.CharArrayBuffer.append:(Ljava/lang/String;)V
        35: .line 158
      StackMap locals:
      StackMap stack:
            aload 5 /* buffer */
            ldc ": NTLM "
            invokevirtual org.apache.http.util.CharArrayBuffer.append:(Ljava/lang/String;)V
        36: .line 159
            aload 5 /* buffer */
            aload 4 /* response */
            invokevirtual org.apache.http.util.CharArrayBuffer.append:(Ljava/lang/String;)V
        37: .line 160
            new org.apache.http.message.BufferedHeader
            dup
            aload 5 /* buffer */
            invokespecial org.apache.http.message.BufferedHeader.<init>:(Lorg/apache/http/util/CharArrayBuffer;)V
            areturn
        end local 5 // org.apache.http.util.CharArrayBuffer buffer
        end local 4 // java.lang.String response
        end local 3 // org.apache.http.auth.NTCredentials ntcredentials
        end local 2 // org.apache.http.HttpRequest request
        end local 1 // org.apache.http.auth.Credentials credentials
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   38     0           this  Lorg/apache/http/impl/auth/NTLMScheme;
            0   38     1    credentials  Lorg/apache/http/auth/Credentials;
            0   38     2        request  Lorg/apache/http/HttpRequest;
            1   38     3  ntcredentials  Lorg/apache/http/auth/NTCredentials;
           10   38     4       response  Ljava/lang/String;
           31   38     5         buffer  Lorg/apache/http/util/CharArrayBuffer;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassCastException
    Exceptions:
      throws org.apache.http.auth.AuthenticationException
    MethodParameters:
             Name  Flags
      credentials  final
      request      final

  public boolean isComplete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.http.impl.auth.NTLMScheme this
         0: .line 165
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.MSG_TYPE3_GENERATED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpeq 1
            aload 0 /* this */
            getfield org.apache.http.impl.auth.NTLMScheme.state:Lorg/apache/http/impl/auth/NTLMScheme$State;
            getstatic org.apache.http.impl.auth.NTLMScheme$State.FAILED:Lorg/apache/http/impl/auth/NTLMScheme$State;
            if_acmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.apache.http.impl.auth.NTLMScheme this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/http/impl/auth/NTLMScheme;
}
SourceFile: "NTLMScheme.java"
NestMembers:
  org.apache.http.impl.auth.NTLMScheme$State
InnerClasses:
  final State = org.apache.http.impl.auth.NTLMScheme$State of org.apache.http.impl.auth.NTLMScheme