/**
 * public final annotation class Anno : kotlin/Annotation {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface Anno {
}

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


/**
 * public final class Bar : kotlin/Any {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // field: a:Ljava/lang/String;
 *   // getter: getA()Ljava/lang/String;
 *   // synthetic method for annotations: getA$annotations()V
 *   public final val a: kotlin/String (* = ... *)
 *     public final get
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class Bar {
    @FieldAnno()
    @org.jetbrains.annotations.NotNull()
    private final java.lang.String a = "";

    public Bar() {
        super();
    }

    @org.jetbrains.annotations.NotNull()
    public final java.lang.String getA() {
        return null;
    }

    @PropertyAnno()
    @Anno()
    @java.lang.Deprecated()
    public static void getA$annotations() {
    }
}

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


/**
 * public final class Baz : kotlin/Any {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // field: a:Ljava/lang/String;
 *   // synthetic method for annotations: getA$annotations()V
 *   public final val a: kotlin/String (* = ... *)
 *     public final get
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class Baz {
    @FieldAnno()
    @kotlin.jvm.JvmField()
    @org.jetbrains.annotations.NotNull()
    public final java.lang.String a = "";

    public Baz() {
        super();
    }

    @Anno()
    @java.lang.Deprecated()
    public static void getA$annotations() {
    }
}

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


/**
 * public final annotation class FieldAnno : kotlin/Annotation {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.FIELD})
@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.FIELD})
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface FieldAnno {
}

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


/**
 * public final class Foo : kotlin/Any {
 *
 *   // signature: <init>(Ljava/lang/String;)V
 *   public constructor(a: kotlin/String)
 *
 *   // field: a:Ljava/lang/String;
 *   // getter: getA()Ljava/lang/String;
 *   // synthetic method for annotations: getA$annotations()V
 *   public final val a: kotlin/String
 *     public final get
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public final class Foo {
    @FieldAnno()
    @org.jetbrains.annotations.NotNull()
    private final java.lang.String a = null;

    public Foo(@ParameterAnno()
    @Anno()
    @org.jetbrains.annotations.NotNull()
    java.lang.String a) {
        super();
    }

    @org.jetbrains.annotations.NotNull()
    public final java.lang.String getA() {
        return null;
    }

    @PropertyAnno()
    @java.lang.Deprecated()
    public static void getA$annotations() {
    }
}

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


/**
 * public final annotation class ParameterAnno : kotlin/Annotation {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.VALUE_PARAMETER})
@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.PARAMETER})
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface ParameterAnno {
}

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


/**
 * public final annotation class PropertyAnno : kotlin/Annotation {
 *
 *   // signature: <init>()V
 *   public constructor()
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.PROPERTY})
@java.lang.annotation.Target(value = {})
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface PropertyAnno {
}
