anchor.diff:      return cr;
     }
   
  -  _ProxyCredentials _findProxyCredentials(_Proxy proxy) {
  +  _ProxyCredentials _findProxyCredentials(_Proxy proxy,
  +                                          [_AuthenticationScheme scheme]) {
       // Look for credentials.
       var it = _proxyCredentials.iterator;
       while (it.moveNext()) {
  -      if (it.current.applies(proxy, _AuthenticationScheme.BASIC)) {
  +      if (it.current.applies(proxy, scheme)) {
           return it.current;
         }
       }
  
positive.code:             cr.nonceCount = 0;
            }
            // Credentials where found, prepare for retrying the request.
            return retryWithCredentials(cr);
          } else if (header.parameters["stale"] != null &&
                     header.parameters["stale"].toLowerCase() == "true") {
            // If stale is true retry with new nonce.
            cr.nonce = header.parameters["nonce"];
            // Credentials where found, prepare for retrying the request.
            return retryWithCredentials(cr);
          }
        }
      }
  
negative.code:   : super(creds, realm);
  
    bool applies(_Proxy proxy, _AuthenticationScheme scheme) {
      if (scheme != null && credentials.scheme != scheme) return false;
      return proxy.host == host && proxy.port == port;
    }
  
  