@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> concatMapSingle(Function<? super T, ? extends SingleSource<? extends R>> mapper, int prefetch) {
    """
	Maps the upstream items into {@link SingleSource}s and subscribes to them one after the
	other succeeds, emits their success values or terminates immediately if
	either this {@code Observable} or the current inner {@code SingleSource} fail.
	<p>
	<img width="640" height="305" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/concatMap.png" alt="">
	<dl>
	<dt><b>Scheduler:</b></dt>
	<dd>{@code concatMapSingle} does not operate by default on a particular {@link Scheduler}.</dd>
	</dl>
	<p>History: 2.1.11 - experimental
	@param <R> the result type of the inner {@code SingleSource}s
	@param mapper the function called with the upstream item and should return
	a {@code SingleSource} to become the next source to
	be subscribed to
	@param prefetch The number of upstream items to prefetch so that fresh items are
	ready to be mapped when a previous {@code SingleSource} terminates.
	The operator replenishes after half of the prefetch amount has been consumed
	and turned into {@code SingleSource}s.
	@return a new Observable instance
	@see #concatMapSingle(Function)
	@see #concatMapSingleDelayError(Function, boolean, int)
	@since 2.2
    """
        ObjectHelper.requireNonNull(mapper, "mapper is null");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new ObservableConcatMapSingle<T, R>(this, mapper, ErrorMode.IMMEDIATE, prefetch));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> concatMapSingle(Function<? super T, ? extends SingleSource<? extends R>> mapper, int prefetch) {
        ObjectHelper.requireNonNull(mapper, "mapper is null");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new ObservableConcatMapSingle<T, R>(this, mapper, ErrorMode.IMMEDIATE, prefetch));
    }
@ CheckReturnValue @ SchedulerSupport ( SchedulerSupport . NONE ) public final < R > Observable < R > concatMapSingle ( Function < ? super T , ? extends SingleSource < ? extends R > > mapper , int prefetch ) { ObjectHelper . requireNonNull ( mapper , "mapper is null" ) ; ObjectHelper . verifyPositive ( prefetch , "prefetch" ) ; return RxJavaPlugins . onAssembly ( new ObservableConcatMapSingle < T , R > ( this , mapper , ErrorMode . IMMEDIATE , prefetch ) ) ; }
Maps the upstream items into {@link SingleSource}s and subscribes to them one after the
other succeeds, emits their success values or terminates immediately if
either this {@code Observable} or the current inner {@code SingleSource} fail.
<p>
<img width="640" height="305" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/concatMap.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code concatMapSingle} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
<p>History: 2.1.11 - experimental
@param <R> the result type of the inner {@code SingleSource}s
@param mapper the function called with the upstream item and should return
a {@code SingleSource} to become the next source to
be subscribed to
@param prefetch The number of upstream items to prefetch so that fresh items are
ready to be mapped when a previous {@code SingleSource} terminates.
The operator replenishes after half of the prefetch amount has been consumed
and turned into {@code SingleSource}s.
@return a new Observable instance
@see #concatMapSingle(Function)
@see #concatMapSingleDelayError(Function, boolean, int)
@since 2.2
Maps the upstream items into {