-keeppackagenames

#Retrofit
-keepattributes Signature, InnerClasses, EnclosingMethod
-keepattributes SourceFile,LineNumberTable
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations

# Retain service method parameters when optimizing.
-keepclassmembers,allowshrinking,allowobfuscation interface * {
    @retrofit2.http.* <methods>;
}

# Ignore JSR 305 annotations for embedding nullability information.
-dontwarn javax.annotation.**

# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath.
-dontwarn kotlin.Unit

# Top-level functions that can only be used by Kotlin.
-dontwarn retrofit2.KotlinExtensions
-dontwarn retrofit2.KotlinExtensions$*

# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>

#-keep class com.authme.lib.ocr.ui.** { *; }
-keep class com.authme.lib.ocr.ui.data.model.Country { *; }
-keep class com.authme.lib.ocr.ui.data.model.Country$Companion { *; }
-keep class com.authme.lib.ocr.ui.data.model.OCROption { *; }
-keep class com.authme.lib.ocr.ui.page.other.OCRSelectorActivity { *; }
-keep class com.authme.lib.ocr.ui.page.ocr.OCRActivity { *; }
-keep class com.authme.lib.ocr.ui.page.ocr.OCRActivity$Companion { *; }
-keep class com.authme.lib.ocr.ui.OCRFactory { *; }
-keep class com.authme.lib.ocr.ui.extension.IntentExtKt { *; }
-keep class com.authme.lib.ocr.ui.extension.ResourcesExtKt { *; }
-keep class com.authme.lib.ocr.ui.extension.LifecycleExtKt { *; }
-keep class com.authme.lib.ocr.ui.extension.AuthmeOcrUI { *; }
-keep class com.authme.lib.ocr.ui.extension.AuthmeOcrUI$Companion { *; }
-keep class com.authme.lib.ocr.ui.extension.AuthmeOcrUIExt { *; }
-keep class com.authme.lib.ocr.ui.extension.OcrLaunchOptions { *; }
-keep class com.authme.lib.ocr.ui.extension.OcrLaunchOptions$Builder { *; }
