public static ulong ReadUInt64(this byte[] buffer, int offset)
{
ulong value = 0;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
value <<= 8;
value |= buffer[offset++];
return value;
}