docs: @Override
    public long readLong() throws IOException {
      readFully(work, 0, 8);
      return
          (((long) work[0]) & 0xffL) |
          (((long) work[1]) & 0xffL) << 8 |
          (((long) work[2]) & 0xffL) << 16 |
          (((long) work[3]) & 0xffL) << 24 |
          (((long) work[4]) & 0xffL) << 32 |
          (((long) work[5]) & 0xffL) << 40 |
          (((long) work[6]) & 0xffL) << 48 |
          (((long) work[7]) & 0xffL) << 56;
    }