anchor.diff:        _buffer = new Uint8List(SIZE);
         length = 0;
         flushedLength += SIZE;
  +    }
  +  }
  +
  +  void addByte2(int byte1, int byte2) {
  +    if (length < SAFE_SIZE) {
  +      _buffer[length++] = byte1;
  +      _buffer[length++] = byte2;
  +    } else {
  +      addByte(byte1);
  +      addByte(byte2);
  +    }
  +  }
  +
  +  void addByte4(int byte1, int byte2, int byte3, int byte4) {
  +    if (length < SAFE_SIZE) {
  +      _buffer[length++] = byte1;
  +      _buffer[length++] = byte2;
  +      _buffer[length++] = byte3;
  +      _buffer[length++] = byte4;
  +    } else {
  +      addByte(byte1);
  +      addByte(byte2);
  +      addByte(byte3);
  +      addByte(byte4);
       }
     }
   
  
positive.code: /// Puts a buffer in front of a [Sink<List<int>>].
  class BufferedSink {
    static const int SIZE = 100000;
    static const int SMALL = 10000;
    final Sink<List<int>> _sink;
    Uint8List _buffer = new Uint8List(SIZE);
  
negative.code:   void writeUInt30(int value) {
      assert(value >= 0 && value >> 30 == 0);
      if (value < 0x80) {
        _sink.addByte(value);
      } else if (value < 0x4000) {
        _sink.addByte2((value >> 8) | 0x80, value & 0xFF);
      } else {
        _sink.addByte4((value >> 24) | 0xC0, (value >> 16) & 0xFF,
            (value >> 8) & 0xFF, value & 0xFF);
      }
    }
  
    void writeUInt32(int value) {
      _sink.addByte4((value >> 24) & 0xFF, (value >> 16) & 0xFF,
          (value >> 8) & 0xFF, value & 0xFF);
    }
  
    void writeByteList(List<int> utf8Bytes) {
  