There is a bug where negative 33-bit ints (sign bit + 32-bit number) are serialized correctly but when reading the number, the value is truncated to 32-bits including the sign bit.
This effectively removes truncates one bit out of all 33-bit negative numbers (33-bit including sign bit)
P.s. you can run the added tests without the change and you'll see a few failing.
There is a bug where negative 33-bit ints (sign bit + 32-bit number) are serialized correctly but when reading the number, the value is truncated to 32-bits including the sign bit.
This effectively removes truncates one bit out of all 33-bit negative numbers (33-bit including sign bit)
P.s. you can run the added tests without the change and you'll see a few failing.