anchor.diff:      int nextMsgN = dataMap["msgN"];
       if (lastMsgN != null) {
         if (nextMsgN != lastMsgN + 1) {
  -        if (allowNonSequentialMsgs) {
  -          throw "Non-sequential MsgN in file: $lastMsgN, $nextMsgN";
  +        missingMsgCount += max(nextMsgN - lastMsgN - 1, 0);
  +        if (!allowNonSequentialMsgs || nextMsgN < lastMsgN + 1) {
  +          var exMsg = "Non-sequential MsgN in file: $lastMsgN, $nextMsgN";
  +          lastMsgN = nextMsgN;
  +          throw exMsg;
           }
  -        hasNonSequentialMsgs = true;
         }
       }
       lastMsgN = nextMsgN;
  
positive.code:     if (sink is! StringConversionSink) {
        sink = new StringConversionSink.from(sink);
      }
      return new _LogItemSink(sink, allowNonSequentialMsgs);
    }
  }
  
  
negative.code:   /// if a non sequential block is found.
    bool allowNonSequentialMsgs;
  
    /// The number of missing messages.
    int missingMsgCount = 0;
  
    _LogItemSink(this._sink, this.allowNonSequentialMsgs);
  
  