@SuppressWarnings("unchecked")
    @Override
    public GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeType> clone() {
        try {
            GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeType> clone =
                    (GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeType>) super.clone();
            clone.loadProvider = loadProvider != null ? loadProvider.clone() : null;
            return clone;
        } catch (CloneNotSupportedException e) {
            throw new RuntimeException(e);
        }
    }
Returns a copy of this request builder with all of the options set so far on this builder.

<p>
    This method returns a "deep" copy in that all non-immutable arguments are copied such that changes to one
    builder will not affect the other builder. However, in addition to immutable arguments, the current model
    is not copied copied so changes to the model will affect both builders.
</p>
core/src/main/java/com/bumptech/glide/GenericRequestBuilder.java