package

public interface In</*0*/ in T> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface Inv</*0*/ T> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface Out</*0*/ out T> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface Pair</*0*/ out X, /*1*/ out Y> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
    public abstract fun Ok10(/*0*/ i: I): kotlin.Unit
    public abstract fun Ok11(/*0*/ i: In<O>): kotlin.Unit
    public abstract fun Ok12(/*0*/ i: In<In<I>>): kotlin.Unit
    public abstract fun Ok13(/*0*/ i: Out<I>): kotlin.Unit
    public abstract fun Ok14(/*0*/ i: Pair<In<O>, I>): kotlin.Unit
    public abstract fun Ok15(/*0*/ i: Inv<out I>): kotlin.Unit
    public abstract fun Ok20(/*0*/ i: Inv<in O>): kotlin.Unit
    public abstract fun Ok21(/*0*/ i: Inv<in P>): kotlin.Unit
    public abstract fun Ok22(/*0*/ i: Inv<out I>): kotlin.Unit
    public abstract fun Ok23(/*0*/ i: Inv<out P>): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public abstract fun neOk1(/*0*/ i: O): kotlin.Unit
    public abstract fun neOk10(/*0*/ i: Out<O>): kotlin.Unit
    public abstract fun neOk11(/*0*/ i: Inv<in I>): kotlin.Unit
    public abstract fun neOk12(/*0*/ i: Inv<out O>): kotlin.Unit
    public abstract fun neOk2(/*0*/ i: In<I>): kotlin.Unit
    public abstract fun neOk3(/*0*/ i: In<In<O>>): kotlin.Unit
    public abstract fun neOk30(/*0*/ i: [Error type: Type for error type constructor (Pair)]<O>): kotlin.Unit
    public abstract fun neOk31(/*0*/ i: Pair<O, [Error type: Type for error type constructor (Inv)]>): kotlin.Unit
    public abstract fun neOk32(/*0*/ i: [Error type: Type for error type constructor (Inv)]): kotlin.Unit
    public abstract fun neOk33(/*0*/ i: Inv<[Error type: No type specified for unknown element]>): kotlin.Unit
    public abstract fun neOk34(/*0*/ i: Inv<[Error type: Unresolved type for C]>): kotlin.Unit
    public abstract fun neOk35(/*0*/ i: [Error type: Type for error type constructor (Inv)]<P, P>): kotlin.Unit
    public abstract fun neOk4(/*0*/ i: Inv<I>): kotlin.Unit
    public abstract fun neOk5(/*0*/ i: Inv<O>): kotlin.Unit
    public abstract fun neOk6(/*0*/ i: In<In<O>>): kotlin.Unit
    public abstract fun neOk7(/*0*/ i: Pair<In<I>, O>): kotlin.Unit
    public abstract fun neOk8(/*0*/ i: Inv<out O>): kotlin.Unit
    public abstract fun neOk9(/*0*/ i: In<out P>): kotlin.Unit
    public abstract fun ok1(/*0*/ i: I): kotlin.Unit
    public abstract fun ok2(/*0*/ i: In<O>): kotlin.Unit
    public abstract fun ok3(/*0*/ i: In<In<I>>): kotlin.Unit
    public abstract fun ok4(/*0*/ i: Inv<P>): kotlin.Unit
    public abstract fun ok5(/*0*/ i: P): kotlin.Unit
    public abstract fun ok6(/*0*/ i: Out<I>): kotlin.Unit
    public abstract fun ok7(/*0*/ i: Out<Out<I>>): kotlin.Unit
    public abstract fun ok8(/*0*/ i: Out<In<O>>): kotlin.Unit
    public abstract fun ok9(/*0*/ i: Out<In<P>>): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
