package

public final class CAny : IAny {
    public constructor CAny()
    public open override /*1*/ val foo: kotlin.Any
    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 final class CGeneric</*0*/ T> : IGeneric<T> {
    public constructor CGeneric</*0*/ T>()
    public open override /*1*/ val foo: 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 final class CInt : IInt {
    public constructor CInt()
    public open override /*1*/ val foo: kotlin.Int
    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 final class CStr : IStr {
    public constructor CStr()
    public open override /*1*/ val foo: kotlin.String
    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 IAny {
    public abstract val foo: kotlin.Any
    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 IGeneric</*0*/ T> {
    public abstract val foo: 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 IInt {
    public abstract val foo: kotlin.Int
    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 IStr {
    public abstract val foo: kotlin.String
    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 abstract class Test1 : IStr, IInt {
    public constructor Test1()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test10 : IInt, IStr, IAny {
    public constructor Test10()
    public open override /*3*/ /*delegation*/ val foo: kotlin.Int
    public open override /*3*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*3*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*3*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test11 : IInt, IStr, IAny {
    public constructor Test11()
    public open override /*3*/ /*delegation*/ val foo: kotlin.String
    public open override /*3*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*3*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*3*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test12 : IInt, IStr, IAny {
    public constructor Test12()
    public open override /*3*/ /*delegation*/ val foo: kotlin.Any
    public open override /*3*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*3*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*3*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test2 : IStr, IInt {
    public constructor Test2()
    public open override /*2*/ /*delegation*/ val foo: kotlin.Int
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test3 : IStr, IInt {
    public constructor Test3()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test4 : IStr, IGeneric<kotlin.String> {
    public constructor Test4()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test5 : IStr, IGeneric<kotlin.Any> {
    public constructor Test5()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test6 : IStr, IGeneric<kotlin.Int> {
    public constructor Test6()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test7 : IGeneric<kotlin.String>, IStr {
    public constructor Test7()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class Test8 : IGeneric<kotlin.String>, IInt {
    public constructor Test8()
    public open override /*2*/ /*delegation*/ val foo: kotlin.String
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
