code: @Override
  
      public int read() throws IOException {
          int b = in.read();
          if (b != -1) {
              hasher.put((byte) b);
          }
          return b;
      }
docs: Reads the next byte of data from the underlying input stream and updates the hasher with the
  byte read.