public override int Read() { if (pos == used) { rawUsed = stm.Read(rawBuffer, 0, rawBuffer.Length); rawPos = 0; if (rawUsed == 0) return EOF; DecodeBlock(); } if (pos < used) return m_buffer[pos++]; return -1; }