
 
        Reads uncompressed data into an array of bytes. If 
len is not
 zero, the method will block until some input can be decompressed; otherwise,
 no bytes are read and 
0 is returned.
        
        
Returns:
    the actual number of bytes read, or -1 if the end of the
		compressed input stream is reached 
Parameters:
 - 
buf - the buffer into which the data is read
 - 
off - the start offset in the destination array 
b
 - 
len - the maximum number of bytes read
Throws:
  - 
NullPointerException - If 
buf is 
null.
  - 
IndexOutOfBoundsException - If 
off is negative, 
 
len is negative, or 
len is greater than 
 
buf.length - off
  - 
IOException - if an I/O error has occurred or the compressed
			      input data is corrupt