text: public override int FillFields(byte[] data, int offset,IEscherRecordFactory recordFactory){int bytesRemaining = ReadHeader(data, offset);int pos = offset + 8;field_1_blipTypeWin32 = data[pos];field_2_blipTypeMacOS = data[pos + 1];field_3_uid = new byte[16];Array.Copy(data, pos + 2, field_3_uid, 0, 16);field_4_tag = LittleEndian.GetShort(data, pos + 18);field_5_size = LittleEndian.GetInt(data, pos + 20);field_6_ref = LittleEndian.GetInt(data, pos + 24);field_7_offset = LittleEndian.GetInt(data, pos + 28);field_8_usage = data[pos + 32];field_9_name = data[pos + 33];field_10_unused2 = data[pos + 34];field_11_unused3 = data[pos + 35];bytesRemaining -= 36;int bytesRead = 0;if (bytesRemaining > 0){field_12_blipRecord = (EscherBlipRecord)recordFactory.CreateRecord(data, pos + 36);bytesRead = field_12_blipRecord.FillFields(data, pos + 36, recordFactory);}pos += 36 + bytesRead;bytesRemaining -= bytesRead;_remainingData = new byte[bytesRemaining];Array.Copy(data, pos, _remainingData, 0, bytesRemaining);return bytesRemaining + 8 + 36 + (field_12_blipRecord == null ? 0 : field_12_blipRecord.RecordSize);}