package

public fun </*0*/ E : kotlin.Number, /*1*/ R : One<E>> foo(): E where E : One<R>
public fun main(): kotlin.Unit
public fun </*0*/ E : Entity<kotlin.Int>, /*1*/ R : SecuredEntity<E>> SecurityCodeAware<E, R>.secured(): R where E : SecurityCodeAware<E, R>

public interface Entity</*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 One</*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 final class Order : Entity<kotlin.Int> {
    public constructor Order()
    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 SecuredEntity</*0*/ out E : Entity<kotlin.Int>> where E : SecurityCodeAware<*, *> {
    public constructor SecuredEntity</*0*/ out E : Entity<kotlin.Int>>(/*0*/ entity: E) where E : SecurityCodeAware<*, *>
    public final val entity: E
    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 SecuredOrder : SecuredEntity<Order> {
    public constructor SecuredOrder(/*0*/ order: Order)
    public final override /*1*/ /*fake_override*/ val entity: Order
    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 SecurityCodeAware</*0*/ out E : Entity<kotlin.Int>, /*1*/ R : SecuredEntity<E>> where E : SecurityCodeAware<E, R> {
    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
}
