public final TYPE_1 METHOD_1 ( TYPE_1 VAR_1 , int start , int end ) { if ( start < 0 ) { throw new TYPE_2 ( ( STRING_1 + start ) ) ; } if ( end > ( length ( VAR_1 ) ) ) { throw new TYPE_2 ( java.lang.String.format ( STRING_2 , end , length ( VAR_1 ) ) ) ; } return VAR_1 == ( VAR_2 ) ? VAR_2 : METHOD_2 ( VAR_1 , start , end ) ; }

public final TYPE_1 METHOD_1 ( TYPE_1 VAR_1 , int start , int end ) { if ( start < 0 ) { throw new TYPE_2 ( ( STRING_1 + start ) ) ; } if ( end > ( length ( VAR_1 ) ) ) { throw new TYPE_2 ( java.lang.String.format ( STRING_2 , end , length ( VAR_1 ) ) ) ; } if ( ( VAR_1 == ( VAR_2 ) ) || ( start == end ) ) { return VAR_2 ; } return METHOD_2 ( VAR_1 , start , end ) ; }
