import java.util.List;
import java.util.function.Function;
class Test {
interface Mapper<T, U extends MapperProvider<U>> extends Function<T, List<U>> {}
interface MapperProvider<V> {
Mapper<V, ?> provide();
}
private <V extends MapperProvider<V>> void use(V c) {
use2(c.provide().apply(c));
}
private <W extends MapperProvider<W>> void use2(List<W> c) {
}
}
aW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLmZ1bmN0aW9uLkZ1bmN0aW9uOwogCmNsYXNzIFRlc3QgewogICAgaW50ZXJmYWNlIE1hcHBlcjxULCBVIGV4dGVuZHMgTWFwcGVyUHJvdmlkZXI8VT4+IGV4dGVuZHMgRnVuY3Rpb248VCwgTGlzdDxVPj4ge30KIAogICAgaW50ZXJmYWNlIE1hcHBlclByb3ZpZGVyPFY+IHsKICAgIAlNYXBwZXI8ViwgPz4gcHJvdmlkZSgpOwogICAgfQogCiAgICBwcml2YXRlIDxWIGV4dGVuZHMgTWFwcGVyUHJvdmlkZXI8Vj4+IHZvaWQgdXNlKFYgYykgewogICAgCXVzZTIoYy5wcm92aWRlKCkuYXBwbHkoYykpOwogICAgfQogCiAgICBwcml2YXRlIDxXIGV4dGVuZHMgTWFwcGVyUHJvdmlkZXI8Vz4+IHZvaWQgdXNlMihMaXN0PFc+IGMpIHsKICAgIH0KfQ==