导航菜单

应用安全检测报告

应用安全检测报告,支持文件搜索、内容检索和AI代码分析

移动应用安全检测报告

应用图标

Betterhalf.ai v5.1.1

Android APK dcface83...
48
安全评分

安全基线评分

48/100

中风险

综合风险等级

风险等级评定
  1. A
  2. B
  3. C
  4. F

应用存在一定安全风险,建议优化

漏洞与安全项分布

5 高危
25 中危
5 信息
3 安全

隐私风险评估

7
第三方跟踪器

高隐私风险
检测到大量第三方跟踪器


检测结果分布

高危安全漏洞 5
中危安全漏洞 25
安全提示信息 5
已通过安全项 3
重点安全关注 0

高危安全漏洞 如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击

如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#static-analysis-7

Files:
com/clevertap/android/sdk/inapp/CTInAppBaseFullHtmlFragment.java, line(s) 162,10,11
com/clevertap/android/sdk/inapp/CTInAppBasePartialHtmlFragment.java, line(s) 171,14,15
com/razorpay/B$$W$.java, line(s) 292,297,14,15
com/razorpay/CheckoutActivity.java, line(s) 50,5
com/reactnativecommunity/webview/RNCWebViewManagerImpl.java, line(s) 446,17
in/juspay/hypersdk/core/DynamicUI.java, line(s) 134,364,9
in/juspay/hypersdk/safe/JuspayWebView.java, line(s) 75,9,10

高危安全漏洞 该文件是World Writable。任何应用程序都可以写入文件

该文件是World Writable。任何应用程序都可以写入文件
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#testing-local-storage-for-sensitive-data-mstg-storage-1-and-mstg-storage-2

Files:
in/juspay/hypersdk/core/AndroidInterface.java, line(s) 798
in/juspay/hypersdk/data/KeyValueStore.java, line(s) 13

高危安全漏洞 该文件是World Readable。任何应用程序都可以读取文件

该文件是World Readable。任何应用程序都可以读取文件
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#testing-local-storage-for-sensitive-data-mstg-storage-1-and-mstg-storage-2

Files:
com/appsflyer/internal/AFb1tSDK.java, line(s) 2319

高危安全漏洞 应用程序使用带PKCS5/PKCS7填充的加密模式CBC。此配置容易受到填充oracle攻击。

应用程序使用带PKCS5/PKCS7填充的加密模式CBC。此配置容易受到填充oracle攻击。
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
com/clevertap/android/sdk/cryption/AESCrypt.java, line(s) 94

高危安全漏洞 应用程序包含隐私跟踪程序

此应用程序有多个7隐私跟踪程序。跟踪器可以跟踪设备或用户,是终端用户的隐私问题。

中危安全漏洞 Service (com.clevertap.android.sdk.pushnotification.fcm.FcmMessageListenerService) 未受保护。

[android:exported=true]
检测到  Service 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Activity (com.facebook.CustomTabActivity) 未受保护。

[android:exported=true]
检测到  Activity 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Broadcast Receiver (com.clevertap.android.sdk.pushnotification.fcm.CTFirebaseMessagingReceiver) 受权限保护,但应检查权限保护级别。

Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
检测到  Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Broadcast Receiver (io.invertase.firebase.messaging.ReactNativeFirebaseMessagingReceiver) 受权限保护,但应检查权限保护级别。

Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
检测到  Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Content Provider (expo.modules.clipboard.ClipboardFileProvider) 未受保护。

[android:exported=true]
检测到  Content Provider 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Activity (com.canhub.cropper.CropImageActivity) 未受保护。

[android:exported=true]
检测到  Activity 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护,但应检查权限保护级别。

Permission: android.permission.BIND_JOB_SERVICE [android:exported=true]
检测到  Service 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护,但应检查权限保护级别。

Permission: android.permission.DUMP [android:exported=true]
检测到  Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Broadcast Receiver (com.google.firebase.iid.FirebaseInstanceIdReceiver) 受权限保护,但应检查权限保护级别。

Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
检测到  Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Activity (in.juspay.hypersdk.core.CustomtabResult) 未受保护。

[android:exported=true]
检测到  Activity 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Broadcast Receiver (com.razorpay.RzpTokenReceiver) 未受保护。

[android:exported=true]
检测到  Broadcast Receiver 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Service (com.google.android.gms.auth.api.signin.RevocationBoundService) 受权限保护,但应检查权限保护级别。

Permission: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION [android:exported=true]
检测到  Service 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护,但应检查权限保护级别。

Permission: android.permission.DUMP [android:exported=true]
检测到  Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。

中危安全漏洞 Activity (app.notifee.core.NotificationReceiverActivity) 未受保护。

[android:exported=true]
检测到  Activity 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 Broadcast Receiver (app.notifee.core.AlarmPermissionBroadcastReceiver) 未受保护。

[android:exported=true]
检测到  Broadcast Receiver 已导出,未受任何权限保护,任意应用均可访问。

中危安全漏洞 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等

文件可能包含硬编码的敏感信息,如用户名、密码、密钥等
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#checking-memory-for-sensitive-data-mstg-storage-10

Files:
com/appsflyer/reactnative/RNAppsFlyerConstants.java, line(s) 31,22
com/clevertap/android/sdk/Constants.java, line(s) 58,19,56,79,87,109,108,106,96,104,110,113,140,209,320,313,20,321,345,59,52,71,356,124,125,141
com/clevertap/android/sdk/inapp/InAppController.java, line(s) 58,62
com/clevertap/android/sdk/inapp/data/InAppResponseAdapter.java, line(s) 27,24
com/clevertap/android/sdk/inapp/store/preference/LegacyInAppStore.java, line(s) 15
com/clevertap/android/sdk/product_config/CTProductConfigConstants.java, line(s) 13
com/clevertap/android/sdk/product_config/DefaultXmlParser.java, line(s) 14
com/razorpay/AnalyticsConstants.java, line(s) 106,120,57
com/razorpay/BaseConstants.java, line(s) 21,28
com/razorpay/OtpElfData.java, line(s) 7
com/reactnativeavoidsoftinput/AvoidSoftInputModuleImpl.java, line(s) 25,27
com/reactnativeavoidsoftinput/events/AvoidSoftInputAppliedOffsetChangedEvent.java, line(s) 10
com/reactnativeavoidsoftinput/events/BaseAvoidSoftInputEvent.java, line(s) 11
com/truecaller/android/sdk/SdkUtils.java, line(s) 26
com/truecaller/android/sdk/common/TrueException.java, line(s) 16
expo/modules/adapters/react/NativeModulesProxy.java, line(s) 32,34,36,40
expo/modules/av/AVManager.java, line(s) 50,51,52,53,43,54,55,47,56,57,58,45,48,49
expo/modules/clipboard/GetImageOptions.java, line(s) 13
expo/modules/constants/ExponentInstallationId.java, line(s) 19
expo/modules/image/records/SourceMap.java, line(s) 142
expo/modules/interfaces/permissions/PermissionsResponse.java, line(s) 9,10,11,15,17
expo/modules/notifications/notifications/ArgumentsNotificationContentBuilder.java, line(s) 16,17,25,19,20,18,21,22,23,24,26,27
expo/modules/notifications/notifications/JSONNotificationContentBuilder.java, line(s) 14,15,16,17,18,23,19,20,21,22,24,25
expo/modules/notifications/notifications/background/BackgroundRemoteNotificationTaskConsumer.java, line(s) 22
expo/modules/notifications/notifications/channels/serializers/NotificationsChannelGroupSerializer.java, line(s) 7,8,9,10,11
expo/modules/notifications/notifications/channels/serializers/NotificationsChannelSerializer.java, line(s) 23,12,7,13,14,15,8,10,16,17,18,19,20,21,9,22,24,11,25
expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java, line(s) 23,25,26,27,24
expo/modules/notifications/permissions/NotificationPermissionsModuleKt.java, line(s) 7,8,9
expo/modules/notifications/serverregistration/InstallationId.java, line(s) 15
expo/modules/notifications/service/NotificationsService.java, line(s) 55,61,60,68,63,64,65,66,70,69,71,62,73,80,82,54,84
expo/modules/notifications/service/delegates/ExpoPresentationDelegate.java, line(s) 40,42
expo/modules/notifications/tokens/PushTokenModuleKt.java, line(s) 8
io/invertase/firebase/common/TaskExecutorService.java, line(s) 14,15
io/invertase/firebase/messaging/ReactNativeFirebaseMessagingHeadlessService.java, line(s) 12,10
io/invertase/firebase/messaging/ReactNativeFirebaseMessagingSerializer.java, line(s) 23
io/invertase/notifee/NotifeeEventSubscriber.java, line(s) 17,25
org/shadow/apache/commons/lang3/SystemUtils.java, line(s) 92,94,74,76

中危安全漏洞 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据

应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#external-storage

Files:
com/canhub/cropper/BitmapUtils.java, line(s) 291
com/canhub/cropper/CropImage.java, line(s) 67
com/reactnativecommunity/webview/RNCWebViewModuleImpl.java, line(s) 462
com/reactnativecompressor/Utils/RealPathUtil.java, line(s) 100
expo/modules/clipboard/ClipboardFileProvider.java, line(s) 264
expo/modules/medialibrary/MediaLibraryUtils.java, line(s) 306
io/invertase/firebase/utils/ReactNativeFirebaseUtilsModule.java, line(s) 112,121,122,123

中危安全漏洞 应用程序创建临时文件。敏感信息永远不应该被写进临时文件

应用程序创建临时文件。敏感信息永远不应该被写进临时文件


Files:
com/canhub/cropper/BitmapUtils.java, line(s) 291,296,301
com/canhub/cropper/CropImageActivity.java, line(s) 272
com/reactnativecommunity/webview/RNCWebViewModuleImpl.java, line(s) 462

中危安全漏洞 不安全的Web视图实现。可能存在WebView任意代码执行漏洞

不安全的Web视图实现。可能存在WebView任意代码执行漏洞
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5

Files:
com/clevertap/android/sdk/inapp/CTInAppBaseFullHtmlFragment.java, line(s) 103,98
com/clevertap/android/sdk/inapp/CTInAppBasePartialHtmlFragment.java, line(s) 151,146
com/razorpay/BaseUtils.java, line(s) 224,206
in/juspay/hypersdk/core/DynamicUI.java, line(s) 103,163,286,101
in/juspay/hypersdk/safe/Godel.java, line(s) 341,613,607

中危安全漏洞 MD5是已知存在哈希冲突的弱哈希

MD5是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
com/clevertap/android/sdk/cryption/AESCrypt.java, line(s) 93
expo/modules/filesystem/FileSystemModule.java, line(s) 2751
in/juspay/hypersdk/security/EncryptionHelper.java, line(s) 151,180

中危安全漏洞 IP地址泄露

IP地址泄露


Files:
com/clevertap/android/sdk/BuildConfig.java, line(s) 7
expo/modules/network/NetworkModule.java, line(s) 284

中危安全漏洞 应用程序使用不安全的随机数生成器

应用程序使用不安全的随机数生成器
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-random-number-generators

Files:
com/appsflyer/internal/AFb1aSDK.java, line(s) 15
com/clevertap/android/sdk/pushnotification/LaunchPendingIntentFactory.java, line(s) 12
org/shadow/apache/commons/lang3/RandomStringUtils.java, line(s) 3
org/shadow/apache/commons/lang3/RandomUtils.java, line(s) 3

中危安全漏洞 可能存在跨域漏洞。在 WebView 中启用从 URL 访问文件可能会泄漏文件系统中的敏感信息

可能存在跨域漏洞。在 WebView 中启用从 URL 访问文件可能会泄漏文件系统中的敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#static-analysis-6

Files:
in/juspay/hypersdk/safe/Godel.java, line(s) 620,607

中危安全漏洞 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库

应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04h-Testing-Code-Quality.md#injection-flaws-mstg-arch-2-and-mstg-platform-2

Files:
com/mixpanel/android/mpmetrics/MPDbAdapter.java, line(s) 7,8,9,142,150,264,336

中危安全漏洞 此应用可能包含硬编码机密信息

从应用程序中识别出以下机密确保这些不是机密或私人信息
Bugsnag-SDK的=> "com.bugsnag.android.API_KEY" : "ae5ac63c59f9be445071e06af8e14d83"
"facebook_app_id" : "312593845822921"
"facebook_client_token" : "36b2078508ccd38381075c0326cfae74"
"firebase_database_url" : "https://betterhalf-v2.firebaseio.com"
"google_api_key" : "AIzaSyDPLJjVwbyBZD1cFw5lxT5p5_Y6zvRmDog"
"google_app_id" : "1:466114304962:android:bb8e5638d6acaeb2cf145b"
"google_crash_reporting_api_key" : "AIzaSyDPLJjVwbyBZD1cFw5lxT5p5_Y6zvRmDog"
1ddaa4b892e61b0f7010597ddc582ed3
8a3c4b262d721acd49a4bf97d5213199c86fa2b9
9A04F079-9840-4286-AB92-E65BE0885F95
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTYwIDMzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNjAgMzM7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojMkQyRDJEO308L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00OS42LDE0LjZjLTAuNCwwLTAuOCwwLjItMSwwLjVjLTAuMiwwLjQtMC40LDAuOS0wLjQsMS41YzAsMC43LDAuMSwxLjIsMC40LDEuNWMwLjIsMC4zLDAuNiwwLjUsMSwwLjVjMC41LDAsMC45LTAuMSwxLjEtMC40YzAuMi0wLjMsMC40LTAuOCwwLjQtMS40di0wLjJjMC0wLjctMC4xLTEuMy0wLjQtMS42QzUwLjUsMTQuNyw1MC4xLDE0LjYsNDkuNiwxNC42eiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni4zLDE3LjNjLTAuMiwwLjEtMC40LDAuNS0wLjcsMS4xYy0wLjMsMC42LTAuMywwLjktMC4yLDFjMC4xLDAuMSwwLjUsMC4yLDEuMSwwLjJjMC4zLDAsMC41LDAsMC43LDBjMC4xLDAsMC4zLDAsMC41LDBjMC4yLDAsMC4zLTAuMSwwLjQtMC4xYzAuMS0wLjEsMC4yLTAuMSwwLjMtMC4yYzAuMS0wLjEsMC4yLTAuMiwwLjItMC40bDAuOC0xLjdsLTEuOCwwQzg2LjksMTcuMSw4Ni41LDE3LjEsODYuMywxNy4zeiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04MC42LDExLjNsLTIuNCwwbC0xLjQsMy4ybDIuNCwwYzAuNywwLDEuMi0wLjEsMS41LTAuM2MwLjMtMC4yLDAuNi0wLjUsMC44LTFsMC40LTAuOGMwLjItMC40LDAuMi0wLjcsMC0wLjlDODEuNiwxMS40LDgxLjIsMTEuMyw4MC42LDExLjN6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTQzLjksMTQuNmMtMC40LDAtMC43LDAuMS0xLDAuNGMtMC4yLDAuMi0wLjQsMC42LTAuNCwxaDIuNmMwLTAuNC0wLjEtMC44LTAuMy0xQzQ0LjYsMTQuNyw0NC4zLDE0LjYsNDMuOSwxNC42eiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMC4yLDE0LjZjLTAuNSwwLTAuOSwwLjItMS4xLDAuNWMtMC4zLDAuMy0wLjQsMC44LTAuNCwxLjVjMCwwLjcsMC4xLDEuMiwwLjQsMS41YzAuMywwLjMsMC42LDAuNSwxLjEsMC41YzAuNSwwLDAuOS0wLjIsMS4xLTAuNWMwLjMtMC4zLDAuNC0wLjksMC40LTEuNWMwLTAuNy0wLjEtMS4yLTAuNC0xLjVDMjEuMSwxNC44LDIwLjgsMTQuNiwyMC4yLDE0LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTEwNy40LDEzLjdjLTAuNywwLTEuMiwwLjEtMS42LDAuM2MtMC4zLDAuMi0wLjYsMC41LTAuOCwxbC0xLjUsMy4zYy0wLjIsMC41LTAuMiwwLjgtMC4xLDFjMC4yLDAuMiwwLjYsMC4zLDEuMywwLjNjMC43LDAsMS4zLTAuMSwxLjYtMC4zYzAuMy0wLjIsMC42LTAuNSwwLjgtMWwxLjUtMy4zYzAuMi0wLjUsMC4yLTAuOCwwLjEtMUMxMDguNiwxMy44LDEwOC4yLDEzLjcsMTA3LjQsMTMuN3oiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTUuMywxMy4yYy0wLjMtMC4yLTAuOC0wLjMtMS40LTAuM0gxM3YyLjdoMC43YzAuNywwLDEuMi0wLjEsMS42LTAuM2MwLjMtMC4yLDAuNS0wLjYsMC41LTEuMUMxNS43LDEzLjgsMTUuNiwxMy41LDE1LjMsMTMuMnoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzQuMSwxNC42Yy0wLjQsMC0wLjcsMC4xLTEsMC40Yy0wLjIsMC4yLTAuNCwwLjYtMC40LDFoMi42YzAtMC40LTAuMS0wLjgtMC4zLTFDMzQuOCwxNC43LDM0LjUsMTQuNiwzNC4xLDE0LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTU4LjcsMTQuNmMtMC41LDAtMC45LDAuMS0xLjEsMC40Yy0wLjIsMC4zLTAuMywwLjgtMC4zLDEuNmMwLDAuNywwLjEsMS4zLDAuNCwxLjZjMC4yLDAuMywwLjYsMC41LDEuMSwwLjVjMC41LDAsMC44LTAuMiwxLTAuNWMwLjItMC4zLDAuNC0wLjksMC40LTEuNWMwLTAuNy0wLjEtMS4yLTAuNC0xLjVDNTkuNiwxNC44LDU5LjIsMTQuNiw1OC43LDE0LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTE1Ni45LDAuMkgzLjFDMS40LDAuMiwwLDEuNiwwLDMuNHYyNi41QzAsMzEuNiwxLjQsMzMsMy4xLDMzaDE1My43YzEuNywwLDMuMS0xLjQsMy4xLTMuMVYzLjRDMTYwLDEuNiwxNTguNiwwLjIsMTU2LjksMC4yeiBNMTYsMTZjLTAuNSwwLjQtMS4zLDAuNi0yLjIsMC42SDEzdjIuOGgtMVYxMmgyYzEuOSwwLDIuOCwwLjcsMi44LDIuMkMxNi44LDE1LDE2LjUsMTUuNSwxNiwxNnogTTIyLjIsMTguN2MtMC41LDAuNS0xLjEsMC44LTEuOSwwLjhjLTAuNSwwLTEtMC4xLTEuMy0wLjRjLTAuNC0wLjItMC43LTAuNi0wLjktMWMtMC4yLTAuNC0wLjMtMS0wLjMtMS41YzAtMC45LDAuMi0xLjYsMC43LTIuMWMwLjUtMC41LDEuMS0wLjgsMS45LTAuOGMwLjgsMCwxLjQsMC4zLDEuOSwwLjhjMC41LDAuNSwwLjcsMS4yLDAuNywyLjFDMjIuOCwxNy41LDIyLjYsMTguMiwyMi4yLDE4Ljd6IE0yOS42LDE5LjRoLTEuMWwtMS0zLjJjLTAuMS0wLjItMC4xLTAuNS0wLjMtMWMtMC4xLDAuNC0wLjIsMC44LTAuMywxbC0xLDMuMmgtMS4xbC0xLjUtNS42aDEuMWwwLDAuMWMwLjMsMS40LDAuNiwyLjQsMC44LDMuMWMwLjEsMC40LDAuMiwwLjgsMC4yLDFjMC0wLjEsMC4xLTAuMiwwLjEtMC4zYzAuMS0wLjMsMC4yLTAuNSwwLjItMC43bDEtMy4yaDFsMSwzLjJjMC4xLDAuNCwwLjIsMC43LDAuMywxYzAsMCwwLTAuMSwwLTAuMWMwLjEtMC4yLDAuNC0xLjYsMS00bDAtMC4xaDEuMUwyOS42LDE5LjR6IE0zNi40LDE2LjloLTMuN2MwLDAuNiwwLjIsMSwwLjUsMS4zYzAuMywwLjMsMC43LDAuNSwxLjIsMC41YzAuNiwwLDEuMS0wLjEsMS43LTAuNGwwLjEtMC4xdjFsLTAuMSwwYy0wLjMsMC4xLTAuNiwwLjItMC44LDAuM2MtMC4zLDAuMS0wLjYsMC4xLTEsMC4xYy0wLjgsMC0xLjUtMC4zLTItMC44Yy0wLjUtMC41LTAuNy0xLjItMC43LTIuMWMwLTAuOSwwLjItMS42LDAuNy0yLjFjMC40LTAuNSwxLjEtMC44LDEuOC0wLjhjMC43LDAsMS4zLDAuMiwxLjcsMC43YzAuNCwwLjUsMC42LDEuMSwwLjYsMS44VjE2Ljl6IE00MC44LDE0LjdsLTAuMSwwYy0wLjIsMC0wLjQtMC4xLTAuNi0wLjFjLTAuNCwwLTAuOCwwLjItMSwwLjVjLTAuMywwLjMtMC40LDAuOC0wLjQsMS4zdjNoLTF2LTUuNmgwLjlsMC4xLDAuOGMwLjItMC4zLDAuNC0wLjUsMC42LTAuNmMwLjMtMC4yLDAuNi0wLjMsMS0wLjNjMC4yLDAsMC41LDAsMC43LDAuMWwwLjEsMEw0MC44LDE0Ljd6IE00Ni4yLDE2LjloLTMuN2MwLDAuNiwwLjIsMSwwLjUsMS4zYzAuMywwLjMsMC43LDAuNSwxLjIsMC41YzAuNiwwLDEuMS0wLjEsMS43LTAuNGwwLjEtMC4xdjFsLTAuMSwwYy0wLjMsMC4xLTAuNiwwLjItMC44LDAuM2MtMC4zLDAuMS0wLjYsMC4xLTEsMC4xYy0wLjgsMC0xLjUtMC4zLTItMC44Yy0wLjUtMC41LTAuNy0xLjItMC43LTIuMWMwLTAuOSwwLjItMS42LDAuNy0yLjFjMC40LTAuNSwxLjEtMC44LDEuOC0wLjhjMC43LDAsMS4zLDAuMiwxLjcsMC43YzAuNCwwLjUsMC42LDEuMSwwLjYsMS44VjE2Ljl6IE01Mi4xLDE5LjRoLTAuOWwtMC4xLTAuNmMtMC40LDAuNS0xLDAuNy0xLjcsMC43Yy0wLjcsMC0xLjMtMC4zLTEuNy0wLjhjLTAuNC0wLjUtMC42LTEuMi0wLjYtMi4xYzAtMC45LDAuMi0xLjYsMC42LTIuMWMwLjQtMC41LDEtMC44LDEuNy0wLjhjMC43LDAsMS4yLDAuMiwxLjYsMC43bDAtMC4xbDAtMC40bDAtMi4zaDFWMTkuNHogTTYwLjYsMTguN2MtMC40LDAuNS0xLDAuOC0xLjcsMC44Yy0wLjQsMC0wLjctMC4xLTEtMC4yYy0wLjMtMC4xLTAuNS0wLjMtMC43LTAuNUw1NywxOS40aC0wLjh2LTcuOWgxdjJjMCwwLjMsMCwwLjYsMCwwLjljMC40LTAuNCwwLjktMC43LDEuNi0wLjdjMC43LDAsMS4zLDAuMywxLjcsMC44YzAuNCwwLjUsMC42LDEuMiwwLjYsMi4xQzYxLjIsMTcuNSw2MSwxOC4yLDYwLjYsMTguN3ogTTY0LjUsMjAuMWMtMC4yLDAuNi0wLjUsMS4xLTAuOCwxLjNjLTAuMywwLjMtMC43LDAuNC0xLjIsMC40Yy0wLjMsMC0wLjUsMC0wLjgtMC4xbC0wLjEsMHYtMC45bDAuMSwwYzAuMiwwLDAuNCwwLjEsMC42LDAuMWMwLjUsMCwwLjktMC4zLDEuMS0wLjlsMC4zLTAuN2wtMi4yLTUuNWgxLjFsMS4yLDMuMmMwLjIsMC41LDAuMywwLjksMC40LDEuMmMwLTAuMiwwLjEtMC4zLDAuMi0wLjZjMC4xLTAuNCwwLjYtMS43LDEuMy0zLjhsMC0wLjFoMS4xTDY0LjUsMjAuMXogTTgxLjUsMjFsLTMuMiwwbC0xLTQuNmwtMS4zLDBsLTIsNC42TDcxLDIxbDUuMi0xMS43bDUuMywwYzEuNSwwLDIuNiwwLjIsMy4xLDAuNmMwLjUsMC40LDAuNiwxLDAuMiwxLjlsLTAuOSwyLjFjLTAuMywwLjctMC44LDEuMy0xLjUsMS42Yy0wLjcsMC40LTEuNCwwLjYtMi4yLDAuN0w4MS41LDIxeiBNODcuNiwyMWwwLjQtMC44Yy0wLjMsMC4zLTAuNywwLjYtMS4yLDAuN2MtMC40LDAuMi0xLjEsMC4yLTIuMSwwLjJjLTEuMiwwLTEuOS0wLjItMi4xLTAuNWMtMC4yLTAuNC0wLjEtMS4xLDAuNC0yLjNjMC41LTEsMS0xLjgsMS42LTIuMmMwLjYtMC40LDEuNC0wLjYsMi40LTAuNmwzLDBsMC4zLTAuNmMwLjItMC41LDAuMy0wLjksMC4xLTEuMWMtMC4yLTAuMi0wLjctMC4zLTEuNC0wLjNjLTAuNywwLTEuOCwwLjEtMy4yLDAuMmwwLjctMS43YzEuMS0wLjEsMi4yLTAuMiwzLjQtMC4yYzEuNiwwLDIuNiwwLjIsMy4xLDAuNmMwLjUsMC40LDAuNCwxLjItMC4xLDIuM2wtMi43LDZMODcuNiwyMXogTTk5LDIxbC03LjksMGwwLjYtMS40bDYuOS01LjZsLTQuMiwwbDAuOC0xLjdsNy42LDBsLTAuNiwxLjRsLTYuOSw1LjZsNC41LDBMOTksMjF6IE0xMDgsMjAuNGMtMC40LDAuMi0wLjgsMC40LTEuMywwLjVjLTAuNSwwLjEtMC45LDAuMi0xLjMsMC4yYy0wLjQsMC0wLjgsMC0xLjMsMGMtMC41LDAtMC45LDAtMS4zLDBjLTAuMywwLTAuNy0wLjEtMS4xLTAuMmMtMC40LTAuMS0wLjYtMC4zLTAuOC0wLjVjLTAuMi0wLjItMC4yLTAuNS0wLjItMC45YzAtMC40LDAuMS0wLjksMC40LTEuNWwxLjEtMi42YzAuMy0wLjYsMC42LTEuMSwxLTEuNWMwLjQtMC40LDAuOC0wLjgsMS4xLTFjMC40LTAuMiwwLjgtMC40LDEuMy0wLjVjMC41LTAuMSwwLjktMC4yLDEuMy0wLjJjMC40LDAsMC44LDAsMS4zLDBjMC41LDAsMC45LDAsMS4yLDBjMC4zLDAsMC43LDAuMSwxLjEsMC4yYzAuNCwwLjEsMC42LDAuMywwLjgsMC41YzAuMiwwLjIsMC4zLDAuNiwwLjIsMWMwLDAuNC0wLjEsMC45LTAuNCwxLjVMMTEwLDE4Yy0wLjMsMC42LTAuNiwxLTAuOSwxLjVDMTA4LjcsMTkuOSwxMDguMywyMC4yLDEwOCwyMC40eiBNMTA5LjgsMjFsMy45LTguN2wyLjUsMGwtMC43LDEuNWMwLjItMC40LDAuNi0wLjgsMS4zLTEuMmMwLjYtMC40LDEuMi0wLjUsMS44LTAuNWwwLjksMGwtMSwyLjJsLTAuOSwwYy0wLjcsMC0xLjMsMC4xLTEuOCwwLjNjLTAuNSwwLjItMC44LDAuNi0xLjEsMS4xbC0yLjMsNS4yTDEwOS44LDIxeiBNMTI0LjYsMjAuNWMtMC44LDAuNC0xLjgsMC43LTMuMSwwLjdjLTAuOCwwLTEuNC0wLjEtMS43LTAuMmMtMC4zLTAuMS0wLjUtMC40LTAuNC0wLjlsLTIuMSw0LjZsLTIuNiwwbDUuNi0xMi41bDIuNSwwbC0wLjQsMC45YzAuMy0wLjQsMC44LTAuNywxLjMtMC44YzAuNS0wLjIsMS4yLTAuMiwyLjEtMC4yYzAuNywwLDEuMywwLjEsMS43LDAuMmMwLjQsMC4xLDAuNywwLjMsMC44LDAuNmMwLjEsMC4zLDAuMSwwLjYsMC4xLDAuOWMtMC4xLDAuMy0wLjIsMC44LTAuNSwxLjNsLTEuMywyLjlDMTI2LDE5LjIsMTI1LjMsMjAuMSwxMjQuNiwyMC41eiBNMTMxLjgsMjFsMC40LTAuOGMtMC4zLDAuMy0wLjcsMC42LTEuMiwwLjdjLTAuNCwwLjItMS4xLDAuMi0yLjEsMC4yYy0xLjIsMC0xLjktMC4yLTIuMS0wLjVjLTAuMi0wLjQtMC4xLTEuMSwwLjQtMi4zYzAuNS0xLDEtMS44LDEuNi0yLjJjMC42LTAuNCwxLjQtMC42LDIuNC0wLjZsMywwbDAuMy0wLjZjMC4yLTAuNSwwLjMtMC45LDAuMS0xLjFjLTAuMi0wLjItMC43LTAuMy0xLjQtMC4zYy0wLjcsMC0xLjgsMC4xLTMuMiwwLjJsMC43LTEuN2MxLjEtMC4xLDIuMi0wLjIsMy40LTAuMmMxLjYsMCwyLjYsMC4yLDMuMSwwLjZjMC41LDAuNCwwLjQsMS4yLTAuMSwyLjNsLTIuNyw2TDEzMS44LDIxeiBNMTM3LjcsMjQuOGwtMi43LDBsMy4zLTMuOGwwLjQtOC43bDIuOSwwbC0wLjgsNi4ybDQuNS02LjJsMi43LDBMMTM3LjcsMjQuOHoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTMwLjUsMTcuM2MtMC4yLDAuMS0wLjQsMC41LTAuNywxLjFjLTAuMywwLjYtMC4zLDAuOS0wLjIsMWMwLjEsMC4xLDAuNSwwLjIsMS4xLDAuMmMwLjMsMCwwLjUsMCwwLjcsMGMwLjEsMCwwLjMsMCwwLjUsMGMwLjIsMCwwLjMtMC4xLDAuNC0wLjFjMC4xLTAuMSwwLjItMC4xLDAuMy0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRsMC44LTEuN2wtMS44LDBDMTMxLjEsMTcuMSwxMzAuNywxNy4xLDEzMC41LDE3LjN6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTEyMy45LDEzLjdjLTAuNywwLTEuMywwLjEtMS42LDAuM2MtMC4zLDAuMi0wLjYsMC41LTAuOCwxbC0xLjQsMy4yYy0wLjIsMC41LTAuMywwLjktMC4xLDFjMC4xLDAuMiwwLjYsMC4zLDEuNCwwLjNjMC44LDAsMS4zLTAuMSwxLjYtMC4zYzAuMy0wLjIsMC42LTAuNSwwLjgtMWwxLjQtMy4yYzAuMy0wLjYsMC4zLTAuOSwwLjItMS4xQzEyNS4zLDEzLjgsMTI0LjgsMTMuNywxMjMuOSwxMy43eiIvPjwvZz48L3N2Zz4=
24b2477514809255df232947ce7928c4
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE1cHgiIHZpZXdCb3g9IjAgMCAxMiAxNSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5pYy1sb2NrLTI0cHhAMng8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSI1LjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNi4wMDAwMDAsIC01OTYuMDAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjAwMDAwMCwgNTg4LjAwMDAwMCkiPiAgICAgICAgICAgICAgICA8ZyBpZD0iaWMtbG9jay0yNHB4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjAwMDAwMCwgOC4wMDAwMDApIj4gICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSIwIDAgMTYgMCAxNiAxNiAwIDE2Ij48L3BvbHlnb24+ICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIsNS4zMzMzMzMzMyBMMTEuMzMzMzMzMyw1LjMzMzMzMzMzIEwxMS4zMzMzMzMzLDQgQzExLjMzMzMzMzMsMi4xNiA5Ljg0LDAuNjY2NjY2NjY3IDgsMC42NjY2NjY2NjcgQzYuMTYsMC42NjY2NjY2NjcgNC42NjY2NjY2NywyLjE2IDQuNjY2NjY2NjcsNCBMNC42NjY2NjY2Nyw1LjMzMzMzMzMzIEw0LDUuMzMzMzMzMzMgQzMuMjY2NjY2NjcsNS4zMzMzMzMzMyAyLjY2NjY2NjY3LDUuOTMzMzMzMzMgMi42NjY2NjY2Nyw2LjY2NjY2NjY3IEwyLjY2NjY2NjY3LDEzLjMzMzMzMzMgQzIuNjY2NjY2NjcsMTQuMDY2NjY2NyAzLjI2NjY2NjY3LDE0LjY2NjY2NjcgNCwxNC42NjY2NjY3IEwxMiwxNC42NjY2NjY3IEMxMi43MzMzMzMzLDE0LjY2NjY2NjcgMTMuMzMzMzMzMywxNC4wNjY2NjY3IDEzLjMzMzMzMzMsMTMuMzMzMzMzMyBMMTMuMzMzMzMzMyw2LjY2NjY2NjY3IEMxMy4zMzMzMzMzLDUuOTMzMzMzMzMgMTIuNzMzMzMzMyw1LjMzMzMzMzMzIDEyLDUuMzMzMzMzMzMgWiBNOCwxMS4zMzMzMzMzIEM3LjI2NjY2NjY3LDExLjMzMzMzMzMgNi42NjY2NjY2NywxMC43MzMzMzMzIDYuNjY2NjY2NjcsMTAgQzYuNjY2NjY2NjcsOS4yNjY2NjY2NyA3LjI2NjY2NjY3LDguNjY2NjY2NjcgOCw4LjY2NjY2NjY3IEM4LjczMzMzMzMzLDguNjY2NjY2NjcgOS4zMzMzMzMzMyw5LjI2NjY2NjY3IDkuMzMzMzMzMzMsMTAgQzkuMzMzMzMzMzMsMTAuNzMzMzMzMyA4LjczMzMzMzMzLDExLjMzMzMzMzMgOCwxMS4zMzMzMzMzIFogTTEwLjA2NjY2NjcsNS4zMzMzMzMzMyBMNS45MzMzMzMzMyw1LjMzMzMzMzMzIEw1LjkzMzMzMzMzLDQgQzUuOTMzMzMzMzMsMi44NiA2Ljg2LDEuOTMzMzMzMzMgOCwxLjkzMzMzMzMzIEM5LjE0LDEuOTMzMzMzMzMgMTAuMDY2NjY2NywyLjg2IDEwLjA2NjY2NjcsNCBMMTAuMDY2NjY2Nyw1LjMzMzMzMzM
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxNHB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxNCAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCA2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iNS4xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjUuMDAwMDAwLCAtNTI1LjAwMDAwMCkiPiAgICAgICAgICAgIDxnIGlkPSJHcm91cC02IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNC4wMDAwMDAsIDUyNC4wMDAwMDApIj4gICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlNoYXBlIiBwb2ludHM9IjAgMCAxNiAwIDE2IDE2IDAgMTYiPjwvcG9seWdvbj4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTEzLjMzMzMzMzMsMS4zMzMzMzMzMyBDMTQuMDY2NjY2NywxLjMzMzMzMzMzIDE0LjY2NjY2NjcsMS45MzMzMzMzMyAxNC42NjY2NjY3LDIuNjY2NjY2NjcgTDE0LjY2NjY2NjcsMTAuNjY2NjY2NyBDMTQuNjY2NjY2NywxMS40IDE0LjA2NjY2NjcsMTIgMTMuMzMzMzMzMywxMiBMNCwxMiBMMS4zMzMzMzMzMywxNC42NjY2NjY3IEwxLjMzMzMzMzMzLDIuNjY2NjY2NjcgQzEuMzMzMzMzMzMsMS45MzMzMzMzMyAxLjkzMzMzMzMzLDEuMzMzMzMzMzMgMi42NjY2NjY2NywxLjMzMzMzMzMzIEwxMy4zMzMzMzMzLDEuMzMzMzMzMzMgWiBNNS4zMzMzMzMzMyw3LjMzMzMzMzMzIEM1LjcwMTUyMzE3LDcuMzMzMzMzMzMgNiw3LjAzNDg1NjUgNiw2LjY2NjY2NjY3IEM2LDYuMjk4NDc2ODMgNS43MDE1MjMxNyw2IDUuMzMzMzMzMzMsNiBDNC45NjUxNDM1LDYgNC42NjY2NjY2Nyw2LjI5ODQ3NjgzIDQuNjY2NjY2NjcsNi42NjY2NjY2NyBDNC42NjY2NjY2Nyw3LjAzNDg1NjUgNC45NjUxNDM1LDcuMzMzMzMzMzMgNS4zMzMzMzMzMyw3LjMzMzMzMzMzIFogTTgsNy4zMzMzMzMzMyBDOC4zNjgxODk4Myw3LjMzMzMzMzMzIDguNjY2NjY2NjcsNy4wMzQ4NTY1IDguNjY2NjY2NjcsNi42NjY2NjY2NyBDOC42NjY2NjY2Nyw2LjI5ODQ3NjgzIDguMzY4MTg5ODMsNiA4LDYgQzcuNjMxODEwMTcsNiA3LjMzMzMzMzMzLDYuMjk4NDc2ODMgNy4zMzMzMzMzMyw2LjY2NjY2NjY3IEM3LjMzMzMzMzMzLDcuMDM0ODU2NSA3LjYzMTgxMDE3LDcuMzMzMzMzMzMgOCw3LjMzMzMzMzMzIFogTTEwLjY2NjY2NjcsNy4zMzMzMzMzMyBDMTEuMDM0ODU2NSw3LjMzMzMzMzMzIDExLjMzMzMzMzMsNy4wMzQ4NTY1IDExLjMzMzMzMzMsNi42NjY2NjY2NyBDMTEuMzMzMzMzMyw2LjI5ODQ3NjgzIDExLjAzNDg1NjUsNiAxMC42NjY2NjY3LDYgQzEwLjI5ODQ3NjgsNiAxMCw2LjI5ODQ3NjgzIDEwLDYuNjY2NjY2NjcgQzEwLDcuMDM0ODU2NSAxMC4yOTg0NzY4LDcuMzMzMzMzMzMgMTAuNjY2NjY2Nyw3LjMzMzMzMzMzIFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj48L3BhdGg+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+
0ac1169ae6cead75264c725febd8e8d941f25e31
FBA3AF4E7757D9016E953FB3EE4671CA2BD9AF725F9A53D52ED4A38EAAA08901
9b8f518b086098de3d77736f9458a3d2f6f95a37
c56fb7d591ba6704df047fd98f535372fea00211
df6b721c8b4d3b6eb44c861d4415007e5a35fc95
85053bf24bba75239b16a601d9387e17
2438bce1ddb7bd026d5ff89f598b3b5e5bb824b3
E3F9E1E0CF99D0E56A055BA65E241B3399F7CEA524326B0CDD6EC1327ED0FDC1
cc2751449a350f668590264ed76692694a80308a
a4b7452e2ed8f5f191058ca7bbfd26b0d3214bfc
FFE391E0EA186D0734ED601E4E70E3224B7309D48E2075BAC46D8C667EAE7212
8a03e08e354a73ac49509c8b708fbe15aee2fb2a
A2B55680-6F43-11E0-9A3F-0002A5D5C51B
PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTguNTkgMTYuMzRsNC41OC00LjU5LTQuNTgtNC41OUwxMCA1Ljc1bDYgNi02IDZ6Ii8+ICAgIDxwYXRoIGQ9Ik0wLS4yNWgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==
3BAF59A2E5331C30675FAB35FF5FFF0D116142D3D4664F1C3CB804068B40614F

安全提示信息 应用程序记录日志信息,不得记录敏感信息

应用程序记录日志信息,不得记录敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#logs

Files:
app/notifee/core/AlarmPermissionBroadcastReceiver.java, line(s) 12
app/notifee/core/Logger.java, line(s) 13,17,34,39,22,26,30
app/notifee/core/RebootBroadcastReceiver.java, line(s) 12
app/notifee/core/b.java, line(s) 131
com/appsflyer/internal/AFb1tSDK.java, line(s) 1129,267
com/appsflyer/internal/AFf1iSDK.java, line(s) 156,161
com/appsflyer/internal/AFf1jSDK.java, line(s) 54
com/appsflyer/internal/AFf1tSDK.java, line(s) 40
com/appsflyer/internal/AFg1dSDK.java, line(s) 83,91,106,95,101,99
com/appsflyer/internal/AFg1lSDK.java, line(s) 327
com/appsflyer/reactnative/RNAppsFlyerModule.java, line(s) 137,648,705,709
com/appsflyer/share/LinkGenerator.java, line(s) 171
com/canhub/cropper/BitmapUtils.java, line(s) 295,261,334
com/canhub/cropper/CropImageActivity.java, line(s) 562
com/canhub/cropper/CropOverlayView.java, line(s) 1117
com/cardreader/card_reader_lib/CardTask.java, line(s) 49,52,101,103,105,110,114,118,121,151,179,181,196,200,235
com/cardreader/card_reader_lib/xutils/EmvTerminal.java, line(s) 21
com/caverock/androidsvg/CSSParser.java, line(s) 992,359
com/caverock/androidsvg/SVG.java, line(s) 342
com/caverock/androidsvg/SVGAndroidRenderer.java, line(s) 113,346,1281,169,174,342
com/caverock/androidsvg/SVGImageView.java, line(s) 113,120,146,164,186,216
com/caverock/androidsvg/SVGParser.java, line(s) 616,640,660,956,530,645,2924,2960,2977
com/caverock/androidsvg/SimpleAssetResolver.java, line(s) 41,55,70
com/clevertap/android/sdk/Logger.java, line(s) 11,17,23,29,88,96,99,107,114,35,41,47,53,121,128,135,142,59,65,71,77,149,157,160,168,175
com/clevertap/android/sdk/displayunits/CTDisplayUnitType.java, line(s) 36
com/clevertap/android/sdk/product_config/DefaultXmlParser.java, line(s) 30,36,53,67
com/clevertap/android/sdk/response/CleverTapResponse.java, line(s) 11
com/clevertap/react/CleverTapApplication.java, line(s) 25,52,54
com/clevertap/react/CleverTapModule.java, line(s) 1369,155,248,276,286,685,695,705,715,821,961,971,981,991,1017,1024,1051,1216,1361,1373,1421,1472,1478,1481,1570,1576,1587,1596,1599,1609,1645,1795,1808,203,212,221,230,239,258,267,302,1058,1288,1415,1520,1729
com/clevertap/react/CleverTapUtils.java, line(s) 37
com/coremedia/iso/boxes/sampleentry/AudioSampleEntry.java, line(s) 194
com/dooboolab/rniap/PlayUtils.java, line(s) 62,67
com/dooboolab/rniap/PromiseUtlisKt.java, line(s) 20,45
com/dooboolab/rniap/RNIapModule$getPurchaseHistoryByType$1.java, line(s) 61
com/dooboolab/rniap/RNIapModule.java, line(s) 289,142,213,223,241
com/faizal/OtpVerify/AppSignatureHelper.java, line(s) 47,36,50
com/faizal/OtpVerify/OtpBroadcastReceiver.java, line(s) 42,49
com/faizal/OtpVerify/OtpVerifyModule.java, line(s) 135,178,89,101,147,153,159,166
com/github/penfeizhou/animation/FrameAnimationDrawable.java, line(s) 239
com/github/penfeizhou/animation/apng/decode/APNGDecoder.java, line(s) 87
com/github/penfeizhou/animation/decode/FrameSeqDecoder.java, line(s) 191,246,343,480,242,279,290,292,339
com/horcrux/svg/Brush.java, line(s) 135,146
com/horcrux/svg/ClipPathView.java, line(s) 33
com/horcrux/svg/ImageView.java, line(s) 172
com/horcrux/svg/LinearGradientView.java, line(s) 110
com/horcrux/svg/PatternView.java, line(s) 121
com/horcrux/svg/RadialGradientView.java, line(s) 142
com/horcrux/svg/UseView.java, line(s) 91,122,137
com/horcrux/svg/VirtualView.java, line(s) 388,314,352,356
com/imagepicker/ImageMetadata.java, line(s) 34
com/imagepicker/Metadata.java, line(s) 31
com/mixpanel/android/mpmetrics/AnalyticsMessages.java, line(s) 394,237,370,416,441,446,448,276,280,407
com/mixpanel/android/mpmetrics/ConfigurationChecker.java, line(s) 24,17,23
com/mixpanel/android/mpmetrics/MPConfig.java, line(s) 183
com/mixpanel/android/mpmetrics/MPDbAdapter.java, line(s) 250,296,325,359,411,414,428,442,84,97
com/mixpanel/android/mpmetrics/MixpanelAPI.java, line(s) 1330,1332,1334,1336,1346,1349,1352,1355,1359,152,353,367,374,385,510,539,606,806,822,846,858,868,886,898,910,924,948,962,976,990,1015,1029,1100,1120,1132,1142,1160,1172,1186,1200,1214,1224,1282,1301,1322,659,723,344,442,516,545,583,592,796,799,828,874,1148
com/mixpanel/android/mpmetrics/PersistentIdentity.java, line(s) 77,101,115,139,172,175,324,326,338,341,369,372,404,406,437,443,449,474,476,483,493,495,513,515,525,527,535,538,553,555,434,487,95
com/mixpanel/android/mpmetrics/ResourceReader.java, line(s) 93,98,111,110
com/mixpanel/android/mpmetrics/SessionMetadata.java, line(s) 48
com/mixpanel/android/util/HttpService.java, line(s) 35,38,42,54
com/mixpanel/android/util/MPLog.java, line(s) 36,42,72,78,48,54,24,30,60,66
com/naman14/androidlame/Mp3AudioRecorder.java, line(s) 85,87,90,98,100,104,106,132,134,137,149,150,152,155,159,163,168,171
com/naman14/androidlame/Mp3Player.java, line(s) 25
com/razorpay/AppSignatureHelper.java, line(s) 36,48
com/razorpay/BaseUtils.java, line(s) 713,600
com/razorpay/F_$o_.java, line(s) 159
com/razorpay/J$_M_.java, line(s) 86
com/razorpay/OpinionatedSoln.java, line(s) 261
com/razorpay/OtpElfData.java, line(s) 31
com/razorpay/SmsReceiver.java, line(s) 41,37
com/razorpay/b.java, line(s) 33
com/razorpay/d__1_.java, line(s) 7
com/reactnativeavoidsoftinput/ReactNativeAvoidSoftInputLogger.java, line(s) 20
com/reactnativecommunity/cameraroll/CameraRollModule.java, line(s) 470,484,523,539,558,585,604,632
com/reactnativecommunity/webview/RNCWebView.java, line(s) 352
com/reactnativecommunity/webview/RNCWebViewClient.java, line(s) 96,169,85,101,129,171
com/reactnativecommunity/webview/RNCWebViewManagerImpl.java, line(s) 139,152
com/reactnativecommunity/webview/RNCWebViewModuleImpl.java, line(s) 302,307,331,336,210,238,241,255
com/reactnativecompressor/Audio/AudioExtractor.java, line(s) 68,74
com/reactnativecompressor/Utils/Downloader.java, line(s) 81
com/reactnativecompressor/Utils/MediaCache.java, line(s) 24,41,44,48,51,60,62,65,76,79,83
com/reactnativecompressor/Utils/Uploader.java, line(s) 120
com/reactnativecompressor/Utils/Utils.java, line(s) 143,153,193,99,106
com/reactnativecompressor/Video/VideoCompressor/utils/CompressorUtils.java, line(s) 140,71,147
com/reactnativecompressor/Video/VideoCompressor/utils/StreamableVideo.java, line(s) 70
com/reactnativecompressor/Video/VideoMain.java, line(s) 45
com/reactnativemmkv/MmkvModule.java, line(s) 38,27,33,35
com/sparkfabrik/rnidfaaaid/ReactNativeIdfaAaidModule.java, line(s) 37
com/swmansion/gesturehandler/react/RNGestureHandlerModule.java, line(s) 658
com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java, line(s) 44,62
com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java, line(s) 34
com/swmansion/reanimated/NativeMethodsHelper.java, line(s) 46
com/swmansion/reanimated/ReanimatedModule.java, line(s) 100
com/swmansion/reanimated/ReanimatedUIManagerFactory.java, line(s) 20
com/swmansion/reanimated/layoutReanimation/AnimationsManager.java, line(s) 200,214
com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java, line(s) 37
com/swmansion/reanimated/layoutReanimation/SharedTransitionManager.java, line(s) 91
com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java, line(s) 188
com/swmansion/reanimated/sensor/ReanimatedSensorContainer.java, line(s) 35
com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.java, line(s) 178
com/th3rdwave/safeareacontext/SafeAreaView.java, line(s) 106
com/unistyles/UnistylesModule.java, line(s) 313,366,218
com/zoontek/rnpermissions/RNPermissionsModuleImpl.java, line(s) 224
expo/modules/ExpoModulesPackage.java, line(s) 39
expo/modules/adapters/react/services/UIManagerModuleWrapper.java, line(s) 80
expo/modules/apploader/AppLoaderProvider.java, line(s) 24
expo/modules/av/player/PlayerData.java, line(s) 194,218,171,191
expo/modules/av/player/SimpleExoPlayerData.java, line(s) 310
expo/modules/av/video/MediaController.java, line(s) 354
expo/modules/cellular/CellularModule.java, line(s) 86
expo/modules/clipboard/ClipboardModule.java, line(s) 441
expo/modules/constants/ConstantsService.java, line(s) 94,151
expo/modules/constants/ExponentInstallationId.java, line(s) 80,109
expo/modules/core/logging/OSLogHandler.java, line(s) 32,42,47,36,40,23,25
expo/modules/devlauncher/helpers/DevLauncherInstallationIDHelper.java, line(s) 56,72
expo/modules/devlauncher/launcher/configurators/DevLauncherExpoActivityConfigurator.java, line(s) 168,182
expo/modules/devmenu/devtools/DevMenuDevToolsDelegate$openJSInspector$1$1.java, line(s) 61
expo/modules/devmenu/extensions/DevMenuExtension.java, line(s) 74,81
expo/modules/devmenu/react/DevMenuPackagerCommandHandlersSwapper$swapCurrentCommandHandlers$1.java, line(s) 58
expo/modules/devmenu/react/DevMenuPackagerCommandHandlersSwapper.java, line(s) 37
expo/modules/devmenu/react/DevMenuShakeDetectorListenerSwapper.java, line(s) 23
expo/modules/devmenu/websockets/DevMenuCommandHandlersProvider.java, line(s) 124
expo/modules/filesystem/FileSystemModule$definition$1$17$1$1.java, line(s) 30
expo/modules/filesystem/FileSystemModule$definition$1$18$1.java, line(s) 31
expo/modules/filesystem/FileSystemModule$definition$1$19$4.java, line(s) 39
expo/modules/filesystem/FileSystemModule$downloadResumableTask$2.java, line(s) 106
expo/modules/filesystem/FileSystemModule.java, line(s) 2291
expo/modules/image/ExpoImageView.java, line(s) 267
expo/modules/image/ImageViewWrapperTarget.java, line(s) 137
expo/modules/image/ThumbnailRequestCoordinatorExtensionKt.java, line(s) 24
expo/modules/image/events/GlideRequestListener.java, line(s) 48
expo/modules/imagepicker/ImagePickerUtilsKt.java, line(s) 145,169
expo/modules/medialibrary/MediaLibraryModule.java, line(s) 1392
expo/modules/medialibrary/MediaLibraryUtils.java, line(s) 319
expo/modules/medialibrary/assets/AssetUtilsKt.java, line(s) 293,295,297,108,241
expo/modules/network/NetworkModule.java, line(s) 247
expo/modules/notifications/badge/BadgeHelper.java, line(s) 49
expo/modules/notifications/notifications/ArgumentsNotificationContentBuilder.java, line(s) 63,110
expo/modules/notifications/notifications/JSONNotificationContentBuilder.java, line(s) 143,146,158,178,127
expo/modules/notifications/notifications/background/BackgroundRemoteNotificationTaskConsumer.java, line(s) 79,90
expo/modules/notifications/notifications/presentation/ExpoNotificationPresentationEffectsManager.java, line(s) 38,56
expo/modules/notifications/notifications/presentation/builders/CategoryAwareNotificationBuilder.java, line(s) 48
expo/modules/notifications/notifications/presentation/builders/ChannelAwareNotificationBuilder.java, line(s) 31,40
expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java, line(s) 95,145,157,172
expo/modules/notifications/serverregistration/InstallationId.java, line(s) 45,57,72
expo/modules/notifications/service/NotificationsService.java, line(s) 363,507,535
expo/modules/notifications/service/delegates/ExpoHandlingDelegate.java, line(s) 107
expo/modules/notifications/service/delegates/ExpoNotificationLifecycleListener.java, line(s) 26,36
expo/modules/notifications/service/delegates/ExpoPresentationDelegate.java, line(s) 216,79,82,85,200
expo/modules/notifications/service/delegates/ExpoSchedulingDelegate.java, line(s) 92,118,122,126,57
expo/modules/splashscreen/singletons/SplashScreen.java, line(s) 115,161,202
expo/modules/truecaller/TruecallerModule.java, line(s) 209,86
expo/modules/videothumbnails/VideoThumbnailsModule.java, line(s) 181
in/juspay/hyper/core/JuspayLogger.java, line(s) 11,17,23,29,35
in/juspay/hypersdk/core/AndroidInterface.java, line(s) 116,123,843
io/invertase/firebase/app/ReactNativeFirebaseApp.java, line(s) 16
io/invertase/firebase/app/ReactNativeFirebaseAppModule.java, line(s) 52
io/invertase/firebase/common/RCTConvertFirebase.java, line(s) 114
io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java, line(s) 130
io/invertase/firebase/common/SharedUtils.java, line(s) 84,263,321,121
io/invertase/firebase/messaging/ReactNativeFirebaseMessagingModule.java, line(s) 80
io/invertase/firebase/messaging/ReactNativeFirebaseMessagingReceiver.java, line(s) 21,42
io/invertase/firebase/utils/ReactNativeFirebaseUtilsModule.java, line(s) 69
io/invertase/notifee/NotifeeReactUtils.java, line(s) 192,207
javazoom/jl/converter/jlc.java, line(s) 26,59,62,66,75,89,90,91,92,93,94
javazoom/jl/player/PlayerApplet.java, line(s) 33,49,93,103,114
javazoom/jl/player/advanced/jlap.java, line(s) 21,31,32,33,66,71
javazoom/jl/player/jlp.java, line(s) 23,68,69,70,71,72,77
org/greenrobot/eventbus/Logger.java, line(s) 32,37
org/shadow/apache/commons/lang3/SystemUtils.java, line(s) 211

安全提示信息 应用程序可以写入应用程序目录。敏感信息应加密

应用程序可以写入应用程序目录。敏感信息应加密


Files:
com/truecaller/android/sdk/common/callVerification/RequestPermissionHandler.java, line(s) 213,213
expo/modules/adapters/react/permissions/PermissionsService.java, line(s) 108,108
expo/modules/constants/ExponentInstallationId.java, line(s) 29,29
expo/modules/devlauncher/launcher/DevLauncherRecentlyOpenedAppsRegistry.java, line(s) 27,27
expo/modules/notifications/service/delegates/SharedPreferencesNotificationsStore.java, line(s) 29,29

安全提示信息 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它

此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard

Files:
com/clevertap/android/sdk/inbox/CTInboxButtonClickListener.java, line(s) 4,74
com/razorpay/RzpAssist.java, line(s) 5,286
expo/modules/clipboard/ClipboardModule.java, line(s) 5,190,233
expo/modules/devmenu/modules/DevMenuInternalModule.java, line(s) 5,265,289,266,290
in/juspay/hypersdk/core/JBridge.java, line(s) 7,313

安全提示信息 此应用侦听剪贴板更改。一些恶意软件也会监听剪贴板更改

此应用侦听剪贴板更改。一些恶意软件也会监听剪贴板更改
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard

Files:
expo/modules/clipboard/ClipboardModule.java, line(s) 393,395,402,5

安全提示信息 应用与Firebase数据库通信

该应用与位于 https://betterhalf-v2.firebaseio.com 的 Firebase 数据库进行通信

已通过安全项 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击

此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4

Files:
com/clevertap/android/sdk/network/http/UrlConnectionHttpClient.java, line(s) 191,189,191,188,182,182
com/truecaller/android/sdk/common/network/RestAdapter.java, line(s) 18,18
in/juspay/hypersdk/security/HyperSSLSocketFactory.java, line(s) 61,60,62,59,59

已通过安全项 此应用程序可能具有Root检测功能

此应用程序可能具有Root检测功能
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05j-Testing-Resiliency-Against-Reverse-Engineering.md#testing-root-detection-mstg-resilience-1

Files:
expo/modules/device/DeviceModule.java, line(s) 135,135
in/juspay/hypersdk/data/SessionInfo.java, line(s) 122,126

已通过安全项 Firebase远程配置已禁用

Firebase远程配置URL ( https://firebaseremoteconfig.googleapis.com/v1/projects/466114304962/namespaces/firebase:fetch?key=AIzaSyDPLJjVwbyBZD1cFw5lxT5p5_Y6zvRmDog ) 已禁用。响应内容如下所示:

{
    "state": "NO_TEMPLATE"
}

综合安全基线评分总结

应用图标

Betterhalf.ai v5.1.1

Android APK
48
综合安全评分
中风险