docs: public int expectUInt16() throws IOException {
          int b1 = in.read();
          if (b1 < 0) {
              throw new IOException("Missing byte 1 to expected uint16");
          }
          int b2 = in.read();
          if (b2 < 0) {
              throw new IOException("Missing byte 2 to expected uint16");
          }
          return unshift2bytes(b1, b2);
      }