# Keep all public SDK classes
-keep public class ad.elo.androidsdk.** { public *; }

# Keep GrowlAdView and its methods
-keep class ad.elo.androidsdk.GrowlAdView { *; }

# Keep Moshi-generated adapters for internal API models
-keep class ad.elo.androidsdk.internal.**JsonAdapter { *; }
-keepclassmembers class ad.elo.androidsdk.internal.** {
    <init>(...);
}

# OkHttp rules
-dontwarn okhttp3.**
-dontwarn okio.**
-keep class okhttp3.** { *; }

# Glide rules
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep class * extends com.bumptech.glide.module.AppGlideModule { <init>(...); }
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
  *** rewind();
}

# AndroidSVG rules
-keep class com.caverock.androidsvg.** { *; }

-keepnames class ad.elo.androidsdk.internal.AdCreative
-if class ad.elo.androidsdk.internal.AdCreative
-keep class ad.elo.androidsdk.internal.AdCreativeJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.internal.AdCreative
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.internal.AdCreative {
    public synthetic <init>(java.lang.String,java.lang.String,ad.elo.androidsdk.internal.OfferType,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.List,java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.internal.AdRequest
-if class ad.elo.androidsdk.internal.AdRequest
-keep class ad.elo.androidsdk.internal.AdRequestJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.internal.AdRequest
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.internal.AdRequest {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.List,java.util.List,java.lang.String,ad.elo.androidsdk.internal.ConsentSignals,ad.elo.androidsdk.internal.DeviceSignals,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.internal.ApiChatMessage
-if class ad.elo.androidsdk.internal.ApiChatMessage
-keep class ad.elo.androidsdk.internal.ApiChatMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-keepnames class ad.elo.androidsdk.internal.ApiContextObject
-if class ad.elo.androidsdk.internal.ApiContextObject
-keep class ad.elo.androidsdk.internal.ApiContextObjectJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-keepnames class ad.elo.androidsdk.internal.ConsentSignals
-if class ad.elo.androidsdk.internal.ConsentSignals
-keep class ad.elo.androidsdk.internal.ConsentSignalsJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.internal.ConsentSignals
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.internal.ConsentSignals {
    public synthetic <init>(int,int,java.lang.Integer,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.internal.DeviceExt
-if class ad.elo.androidsdk.internal.DeviceExt
-keep class ad.elo.androidsdk.internal.DeviceExtJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.internal.DeviceExt
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.internal.DeviceExt {
    public synthetic <init>(java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.internal.DeviceGeo
-if class ad.elo.androidsdk.internal.DeviceGeo
-keep class ad.elo.androidsdk.internal.DeviceGeoJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.internal.DeviceGeo
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.internal.DeviceGeo {
    public synthetic <init>(java.lang.Double,java.lang.Double,java.lang.Integer,java.lang.String,java.lang.Integer,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.internal.DeviceSignals
-if class ad.elo.androidsdk.internal.DeviceSignals
-keep class ad.elo.androidsdk.internal.DeviceSignalsJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.internal.DeviceSignals
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.internal.DeviceSignals {
    public synthetic <init>(java.lang.String,ad.elo.androidsdk.internal.DeviceGeo,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Integer,java.lang.Integer,java.lang.Double,java.lang.String,java.lang.Integer,java.lang.Integer,ad.elo.androidsdk.internal.DeviceExt,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.internal.EloStatePayload
-if class ad.elo.androidsdk.internal.EloStatePayload
-keep class ad.elo.androidsdk.internal.EloStatePayloadJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-keepnames class ad.elo.androidsdk.mediation.adapters.DiagnosticsAdRequestPayload
-if class ad.elo.androidsdk.mediation.adapters.DiagnosticsAdRequestPayload
-keep class ad.elo.androidsdk.mediation.adapters.DiagnosticsAdRequestPayloadJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ad.elo.androidsdk.mediation.adapters.DiagnosticsAdRequestPayload
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-keepclassmembers class ad.elo.androidsdk.mediation.adapters.DiagnosticsAdRequestPayload {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.util.List,int,java.util.List,java.lang.String,ad.elo.androidsdk.internal.ConsentSignals,ad.elo.androidsdk.internal.DeviceSignals,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-keepnames class ad.elo.androidsdk.mediation.adapters.DiagnosticsContextObject
-if class ad.elo.androidsdk.mediation.adapters.DiagnosticsContextObject
-keep class ad.elo.androidsdk.mediation.adapters.DiagnosticsContextObjectJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-keepnames class ad.elo.androidsdk.mediation.adapters.DiagnosticsMessage
-if class ad.elo.androidsdk.mediation.adapters.DiagnosticsMessage
-keep class ad.elo.androidsdk.mediation.adapters.DiagnosticsMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
