/**
 * public final class B : kotlin/Any {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class B {

    public B() {
        super();
    }
}

////////////////////


/**
 * public final object BParceler : Parceler<B> {
 *
 *   // signature: <init>()V
 *   private constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class BParceler implements Parceler<B> {
    @org.jetbrains.annotations.NotNull()
    public static final BParceler INSTANCE = null;

    private BParceler() {
        super();
    }
}

////////////////////


/**
 * public final class C : kotlin/Any {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class C {

    public C() {
        super();
    }
}

////////////////////


/**
 * public final object CParceler : Parceler<C> {
 *
 *   // signature: <init>()V
 *   private constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class CParceler implements Parceler<C> {
    @org.jetbrains.annotations.NotNull()
    public static final CParceler INSTANCE = null;

    private CParceler() {
        super();
    }
}

////////////////////


/**
 * public abstract interface Parceler<T#0 (* T *)> : kotlin/Any {
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public abstract interface Parceler<T extends java.lang.Object> {
}

////////////////////


/**
 * public final class Test : kotlin/Any {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
@TypeParceler()
@TypeParceler()
public final class Test {

    public Test() {
        super();
    }
}

////////////////////


/**
 * public final annotation class TypeParceler<T#0 (* T *), T#1 (* P *) : Parceler<in T#0>> : kotlin/Annotation {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE)
@kotlin.annotation.Repeatable()
@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.PROPERTY})
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
@java.lang.annotation.Repeatable(value = TypeParceler.Container.class)
@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE})
public abstract @interface TypeParceler<T extends java.lang.Object, P extends Parceler<? super T>> {

    /**
     * public final annotation class TypeParceler<T#0 (* T *), T#1 (* P *) : Parceler<in T#0>> : kotlin/Annotation {
     *
     *   // signature: <init>()V
     *   public constructor()
     *
     *   // module name: main
     * }
     */
    @kotlin.Metadata()
    @kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE)
    @kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.PROPERTY})
    @kotlin.jvm.internal.RepeatableContainer()
    @java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
    @java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE})
    public static abstract @interface Container {

        public abstract TypeParceler[] value();
    }
}
