question: static long readVarLong ( InputStream in ) throws IOException { long x = in . read ( ) ; if ( x < 0 ) { throw new EOFException ( ) ; } x = ( byte ) x ; if ( x >= 0 ) { return x ; } x &= 0x7f ; for ( int s = 7 ; s < 64 ; s += 7 ) { long b = in . read ( ) ; if ( b < 0 ) { throw new EOFException ( ) ; } b = ( byte ) b ; x |= ( b & 0x7f ) << s ; if ( b >= 0 ) { break ; } } return x ; }
target:  Read a variable size long value.