# Preserve Android / java classes
-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}
-keep class sun.misc.Unsafe { *; }

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

-keepattributes *Annotation*,EnclosingMethod,Signature
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}


-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keepattributes JavascriptInterface
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keep public class android.webkit.JavascriptInterface {}
-keep class androidx.core.app.CoreComponentFactory { *; }

-keepattributes Signature

-keepattributes Annotation
-keep class javax.annotation.** { *; }
-dontwarn javax.annotation.**

-dontnote com.google.gson.**
-dontnote com.google.android.gms.ads.**
-dontnote com.google.android.**
-dontnote com.google.ads.**
#....................................#
-keep class com.huawei.hms.ads.** {*; }
-keep interface com.huawei.hms.ads.** {*; }

#......com.azerion.bluestack.......
-keeppackagenames com.azerion.bluestack.**
# Preserve classes from com.azerion.bluestack
-keep class com.azerion.bluestack.listener.** { *; }
-keep class com.azerion.bluestack.service.** { *; }
-keep class com.azerion.bluestack.util.AdSize { *; }
-keep class com.azerion.bluestack.listener.CriteoBannerListener { *; }
-keep class com.azerion.bluestack.listener.CriteoInterstitialListener { *; }
-keep class com.azerion.bluestack.listener.CriteoNativeAdListener { *; }
-keep class com.azerion.bluestack.util.AssetsType { *; }
-keep class com.azerion.bluestack.util.Frame { *; }
-keep class com.azerion.bluestack.util.Server { *; }
-keep class com.azerion.bluestack.util.StackHB { *; }
-keep class com.azerion.bluestack.util.InfeedFrame { *; }
-keep class com.azerion.bluestack.util.Gender { *; }
-keep class com.azerion.bluestack.util.Preference { *; }
-keep class com.azerion.bluestack.util.PriceType { *; }
-keep class com.azerion.bluestack.util.DisplayType { *; }
-keep class com.azerion.bluestack.util.SDKUtils { *; }
-keep class com.azerion.bluestack.listener.NativeObjectListener { *; }
-keep class com.azerion.bluestack.util.UtilsCmp{ *; }
-keep class com.azerion.bluestack.AdsFactory{ *; }
-keep class com.azerion.bluestack.AdsAdapter{ *; }
-keep class com.azerion.bluestack.NativeObject{ *; }
-keep class com.azerion.bluestack.models.*{ *; }
-keep class com.azerion.bluestack.RewardedVideo { *; }
-keep class com.azerion.bluestack.views.NativeContainer { *; }
-keep class com.azerion.bluestack.enumeration.AdapterInitializationState { *;}
-keep interface com.azerion.bluestack.nativead.NativeAdImpressionListener { *;}
-keep class com.azerion.bluestack.global.Constants {*;}
-keep class com.azerion.bluestack.global.Constants$Message {*;}
-keep class com.azerion.bluestack.global.Constants$DFP {*;}
-keep class com.azerion.bluestack.global.Constants$GdprVendors{*;}
-keep class com.azerion.bluestack.util.Parameter {*;}
-keep class com.azerion.bluestack.util.DebugLog {*;}
-keep interface com.azerion.bluestack.mediation.MediationNativeAdListener {*;}
-keep class com.azerion.bluestack.mediation.MediationAdConfigurationFactory {*;}
-keep interface com.azerion.bluestack.mediation.MediationAdLoadListener {*;}
-keep interface com.azerion.bluestack.mediation.MediationAdListener {*;}
-keep class com.azerion.bluestack.mediation.NativeAdMediationConfiguration {*;}
-keep class com.azerion.bluestack.nativead.NativeAdPreference {*;}
-keep class com.azerion.bluestack.nativead.NativeAdPreference$Companion {*;}
-keep class com.azerion.bluestack.util.DrawableUtils {*;}
-keep interface com.azerion.bluestack.initialization.AdapterInitializer{*;}
-keep class com.azerion.bluestack.mediation.MediationExtras {*;}
-keep class com.azerion.bluestack.mediation.MediationExtras$Companion {*;}
-keep class com.azerion.bluestack.config.AdapterInitConfig {*;}
-keep class com.azerion.bluestack.global.Constants$Criteo{*;}
-keep class com.azerion.bluestack.global.Constants$Fail{*;}
-keep class com.azerion.bluestack.global.Constants$Library{*;}
-keep class com.azerion.bluestack.global.Constants$Tracking{*;}
-keep class com.azerion.bluestack.sdk.perf.request.RequestAdResponse {*;}
-keep class com.azerion.bluestack.sdk.perf.bidding.BiddingResponse {*;}
-keep class com.azerion.bluestack.util.AdSharedPreferences {*;}
-keep class com.azerion.bluestack.util.AdsType{*;}
-keep class com.azerion.bluestack.mediation.PerfAdapter {*;}
-keep class com.azerion.bluestack.global.Constants$OM_SDK {*;}
-keep class com.azerion.bluestack.global.Constants$WebService {*;}
-keep class com.azerion.bluestack.MobileAds{ *; }
-keep class com.azerion.bluestack.RequestOptions{*;}
-keep class com.azerion.bluestack.initialization.SDKInitializationStatus{*;}
-keep class com.azerion.bluestack.initialization.MediationAdapterStatus{*;}
-keep class com.azerion.bluestack.initialization.MediationAdapterStatus$AdapterState{*;}
-keep class com.azerion.bluestack.util.Size{*;}
-keep interface com.azerion.bluestack.initialization.InitializationListener{*;}
-keep interface com.azerion.bluestack.FullScreenAdListener{*;}
-keep class com.azerion.bluestack.error.**{*;}
-keep class com.azerion.bluestack.PrivacySettings{*;}
-keep class com.azerion.bluestack.PrivacySettings$Companion{*;}
# Preserve exposed public API classes
-keep class com.azerion.bluestack.sdk.perf.vast.RequestVast{*;}
-keep class com.azerion.bluestack.sdk.perf.viewability.OMHandler{*;}
-keep class com.azerion.bluestack.sdk.perf.util.AdFormat{*;}
-keep class com.azerion.bluestack.sdk.perf.util.AdPreferences{*;}
-keep class com.azerion.bluestack.sdk.perf.util.PerfUtils { *; }
-keep class com.azerion.bluestack.sdk.perf.util.Gender { *; }
-keep class com.azerion.bluestack.sdk.perf.util.AdAction { *; }
-keep class com.azerion.bluestack.sdk.perf.request.RequestBuilder { *; }
# Banner
-keep interface com.azerion.bluestack.banner.BannerViewListener{*;}
-keep class com.azerion.bluestack.banner.BannerView{*;}
-keep enum com.azerion.bluestack.banner.BannerAdSize{*;}
# Interstitial
-keep interface com.azerion.bluestack.interstitial.InterstitialAdListener{*;}
-keep class com.azerion.bluestack.interstitial.InterstitialAd{*;}
# Rewarded
-keep interface com.azerion.bluestack.rewarded.RewardedAdListener{*;}
-keep class com.azerion.bluestack.rewarded.RewardedAd{*;}
-keep class com.azerion.bluestack.rewarded.Reward{*;}
# Preserve Ad Server classes
-keep class com.azerion.bluestack.sdk.perf.nativead.**{ *; }
-keep class com.azerion.bluestack.sdk.listener.**{ *; }
-keep class com.azerion.bluestack.sdk.perf.listener.**{ *; }
-keep class com.azerion.bluestack.sdk.perf.util.AdSize{ *; }
-keep class com.azerion.bluestack.sdk.perf.view.InAppWebView{ *; }
-keep class com.azerion.bluestack.sdk.perf.interstitial.InterstitialAdActivity{ *; }
-keep class com.azerion.bluestack.sdk.perf.util.IntentFactory{ *; }
-keep class com.azerion.bluestack.sdk.perf.video.VideoPlayerActivity{ *; }
-keep class com.azerion.bluestack.sdk.perf.video.util.VideoSettings { *; }
-keep class com.azerion.bluestack.sdk.perf.banner.AdView { *; }
#....................................#

-keep class **.R$* {
    <fields>;
}


# Preserve GMS classes
-keep class com.google.android.gms.** { *;}
-dontwarn com.google.android.gms.**
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}
#....................................#


# Preserve B4S classes
-keep class com.ezeeworld.b4s.** { *; }
-dontwarn com.ezeeworld.b4s.**
-dontwarn retrofit2.**
-dontwarn com.fasterxml.**
#....................................#


# Preserve Amazon classes
-keep class com.amazon.** { *; }
-dontwarn com.amazon.**
#....................................#


# Preserve Flurry classes
-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
#....................................#


# Preserve Smart Ad server classes
-keepclassmembers class com.smartadserver.android.library.** {
    @android.webkit.JavascriptInterface <methods>;
}
-keep class com.smartadserver.** { *; }
-dontwarn com.smartadserver.**
#....................................#


# Preserve Facebook classes
-keep class com.facebook.** { *; }
-dontwarn com.facebook.**
#....................................#


# Preserve Umoove classes
-keep class com.umoove.all.**{ *; }
-dontwarn com.umoove.all.**
#....................................#


# Preserve Presage classes
-dontnote io.presage.**
-dontwarn shared_presage.**
-dontwarn org.codehaus.**

-keepattributes Signature

-keep class shared_presage.** { *; }
-keep class io.presage.** { *; }
-keepclassmembers class io.presage.** {
 *;
}

# ---- MOAT

-keep class com.moat.** { *; }
-dontwarn com.moat.**

# ---- OKHTTP
-dontnote okhttp3.**
-dontnote okio.**
-dontwarn okhttp3.**
-dontwarn okio.**

-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault

-dontnote sun.misc.Unsafe
-dontnote android.net.http.*

-dontnote org.apache.commons.codec.**
-dontnote org.apache.http.**

-dontwarn org.apache.commons.collections.BeanMap
-dontwarn java.beans.**
#....................................#


# Preserve Mopub classes
-keep class com.mopub.mobileads.MoPubView { *; }

-keepclassmembers class com.mopub.** { public *; }
-keep public class com.mopub.**
#....................................#

-keep class com.google.android.gms.common.GooglePlayServicesUtil {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}


# Preserve AdColony classes
-keepclassmembers class com.adcolony.sdk.ADCNative** {
    *;
 }
-keep class com.adcolony.sdk** {
    *;
 }
#....................................#

# Preserve OM SDK classes
-keep class com.iab.omid** {
    *;
}
#....................................#

# Preserve Data location SDK classes
-keep class com.madvertiselocation {
    *;
}

-dontwarn java.lang.invoke.StringConcatFactory


