code: function LocalSeqManager(maximumUpdateInterval,
                           remotePouchDB, ourPublicKey) {
    this._maximumUpdateInterval = maximumUpdateInterval;
    this._remotePouchDB = remotePouchDB;
  
    var outBase64PublicKeyHash =
      urlSafeBase64.encode(ourPublicKey);
  
    this._localId = '_local/' + thaliConfig.LOCAL_SEQ_POINT_PREFIX +
          outBase64PublicKeyHash;
  
    this._lastUpdateTime = 0;
    this._stopCalled = false;
  
    this._cancelTimeoutToken = null;
    this._timerPromise = null;
    this._timerReject = null;
    this._seqDocRev = null;
  
    // We use this to serialize requests so we don't have puts trying to run
    // over each other's revs and causing update failures
    this._currentUpdateRequest = Promise.resolve();
    this._blockedUpdateRequest = null;
    this._nextSeqValueToSend = -1;
  }
docs: Handles updating the remote sequence number for Thali's distributed
  replication protocol, see
  http://thaliproject.org/ReplicationAcrossDiscoveryProtocol/
  for details.
  @param {number} maximumUpdateInterval Number of miliseconds to wait before
  sending another update
  @param {PouchDB} remotePouchDB The PouchDB object we should use to access
  the remote peer
  @param {Buffer} ourPublicKey The buffer containing our ECDH public key
  @constructor