package

package test_visibility {
    internal val internal_val: kotlin.Int = 34
    private val private_val: kotlin.Int = 4
    protected val protected_val: kotlin.Int = 4
    internal fun doSmth(/*0*/ i: kotlin.Int): kotlin.Int
    internal fun internal_fun(): kotlin.Unit
    private fun private_fun(): kotlin.Unit
    protected fun protected_fun(): kotlin.Unit
    internal fun test1(): kotlin.Unit
    internal fun test3(/*0*/ a: test_visibility.A): kotlin.Unit
    internal fun test4(/*0*/ c: test_visibility.C): kotlin.Unit

    internal final class A {
        public constructor A()
        private final val i: kotlin.Int = 23
        private final val v: test_visibility.B
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        private final fun f(/*0*/ i: kotlin.Int): test_visibility.B
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        internal final fun test(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    internal final class B {
        public constructor B()
        internal final fun bMethod(): 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    internal open class C : test_visibility.T {
        public constructor C()
        protected final var i: 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
        internal final fun test5(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    internal final class D : test_visibility.C {
        public constructor D()
        protected final override /*1*/ /*fake_override*/ var i: kotlin.Int
        internal final val j: 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
        internal final override /*1*/ /*fake_override*/ fun test5(): kotlin.Unit
        internal final fun test6(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    internal final class E : test_visibility.C {
        public constructor E()
        protected final override /*1*/ /*fake_override*/ var i: 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
        internal final override /*1*/ /*fake_override*/ fun test5(): kotlin.Unit
        internal final fun test7(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    internal final class F : test_visibility.C {
        public constructor F()
        protected final override /*1*/ /*fake_override*/ var i: 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
        internal final override /*1*/ /*fake_override*/ fun test5(): kotlin.Unit
        internal final fun test8(/*0*/ c: test_visibility.C): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    internal final class G : test_visibility.T {
        public constructor G()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        internal final fun test8(/*0*/ c: test_visibility.C): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    protected final class ProtectedClass {
        public constructor ProtectedClass()
        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
    }

    protected interface ProtectedTrait {
        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
    }

    internal interface 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
    }

    internal final class Y {
        public constructor 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
        internal final fun test2(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}

package test_visibility2 {
    internal fun test(): kotlin.Unit
}
