OpenZeppelin fixed this five years ago and your code still has it, why
Two functions Solidity provides two encoding functions for preparing data before hashing. abi.encode pads every argument to a full 32 bytes with zero-fill. abi.encodePacked concatenates raw bytes with …