package

public open class A {
    public constructor A()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public final fun get(/*0*/ index: kotlin.Int): kotlin.Char
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class B : A, kotlin.CharSequence {
    public constructor B()
    public abstract override /*1*/ /*fake_override*/ val length: kotlin.Int
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public final override /*2*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): kotlin.Char
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public abstract override /*1*/ /*fake_override*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class C : kotlin.collections.CharIterator, I {
    public constructor C()
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public final override /*1*/ /*fake_override*/ fun next(): kotlin.Char
    public open override /*2*/ fun nextChar(): kotlin.Char
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class CC : kotlin.CharSequence, MyCharSequence {
    public constructor CC(/*0*/ s: kotlin.CharSequence)
    public open override /*2*/ /*delegation*/ val length: kotlin.Int
    public final val s: kotlin.CharSequence
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*delegation*/ fun get(/*0*/ index: kotlin.Int): kotlin.Char
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*delegation*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface I {
    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 nextChar(): kotlin.Char
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface MyCharSequence {
    public abstract val length: kotlin.Int
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract operator fun get(/*0*/ index: kotlin.Int): kotlin.Char
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public abstract fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
