anchor.diff:          if (buf.length == message_size) {
             // All bytes have been processed
             buf = null; // force do-while loop to exit
  +          loggerRecvBytes.finest("all bytes parsed");
           } else {
             // Still some bytes unprocessed: leave for next iteration of do-while loop
             buf =
                 new Uint8List.view(buf.buffer, buf.offsetInBytes + message_size);
  +          loggerRecvBytes.finest("remaining to parse: ${buf.length}");
           }
         } else {
           // Insufficient data for a complete ASN1 object.
   
           leftover = buf; // save bytes until more data arrives
           buf = null; // force do-while loop to exit
  +
  +        loggerRecvBytes.finest("wait for more, leftover: {leftover.length} bytes");
         }
       } while (buf != null);
   
  
positive.code:           "Bytes received: ${data.length} (+${leftover.length} leftover)");
      }
  
      if (Level.FINEST <= loggerRecvBytes.level) {
        // If statement prevents this potentially computationally expensive
        // code to be executed if it is not needed.
        loggerRecvBytes.finest("Bytes received: ${data}");
  
negative.code: 
      do {
        // Try to determine the length of the next ASN1 object
  
        assert(buf != null);
  
        var value_size = null; // null if insufficient bytes to determine length
        var length_size; // number of bytes used by length field
  