docs: @Override
      public int read(byte[] out) throws IOException {
          int i, off = 0;
          while (off < out.length && (i = in.read(out, off, out.length - off)) > 0) {
              off += i;
          }
          return off;
      }