src/main/java/io/reactivex/internal/operators/observable/ObservableReplay.java
public static <U, R> Observable<R> multicastSelector(
            final Callable<? extends ConnectableObservable<U>> connectableFactory,
            final Function<? super Observable<U>, ? extends ObservableSource<R>> selector) {
        return RxJavaPlugins.onAssembly(new MulticastReplay<R, U>(connectableFactory, selector));
    }
public static <U, R> Observable<R> multicastSelector(
            final Callable<? extends ConnectableObservable<U>> connectableFactory,
            final Function<? super Observable<U>, ? extends ObservableSource<R>> selector) {
        return RxJavaPlugins.onAssembly(new MulticastReplay<R, U>(connectableFactory, selector));
    }
Given a connectable observable factory, it multicasts over the generated
ConnectableObservable via a selector function.
@param <U> the value type of the ConnectableObservable
@param <R> the result value type
@param connectableFactory the factory that returns a ConnectableObservable for each individual subscriber
@param selector the function that receives an Observable and should return another Observable that will be subscribed to
@return the new Observable instance