public ulong GetULong(uint offset)
{
ulong value = data[offset++];
value += (uint)(data[offset++] << 8);
value += (uint)(data[offset++] << 16);
value += (uint)(data[offset++] << 24);
value += (uint)(data[offset++] << 32);
value += (uint)(data[offset++] << 40);
value += (uint)(data[offset++] << 48);
value += (uint)(data[offset++] << 56);
return value;
}