class sun.net.www.protocol.http.DigestAuthentication extends sun.net.www.protocol.http.AuthenticationInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.net.www.protocol.http.DigestAuthentication
  super_class: sun.net.www.protocol.http.AuthenticationInfo
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

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

  sun.net.www.protocol.http.DigestAuthentication$Parameters params;
    descriptor: Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
    flags: (0x0000) 

  private static final char[] charArray;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] zeroPad;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 48
            ldc Lsun/net/www/protocol/http/DigestAuthentication;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.net.www.protocol.http.DigestAuthentication.$assertionsDisabled:Z
         3: .line 479
            bipush 16
            newarray 5
            dup
            iconst_0
         4: .line 480
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
         5: .line 481
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
            bipush 97
            castore
            dup
            bipush 11
            bipush 98
            castore
            dup
            bipush 12
            bipush 99
            castore
            dup
            bipush 13
            bipush 100
            castore
            dup
            bipush 14
            bipush 101
            castore
            dup
            bipush 15
            bipush 102
            castore
         6: .line 479
            putstatic sun.net.www.protocol.http.DigestAuthentication.charArray:[C
         7: .line 484
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
         8: .line 486
            ldc "00000000"
            aastore
            dup
            iconst_1
            ldc "0000000"
            aastore
            dup
            iconst_2
            ldc "000000"
            aastore
            dup
            iconst_3
            ldc "00000"
            aastore
            dup
            iconst_4
            ldc "0000"
            aastore
            dup
            iconst_5
            ldc "000"
            aastore
            dup
            bipush 6
            ldc "00"
            aastore
            dup
            bipush 7
            ldc "0"
            aastore
         9: .line 484
            putstatic sun.net.www.protocol.http.DigestAuthentication.zeroPad:[Ljava/lang/String;
        10: .line 487
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(boolean, java.net.URL, java.lang.String, java.lang.String, java.net.PasswordAuthentication, sun.net.www.protocol.http.DigestAuthentication$Parameters);
    descriptor: (ZLjava/net/URL;Ljava/lang/String;Ljava/lang/String;Ljava/net/PasswordAuthentication;Lsun/net/www/protocol/http/DigestAuthentication$Parameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=7
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // boolean isProxy
        start local 2 // java.net.URL url
        start local 3 // java.lang.String realm
        start local 4 // java.lang.String authMethod
        start local 5 // java.net.PasswordAuthentication pw
        start local 6 // sun.net.www.protocol.http.DigestAuthentication$Parameters params
         0: .line 178
            aload 0 /* this */
            iload 1 /* isProxy */
            ifeq 1
            bipush 112
            goto 2
      StackMap locals:
      StackMap stack: uninitialized-this
         1: bipush 115
         2: .line 179
      StackMap locals: uninitialized-this int java.net.URL java.lang.String java.lang.String java.net.PasswordAuthentication sun.net.www.protocol.http.DigestAuthentication$Parameters
      StackMap stack: uninitialized-this int
            getstatic sun.net.www.protocol.http.AuthScheme.DIGEST:Lsun/net/www/protocol/http/AuthScheme;
         3: .line 180
            aload 2 /* url */
         4: .line 181
            aload 3 /* realm */
            invokespecial sun.net.www.protocol.http.AuthenticationInfo.<init>:(CLsun/net/www/protocol/http/AuthScheme;Ljava/net/URL;Ljava/lang/String;)V
         5: .line 182
            aload 0 /* this */
            aload 4 /* authMethod */
            putfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
         6: .line 183
            aload 0 /* this */
            aload 5 /* pw */
            putfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
         7: .line 184
            aload 0 /* this */
            aload 6 /* params */
            putfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
         8: .line 185
            return
        end local 6 // sun.net.www.protocol.http.DigestAuthentication$Parameters params
        end local 5 // java.net.PasswordAuthentication pw
        end local 4 // java.lang.String authMethod
        end local 3 // java.lang.String realm
        end local 2 // java.net.URL url
        end local 1 // boolean isProxy
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lsun/net/www/protocol/http/DigestAuthentication;
            0    9     1     isProxy  Z
            0    9     2         url  Ljava/net/URL;
            0    9     3       realm  Ljava/lang/String;
            0    9     4  authMethod  Ljava/lang/String;
            0    9     5          pw  Ljava/net/PasswordAuthentication;
            0    9     6      params  Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
    MethodParameters:
            Name  Flags
      isProxy     
      url         
      realm       
      authMethod  
      pw          
      params      

  public void <init>(boolean, java.lang.String, int, java.lang.String, java.lang.String, java.net.PasswordAuthentication, sun.net.www.protocol.http.DigestAuthentication$Parameters);
    descriptor: (ZLjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/net/PasswordAuthentication;Lsun/net/www/protocol/http/DigestAuthentication$Parameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=8
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // boolean isProxy
        start local 2 // java.lang.String host
        start local 3 // int port
        start local 4 // java.lang.String realm
        start local 5 // java.lang.String authMethod
        start local 6 // java.net.PasswordAuthentication pw
        start local 7 // sun.net.www.protocol.http.DigestAuthentication$Parameters params
         0: .line 190
            aload 0 /* this */
            iload 1 /* isProxy */
            ifeq 1
            bipush 112
            goto 2
      StackMap locals:
      StackMap stack: uninitialized-this
         1: bipush 115
         2: .line 191
      StackMap locals: uninitialized-this int java.lang.String int java.lang.String java.lang.String java.net.PasswordAuthentication sun.net.www.protocol.http.DigestAuthentication$Parameters
      StackMap stack: uninitialized-this int
            getstatic sun.net.www.protocol.http.AuthScheme.DIGEST:Lsun/net/www/protocol/http/AuthScheme;
         3: .line 192
            aload 2 /* host */
         4: .line 193
            iload 3 /* port */
         5: .line 194
            aload 4 /* realm */
            invokespecial sun.net.www.protocol.http.AuthenticationInfo.<init>:(CLsun/net/www/protocol/http/AuthScheme;Ljava/lang/String;ILjava/lang/String;)V
         6: .line 195
            aload 0 /* this */
            aload 5 /* authMethod */
            putfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
         7: .line 196
            aload 0 /* this */
            aload 6 /* pw */
            putfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
         8: .line 197
            aload 0 /* this */
            aload 7 /* params */
            putfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
         9: .line 198
            return
        end local 7 // sun.net.www.protocol.http.DigestAuthentication$Parameters params
        end local 6 // java.net.PasswordAuthentication pw
        end local 5 // java.lang.String authMethod
        end local 4 // java.lang.String realm
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // boolean isProxy
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/net/www/protocol/http/DigestAuthentication;
            0   10     1     isProxy  Z
            0   10     2        host  Ljava/lang/String;
            0   10     3        port  I
            0   10     4       realm  Ljava/lang/String;
            0   10     5  authMethod  Ljava/lang/String;
            0   10     6          pw  Ljava/net/PasswordAuthentication;
            0   10     7      params  Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
    MethodParameters:
            Name  Flags
      isProxy     
      host        
      port        
      realm       
      authMethod  
      pw          
      params      

  public boolean supportsPreemptiveAuthorization();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
         0: .line 205
            iconst_1
            ireturn
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/www/protocol/http/DigestAuthentication;

  public java.lang.String getHeaderValue(java.net.URL, java.lang.String);
    descriptor: (Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.net.URL url
        start local 2 // java.lang.String method
         0: .line 224
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            aload 2 /* method */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.getHeaderValueImpl:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String method
        end local 1 // java.net.URL url
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/net/www/protocol/http/DigestAuthentication;
            0    1     1     url  Ljava/net/URL;
            0    1     2  method  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      url     
      method  

  java.lang.String getHeaderValue(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.lang.String requestURI
        start local 2 // java.lang.String method
         0: .line 242
            aload 0 /* this */
            aload 1 /* requestURI */
            aload 2 /* method */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.getHeaderValueImpl:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String method
        end local 1 // java.lang.String requestURI
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lsun/net/www/protocol/http/DigestAuthentication;
            0    1     1  requestURI  Ljava/lang/String;
            0    1     2      method  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      requestURI  
      method      

  public boolean isAuthorizationStale(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.lang.String header
         0: .line 255
            new sun.net.www.HeaderParser
            dup
            aload 1 /* header */
            invokespecial sun.net.www.HeaderParser.<init>:(Ljava/lang/String;)V
            astore 2 /* p */
        start local 2 // sun.net.www.HeaderParser p
         1: .line 256
            aload 2 /* p */
            ldc "stale"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         2: .line 257
            aload 3 /* s */
            ifnull 3
            aload 3 /* s */
            ldc "true"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 258
      StackMap locals: sun.net.www.HeaderParser java.lang.String
      StackMap stack:
            iconst_0
            ireturn
         4: .line 259
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            ldc "nonce"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* newNonce */
        start local 4 // java.lang.String newNonce
         5: .line 260
            aload 4 /* newNonce */
            ifnull 6
            ldc ""
            aload 4 /* newNonce */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 261
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
         7: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 4 /* newNonce */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setNonce:(Ljava/lang/String;)V
         8: .line 264
            iconst_1
            ireturn
        end local 4 // java.lang.String newNonce
        end local 3 // java.lang.String s
        end local 2 // sun.net.www.HeaderParser p
        end local 1 // java.lang.String header
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lsun/net/www/protocol/http/DigestAuthentication;
            0    9     1    header  Ljava/lang/String;
            1    9     2         p  Lsun/net/www/HeaderParser;
            2    9     3         s  Ljava/lang/String;
            5    9     4  newNonce  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      header  

  public boolean setHeaders(sun.net.www.protocol.http.HttpURLConnection, sun.net.www.HeaderParser, java.lang.String);
    descriptor: (Lsun/net/www/protocol/http/HttpURLConnection;Lsun/net/www/HeaderParser;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // sun.net.www.protocol.http.HttpURLConnection conn
        start local 2 // sun.net.www.HeaderParser p
        start local 3 // java.lang.String raw
         0: .line 276
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 2 /* p */
            ldc "nonce"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setNonce:(Ljava/lang/String;)V
         1: .line 277
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 2 /* p */
            ldc "opaque"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setOpaque:(Ljava/lang/String;)V
         2: .line 278
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 2 /* p */
            ldc "qop"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setQop:(Ljava/lang/String;)V
         3: .line 280
            ldc ""
            astore 4 /* uri */
        start local 4 // java.lang.String uri
         4: .line 282
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.type:C
            bipush 112
            if_icmpne 9
         5: .line 283
            aload 1 /* conn */
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.tunnelState:()Lsun/net/www/protocol/http/HttpURLConnection$TunnelState;
            getstatic sun.net.www.protocol.http.HttpURLConnection$TunnelState.SETUP:Lsun/net/www/protocol/http/HttpURLConnection$TunnelState;
            if_acmpne 9
         6: .line 284
            aload 1 /* conn */
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.getURL:()Ljava/net/URL;
            invokestatic sun.net.www.protocol.http.HttpURLConnection.connectRequestURI:(Ljava/net/URL;)Ljava/lang/String;
            astore 4 /* uri */
         7: .line 285
            getstatic sun.net.www.protocol.http.HttpURLConnection.HTTP_CONNECT:Ljava/lang/String;
            astore 5 /* method */
        start local 5 // java.lang.String method
         8: .line 286
            goto 13
        end local 5 // java.lang.String method
         9: .line 288
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* conn */
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.getRequestURI:()Ljava/lang/String;
            astore 4 /* uri */
        10: .line 289
            goto 12
      StackMap locals:
      StackMap stack: java.io.IOException
        11: pop
        12: .line 290
      StackMap locals:
      StackMap stack:
            aload 1 /* conn */
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.getMethod:()Ljava/lang/String;
            astore 5 /* method */
        start local 5 // java.lang.String method
        13: .line 293
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            getfield sun.net.www.protocol.http.DigestAuthentication$Parameters.nonce:Ljava/lang/String;
            ifnull 14
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
            ifnull 14
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
            ifnull 14
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.realm:Ljava/lang/String;
            ifnonnull 15
        14: .line 294
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        15: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmplt 19
        16: .line 300
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toUpperCase:(C)C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 301
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 300
            putfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
        19: .line 303
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            ldc "algorithm"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
        20: .line 304
            aload 6 /* algorithm */
            ifnull 21
            ldc ""
            aload 6 /* algorithm */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 305
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "MD5"
            astore 6 /* algorithm */
        22: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 6 /* algorithm */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setAlgorithm:(Ljava/lang/String;)V
        23: .line 313
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.authQop:()Z
            ifeq 25
        24: .line 314
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setNewCnonce:()V
        25: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* uri */
            aload 5 /* method */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.getHeaderValueImpl:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        26: .line 318
            aload 7 /* value */
            ifnull 29
        27: .line 319
            aload 1 /* conn */
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.getHeaderName:()Ljava/lang/String;
            aload 7 /* value */
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setAuthenticationProperty:(Ljava/lang/String;Ljava/lang/String;)V
        28: .line 320
            iconst_1
            ireturn
        29: .line 322
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // java.lang.String value
        end local 6 // java.lang.String algorithm
        end local 5 // java.lang.String method
        end local 4 // java.lang.String uri
        end local 3 // java.lang.String raw
        end local 2 // sun.net.www.HeaderParser p
        end local 1 // sun.net.www.protocol.http.HttpURLConnection conn
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   30     0       this  Lsun/net/www/protocol/http/DigestAuthentication;
            0   30     1       conn  Lsun/net/www/protocol/http/HttpURLConnection;
            0   30     2          p  Lsun/net/www/HeaderParser;
            0   30     3        raw  Ljava/lang/String;
            4   30     4        uri  Ljava/lang/String;
            8    9     5     method  Ljava/lang/String;
           13   30     5     method  Ljava/lang/String;
           20   30     6  algorithm  Ljava/lang/String;
           26   30     7      value  Ljava/lang/String;
      Exception table:
        from    to  target  type
           9    10      11  Class java.io.IOException
    MethodParameters:
      Name  Flags
      conn  
      p     
      raw   

  private java.lang.String getHeaderValueImpl(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=14, args_size=3
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.lang.String uri
        start local 2 // java.lang.String method
         0: .line 331
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
            invokevirtual java.net.PasswordAuthentication.getPassword:()[C
            astore 4 /* passwd */
        start local 4 // char[] passwd
         1: .line 332
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.authQop:()Z
            istore 5 /* qop */
        start local 5 // boolean qop
         2: .line 333
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getOpaque:()Ljava/lang/String;
            astore 6 /* opaque */
        start local 6 // java.lang.String opaque
         3: .line 334
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getCnonce:()Ljava/lang/String;
            astore 7 /* cnonce */
        start local 7 // java.lang.String cnonce
         4: .line 335
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getNonce:()Ljava/lang/String;
            astore 8 /* nonce */
        start local 8 // java.lang.String nonce
         5: .line 336
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getAlgorithm:()Ljava/lang/String;
            astore 9 /* algorithm */
        start local 9 // java.lang.String algorithm
         6: .line 337
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.incrementNC:()V
         7: .line 338
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getNCCount:()I
            istore 10 /* nccount */
        start local 10 // int nccount
         8: .line 339
            aconst_null
            astore 11 /* ncstring */
        start local 11 // java.lang.String ncstring
         9: .line 341
            iload 10 /* nccount */
            iconst_m1
            if_icmpeq 14
        10: .line 342
            iload 10 /* nccount */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 11 /* ncstring */
        11: .line 343
            aload 11 /* ncstring */
            invokevirtual java.lang.String.length:()I
            istore 12 /* len */
        start local 12 // int len
        12: .line 344
            iload 12 /* len */
            bipush 8
            if_icmpge 14
        13: .line 345
            new java.lang.StringBuilder
            dup
            getstatic sun.net.www.protocol.http.DigestAuthentication.zeroPad:[Ljava/lang/String;
            iload 12 /* len */
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* ncstring */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* ncstring */
        end local 12 // int len
        14: .line 349
      StackMap locals: sun.net.www.protocol.http.DigestAuthentication java.lang.String java.lang.String top char[] int java.lang.String java.lang.String java.lang.String java.lang.String int java.lang.String
      StackMap stack:
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
            invokevirtual java.net.PasswordAuthentication.getUserName:()Ljava/lang/String;
            aload 4 /* passwd */
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.realm:Ljava/lang/String;
        15: .line 350
            aload 2 /* method */
            aload 1 /* uri */
            aload 8 /* nonce */
            aload 7 /* cnonce */
            aload 11 /* ncstring */
        16: .line 349
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.computeDigest:(ZLjava/lang/String;[CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* response */
        start local 3 // java.lang.String response
        17: .line 351
            goto 20
        end local 3 // java.lang.String response
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
        18: pop
        19: .line 352
            aconst_null
            areturn
        start local 3 // java.lang.String response
        20: .line 355
      StackMap locals: sun.net.www.protocol.http.DigestAuthentication java.lang.String java.lang.String java.lang.String char[] int java.lang.String java.lang.String java.lang.String java.lang.String int java.lang.String
      StackMap stack:
            ldc "\""
            astore 12 /* ncfield */
        start local 12 // java.lang.String ncfield
        21: .line 356
            iload 5 /* qop */
            ifeq 23
        22: .line 357
            new java.lang.StringBuilder
            dup
            ldc "\", nc="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* ncstring */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 12 /* ncfield */
        23: .line 360
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.authMethod:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 361
            ldc " username=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
            invokevirtual java.net.PasswordAuthentication.getUserName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 362
            ldc "\", realm=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.realm:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 363
            ldc "\", nonce=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* nonce */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 364
            aload 12 /* ncfield */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 365
            ldc ", uri=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 366
            ldc "\", response=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* response */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 367
            ldc "\", algorithm=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 360
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* value */
        start local 13 // java.lang.String value
        32: .line 368
            aload 6 /* opaque */
            ifnull 34
        33: .line 369
            new java.lang.StringBuilder
            dup
            aload 13 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\", opaque=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* opaque */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* value */
        34: .line 371
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* cnonce */
            ifnull 36
        35: .line 372
            new java.lang.StringBuilder
            dup
            aload 13 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\", cnonce=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* cnonce */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* value */
        36: .line 374
      StackMap locals:
      StackMap stack:
            iload 5 /* qop */
            ifeq 38
        37: .line 375
            new java.lang.StringBuilder
            dup
            aload 13 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\", qop=\"auth"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* value */
        38: .line 377
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 13 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* value */
        39: .line 378
            aload 13 /* value */
            areturn
        end local 13 // java.lang.String value
        end local 12 // java.lang.String ncfield
        end local 11 // java.lang.String ncstring
        end local 10 // int nccount
        end local 9 // java.lang.String algorithm
        end local 8 // java.lang.String nonce
        end local 7 // java.lang.String cnonce
        end local 6 // java.lang.String opaque
        end local 5 // boolean qop
        end local 4 // char[] passwd
        end local 3 // java.lang.String response
        end local 2 // java.lang.String method
        end local 1 // java.lang.String uri
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   40     0       this  Lsun/net/www/protocol/http/DigestAuthentication;
            0   40     1        uri  Ljava/lang/String;
            0   40     2     method  Ljava/lang/String;
           17   18     3   response  Ljava/lang/String;
           20   40     3   response  Ljava/lang/String;
            1   40     4     passwd  [C
            2   40     5        qop  Z
            3   40     6     opaque  Ljava/lang/String;
            4   40     7     cnonce  Ljava/lang/String;
            5   40     8      nonce  Ljava/lang/String;
            6   40     9  algorithm  Ljava/lang/String;
            8   40    10    nccount  I
            9   40    11   ncstring  Ljava/lang/String;
           12   14    12        len  I
           21   40    12    ncfield  Ljava/lang/String;
           32   40    13      value  Ljava/lang/String;
      Exception table:
        from    to  target  type
          14    17      18  Class java.security.NoSuchAlgorithmException
    MethodParameters:
        Name  Flags
      uri     
      method  

  public void checkResponse(java.lang.String, java.lang.String, java.net.URL);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.lang.String header
        start local 2 // java.lang.String method
        start local 3 // java.net.URL url
         0: .line 383
            aload 0 /* this */
            aload 1 /* header */
            aload 2 /* method */
            aload 3 /* url */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.checkResponse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 384
            return
        end local 3 // java.net.URL url
        end local 2 // java.lang.String method
        end local 1 // java.lang.String header
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/net/www/protocol/http/DigestAuthentication;
            0    2     1  header  Ljava/lang/String;
            0    2     2  method  Ljava/lang/String;
            0    2     3     url  Ljava/net/URL;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      header  
      method  
      url     

  public void checkResponse(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=14, args_size=4
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.lang.String header
        start local 2 // java.lang.String method
        start local 3 // java.lang.String uri
         0: .line 388
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
            invokevirtual java.net.PasswordAuthentication.getPassword:()[C
            astore 4 /* passwd */
        start local 4 // char[] passwd
         1: .line 389
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.pw:Ljava/net/PasswordAuthentication;
            invokevirtual java.net.PasswordAuthentication.getUserName:()Ljava/lang/String;
            astore 5 /* username */
        start local 5 // java.lang.String username
         2: .line 390
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.authQop:()Z
            pop
         3: .line 391
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getOpaque:()Ljava/lang/String;
            pop
         4: .line 392
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            getfield sun.net.www.protocol.http.DigestAuthentication$Parameters.cnonce:Ljava/lang/String;
            astore 6 /* cnonce */
        start local 6 // java.lang.String cnonce
         5: .line 393
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getNonce:()Ljava/lang/String;
            astore 7 /* nonce */
        start local 7 // java.lang.String nonce
         6: .line 394
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getAlgorithm:()Ljava/lang/String;
            pop
         7: .line 395
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getNCCount:()I
            istore 8 /* nccount */
        start local 8 // int nccount
         8: .line 396
            aconst_null
            astore 9 /* ncstring */
        start local 9 // java.lang.String ncstring
         9: .line 398
            aload 1 /* header */
            ifnonnull 11
        10: .line 399
            new java.net.ProtocolException
            dup
            ldc "No authentication information in response"
            invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 402
      StackMap locals: sun.net.www.protocol.http.DigestAuthentication java.lang.String java.lang.String java.lang.String char[] java.lang.String java.lang.String java.lang.String int java.lang.String
      StackMap stack:
            iload 8 /* nccount */
            iconst_m1
            if_icmpeq 16
        12: .line 403
            iload 8 /* nccount */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            astore 9 /* ncstring */
        13: .line 404
            aload 9 /* ncstring */
            invokevirtual java.lang.String.length:()I
            istore 10 /* len */
        start local 10 // int len
        14: .line 405
            iload 10 /* len */
            bipush 8
            if_icmpge 16
        15: .line 406
            new java.lang.StringBuilder
            dup
            getstatic sun.net.www.protocol.http.DigestAuthentication.zeroPad:[Ljava/lang/String;
            iload 10 /* len */
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* ncstring */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* ncstring */
        end local 10 // int len
        16: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            aload 5 /* username */
            aload 4 /* passwd */
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.realm:Ljava/lang/String;
        17: .line 410
            aload 2 /* method */
            aload 3 /* uri */
            aload 7 /* nonce */
            aload 6 /* cnonce */
            aload 9 /* ncstring */
        18: .line 409
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.computeDigest:(ZLjava/lang/String;[CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* expected */
        start local 10 // java.lang.String expected
        19: .line 411
            new sun.net.www.HeaderParser
            dup
            aload 1 /* header */
            invokespecial sun.net.www.HeaderParser.<init>:(Ljava/lang/String;)V
            astore 11 /* p */
        start local 11 // sun.net.www.HeaderParser p
        20: .line 412
            aload 11 /* p */
            ldc "rspauth"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* rspauth */
        start local 12 // java.lang.String rspauth
        21: .line 413
            aload 12 /* rspauth */
            ifnonnull 23
        22: .line 414
            new java.net.ProtocolException
            dup
            ldc "No digest in response"
            invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 416
      StackMap locals: java.lang.String sun.net.www.HeaderParser java.lang.String
      StackMap stack:
            aload 12 /* rspauth */
            aload 10 /* expected */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
        24: .line 417
            new java.net.ProtocolException
            dup
            ldc "Response digest invalid"
            invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 420
      StackMap locals:
      StackMap stack:
            aload 11 /* p */
            ldc "nextnonce"
            invokevirtual sun.net.www.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* nextnonce */
        start local 13 // java.lang.String nextnonce
        26: .line 421
            aload 13 /* nextnonce */
            ifnull 31
            ldc ""
            aload 13 /* nextnonce */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
        27: .line 422
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 13 /* nextnonce */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setNonce:(Ljava/lang/String;)V
        end local 13 // java.lang.String nextnonce
        end local 12 // java.lang.String rspauth
        end local 11 // sun.net.www.HeaderParser p
        end local 10 // java.lang.String expected
        28: .line 425
            goto 31
      StackMap locals: sun.net.www.protocol.http.DigestAuthentication java.lang.String java.lang.String java.lang.String char[] java.lang.String java.lang.String java.lang.String int java.lang.String
      StackMap stack: java.security.NoSuchAlgorithmException
        29: pop
        30: .line 426
            new java.net.ProtocolException
            dup
            ldc "Unsupported algorithm in response"
            invokespecial java.net.ProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 428
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.lang.String ncstring
        end local 8 // int nccount
        end local 7 // java.lang.String nonce
        end local 6 // java.lang.String cnonce
        end local 5 // java.lang.String username
        end local 4 // char[] passwd
        end local 3 // java.lang.String uri
        end local 2 // java.lang.String method
        end local 1 // java.lang.String header
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lsun/net/www/protocol/http/DigestAuthentication;
            0   32     1     header  Ljava/lang/String;
            0   32     2     method  Ljava/lang/String;
            0   32     3        uri  Ljava/lang/String;
            1   32     4     passwd  [C
            2   32     5   username  Ljava/lang/String;
            5   32     6     cnonce  Ljava/lang/String;
            6   32     7      nonce  Ljava/lang/String;
            8   32     8    nccount  I
            9   32     9   ncstring  Ljava/lang/String;
           14   16    10        len  I
           19   28    10   expected  Ljava/lang/String;
           20   28    11          p  Lsun/net/www/HeaderParser;
           21   28    12    rspauth  Ljava/lang/String;
           26   28    13  nextnonce  Ljava/lang/String;
      Exception table:
        from    to  target  type
          16    28      29  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      header  
      method  
      uri     

  private java.lang.String computeDigest(boolean, java.lang.String, char[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (ZLjava/lang/String;[CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=19, args_size=10
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // boolean isRequest
        start local 2 // java.lang.String userName
        start local 3 // char[] password
        start local 4 // java.lang.String realm
        start local 5 // java.lang.String connMethod
        start local 6 // java.lang.String requestURI
        start local 7 // java.lang.String nonceString
        start local 8 // java.lang.String cnonce
        start local 9 // java.lang.String ncValue
         0: .line 439
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getAlgorithm:()Ljava/lang/String;
            astore 12 /* algorithm */
        start local 12 // java.lang.String algorithm
         1: .line 440
            aload 12 /* algorithm */
            ldc "MD5-sess"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            istore 13 /* md5sess */
        start local 13 // boolean md5sess
         2: .line 442
            iload 13 /* md5sess */
            ifeq 3
            ldc "MD5"
            goto 4
      StackMap locals: sun.net.www.protocol.http.DigestAuthentication int java.lang.String char[] java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String top top java.lang.String int
      StackMap stack:
         3: aload 12 /* algorithm */
      StackMap locals:
      StackMap stack: java.lang.String
         4: invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 14 /* md */
        start local 14 // java.security.MessageDigest md
         5: .line 444
            iload 13 /* md5sess */
            ifeq 14
         6: .line 445
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.getCachedHA1:()Ljava/lang/String;
            dup
            astore 11 /* HashA1 */
        start local 11 // java.lang.String HashA1
         7: ifnonnull 16
         8: .line 446
            new java.lang.StringBuilder
            dup
            aload 2 /* userName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* realm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* s */
        start local 15 // java.lang.String s
         9: .line 447
            aload 0 /* this */
            aload 15 /* s */
            aload 3 /* password */
            aload 14 /* md */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.encode:(Ljava/lang/String;[CLjava/security/MessageDigest;)Ljava/lang/String;
            astore 16 /* s1 */
        start local 16 // java.lang.String s1
        10: .line 448
            new java.lang.StringBuilder
            dup
            aload 16 /* s1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* nonceString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* cnonce */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* A1 */
        start local 10 // java.lang.String A1
        11: .line 449
            aload 0 /* this */
            aload 10 /* A1 */
            aconst_null
            aload 14 /* md */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.encode:(Ljava/lang/String;[CLjava/security/MessageDigest;)Ljava/lang/String;
            astore 11 /* HashA1 */
        12: .line 450
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            aload 11 /* HashA1 */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.setCachedHA1:(Ljava/lang/String;)V
        end local 16 // java.lang.String s1
        end local 15 // java.lang.String s
        end local 10 // java.lang.String A1
        13: .line 452
            goto 16
        end local 11 // java.lang.String HashA1
        14: .line 453
      StackMap locals: java.security.MessageDigest
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* userName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* realm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* A1 */
        start local 10 // java.lang.String A1
        15: .line 454
            aload 0 /* this */
            aload 10 /* A1 */
            aload 3 /* password */
            aload 14 /* md */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.encode:(Ljava/lang/String;[CLjava/security/MessageDigest;)Ljava/lang/String;
            astore 11 /* HashA1 */
        end local 10 // java.lang.String A1
        start local 11 // java.lang.String HashA1
        16: .line 458
      StackMap locals: sun.net.www.protocol.http.DigestAuthentication int java.lang.String char[] java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String top java.lang.String java.lang.String int java.security.MessageDigest
      StackMap stack:
            iload 1 /* isRequest */
            ifeq 19
        17: .line 459
            new java.lang.StringBuilder
            dup
            aload 5 /* connMethod */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* requestURI */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* A2 */
        start local 15 // java.lang.String A2
        18: .line 460
            goto 20
        end local 15 // java.lang.String A2
        19: .line 461
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc ":"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* requestURI */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* A2 */
        start local 15 // java.lang.String A2
        20: .line 463
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 15 /* A2 */
            aconst_null
            aload 14 /* md */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.encode:(Ljava/lang/String;[CLjava/security/MessageDigest;)Ljava/lang/String;
            astore 16 /* HashA2 */
        start local 16 // java.lang.String HashA2
        21: .line 466
            aload 0 /* this */
            getfield sun.net.www.protocol.http.DigestAuthentication.params:Lsun/net/www/protocol/http/DigestAuthentication$Parameters;
            invokevirtual sun.net.www.protocol.http.DigestAuthentication$Parameters.authQop:()Z
            ifeq 26
        22: .line 467
            new java.lang.StringBuilder
            dup
            aload 11 /* HashA1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* nonceString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* ncValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 468
            aload 8 /* cnonce */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":auth:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* HashA2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 467
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 17 /* combo */
        start local 17 // java.lang.String combo
        25: .line 470
            goto 30
        end local 17 // java.lang.String combo
        26: .line 471
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 11 /* HashA1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 472
            aload 7 /* nonceString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 473
            aload 16 /* HashA2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 471
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 17 /* combo */
        start local 17 // java.lang.String combo
        30: .line 475
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 17 /* combo */
            aconst_null
            aload 14 /* md */
            invokevirtual sun.net.www.protocol.http.DigestAuthentication.encode:(Ljava/lang/String;[CLjava/security/MessageDigest;)Ljava/lang/String;
            astore 18 /* finalHash */
        start local 18 // java.lang.String finalHash
        31: .line 476
            aload 18 /* finalHash */
            areturn
        end local 18 // java.lang.String finalHash
        end local 17 // java.lang.String combo
        end local 16 // java.lang.String HashA2
        end local 15 // java.lang.String A2
        end local 14 // java.security.MessageDigest md
        end local 13 // boolean md5sess
        end local 12 // java.lang.String algorithm
        end local 11 // java.lang.String HashA1
        end local 9 // java.lang.String ncValue
        end local 8 // java.lang.String cnonce
        end local 7 // java.lang.String nonceString
        end local 6 // java.lang.String requestURI
        end local 5 // java.lang.String connMethod
        end local 4 // java.lang.String realm
        end local 3 // char[] password
        end local 2 // java.lang.String userName
        end local 1 // boolean isRequest
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lsun/net/www/protocol/http/DigestAuthentication;
            0   32     1    isRequest  Z
            0   32     2     userName  Ljava/lang/String;
            0   32     3     password  [C
            0   32     4        realm  Ljava/lang/String;
            0   32     5   connMethod  Ljava/lang/String;
            0   32     6   requestURI  Ljava/lang/String;
            0   32     7  nonceString  Ljava/lang/String;
            0   32     8       cnonce  Ljava/lang/String;
            0   32     9      ncValue  Ljava/lang/String;
           11   13    10           A1  Ljava/lang/String;
           15   16    10           A1  Ljava/lang/String;
            7   14    11       HashA1  Ljava/lang/String;
           16   32    11       HashA1  Ljava/lang/String;
            1   32    12    algorithm  Ljava/lang/String;
            2   32    13      md5sess  Z
            5   32    14           md  Ljava/security/MessageDigest;
            9   13    15            s  Ljava/lang/String;
           10   13    16           s1  Ljava/lang/String;
           18   19    15           A2  Ljava/lang/String;
           20   32    15           A2  Ljava/lang/String;
           21   32    16       HashA2  Ljava/lang/String;
           25   26    17        combo  Ljava/lang/String;
           30   32    17        combo  Ljava/lang/String;
           31   32    18    finalHash  Ljava/lang/String;
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
             Name  Flags
      isRequest    
      userName     
      password     
      realm        
      connMethod   
      requestURI   
      nonceString  
      cnonce       
      ncValue      

  private java.lang.String encode(java.lang.String, char[], java.security.MessageDigest);
    descriptor: (Ljava/lang/String;[CLjava/security/MessageDigest;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // sun.net.www.protocol.http.DigestAuthentication this
        start local 1 // java.lang.String src
        start local 2 // char[] passwd
        start local 3 // java.security.MessageDigest md
         0: .line 491
            aload 3 /* md */
            aload 1 /* src */
            ldc "ISO-8859-1"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            invokevirtual java.security.MessageDigest.update:([B)V
         1: .line 492
            goto 4
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
         2: pop
         3: .line 493
            getstatic sun.net.www.protocol.http.DigestAuthentication.$assertionsDisabled:Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 495
      StackMap locals:
      StackMap stack:
            aload 2 /* passwd */
            ifnull 13
         5: .line 496
            aload 2 /* passwd */
            arraylength
            newarray 8
            astore 4 /* passwdBytes */
        start local 4 // byte[] passwdBytes
         6: .line 497
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 498
      StackMap locals: byte[] int
      StackMap stack:
            aload 4 /* passwdBytes */
            iload 5 /* i */
            aload 2 /* passwd */
            iload 5 /* i */
            caload
            i2b
            bastore
         9: .line 497
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 2 /* passwd */
            arraylength
            if_icmplt 8
        end local 5 // int i
        11: .line 499
            aload 3 /* md */
            aload 4 /* passwdBytes */
            invokevirtual java.security.MessageDigest.update:([B)V
        12: .line 500
            aload 4 /* passwdBytes */
            iconst_0
            invokestatic java.util.Arrays.fill:([BB)V
        end local 4 // byte[] passwdBytes
        13: .line 502
      StackMap locals:
      StackMap stack:
            aload 3 /* md */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 4 /* digest */
        start local 4 // byte[] digest
        14: .line 504
            new java.lang.StringBuffer
            dup
            aload 4 /* digest */
            arraylength
            iconst_2
            imul
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 5 /* res */
        start local 5 // java.lang.StringBuffer res
        15: .line 505
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        16: goto 22
        17: .line 506
      StackMap locals: byte[] java.lang.StringBuffer int
      StackMap stack:
            aload 4 /* digest */
            iload 6 /* i */
            baload
            iconst_4
            iushr
            bipush 15
            iand
            istore 7 /* hashchar */
        start local 7 // int hashchar
        18: .line 507
            aload 5 /* res */
            getstatic sun.net.www.protocol.http.DigestAuthentication.charArray:[C
            iload 7 /* hashchar */
            caload
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        19: .line 508
            aload 4 /* digest */
            iload 6 /* i */
            baload
            bipush 15
            iand
            istore 7 /* hashchar */
        20: .line 509
            aload 5 /* res */
            getstatic sun.net.www.protocol.http.DigestAuthentication.charArray:[C
            iload 7 /* hashchar */
            caload
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        end local 7 // int hashchar
        21: .line 505
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 6 /* i */
            aload 4 /* digest */
            arraylength
            if_icmplt 17
        end local 6 // int i
        23: .line 511
            aload 5 /* res */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.StringBuffer res
        end local 4 // byte[] digest
        end local 3 // java.security.MessageDigest md
        end local 2 // char[] passwd
        end local 1 // java.lang.String src
        end local 0 // sun.net.www.protocol.http.DigestAuthentication this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lsun/net/www/protocol/http/DigestAuthentication;
            0   24     1          src  Ljava/lang/String;
            0   24     2       passwd  [C
            0   24     3           md  Ljava/security/MessageDigest;
            6   13     4  passwdBytes  [B
            7   11     5            i  I
           14   24     4       digest  [B
           15   24     5          res  Ljava/lang/StringBuffer;
           16   23     6            i  I
           18   21     7     hashchar  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.UnsupportedEncodingException
    MethodParameters:
        Name  Flags
      src     
      passwd  
      md      
}
SourceFile: "DigestAuthentication.java"
NestMembers:
  sun.net.www.protocol.http.DigestAuthentication$Parameters
InnerClasses:
  Parameters = sun.net.www.protocol.http.DigestAuthentication$Parameters of sun.net.www.protocol.http.DigestAuthentication
  public final TunnelState = sun.net.www.protocol.http.HttpURLConnection$TunnelState of sun.net.www.protocol.http.HttpURLConnection