@onairos/react-native 3.7.1 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/assets/icons/spotify.png +0 -0
  3. package/lib/commonjs/assets/images/spotify.png +0 -0
  4. package/lib/commonjs/components/BodyText.js +27 -9
  5. package/lib/commonjs/components/BrandMark.js +111 -10
  6. package/lib/commonjs/components/CodeInput.js +116 -9
  7. package/lib/commonjs/components/EmailInput.js +30 -8
  8. package/lib/commonjs/components/GoogleButton.js +56 -9
  9. package/lib/commonjs/components/HeadingGroup.js +43 -9
  10. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  11. package/lib/commonjs/components/ModalHeader.js +99 -9
  12. package/lib/commonjs/components/ModalSheet.js +47 -9
  13. package/lib/commonjs/components/Onairos.js +380 -14
  14. package/lib/commonjs/components/OnairosButton.js +313 -13
  15. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  16. package/lib/commonjs/components/Overlay.js +465 -13
  17. package/lib/commonjs/components/PersonaImage.js +137 -10
  18. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  19. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  20. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  21. package/lib/commonjs/components/PinInput.js +464 -9
  22. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  23. package/lib/commonjs/components/PlatformList.js +137 -10
  24. package/lib/commonjs/components/PlatformToggle.js +180 -9
  25. package/lib/commonjs/components/PrimaryButton.js +180 -10
  26. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  27. package/lib/commonjs/components/SignInStep.js +345 -12
  28. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  29. package/lib/commonjs/components/VerificationStep.js +176 -11
  30. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  31. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  32. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  33. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  34. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  35. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  36. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  37. package/lib/commonjs/components/icons/EnochE.js +41 -8
  38. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  39. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  40. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  41. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  42. package/lib/commonjs/components/icons/index.js +84 -17
  43. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  44. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  45. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  46. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  47. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  48. package/lib/commonjs/config/api.js +56 -7
  49. package/lib/commonjs/constants/index.js +120 -7
  50. package/lib/commonjs/context/AuthContext.js +345 -10
  51. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  52. package/lib/commonjs/hooks/useConnections.js +102 -8
  53. package/lib/commonjs/hooks/useCredentials.js +178 -10
  54. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  55. package/lib/commonjs/index.js +439 -34
  56. package/lib/commonjs/services/apiClient.js +298 -8
  57. package/lib/commonjs/services/biometricPinService.js +180 -8
  58. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  59. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  60. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  61. package/lib/commonjs/services/claudeConversationService.js +158 -9
  62. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  63. package/lib/commonjs/services/googleAuthService.js +252 -11
  64. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  65. package/lib/commonjs/services/hingeDataService.js +150 -9
  66. package/lib/commonjs/services/imageCompressionService.js +260 -7
  67. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  68. package/lib/commonjs/services/instagramDataService.js +163 -9
  69. package/lib/commonjs/services/jwtStorageService.js +276 -7
  70. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  71. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  72. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  73. package/lib/commonjs/services/llmDataStorage.js +294 -8
  74. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  75. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  76. package/lib/commonjs/services/netflixDataService.js +198 -9
  77. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  78. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  79. package/lib/commonjs/services/platformAuthService.js +1484 -12
  80. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  81. package/lib/commonjs/services/sephoraDataService.js +200 -9
  82. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  83. package/lib/commonjs/services/spotifyDataService.js +241 -9
  84. package/lib/commonjs/services/storageService.js +404 -8
  85. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  86. package/lib/commonjs/services/telegramDataService.js +499 -9
  87. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  88. package/lib/commonjs/services/userConnectionsService.js +340 -10
  89. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  90. package/lib/commonjs/theme/index.js +250 -7
  91. package/lib/commonjs/types/ambient.d.js +2 -1
  92. package/lib/commonjs/types/declarations.d.js +2 -1
  93. package/lib/commonjs/types/index.js +6 -1
  94. package/lib/commonjs/types/node-fix.d.js +2 -1
  95. package/lib/commonjs/types/node-override.d.js +2 -1
  96. package/lib/commonjs/types/opacity.d.js +2 -1
  97. package/lib/commonjs/types.js +14 -1
  98. package/lib/commonjs/utils/Portal.js +98 -8
  99. package/lib/commonjs/utils/api.js +130 -9
  100. package/lib/commonjs/utils/assetRegistry.js +210 -35
  101. package/lib/commonjs/utils/auth.js +112 -9
  102. package/lib/commonjs/utils/connectorTests.js +613 -29
  103. package/lib/commonjs/utils/crypto.js +62 -8
  104. package/lib/commonjs/utils/debugHelper.js +64 -1
  105. package/lib/commonjs/utils/encryption.js +76 -7
  106. package/lib/commonjs/utils/eventUtils.js +288 -1
  107. package/lib/commonjs/utils/haptics.js +66 -9
  108. package/lib/commonjs/utils/imagePreloader.js +6 -1
  109. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  110. package/lib/commonjs/utils/onairosApi.js +350 -9
  111. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  112. package/lib/commonjs/utils/retryHelper.js +220 -1
  113. package/lib/commonjs/utils/secureStorage.js +349 -10
  114. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  115. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  116. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  117. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  118. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  119. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  120. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  121. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  122. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  123. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  124. package/lib/module/api/index.js +211 -1
  125. package/lib/module/assets/icons/spotify.png +0 -0
  126. package/lib/module/assets/images/spotify.png +0 -0
  127. package/lib/module/components/BodyText.js +20 -1
  128. package/lib/module/components/BrandMark.js +104 -1
  129. package/lib/module/components/CodeInput.js +109 -1
  130. package/lib/module/components/EmailInput.js +23 -1
  131. package/lib/module/components/GoogleButton.js +49 -1
  132. package/lib/module/components/HeadingGroup.js +36 -1
  133. package/lib/module/components/LLMDataInputModal.js +656 -7
  134. package/lib/module/components/ModalHeader.js +92 -1
  135. package/lib/module/components/ModalSheet.js +39 -1
  136. package/lib/module/components/Onairos.js +373 -1
  137. package/lib/module/components/OnairosButton.js +305 -1
  138. package/lib/module/components/OnairosSignInButton.js +121 -1
  139. package/lib/module/components/Overlay.js +456 -1
  140. package/lib/module/components/PersonaImage.js +129 -1
  141. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  142. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  143. package/lib/module/components/PinCreationScreen.js +396 -1
  144. package/lib/module/components/PinInput.js +456 -1
  145. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  146. package/lib/module/components/PlatformList.js +129 -1
  147. package/lib/module/components/PlatformToggle.js +173 -1
  148. package/lib/module/components/PrimaryButton.js +172 -1
  149. package/lib/module/components/SignInMatchAnimation.js +189 -1
  150. package/lib/module/components/SignInStep.js +338 -1
  151. package/lib/module/components/UniversalOnboarding.js +2770 -1
  152. package/lib/module/components/VerificationStep.js +168 -1
  153. package/lib/module/components/WelcomeScreen.js +453 -1
  154. package/lib/module/components/icons/Basicproficon.js +30 -1
  155. package/lib/module/components/icons/Basicprofile.js +14 -1
  156. package/lib/module/components/icons/Checkbox.js +14 -1
  157. package/lib/module/components/icons/Checkmark.js +20 -1
  158. package/lib/module/components/icons/Contentanalysis.js +14 -1
  159. package/lib/module/components/icons/Contenticon.js +32 -1
  160. package/lib/module/components/icons/EnochE.js +34 -1
  161. package/lib/module/components/icons/Personalityicon.js +23 -1
  162. package/lib/module/components/icons/Personalityprofile.js +14 -1
  163. package/lib/module/components/icons/Personalitytraits.js +14 -1
  164. package/lib/module/components/icons/Userpreferences.js +14 -1
  165. package/lib/module/components/icons/index.js +13 -1
  166. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  167. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  168. package/lib/module/components/onboarding/PinInput.js +274 -1
  169. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  170. package/lib/module/config/PLATFORM_APIS.md +849 -0
  171. package/lib/module/config/api.js +47 -1
  172. package/lib/module/constants/index.js +114 -1
  173. package/lib/module/context/AuthContext.js +335 -1
  174. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  175. package/lib/module/hooks/useConnections.js +95 -1
  176. package/lib/module/hooks/useCredentials.js +171 -6
  177. package/lib/module/hooks/useUserConnections.js +140 -1
  178. package/lib/module/index.js +172 -1
  179. package/lib/module/services/apiClient.js +295 -1
  180. package/lib/module/services/biometricPinService.js +169 -1
  181. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  182. package/lib/module/services/chatGPTConversationService.js +268 -1
  183. package/lib/module/services/claudeConversationExtractor.js +97 -1
  184. package/lib/module/services/claudeConversationService.js +151 -1
  185. package/lib/module/services/connectedAccountsService.js +293 -1
  186. package/lib/module/services/googleAuthService.js +241 -1
  187. package/lib/module/services/hingeDataExtractor.js +99 -1
  188. package/lib/module/services/hingeDataService.js +143 -1
  189. package/lib/module/services/imageCompressionService.js +250 -1
  190. package/lib/module/services/instagramDataExtractor.js +120 -1
  191. package/lib/module/services/instagramDataService.js +156 -1
  192. package/lib/module/services/jwtStorageService.js +257 -1
  193. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  194. package/lib/module/services/linkedinProfileService.js +210 -1
  195. package/lib/module/services/linkedinScrapingService.js +219 -1
  196. package/lib/module/services/llmDataStorage.js +277 -1
  197. package/lib/module/services/mobileTrainingService.js +173 -1
  198. package/lib/module/services/netflixDataExtractor.js +114 -1
  199. package/lib/module/services/netflixDataService.js +191 -1
  200. package/lib/module/services/pinEncryptionService.js +74 -6
  201. package/lib/module/services/pinStorageUtils.js +93 -1
  202. package/lib/module/services/platformAuthService.js +1461 -1
  203. package/lib/module/services/sephoraDataExtractor.js +134 -1
  204. package/lib/module/services/sephoraDataService.js +193 -1
  205. package/lib/module/services/spotifyDataExtractor.js +142 -1
  206. package/lib/module/services/spotifyDataService.js +234 -1
  207. package/lib/module/services/storageService.js +383 -1
  208. package/lib/module/services/telegramDataExtractor.js +109 -1
  209. package/lib/module/services/telegramDataService.js +493 -1
  210. package/lib/module/services/trainingApiHelpers.js +67 -1
  211. package/lib/module/services/userConnectionsService.js +329 -1
  212. package/lib/module/services/youtubeMigrationService.js +405 -1
  213. package/lib/module/theme/index.js +245 -1
  214. package/lib/module/types.js +10 -1
  215. package/lib/module/utils/Portal.js +90 -1
  216. package/lib/module/utils/api.js +118 -1
  217. package/lib/module/utils/assetRegistry.js +200 -34
  218. package/lib/module/utils/auth.js +100 -1
  219. package/lib/module/utils/connectorTests.js +600 -27
  220. package/lib/module/utils/crypto.js +54 -1
  221. package/lib/module/utils/debugHelper.js +54 -1
  222. package/lib/module/utils/encryption.js +67 -1
  223. package/lib/module/utils/eventUtils.js +270 -1
  224. package/lib/module/utils/haptics.js +59 -8
  225. package/lib/module/utils/imagePreloader.js +3 -1
  226. package/lib/module/utils/networkDiagnostics.js +217 -1
  227. package/lib/module/utils/onairosApi.js +333 -1
  228. package/lib/module/utils/programmaticFlow.js +111 -1
  229. package/lib/module/utils/retryHelper.js +211 -1
  230. package/lib/module/utils/secureStorage.js +330 -6
  231. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  232. package/lib/module/utils/webviewScripts/claude.js +370 -1
  233. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  234. package/lib/module/utils/webviewScripts/index.js +434 -1
  235. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  236. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  237. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  238. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  239. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  240. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  241. package/package.json +2 -2
@@ -1 +1,2770 @@
1
- function _0xcd13(_0x539b57,_0xcd13a){_0x539b57=_0x539b57-0x0;const _0x3710bc=_0x539b();let _0x1c527e=_0x3710bc[_0x539b57];return _0x1c527e;}import React,{useCallback,useEffect,useState,useRef}from'react';import{View,Text,StyleSheet,Dimensions,TouchableOpacity,TouchableWithoutFeedback,Platform,Modal,Animated,Linking,Alert}from'react-native';import AsyncStorage from'@react-native-async-storage/async-storage';import _0x34d39e from'./BrandMark';import _0x5fe3f9 from'./HeadingGroup';import _0x56eedb from'./BodyText';import _0x2ab69d from'./PrimaryButton';function _0x539b(){const _0x170606=['window','🔍\x20UniversalOnboarding:\x20visible\x20prop\x20changed\x20to:','phPPq','signin','🍎\x20[APPLE\x20FIX]\x20Current\x20step\x20was:','->\x20Setting\x20to:\x20welcome','welcome','code','platform','connect','VsMeN','📱\x20Stored\x20connected\x20platform:','Error\x20storing\x20connected\x20platform:','vzHVG','📱\x20Removed\x20connected\x20platform:','Remaining\x20platforms:','Error\x20removing\x20connected\x20platform:','❌\x20[BACKGROUND]\x20Failed\x20to\x20continue\x20background\x20training:','kKuQF','Error\x20disconnecting\x20platform:','oauth','Disconnect\x20Platform','🔍\x20Socket\x20state:','fpAMz','1|0|4|3|2','Error\x20loading\x20user\x20data:','Ovyvt','KhUJI','url','📊\x20Training\x20type:','🔐\x20Encryption\x20enabled:','🔒\x20Compression\x20enabled:','🔌\x20Cleaning\x20up\x20socket\x20connection...','IqnQr','epBcN','NsfSv','VPlVG','2|3|4|5|0|1','consent','existing_user_token','existing_user_info','🔍\x20Found\x20existing\x20user\x20info\x20-\x20user\x20wants\x20to\x20add\x20more\x20data','disconnected','Initial\x20connection\x20status:','Connection\x20statuses\x20set:','Platform\x20toggles\x20set:','Error\x20loading\x20initial\x20connection\x20status:','OuAgt','🍎\x20Get\x20Started\x20pressed\x20(Apple\x20user)\x20-\x20skipping\x20signin,\x20going\x20to\x20platforms','Verification\x20failed.\x20Please\x20try\x20again.','Mfcfc','reviewer@bypass.com','2|0|6|4|1|3|5','onairos_user','true','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder','test@bypass.com','✅\x20Verification\x20code\x20sent\x20successfully','❌\x20Error\x20sending\x20verification\x20code:','WdBdm','Failed\x20to\x20resend\x20verification\x20code.','❌\x20No\x20authentication\x20token\x20available','No\x20authentication\x20token\x20available','No\x20background\x20socket\x20ID\x20available','🔌\x20[BACKGROUND]\x20Using\x20existing\x20socket\x20ID:','✅\x20[BACKGROUND]\x20PIN\x20submitted\x20for\x20existing\x20training\x20session','BhuDj','🔗\x20Initiating\x20Google\x20Sign-In','Xwizs','rAGcr','🔍\x20Is\x20new\x20user?','👤\x20Returning\x20user\x20detected\x20via\x20Google\x20Sign-In\x20-\x20checking\x20for\x20existing\x20connections','1|0|5|4|3|2','ℹ️\x20No\x20existing\x20connections\x20found\x20-\x20proceeding\x20to\x20platforms\x20step','⚠️\x20Could\x20not\x20fetch\x20existing\x20connections,\x20proceeding\x20to\x20platforms:','rjEiI','vXyZC','NbHEX','❌\x20Google\x20Sign-In\x20error:','Google\x20Sign-In\x20failed.\x20Please\x20try\x20again.','PnYBq','🧪\x20Test\x20bypass\x20-\x20skipping\x20code\x20verification,\x20going\x20to\x20platforms','🔍\x20App\x20name:','✅\x20Email\x20verification\x20successful','🔍\x20Checking\x20for\x20returning\x20user\x20data...','pzlZQ','👋\x20Welcome\x20back!\x20User\x20has\x20existing\x20connections,\x20skipping\x20to\x20consent\x20screen','NIUvL','🆕\x20New\x20user\x20or\x20no\x20existing\x20connections,\x20showing\x20platform\x20connection\x20screen','❌\x20Email\x20verification\x20failed:','Invalid\x20verification\x20code.\x20Please\x20try\x20again.','❌\x20Error\x20verifying\x20email\x20code:','👋\x20Logout\x20requested\x20-\x20clearing\x20tokens\x20and\x20navigating\x20to\x20login','sdk_jwt_token','onairos_jwt_token','onairos_username','training-complete-token','DnRih','🔄\x20Resending\x20verification\x20code\x20to:','YouTube\x20connection\x20failed.\x20Please\x20try\x20again.','KyOJC','✅\x20Onboarding\x20complete!\x20Connected\x20platforms:','user_email','🔑\x20[SDK]\x20Auth\x20data\x20retrieved\x20in\x20parallel','gBjII','✅\x20[SDK]\x20Calling\x20onComplete\x20with\x20token\x20and\x20user\x20data','takRH','🍎\x20[SDK]\x20Calling\x20onComplete\x20with\x20email\x20(no\x20SDK\x20token\x20-\x20Apple\x20auth)','⚠️\x20[SDK]\x20No\x20email\x20found\x20-\x20calling\x20onComplete\x20with\x20limited\x20data','CONNECTIONS_REQUIRED','Connections\x20required','Almost\x20done','⚠️\x20[SDK]\x20User\x20skipped\x20-\x20no\x20auth\x20data\x20available','vtSwe','✅\x20[SDK]\x20Skip\x20complete\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','3|2|4|5|0|1','🧪\x20Testing\x20mode\x20enabled','💾\x20Storage\x20method:','3|4|5|1|0|2','LEhYn','EAvbQ','iAlly','❌\x20Failed\x20to\x20store\x20reviewer\x20bypass:','🔍\x20UniversalOnboarding:\x20modalVisible\x20state\x20is:','➕\x20Returning\x20user\x20wants\x20to\x20connect\x20more\x20platforms','asJRV','QkTnC','❌\x20Training\x20update\x20error:','2|3|0|1|4','Training\x20model...','chatgpt','llm','🤖\x20Handling\x20LLM/ChatGPT\x20connection\x20-\x20sending\x20to\x20backend...','3|4|1|5|0|2','✅\x20Backend\x20received\x20and\x20stored\x20LLM\x20data','📝\x20Connection\x20ID:','cgTXi','NVHpt','CtWUe','NMICY','vANqF','AoSmT','htrOl','❌\x20[TRANSITION]\x20Background\x20training\x20failed\x20during\x20transition:','1|0|4|2|3','🧠\x20Inference\x20Complete:','PGDzy','XZIzB','🔄\x20Returning\x20to\x20connect\x20step','🔐\x20[PIN\x20SUBMIT]\x20PIN\x20submitted,\x20checking\x20for\x20background\x20training...','✅\x20[PIN\x20SUBMIT]\x20Background\x20training\x20detected,\x20continuing\x20with\x20PIN\x20validation...','persona','jhQJx','Error:\x20Failed\x20to\x20continue\x20training','ℹ️\x20[PIN\x20SUBMIT]\x20No\x20background\x20training\x20detected','pin','Failed\x20to\x20create\x20or\x20retrieve\x20authentication\x20token','SaVaa','Starting\x20training...','KxWUw','🚀\x20Starting\x20Enoch\x20training\x20with\x20socketId:','🔑\x20Using\x20auth\x20token:','None','mobile_user','📱\x20Connected\x20platforms\x20for\x20training:','📤\x20Sending\x20training\x20data\x20to\x20/mobile-training/enoch:','5|7|6|3|2|0|1|4','🔗\x20Connections\x20required\x20detected\x20from\x20HTTP\x20response','🚀\x20Training\x20Started:','HwohR','1|0|2|5|4|6|3','fsBvP','Training\x20failed\x20to\x20start','Unknown\x20error','SFjpH','XVlBJ','🔍\x20Socket\x20state\x20after\x205\x20seconds:','✅\x20Socket\x20connected\x20for\x20training','🔌\x20Socket\x20connection\x20details:','🔌\x20Socket\x20ID\x20for\x20training:','🔄\x20Socket\x20ready\x20for\x20persona\x20display\x20with\x20token:','Waiting\x20for\x20training\x20to\x20start\x20from\x20connector→PIN\x20transition','❌\x20No\x20socket\x20ID\x20available\x20after\x20connection','Connection\x20error.\x20Please\x20try\x20again.','❌\x20Socket\x20reconnection\x20error:','✅\x20Training\x20Complete:','3|1|0|4|2','Uploading\x20to\x20S3','yGgGs','🎉\x20All\x20Complete:','🧠\x20Inference\x20enabled:','bVZfZ','🔄\x20YouTube\x20token\x20expired,\x20triggering\x20reconnection...','YouTube\x20token\x20expired\x20-\x20reconnecting...','5|0|2|3|4|1|7|6','2|3|0|7|5|4|1|6','No\x20interaction\x20data\x20found','3|2|0|4|5|1','LIMITED_DATA','AKkNa','test@example.com','zXJIo','❌\x20Socket\x20connection\x20timeout\x20after\x2020\x20seconds','aDPFF','xzIih','❌\x20No\x20real\x20authentication\x20token\x20found\x20after\x20training\x20completion','❌\x20Socket\x20disconnected,\x20reason:','🔍\x20Disconnect\x20details:','🔄\x20Socket\x20reconnected\x20after','attempts','WrWNo','🔄\x20Socket\x20reconnection\x20attempt:','🍎\x20[APPLE\x20FIX]\x20primaryAuthOnly\x20detected\x20-\x20resetting\x20to\x20welcome\x20step','owhaF','VPMFA','🔍\x20Token\x20length:','cFDMJ','✅\x20YouTube\x20tokens\x20refreshed,\x20but\x20training\x20restart\x20disabled','❌\x20Token\x20refresh\x20failed,\x20attempting\x20full\x20reconnection...','❌\x20YouTube\x20reconnection\x20failed:','YouTube\x20reconnection\x20failed.\x20Please\x20restart\x20from\x20connector\x20screen.','❌\x20YouTube\x20token\x20refresh/reconnection\x20error:','VTbBc','Failed\x20to\x20create\x20authentication\x20token\x20for\x20background\x20training','Initializing','🚀\x20Starting\x20persona\x20creation...','🔐\x20Step\x201:\x20Ensuring\x20authentication\x20token...','✅\x20Authentication\x20token\x20set\x20in\x20state:','🔑\x20Token\x20stored\x20verification:','🔧\x20Setting\x20up\x20socket\x20connection\x20for\x20real\x20training...','🧑‍💻\x20User\x20info\x20available:','🔑\x20Token\x20available:','🔗\x20Network\x20connectivity\x20check\x20starting...','Connecting','websocket','🔌\x20Socket\x20instance\x20created:','disconnect','reconnect_error','connect_error','trainingCompleted','trainingUpdate','🔌\x20Attempting\x20to\x20connect\x20to\x20socket...','🔌\x20Socket\x20connect()\x20called\x20-\x20waiting\x20for\x20connection...','VcuWv','Failed\x20to\x20initialize\x20training.\x20Please\x20try\x20again.','🚀\x20Background\x20training\x20started:','🎯\x20Background\x20training\x20Features:','5|0|6|1|2|3|4','7|0|3|1|6|5|4|2','Something\x20went\x20wrong.\x20Please\x20try\x20again.','yWSwU','Trying\x20to\x20understand\x20your\x20mind','hKCHx','You\x27re\x20more\x20interesting\x20than\x20I\x20expected','IDKTk','GERtx','Finalizing\x20your\x20unique\x20persona','tRCgL','SYxor','sbwxg','Just\x20a\x20few\x20more\x20seconds','❌\x20[BACKGROUND]\x20Socket\x20disconnected','yOgsK','🎉\x20Real\x20persona\x20creation\x20completed\x20successfully','DSPpE','❌\x20Error\x20retrieving\x20real\x20token\x20for\x20onComplete:','ednCB','WIFXq','⚠️\x20No\x20authentication\x20token\x20found','ℹ️\x20SDK\x20does\x20not\x20create\x20users\x20during\x20onboarding','❌\x20Error\x20checking\x20authentication\x20token:','TFYJQ','kxdws','🚀\x20[TRANSITION]\x20Starting\x20background\x20training\x20during\x20connect\x20→\x20pin\x20transition','0|5|3|1|4|2','IXIGQ','OswYL','🚀\x20[BACKGROUND]\x20Starting\x20background\x20training\x20optimization...','✅\x20[BACKGROUND]\x20Auth\x20token\x20ready:','🔌\x20[BACKGROUND]\x20Setting\x20up\x20socket\x20for\x20background\x20training...','❌\x20[BACKGROUND]\x20Background\x20training\x20failed:','AVWGi','📡\x20Background\x20training\x20API\x20response:','🔗\x20Connections\x20required\x20detected\x20from\x20background\x20training','❌\x20Background\x20training\x20start\x20failed:','❌\x20Background\x20training\x20start\x20error:','ObWXy','✅\x20Returning\x20user\x20accepted\x20consent','RDgai','🔑\x20[SDK]\x20Auth\x20data\x20retrieved\x20in\x20parallel\x20for\x20returning\x20user','✅\x20[SDK]\x20Calling\x20onComplete\x20for\x20returning\x20user','djAKA','❌\x20[SDK]\x20Error\x20during\x20returning\x20user\x20consent:','Hvlxj','❌\x20Returning\x20user\x20declined\x20consent','pinterest','#0077B5','reddit','Reddit','Gmail','ChatGPT','#10A37F','Debug\x20Padding','Handle\x20Top:\x20','Hide\x20Debug','MoRdM','tMHlY','fPjPQ','ytfQP','Medium','Value','SDWQf','jSZgM','yVUMY','HxDgq','aVynB','ieUGz','XRGVN','log','OeeBp','FrMyS','OUvrc','zhFHk','DkFHX','xpktL','iHOag','ayNms','gewjw','rzioO','qROFK','yFLXK','iUaUN','XWleM','byheS','dNLPl','Initializing...','GmTkl','yyJlp','LFsDM','JchOF','dhxNO','DHMja','yigst','getItem','EkHXJ','parse','includes','HMcOO','setItem','stringify','fnzJC','searchParams','PWARV','get','uqIas','BbePH','error','uWzBI','rRlSv','lCwVl','Pfkpi','zirdE','uylnd','cgxsU','filter','connectedPlatforms','tXgpk','rMatU','pziOO','QBsFq','ycaoH','Are\x20you\x20sure\x20you\x20want\x20to\x20disconnect\x20','cancel','BspHC','destructive','MsfMh','wldky','VJgpu','aXGAF','fXYgo','TYFhS','gnfyn','aeDGl','🔌\x20Disconnected\x20platform:','Srhvo','zYRhS','hXdhC','cZhFg','rbLUr','FOKHM','current','XZGhh','connected','hQLgg','VChzM','nPAfZ','gqxEp','wqEkI','RuCOz','RDjdw','repeat','LCNxh','HTKeI','Pinterest','wZqZe','TarxY','linkedin','KChMr','hLJGo','#FFFFFF','gmail','bvoln','pzXzu','jTwpQ','mHdkv','cUaXV','jOhYD','hDhYA','nSIRg','aBmuq','GDUhp','LSVeK','❌\x20Socket\x20error\x20details:','kQmUr','RXaqM','csqum','npOxX','split','pohDW','message','name','stack','CLDlf','gIkUZ','EoJmN','DYeTY','QftVR','tYDUQ','ynLUA','HwgfO','EJVtI','QqgXb','setValue','gbPFb','KTZyZ','timing','start','addEventListener','ONgHo','CNJsS','Nfhla','ZjYtx','IBZCe','RVZeo','DAVUB','BFoYS','VRjeh','GXdaA','MjrZP','QOaqe','RVsJR','remove','PUnre','jgqhF','call','cyCXq','kCRAn','CxpmC','📈\x20Query\x20scores\x20enabled:','TsDvv','✅\x20Inference\x20enabled:','VrEhQ','LHhzu','qWjyV','5|2|4|3|0|6|1','RTNOW','features','type','bKQKK','queryScores','npfHp','encryption','lLMNr','jcINa','inference','databases','eFdxt','FIFbh','RaBQR','XaalJ','platforms','gHJKw','anmgF','YTbZo','iqVzo','nGZtf','fylJe','uAsmD','DYJch','ZaJfH','RzBNl','ZmiYv','DfatH','IHZxx','VYAMp','yvESz','fQmkR','NkjXP','vAWrV','VHunI','RXXnS','removeItem','pvNou','wruRp','TuHnb','wtUZj','RfSMQ','qtoeO','email','XSFUw','DfFiw','🔍\x20Using\x20username\x20for\x20training:','WxFsX','eiXGw','zPmXI','length','MzSAN','sUDHh','WyWNE','🔑\x20[CACHED\x20LOGIN]\x20User\x20has\x20existing\x20connections:','zsJhW','tWhEF','oPSIP','bjlMm','✅\x20Found\x20','KMrTs','hVFHJ','unEIG','erHYB','wxDRZ','oqXru','user_','floor','ghrXe','random','XnXqF','🔍\x20Loading\x20username\x20for\x20data\x20connections:','HcRas','keys','gdUOE','forEach','cgUCf','AUUbz','XJgpo','iDQqb','FnTUq','hVjre','kckAE','lpwse','NvHVt','YdBTY','jLrKA','MyQOj','Pxxlg','xYBlW','BUTTON_PRESS','pyqZE','IQodG','LWjjq','lwxUV','verification','PquyD','iggTy','ObGdw','PSZwv','cQluz','wUkps','LOvQh','LSiaR','GqmVH','dlcUy','jOqoP','eJhwy','🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen','DSKjh','TSIzz','AlFWv','iDUaS','success','zaJup','gbakJ','euwLB','Failed\x20to\x20send\x20verification\x20code.\x20Please\x20try\x20again.','lcwct','nqXjj','XkLLn','yrAfj','MHnDy','pPXgT','🔐\x20[BACKGROUND]\x20PIN\x20validation\x20-\x20continuing\x20with\x20existing\x20training\x20session','jWFTa','rTfdH','bWMNU','NypZL','qJnlV','xYrOd','wsPcN','user','tuPsL','✅\x20Google\x20Sign-In\x20successful:','naEXr','isNewUser','username','MfGUJ','oCdza','KaEpp','\x20existing\x20connections\x20-\x20skipping\x20to\x20consent','SUCCESS','map','tTvPi','GPsXK','cancelled','YCPZp','xvCdi','agBaY','ℹ️\x20Google\x20Sign-In\x20cancelled\x20by\x20user','EigLK','ERROR','rCbYR','UhGcy','TEMxX','VngJw','...','khfaE','Pboyc','OEtYy','iqrgq','NaUXi','idFig','kfBoc','YVwEA','mIpvl','eeCbp','jfuTy','xIOdw','yLROM','existingUserData','hasExistingData','QQpls','connections','flowType','EUzZT','CKYMe','isArray','hasData','status','active','🔍\x20Returning\x20user\x20check:','ToKqC','tJjQg','StMDQ','clTKX','SuRqm','iqEOz','UheqW','NNYPq','CWCRy','wLdYT','multiRemove','YjXvw','twGzL','nmpzH','sBDpE','aAzok','KCAzN','FRCHk','DvSTx','oTiNo','✅\x20Verification\x20code\x20resent\x20successfully','PZNLo','KbUzf','sBXry','BASE_URL','❌\x20Error\x20resending\x20verification\x20code:','INCUn','EFyEG','dgYAe','all','ikiai','MYDAS','IErJL','fAXSb','substring','📧\x20[SDK]\x20Email\x20available:','NvVbF','YIETQ','xvzLX','LTDcX','NXxOv','vabVp','qRXfp','HQYcE','GDzSM','IomYu','warn','mTxOw','iFzVq','NeoZb','❌\x20[SDK]\x20Error\x20retrieving\x20auth\x20data\x20for\x20onComplete:','catch','vUCVy','GrkcG','WHGbm','mrXCa','IimaV','JYDYe','ESeUi','vKKxj','⏭️\x20Skipping\x20platform\x20connections','✅\x20[SDK]\x20User\x20skipped\x20platforms\x20-\x20still\x20calling\x20onComplete\x20with\x20auth\x20data','NUUaf','RxufT','xqDFY','PJbvv','NTkYY','ccFSD','kmlbE','VsafH','iwVVD','wkDdm','pDNHW','tFkFJ','IBAYj','IzTic','jlJKF','CozEx','AUZAU','WdDxt','JmhzJ','CtSNU','join','testing','XOmLK','qZmUo','storage','LISEj','YKXjE','PCYLW','yxQEq','HIRnK','dFHbF','JAgla','rfhHi','lqgOJ','DjLzV','Xscbl','🔑\x20[CACHED\x20LOGIN]\x20Skipping\x20to\x20consent\x20screen','tuXEY','vgMOG','MByuW','zJstw','Dmzhw','fMrTj','ZMAfx','EmpdP','KkPVp','legee','🔍\x20UniversalOnboarding:\x20primaryAuthOnly\x20is:','JJHNj','DJzDW','Error\x20connecting\x20to\x20','DVupH','zoVNX','lcpqI','FzYdF','WqxHb','DKLDs','psZgE','fIsJh','VHlwr','AiNMK','❌\x20Failed\x20to\x20send\x20verification\x20code:','rtJns','ruAgt','xzJXA','kbyoN','PYOIe','oPmiA','vHFjt','JgzmN','wqPCr','_user','ksIeN','xcuuo','OKZzQ','QnTIp','XCnst','@temp.com','now','\x20successfully\x20connected\x20and\x20stored\x20in\x20backend','ZIxRN','connectionId','obXPl','BDORR','ybxgu','gJdVC','mDkic','details','Creating\x20your\x20persona\x20with\x20available\x20data','vLNcv','AbtKh','UQnZa','BFVIs','epAlg','kPMgd','ItZcA','vTpVA','EUFSx','gtbZs','uaqSD','LQguz','DTxtG','Error\x20initiating\x20OAuth\x20for\x20','Error:\x20','uqhdL','Djckh','PBoNp','AdYEX','PgYit','compression','UWhTC','MBpnv','uPMSz','kJfwW','xuHgz','yROWs','kVivD','XeIeg','NjaMy','KmGxY','jRxsQ','eBHpM','BbEIj','Error\x20handling\x20OAuth\x20callback:','zMPWX','xWOog','GbqqR','hvGjF','🎉\x20OAuth\x20success\x20for\x20','\x20-\x20backend\x20callback\x20completed','📝\x20Received\x20result:','hLBSC','DOpFS','MVShj','YitMA','\x20connection\x20stored\x20successfully','✅\x20Updating\x20connection\x20state\x20for\x20','EyWKG','otPgb','diPUi','GUHoB','traits','inferenceResults','DDbrJ','VGmrp','PgTPI','aKkhf','uJWfD','ObLOo','ExKjw','ckQtT','VUkby','sOikK','vTXcY','DOfQe','zeoOx','arHTl','tgpVJ','lHnNU','HGfWA','vKzeH','TWQGv','zmcxr','ODuma','upWCN','thGbq','wADPo','LEGqC','IIeob','cISOF','gJYYo','msoci','gQrBN','requiresConnections','mLDib','oWWuu','kMOcl','VIgQC','cTqBa','obuXY','OQTdI','sxLtU','GxMKo','BvoFf','OrWxj','❌\x20Training\x20start\x20failed:','qSYvR','qdsKp','ytzYO','❌\x20Training\x20start\x20error:','nhTWz','hgNXf','vxlyM','Iotze','dVSNS','HmdHK','VBbWW','TbreC','VUpxD','eCBNU','sMOJR','Vuyvf','SXPEE','xoaww','lZbgX','trtAk','galvJ','vexMC','KeCIw','qJqhQ','sftwx','KUOPi','Mejuy','PFEDi','GniOs','KsSKG','CFyIS','🔍\x20Socket\x20state\x20after\x201\x20second:','LGYIZ','FSdKv','kxGlw','qfVqE','DNbPb','❌\x20Socket\x20reconnection\x20failed\x20after\x20all\x20attempts','YaSwW','AhtcR','JqiTu','sYVhg','DjNzu','tGVim','aPWqs','FEhUD','wLDHC','PPPcZ','eVtzA','ynvuC','Yftjd','sINXt','Processing...','nUiZU','mSzfD','EqeEh','hjjbE','dcNpL','avvlH','cuFRU','nkWzW','ntExu','nTyQT','mGmpt','ZEOkp','xLeWy','sQJuM','engine','sKUkV','readyState','iFcMi','HSieJ','bjjIq','JZcCk','gbwVL','ctNnU','koSWN','WvDnH','dbBwd','Qzpee','gvpXo','dfhGK','eZZMS','ofBCv','dMejS','SFsFV','❌\x20No\x20authentication\x20token\x20available\x20after\x20ensureAuthToken','syBML','Ssdhp','🌐\x20Attempting\x20to\x20connect\x20to:\x20${API_CONFIG.BASE_URL}','TRSFZ','Catuv','egyfr','QMeVe','polling','shvYC','royis','kqTTI','IGeLK','plDZA','nalMg','ipqQX','kgqtO','anTGS','Starting\x20training','WVduB','nXOCU','dljSj','pgScs','XsVwS','NIkXg','iZqCB','EvULq','UYHVW','untZL','eQvVG','AAnPa','QMCll','ADfTO','ZOuyC','dPYQD','BOWIm','kDUCV','reconnect','RkRkF','IDZNu','WILAM','QPWwF','qtWLS','ZfYbD','ovskB','hjQro','mGVTI','Fhlrx','AsOWN','IulCg','reconnect_failed','XnwFA','TAGYs','qeryu','sheMb','xTvmK','lQrWV','nAwRb','fYriU','yGYqP','KGqbu','WSXUN','OMjuI','xabVF','UwEth','vTYoV','HtiBO','inferenceCompleted','tLIvX','PqkDH','modelStandby','TpvqX','BdIOm','yeRiQ','completed','yRvaT','SZiQQ','JEaHv','XrkPP','apOmH','ycdng','qBFkJ','IrRNl','sUnCB','NxSzr','YouTube\x20access\x20token\x20has\x20expired','JFaFl','CgzCJ','gAhNm','🔄\x20Attempting\x20to\x20refresh\x20YouTube\x20tokens...','xKfpJ','qpAjl','EDRrO','nnwYs','MCFSZ','jtLhs','gVtBS','CGyAk','✅\x20YouTube\x20reconnected,\x20but\x20training\x20restart\x20disabled','YouTube\x20reconnected\x20-\x20please\x20restart\x20from\x20connector\x20screen','zBRzt','IaKHQ','THKrM','tSMqn','jamAe','PNkbR','bCmOD','eibDm','UFzIr','nDsfA','UqfNW','SLwDH','tyOPL','NPTWp','tDfxV','NO_DATA','xgqzh','pGCJF','sWygj','dcnzw','efQNT','YhEva','HmIhK','yEaLi','lTvWj','progress','Hpmhk','pIFeL','ldvkk','ClbJr','rMvZs','Jyauz','NIzNe','TXIek','htUnR','hvkci','PBSGN','LLfIJ','CrhgO','nqpOE','PQsKA','ZJhDv','XhcIh','FIHKn','PaPTs','Connection\x20timeout.\x20Please\x20check\x20your\x20internet\x20and\x20try\x20again.','nwxYy','ApTbw','nbFdS','kGUXU','Nbabr','SRGoP','DaCGL','oKGpr','GucNQ','uSgJm','gDhxY','zjcAI','iGriw','qNUEZ','Keeping\x20your\x20data\x20private','bKESY','ELArj','pGbYY','VfbOA','VMyng','MhcTH','Background\x20training\x20model...','oqrZp','NojQl','DLLLT','RePXa','1|5|0|4|2|3','aNvcr','JKPQb','hHDbN','eutmY','PzYdq','GmZsf','PhBhV','HkKSy','BKHcG','Stgwp','bymmB','qsdru','QoYVQ','wbLTY','PVlSx','nNgNh','EDebU','CTykp','🔌\x20Disconnecting\x20training\x20socket...','bWQUr','✅\x20Using\x20real\x20authentication\x20token\x20for\x20onComplete:','DoqLB','kXEvg','QCPyE','ysazy','LfHKe','nWdzc','VElDx','divno','lfrWN','eijvg','slLdP','rPIXl','raGQf','SuAPs','values','some','vRfbS','QxYIx','Hlsxw','hUaKm','tgrGE','huvoR','EfhDN','ZlLHo','yEeGZ','UBLsh','Yolhs','AciNL','vmdQh','hjALT','gvgxq','rDKlD','kHqLc','MZzzO','RmxQJ','dNPPn','MqFtf','WfIHT','IEbOb','EIHOp','Initializing\x20data\x20collection...','aBOIj','alOXZ','rxoDv','enWdo','hWKHr','mHTWv','DAidy','AqupM','wwkGF','cGYFL','SLVOh','ahNEl','wantE','ieSdJ','RJSmS','DWxjv','vZeyS','ezgfy','nJOhm','📊\x20[BACKGROUND]\x20Training\x20progress:','KXtHl','lDESj','ZnLVo','yTJhH','cmAPG','cwsgt','AKyRh','poWiM','Hqdqd','htsty','mzPhH','BUcpt','IgYbC','qARkE','KRtNZ','KzUPF','ANPnR','DzoRd','YoGPP','Sxuud','mmJcM','bqzqq','vRyGR','gElcB','mFcuU','sIqFZ','🗄️\x20Databases:','QLiVW','MGUSM','mEljQ','sIhet','Background\x20training\x20failed\x20to\x20start','iqoeY','yOovB','createElement','ZfmGl','modalOverlay','View','backdrop','bottomSheet','container','handleContainer','debugPanel','debugTitle','VOxex','debugLabel','max','debugBtn','debugRow','HsUDz','debugCloseBtn','debugCloseBtnText','NCoVL','welcomeContainer','headingContainer','welcomeSpacer','welcomeButtonContainer','Get\x20Started','fklQa','cRtIG','GewIS','xyxPd','rUluC','cItJA','PsBuN','YUAVc','Jrrre','QVfCK','OOjCM','QACjr','HsBwM','xOGVa','uLgSt','USfDS','sDdNy','wXYEp','FnmUI','XVbkk','JuKdb','MuPXz','✅\x20[SDK]\x20Returning\x20user\x20onComplete\x20finished\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','QRVGP','NtseQ','GsfDu','RVTpM','create','flex-end','absoluteFillObject','rgba(0,\x200,\x200,\x200.5)','hidden','#FAFAFA','center','100%','transparent','#D0D0D0','absolute','rgba(0,0,0,0.85)','#fff','700','row','#444','bold','600','#666','#000000','underline','#F5F5F5','#333','#E5E5E5','#E9C46A','#000','space-between','#F0F0F0','flex-start','#1BA9D4','#FF3B30','500','italic','#FFF5F5','#FEB2B2','#D1D5DB','#6B7280','#FF6B6B','#F8F9FA','#E5E7EB','#F0F9FF','#0EA5E9','#0369A1','#0C4A6E'];_0x539b=function(){return _0x170606;};return _0x539b();}import _0x2dc3ce from'./SignInStep';import _0x26a6fe from'./VerificationStep';import _0x2417dd from'./PlatformConnectorsStep';import _0x248186 from'./PersonalizationConsentScreen';import{initiateOAuth,initiateNativeAuth,hasNativeSDK,isOAuthCallback}from'../services/platformAuthService';import{getUniversalOnboardingIcon}from'../utils/assetRegistry';import{signInWithGoogle}from'../services/googleAuthService';import{triggerHaptic,HapticType}from'../utils/haptics';import{getOnairosUsername,getAuthToken,sendEmailVerificationCode,confirmEmailVerificationCode}from'../services/authService';import{io}from'socket.io-client';import{setTemporaryPin,clearTemporaryPin}from'../services/pinStorageUtils';import{getEncryptedPinForAPI}from'../services/pinEncryptionService';import{startEnochTrainingWithYouTubeCheck}from'../services/mobileTrainingService';import{sendLLMDataToBackend}from'../services/llmDataStorage';import{getConnectedAccountsSmart}from'../services/connectedAccountsService';import{API_CONFIG}from'../config/api';import{getJWT,storeJWT}from'../services/jwtStorageService';import{refreshYouTubeTokens}from'../services/platformAuthService';const {height,width}=Dimensions['get'](_0xcd13(0x0));export const UniversalOnboarding=({visible:_0x1c3d99,onClose:_0x58d05c,AppName:_0x20ed1d,requestData:_0x4d56eb,returnLink:_0x3c71de,onComplete:_0x108330,embedd:embedd=![],debug:debug=![],test:test=![],preferredPlatform:_0x438f64,primaryAuthOnly:primaryAuthOnly=![],allowedPlatforms:_0x1d1474,recommendedPlatforms:_0x3cd581,allowSkip:allowSkip=!![]})=>{const _0x38fe1c={'PrfQq':_0xcd13(0x1),'OeeBp':'🔍\x20UniversalOnboarding:\x20current\x20step\x20is:','aEpvV':'🔍\x20UniversalOnboarding:\x20primaryAuthOnly\x20is:','yFLXK':function(_0x2b8e78,_0x1248a4){return _0x2b8e78(_0x1248a4);},'FrMyS':'🔑\x20[CACHED\x20LOGIN]\x20User\x20authenticated\x20but\x20no\x20connections\x20-\x20skipping\x20to\x20platforms','tMHlY':'platforms','wldky':function(_0x5c0c41,_0x283852){return _0x5c0c41!==_0x283852;},'OUvrc':_0xcd13(0x2),'iHOag':_0xcd13(0x3),'ayNms':function(_0x3e7ddb,_0x419f86){return _0x3e7ddb===_0x419f86;},'gewjw':'verification','fXYgo':function(_0x3bb783,_0x35cef8){return _0x3bb783!==_0x35cef8;},'vYDDM':'ZBFzh','rzioO':'TfcrA','qfVqE':_0xcd13(0x4),'qROFK':_0xcd13(0x5),'fPjPQ':_0xcd13(0x6),'PWARV':_0xcd13(0x7),'uqIas':_0xcd13(0x8),'csmep':function(_0x3677c2,_0x53e718){return _0x3677c2&&_0x53e718;},'BbePH':_0xcd13(0x9),'uWzBI':'Error\x20handling\x20OAuth\x20callback:','EkHXJ':'connectedPlatforms','HMcOO':_0xcd13(0xa),'fnzJC':_0xcd13(0xb),'nvtVh':'Total\x20platforms:','rRlSv':function(_0x377a6d,_0x50ceda){return _0x377a6d===_0x50ceda;},'lCwVl':'LeNtL','Pfkpi':_0xcd13(0xc),'zirdE':_0xcd13(0xd),'uylnd':function(_0x7c17d0,_0x55fbcf){return _0x7c17d0!==_0x55fbcf;},'cgxsU':'QHaLN','tXgpk':_0xcd13(0xe),'rMatU':_0xcd13(0xf),'pziOO':_0xcd13(0x10),'MsfMh':_0xcd13(0x11),'VJgpu':'eeyrF','TYFhS':_0xcd13(0x12),'RXaqM':function(_0x2a4822){return _0x2a4822();},'Srhvo':_0xcd13(0x13),'QBsFq':_0xcd13(0x14),'ycaoH':_0xcd13(0x15),'BspHC':'Yes','ZuIiG':function(_0x2f93eb,_0x195988){return _0x2f93eb%_0x195988;},'RuCOz':function(_0x2b4e29,_0x29ff56){return _0x2b4e29+_0x29ff56;},'RDjdw':function(_0x564ffe,_0x5f0950){return _0x564ffe===_0x5f0950;},'gqxEp':function(_0x393597,_0x15ce56){return _0x393597(_0x15ce56);},'hXdhC':_0xcd13(0x16),'zaJup':function(_0x3f27d9,_0x44f62c){return _0x3f27d9(_0x44f62c);},'cZhFg':'Connection\x20timeout.\x20Please\x20check\x20your\x20internet\x20and\x20try\x20again.','rbLUr':function(_0x594740,_0x193118){return _0x594740!==_0x193118;},'FOKHM':_0xcd13(0x17),'wqEkI':function(_0x2d449e,_0x577c0a,_0x2e2042){return _0x2d449e(_0x577c0a,_0x2e2042);},'LCNxh':function(_0x1c854a,_0x5e3f3c){return _0x1c854a(_0x5e3f3c);},'LSVeK':_0xcd13(0x18),'kQmUr':'❌\x20Socket\x20connection\x20error:','csqum':function(_0x49af0a,_0x5810a0){return _0x49af0a===_0x5810a0;},'npOxX':'jlJFi','QftVR':_0xcd13(0x19),'WYasO':function(_0x2f9405,_0xa7b55e){return _0x2f9405===_0xa7b55e;},'tYDUQ':function(_0x371e5c,_0x138adf){return _0x371e5c===_0x138adf;},'QqgXb':function(_0x25cbd2,_0x220eaa){return _0x25cbd2===_0x220eaa;},'pabBz':_0xcd13(0x1a),'ynLUA':_0xcd13(0x1b),'HwgfO':function(_0x944293,_0x35469b){return _0x944293(_0x35469b);},'EJVtI':function(_0x450a7a,_0x30fc5a){return _0x450a7a===_0x30fc5a;},'gbPFb':function(_0x537471,_0x3b40bc){return _0x537471(_0x3b40bc);},'KTZyZ':function(_0x994b8b,_0x15b1f9){return _0x994b8b(_0x15b1f9);},'ONgHo':_0xcd13(0x1c),'cyCXq':function(_0x3ea32a,_0xaf430f){return _0x3ea32a(_0xaf430f);},'CxpmC':_0xcd13(0x1d),'TsDvv':_0xcd13(0x1e),'PYOIe':_0xcd13(0x1f),'oPmiA':'🗄️\x20Databases:','clTKX':_0xcd13(0x20),'VrEhQ':function(_0x270e78,_0x5e0950){return _0x270e78===_0x5e0950;},'LHhzu':_0xcd13(0x21),'qWjyV':_0xcd13(0x22),'yvESz':function(_0x38b66d,_0x4a6e60){return _0x38b66d(_0x4a6e60);},'XaalJ':function(_0x231ea,_0x4e4e22){return _0x231ea(_0x4e4e22);},'gHJKw':_0xcd13(0x23),'uAsmD':_0xcd13(0x24),'cQluz':function(_0xf94830,_0x26db89){return _0xf94830(_0x26db89);},'DYJch':_0xcd13(0x25),'ZaJfH':_0xcd13(0x26),'RzBNl':_0xcd13(0x27),'ZmiYv':_0xcd13(0x28),'KGZfz':_0xcd13(0x29),'sINXt':function(_0x20ea37){return _0x20ea37();},'gdUOE':function(_0x23c26a,_0xa38f0c){return _0x23c26a(_0xa38f0c);},'LfHKe':function(_0x74d658,_0x35f9aa){return _0x74d658===_0x35f9aa;},'ToKqC':function(_0x42dc44,_0x1ae718){return _0x42dc44===_0x1ae718;},'DfatH':'mKmGX','IHZxx':'🔑\x20[CACHED\x20LOGIN]\x20Found\x20valid\x20token\x20for\x20user:','VYAMp':function(_0x2dd358,_0x1b42e3){return _0x2dd358>_0x1b42e3;},'QIEVK':_0xcd13(0x2a),'erHYB':function(_0x46091f){return _0x46091f();},'wxDRZ':function(_0x4d30a3,_0x450ef0){return _0x4d30a3===_0x450ef0;},'oqXru':function(_0x12a76c,_0x5d3287){return _0x12a76c===_0x5d3287;},'ghrXe':function(_0x3ca5e6,_0x4379d5){return _0x3ca5e6*_0x4379d5;},'XnXqF':function(_0x29745b,_0x2831a1){return _0x29745b||_0x2831a1;},'FnTUq':function(_0x445e8f,_0x3470e4){return _0x445e8f(_0x3470e4);},'HcRas':_0xcd13(0x2b),'AUUbz':_0xcd13(0x2c),'XJgpo':_0xcd13(0x2d),'iDQqb':_0xcd13(0x2e),'hVjre':function(_0x1525bd,_0x58a4d7){return _0x1525bd(_0x58a4d7);},'kckAE':function(_0xbd392e,_0x3968af){return _0xbd392e(_0x3968af);},'nZwyO':'lpwse','eeCbp':function(_0xdc944d,_0xca2d41,_0x5e56f0){return _0xdc944d(_0xca2d41,_0x5e56f0);},'MyQOj':function(_0x54b0e5,_0x37edf6){return _0x54b0e5(_0x37edf6);},'Pxxlg':function(_0x324627,_0x1270de){return _0x324627(_0x1270de);},'kMvCE':_0xcd13(0x2f),'xYBlW':'kywou','pyqZE':_0xcd13(0x30),'IQodG':'🚀\x20Get\x20Started\x20pressed\x20-\x20moving\x20to\x20signin','PVlSx':function(_0x4a318b,_0x2bf29e){return _0x4a318b+_0x2bf29e;},'PSZwv':function(_0x2eba9b,_0x3e8b48){return _0x2eba9b===_0x3e8b48;},'PquyD':function(_0x45ffed,_0x420a55){return _0x45ffed(_0x420a55);},'iggTy':_0xcd13(0x31),'ObGdw':_0xcd13(0x32),'wUkps':function(_0x4e5833,_0x387caf){return _0x4e5833(_0x387caf);},'LOvQh':function(_0xbe2eab,_0x27c741){return _0xbe2eab===_0x27c741;},'LSiaR':_0xcd13(0x33),'GqmVH':_0xcd13(0x34),'PCYLW':_0xcd13(0x35),'yxQEq':_0xcd13(0x36),'dlcUy':'🔍\x20Reviewer\x20bypass\x20detected','jOqoP':_0xcd13(0x37),'UQnZa':function(_0x4097b3,_0x15b3e1){return _0x4097b3===_0x15b3e1;},'eJhwy':_0xcd13(0x38),'DSKjh':function(_0x26deae,_0x4ee8fb){return _0x26deae(_0x4ee8fb);},'TSIzz':function(_0x2b0084,_0x5d5563){return _0x2b0084(_0x5d5563);},'AlFWv':'📧\x20Sending\x20verification\x20code\x20to:','iDUaS':function(_0x45efc9,_0x71eaa4){return _0x45efc9(_0x71eaa4);},'rHNgG':_0xcd13(0x39),'gbakJ':'❌\x20Failed\x20to\x20send\x20verification\x20code:','euwLB':function(_0x529a98,_0x5c00b7){return _0x529a98(_0x5c00b7);},'lcwct':_0xcd13(0x3a),'obXPl':function(_0x274b95,_0x264ea1){return _0x274b95(_0x264ea1);},'nqXjj':'Network\x20error.\x20Please\x20check\x20your\x20connection\x20and\x20try\x20again.','XkLLn':_0xcd13(0x3b),'NypZL':_0xcd13(0x3c),'fBKJd':_0xcd13(0x3d),'vKzeH':_0xcd13(0x3e),'HmdHK':'🔐\x20[BACKGROUND]\x20Continuing\x20existing\x20background\x20training\x20with\x20PIN\x20validation','pPXgT':function(_0x211547,_0x5d1caf){return _0x211547===_0x5d1caf;},'nTdUv':_0xcd13(0x3f),'TbreC':_0xcd13(0x40),'jWFTa':_0xcd13(0x41),'rTfdH':_0xcd13(0x42),'bWMNU':'ZGhnS','qJnlV':function(_0x102e22,_0x14de63){return _0x102e22(_0x14de63);},'xYrOd':function(_0x5d05b1,_0x72aadd){return _0x5d05b1(_0x72aadd);},'wsPcN':_0xcd13(0x43),'tuPsL':_0xcd13(0x44),'sXnjZ':_0xcd13(0x45),'naEXr':_0xcd13(0x46),'MfGUJ':function(_0x335340,_0xfa60b3){return _0x335340===_0xfa60b3;},'oCdza':_0xcd13(0x47),'NeoZb':function(_0x3cd841,_0x3c435b,_0xbac68a,_0x335558){return _0x3cd841(_0x3c435b,_0xbac68a,_0x335558);},'KaEpp':_0xcd13(0x48),'VUlQu':function(_0x491134,_0x40edc8){return _0x491134(_0x40edc8);},'tTvPi':_0xcd13(0x49),'GPsXK':_0xcd13(0x4a),'YCPZp':'hKxud','xvCdi':_0xcd13(0x4b),'EigLK':function(_0x475f54,_0x3d59ed){return _0x475f54(_0x3d59ed);},'rCbYR':_0xcd13(0x4c),'UhGcy':_0xcd13(0x4d),'Pboyc':_0xcd13(0x4e),'OEtYy':_0xcd13(0x4f),'iqrgq':function(_0x53fa65,_0x57904b){return _0x53fa65===_0x57904b;},'NaUXi':_0xcd13(0x50),'idFig':function(_0x36ad7a,_0x48e49a){return _0x36ad7a(_0x48e49a);},'kfBoc':_0xcd13(0x51),'YVwEA':'🔍\x20Verifying\x20email\x20code:','mIpvl':_0xcd13(0x52),'jfuTy':_0xcd13(0x53),'xIOdw':_0xcd13(0x54),'yLROM':function(_0x9139f5,_0x552600){return _0x9139f5===_0x552600;},'QQpls':function(_0x503be5,_0x2083ef){return _0x503be5===_0x2083ef;},'EUzZT':'returning_user','CKYMe':function(_0x17689f,_0x4c094f){return _0x17689f===_0x4c094f;},'vUCVy':function(_0x2c6ca9,_0x1b442b){return _0x2c6ca9===_0x1b442b;},'StMDQ':_0xcd13(0x55),'ayfFG':_0xcd13(0x56),'SuRqm':_0xcd13(0x57),'ElywW':_0xcd13(0x58),'iqEOz':function(_0x549633,_0x13038e){return _0x549633(_0x13038e);},'UheqW':_0xcd13(0x59),'tyOPL':function(_0x11c46e,_0x3c8f69){return _0x11c46e(_0x3c8f69);},'NNYPq':_0xcd13(0x5a),'hYAUg':_0xcd13(0x5b),'GmTkl':function(_0x354edb,_0x11025e){return _0x354edb(_0x11025e);},'CWCRy':function(_0x443675,_0xe0d920){return _0x443675(_0xe0d920);},'sBDpE':function(_0x4b9076,_0x3715e3){return _0x4b9076(_0x3715e3);},'wLdYT':_0xcd13(0x5c),'YjXvw':_0xcd13(0x5d),'OCXaj':_0xcd13(0x5e),'twGzL':_0xcd13(0x5f),'nmpzH':'auth_method','JbCOk':'✅\x20Logout\x20complete\x20-\x20user\x20is\x20now\x20on\x20login\x20page','aAzok':'❌\x20Error\x20during\x20logout:','nUiZU':function(_0x27c6fc,_0x37baa9){return _0x27c6fc===_0x37baa9;},'VElDx':_0xcd13(0x60),'yOovB':function(_0x1a71bf,_0x13ea2a){return _0x1a71bf(_0x13ea2a);},'KCAzN':function(_0x1aa9bf,_0x5585b0){return _0x1aa9bf(_0x5585b0);},'FRCHk':_0xcd13(0x61),'DvSTx':'hSUaD','oTiNo':_0xcd13(0x62),'INCUn':'Network\x20error.\x20Please\x20try\x20again.','eZZMS':function(_0x4ade22,_0x5e3245){return _0x4ade22(_0x5e3245);},'qRXfp':'YouTube\x20tokens\x20refreshed\x20-\x20but\x20training\x20only\x20starts\x20from\x20connector→PIN','HQYcE':function(_0x502d04,_0x19bb7f){return _0x502d04(_0x19bb7f);},'WHGbm':_0xcd13(0x63),'mrXCa':function(_0x4b88d8,_0x12f59a){return _0x4b88d8(_0x12f59a);},'IimaV':function(_0x37985a){return _0x37985a();},'EFyEG':_0xcd13(0x64),'dgYAe':function(_0x9c4097,_0x260486){return _0x9c4097(_0x260486);},'bdPhc':_0xcd13(0x65),'ikiai':function(_0x2b9925){return _0x2b9925();},'MYDAS':_0xcd13(0x66),'IErJL':function(_0x5667b8){return _0x5667b8();},'BdfHE':_0xcd13(0x67),'fAXSb':'🔑\x20[SDK]\x20Token\x20available:','NvVbF':function(_0x590366,_0x4b0f71){return _0x590366||_0x4b0f71;},'YIETQ':function(_0x19692b,_0x793f28){return _0x19692b&&_0x793f28;},'zzqSe':function(_0x19b465,_0x4b0818){return _0x19b465===_0x4b0818;},'RCuGQ':_0xcd13(0x68),'RYlsv':_0xcd13(0x69),'LTDcX':function(_0x1f7d74,_0x43f05d){return _0x1f7d74===_0x43f05d;},'NXxOv':_0xcd13(0x6a),'vabVp':'hEpji','GDzSM':_0xcd13(0x6b),'Iotze':function(_0x5a4427,_0x3c0667){return _0x5a4427===_0x3c0667;},'IomYu':function(_0x5dd271,_0x17b4ba,_0x324806,_0x3bed36){return _0x5dd271(_0x17b4ba,_0x324806,_0x3bed36);},'mTxOw':_0xcd13(0x6c),'iFzVq':function(_0x3af425,_0x5a11bb){return _0x3af425===_0x5a11bb;},'nXOCU':function(_0x50c0ba,_0x1371d4){return _0x50c0ba===_0x1371d4;},'GrkcG':function(_0x502002,_0x1a6fbb,_0x1f215e,_0x337985){return _0x502002(_0x1a6fbb,_0x1f215e,_0x337985);},'AShym':'✅\x20[SDK]\x20onComplete\x20finished\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','ZMAfx':function(_0x22b4af,_0x34f77e){return _0x22b4af(_0x34f77e);},'ccFSD':_0xcd13(0x6d),'ojrnZ':function(_0x53400f,_0x36f619){return _0x53400f(_0x36f619);},'kmlbE':function(_0x4af8e8,_0x5e0d76){return _0x4af8e8(_0x5e0d76);},'VsafH':_0xcd13(0x6e),'iwVVD':function(_0x235545){return _0x235545();},'XZwyC':_0xcd13(0x6f),'JYDYe':function(_0x347286,_0x1559ee){return _0x347286===_0x1559ee;},'ESeUi':'WnOfc','HUBGl':function(_0x22f947,_0x130b64){return _0x22f947&&_0x130b64;},'NUUaf':function(_0xf142af,_0x5ce4ca){return _0xf142af===_0x5ce4ca;},'tsFdZ':_0xcd13(0x70),'RxufT':function(_0x4a37ff,_0x384447){return _0x4a37ff===_0x384447;},'xqDFY':function(_0x29e4bc,_0x456add,_0x5acd18,_0x303453){return _0x29e4bc(_0x456add,_0x5acd18,_0x303453);},'PJbvv':_0xcd13(0x71),'NTkYY':'❌\x20[SDK]\x20Error\x20during\x20skip:','kgqtO':function(_0xd7f006,_0x32d89f){return _0xd7f006===_0x32d89f;},'wkDdm':_0xcd13(0x72),'sdaBP':_0xcd13(0x73),'pDNHW':'🗄️\x20Databases\x20used:','tFkFJ':_0xcd13(0x74),'kbyoN':_0xcd13(0x75),'yRvaT':'✅\x20Training\x20completed:','IBAYj':_0xcd13(0x76),'yROWs':function(_0x325bd8,_0x50633e){return _0x325bd8(_0x50633e);},'IzTic':function(_0x31b240,_0x2451e6){return _0x31b240!==_0x2451e6;},'jlJKF':_0xcd13(0x77),'CozEx':_0xcd13(0x78),'AUZAU':'HdXis','WdDxt':_0xcd13(0x79),'HIRnK':'✅\x20Stored\x20reviewer\x20bypass\x20markers','dFHbF':function(_0x21a2c3,_0x4be1de){return _0x21a2c3===_0x4be1de;},'kbtlJ':'JAgla','rfhHi':_0xcd13(0x7a),'lqgOJ':function(_0x213b23){return _0x213b23();},'legee':_0xcd13(0x7b),'DVupH':function(_0x42cc65,_0x1c82ca){return _0x42cc65(_0x1c82ca);},'MByuW':_0xcd13(0x7c),'zJstw':function(_0x48a795,_0x575dbc){return _0x48a795(_0x575dbc);},'Dmzhw':function(_0x4121b4,_0x424da6){return _0x4121b4(_0x424da6);},'fMrTj':function(_0x40808b,_0x5a90ac){return _0x40808b(_0x5a90ac);},'EmpdP':_0xcd13(0x7d),'fzryt':'zjfJP','KkPVp':function(_0x364572,_0x449b12){return _0x364572(_0x449b12);},'JJHNj':function(_0x31f2cd,_0x2e9a81){return _0x31f2cd!==_0x2e9a81;},'eYywn':'iBhOp','zoVNX':function(_0x4a7297,_0x37820c){return _0x4a7297!==_0x37820c;},'lcpqI':_0xcd13(0x7e),'fIsJh':'4|5|1|0|3|2','VHlwr':'ℹ️\x20Limited\x20data\x20scenario\x20detected','AiNMK':function(_0x3a0f7f,_0x4d2461){return _0x3a0f7f(_0x4d2461);},'rtJns':'Failed\x20to\x20send\x20verification\x20code.\x20Please\x20try\x20again.','ruAgt':_0xcd13(0x7f),'exFEI':_0xcd13(0x80),'xzJXA':'✅\x20Inference\x20enabled:','vHFjt':_0xcd13(0x81),'JgzmN':function(_0x1b9f0c,_0x54bdc7){return _0x1b9f0c===_0x54bdc7;},'wqPCr':'zkwBp','CimSF':function(_0x4bd0b9,_0x270800){return _0x4bd0b9(_0x270800);},'ksIeN':function(_0xf6aad2,_0x34ab64){return _0xf6aad2===_0x34ab64;},'jTwpQ':_0xcd13(0x82),'xcuuo':function(_0x2dd2d8,_0x111540){return _0x2dd2d8===_0x111540;},'OKZzQ':_0xcd13(0x83),'QnTIp':_0xcd13(0x84),'XCnst':function(_0x162d72,_0x2d12a3){return _0x162d72||_0x2d12a3;},'jAZmq':function(_0x3f2a74,_0x3c0e60){return _0x3f2a74(_0x3c0e60);},'lDkQr':_0xcd13(0x85),'yyJlp':function(_0x4e4223,_0xad6f31){return _0x4e4223(_0xad6f31);},'XLJKU':_0xcd13(0x86),'ZIxRN':_0xcd13(0x87),'kJfwW':function(_0x4e825e,_0x47071a){return _0x4e825e!==_0x47071a;},'BDORR':'SkPWg','ybxgu':_0xcd13(0x88),'DpoJK':function(_0x1eec47,_0x1aabac){return _0x1eec47(_0x1aabac);},'epAlg':function(_0x39111a,_0x4cd476){return _0x39111a(_0x4cd476);},'ExKjw':function(_0x35cbb7,_0x5e748e){return _0x35cbb7(_0x5e748e);},'kPMgd':function(_0x385cf0,_0x10fd5a){return _0x385cf0(_0x10fd5a);},'EUFSx':_0xcd13(0x89),'PlOdR':function(_0x560b09,_0x416b75){return _0x560b09(_0x416b75);},'gtbZs':function(_0x330d9e,_0x395f8e){return _0x330d9e(_0x395f8e);},'uaqSD':'zQgTB','LQguz':_0xcd13(0x8a),'Djckh':_0xcd13(0x8b),'fVSEW':function(_0x350d38,_0x35b5ad){return _0x350d38(_0x35b5ad);},'xyxPd':function(_0x583fc0,_0x4a4917){return _0x583fc0(_0x4a4917);},'xuHgz':_0xcd13(0x8c),'kVivD':function(_0x4ee4df,_0x595978){return _0x4ee4df===_0x595978;},'XeIeg':_0xcd13(0x8d),'yVUMY':function(_0x59cfc9,_0x48d9cf){return _0x59cfc9(_0x48d9cf);},'NjaMy':function(_0x1b5cbd,_0x1e107d){return _0x1b5cbd(_0x1e107d);},'BbEIj':_0xcd13(0x8e),'MVShj':_0xcd13(0x8f),'zMPWX':_0xcd13(0x90),'xWOog':_0xcd13(0x91),'GbqqR':function(_0xd50fe5,_0x24a66f){return _0xd50fe5===_0x24a66f;},'hvGjF':_0xcd13(0x92),'hLBSC':function(_0x12a15f,_0x3206b6){return _0x12a15f===_0x3206b6;},'DOpFS':'ADqUR','kElHm':_0xcd13(0x93),'YitMA':'5|1|2|3|0|4','Bspap':function(_0x59b8e1,_0x4ae749){return _0x59b8e1(_0x4ae749);},'EyWKG':_0xcd13(0x94),'otPgb':function(_0x3113fe,_0xfd9b35){return _0x3113fe(_0xfd9b35);},'DDbrJ':_0xcd13(0x95),'VGmrp':function(_0x369ad7,_0x373509){return _0x369ad7&&_0x373509;},'SbEFX':_0xcd13(0x96),'PgTPI':_0xcd13(0x97),'uJWfD':_0xcd13(0x98),'ObLOo':'❌\x20[PIN\x20SUBMIT]\x20Failed\x20to\x20continue\x20background\x20training:','ckQtT':function(_0x49034c,_0x4f9add){return _0x49034c(_0x4f9add);},'VUkby':_0xcd13(0x99),'ofBCv':_0xcd13(0x9a),'haqut':function(_0x1197c2,_0x22bef8){return _0x1197c2(_0x22bef8);},'dMejS':'No\x20training\x20in\x20progress.\x20Please\x20restart\x20the\x20flow.','TWQGv':'✅\x20Using\x20real\x20authentication\x20token\x20for\x20onComplete:','zmcxr':function(_0x4c48c2,_0xd3ec6b){return _0x4c48c2===_0xd3ec6b;},'vTXcY':'⚠️\x20Could\x20not\x20get\x20encrypted\x20PIN\x20for\x20training:','DOfQe':function(_0x1d4056,_0x2a211a){return _0x1d4056(_0x2a211a);},'zeoOx':_0xcd13(0x9b),'arHTl':_0xcd13(0x9c),'tgpVJ':_0xcd13(0x9d),'czBZT':function(_0x39a377,_0x435537){return _0x39a377(_0x435537);},'HGfWA':_0xcd13(0x9e),'wTCGb':_0xcd13(0x9f),'ODuma':_0xcd13(0xa0),'upWCN':_0xcd13(0xa1),'thGbq':_0xcd13(0xa2),'mmEAa':function(_0x1403fb,_0x1f7286){return _0x1403fb===_0x1f7286;},'wADPo':function(_0xe69344,_0x32f809){return _0xe69344===_0x32f809;},'LEGqC':_0xcd13(0xa3),'IIeob':_0xcd13(0xa4),'cISOF':function(_0x59dfad){return _0x59dfad();},'msoci':_0xcd13(0xa5),'TcNDz':function(_0xc9bb93,_0x89efb4){return _0xc9bb93(_0x89efb4);},'gQrBN':'📡\x20Training\x20API\x20response:','QkYjK':function(_0x1a7d73,_0x358fdb){return _0x1a7d73===_0x358fdb;},'mLDib':_0xcd13(0xa6),'oWWuu':function(_0x1599d9){return _0x1599d9();},'kMOcl':function(_0x41551d,_0xccd266){return _0x41551d(_0xccd266);},'VIgQC':function(_0xe5e4dc,_0x578790){return _0xe5e4dc(_0x578790);},'cTqBa':_0xcd13(0xa7),'obuXY':function(_0x78147e,_0x360bfc){return _0x78147e(_0x360bfc);},'ZRIYu':_0xcd13(0xa8),'OQTdI':_0xcd13(0xa9),'sxLtU':_0xcd13(0xaa),'MmIuU':function(_0x33a084,_0x1fd70a){return _0x33a084(_0x1fd70a);},'yfIzJ':_0xcd13(0xab),'qSYvR':_0xcd13(0xac),'qdsKp':function(_0x55a6b5,_0x505f51){return _0x55a6b5(_0x505f51);},'BCYys':function(_0x514f75,_0x5a360a){return _0x514f75(_0x5a360a);},'nhTWz':function(_0x275d26,_0x2dc0ed){return _0x275d26 instanceof _0x2dc0ed;},'hgNXf':_0xcd13(0xad),'VUpxD':function(_0x28e9cd,_0x4e51a9){return _0x28e9cd instanceof _0x4e51a9;},'eCBNU':function(_0x4b5647,_0x12b330){return _0x4b5647(_0x12b330);},'sMOJR':function(_0x56a5d5){return _0x56a5d5();},'vxlyM':_0xcd13(0xae),'dVSNS':'WfXjO','VBbWW':function(_0x3aedc3,_0x53472e){return _0x3aedc3===_0x53472e;},'Vuyvf':function(_0x10ea51,_0x366cc5){return _0x10ea51!==_0x366cc5;},'SXPEE':_0xcd13(0xaf),'dcNpL':_0xcd13(0xb0),'dfhGK':function(_0x27736f,_0x54c6a1){return _0x27736f===_0x54c6a1;},'xLeWy':function(_0x3acdbf,_0x42d666){return _0x3acdbf===_0x42d666;},'sQJuM':function(_0x32b63a,_0x397cc4){return _0x32b63a===_0x397cc4;},'csBCv':function(_0x582ad4,_0x1ba784){return _0x582ad4===_0x1ba784;},'sKUkV':function(_0x5ed031,_0x568371){return _0x5ed031===_0x568371;},'MoRdM':function(_0x6424d6,_0x3d9813){return _0x6424d6(_0x3d9813);},'royis':function(_0x16de10,_0x230f8d){return _0x16de10(_0x230f8d);},'kqTTI':'UXBgX','nalMg':_0xcd13(0xb1),'ipqQX':_0xcd13(0xb2),'cvzAl':function(_0x1df764,_0x5c89f4){return _0x1df764===_0x5c89f4;},'Qzpee':function(_0x147e73,_0x1a3dbe){return _0x147e73===_0x1a3dbe;},'mSzfD':function(_0x265271,_0x5c6a86){return _0x265271===_0x5c6a86;},'anTGS':function(_0x437ae5,_0x4620d8){return _0x437ae5===_0x4620d8;},'gvpXo':function(_0x125928,_0x581a4f){return _0x125928===_0x581a4f;},'WVduB':function(_0x331980,_0x2c46db){return _0x331980(_0x2c46db);},'dljSj':_0xcd13(0xb3),'pgScs':_0xcd13(0xb4),'UZVIr':'⏰\x20Socket\x20registered\x20but\x20training\x20will\x20not\x20start\x20from\x20persona\x20screen...','XsVwS':function(_0x465b00,_0x1d0230){return _0x465b00(_0x1d0230);},'NIkXg':_0xcd13(0xb5),'WvDnH':function(_0x555811,_0x176c15){return _0x555811===_0x176c15;},'Hlsxw':_0xcd13(0xb6),'JqiTu':_0xcd13(0xb7),'eQvVG':function(_0x3145e0){return _0x3145e0();},'GsfDu':_0xcd13(0xb8),'UwEth':_0xcd13(0xb9),'vTYoV':function(_0x1b00b7,_0x320da6){return _0x1b00b7(_0x320da6);},'XVbkk':'Running\x20test\x20inference','HtiBO':function(_0x1604b7,_0x74b592){return _0x1604b7(_0x74b592);},'tLIvX':_0xcd13(0xba),'OrFNj':_0xcd13(0xbb),'PqkDH':function(_0x45b6d5,_0x35b3de){return _0x45b6d5(_0x35b3de);},'TpvqX':_0xcd13(0xbc),'yeRiQ':_0xcd13(0xbd),'SZiQQ':_0xcd13(0xbe),'JEaHv':_0xcd13(0xbf),'VYqgU':'AEJsX','ycdng':function(_0x122e06,_0x473110){return _0x122e06(_0x473110);},'qBFkJ':'Complete!','IrRNl':function(_0x5056eb,_0x4cb601){return _0x5056eb(_0x4cb601);},'NxSzr':'📊\x20Training\x20update:','NyxRe':_0xcd13(0xc0),'JFaFl':function(_0x4decf4,_0x323c83){return _0x4decf4(_0x323c83);},'CgzCJ':_0xcd13(0xc1),'gAhNm':function(_0x3fda8b,_0x2d02b1,_0x2cf89c){return _0x3fda8b(_0x2d02b1,_0x2cf89c);},'bCmOD':function(_0x1ebd60,_0x135d13){return _0x1ebd60===_0x135d13;},'eibDm':function(_0x452109,_0x30ddf0){return _0x452109===_0x30ddf0;},'UFzIr':'eqXOC','nDsfA':'ppltK','raOUb':_0xcd13(0xc2),'SLwDH':function(_0x1cbc76,_0x3aee1b){return _0x1cbc76(_0x3aee1b);},'YDGOe':function(_0x17fbd1,_0x21195d){return _0x17fbd1(_0x21195d);},'NPTWp':'🔗\x20Connections\x20required\x20detected\x20from\x20socket','tDfxV':function(_0x34600b){return _0x34600b();},'XbVBT':_0xcd13(0xc3),'xgqzh':function(_0x584c85){return _0x584c85();},'ZXhSB':'🚫\x20No\x20data\x20scenario\x20detected','Mejuy':function(_0x558643,_0x2c18d4){return _0x558643(_0x2c18d4);},'MrdNi':'NO_DATA','pGCJF':_0xcd13(0xc4),'sWygj':function(_0xbe2b30,_0x2a3556){return _0xbe2b30===_0x2a3556;},'dcnzw':_0xcd13(0xc5),'efQNT':function(_0x232c82,_0xbcb6da){return _0x232c82(_0xbcb6da);},'qUcHr':_0xcd13(0xc6),'YhEva':'Creating\x20your\x20persona\x20with\x20available\x20data','HmIhK':_0xcd13(0xc7),'Hpmhk':function(_0x5991be,_0x291ddd){return _0x5991be(_0x291ddd);},'aVynB':function(_0x4863cd,_0x335dc9){return _0x4863cd(_0x335dc9);},'pIFeL':'Training\x20in\x20progress','Btrde':'🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen','wLDHC':function(_0x39b7eb,_0x2daab6){return _0x39b7eb(_0x2daab6);},'PQbsS':_0xcd13(0xc8),'ZvkOH':function(_0xd0f0c6,_0x29cae1){return _0xd0f0c6===_0x29cae1;},'PaPTs':_0xcd13(0xc9),'vDfmg':_0xcd13(0xca),'kcErb':function(_0x3559cb,_0x279a86){return _0x3559cb(_0x279a86);},'eKCgs':function(_0x2d485a,_0x39c777){return _0x2d485a(_0x39c777);},'yGAYq':function(_0x47e544){return _0x47e544();},'nwxYy':_0xcd13(0xcb),'ApTbw':_0xcd13(0xcc),'KeCIw':function(_0x379ce7,_0x16cfc4){return _0x379ce7(_0x16cfc4);},'qJqhQ':_0xcd13(0xcd),'sftwx':function(_0x50cf95,_0x5b6721){return _0x50cf95===_0x5b6721;},'OxIlR':function(_0x4df55a,_0x2e9a73){return _0x4df55a===_0x2e9a73;},'EoHHQ':function(_0x1c9bb2,_0x3c38a5){return _0x1c9bb2!==_0x3c38a5;},'ZVQQe':'qavxl','KUOPi':_0xcd13(0xce),'QwoLD':_0xcd13(0xcf),'PFEDi':_0xcd13(0xd0),'GniOs':_0xcd13(0xd1),'KsSKG':_0xcd13(0xd2),'CFyIS':_0xcd13(0xd3),'LGYIZ':function(_0x10eb8e,_0xf44957){return _0x10eb8e===_0xf44957;},'FSdKv':function(_0x33f76d,_0x20da81){return _0x33f76d===_0x20da81;},'kxGlw':_0xcd13(0xd4),'DNbPb':_0xcd13(0xd5),'UCdLQ':_0xcd13(0xd6),'JJeOI':'Connection\x20failed.\x20Please\x20try\x20again.','YaSwW':function(_0x898e26,_0x1e4625){return _0x898e26(_0x1e4625);},'sYVhg':'✅\x20Authentication\x20token\x20already\x20exists:','ctNnU':_0xcd13(0xd7),'DjNzu':function(_0x3ad252,_0x38fe06){return _0x3ad252!==_0x38fe06;},'tGVim':_0xcd13(0xd8),'aPWqs':_0xcd13(0xd9),'FEhUD':_0xcd13(0xda),'PPPcZ':'Token\x20refresh\x20failed\x20-\x20please\x20restart\x20from\x20connector\x20screen','eVtzA':'youtube','ynvuC':_0xcd13(0xdb),'Yftjd':_0xcd13(0xdc),'NwpLw':_0xcd13(0xdd),'flmRZ':function(_0xc0248e,_0x288def){return _0xc0248e(_0x288def);},'EqeEh':function(_0x52b9dc,_0xd17384){return _0x52b9dc===_0xd17384;},'hjjbE':_0xcd13(0xde),'avvlH':function(_0x232f8d,_0x1f5066){return _0x232f8d===_0x1f5066;},'cuFRU':function(_0x4f0a15,_0x5507de){return _0x4f0a15===_0x5507de;},'bwsjM':function(_0x1ba748,_0x1c39ad){return _0x1ba748===_0x1c39ad;},'nkWzW':_0xcd13(0xdf),'WslIS':_0xcd13(0xe0),'ntExu':function(_0x2cf643,_0x4f325d){return _0x2cf643(_0x4f325d);},'nTyQT':function(_0x4e5670){return _0x4e5670();},'mGmpt':function(_0xb22953,_0x5e253c){return _0xb22953!==_0x5e253c;},'iFcMi':_0xcd13(0xe1),'HSieJ':_0xcd13(0xe2),'bjjIq':function(_0x2d8714){return _0x2d8714();},'JZcCk':function(_0x89f38f,_0x3f6255){return _0x89f38f(_0x3f6255);},'gbwVL':_0xcd13(0xe3),'koSWN':function(_0x3d8048){return _0x3d8048();},'CWgij':_0xcd13(0xe4),'Joeuc':'Not\x20stored','VjQVr':'WiDTy','lnrXm':'🔄\x20UserInfo\x20not\x20available,\x20attempting\x20to\x20reload...','dbBwd':function(_0x1c06c3,_0x54cc1c){return _0x1c06c3===_0x54cc1c;},'uMnpH':'🧑‍💻\x20Set\x20user\x20info:','JDKBd':function(_0x1ea32b,_0x1f401d){return _0x1ea32b===_0x1f401d;},'YoGPP':function(_0x8d8704,_0x468a79){return _0x8d8704===_0x468a79;},'SFsFV':function(_0x56cfbe,_0x4c2b92){return _0x56cfbe===_0x4c2b92;},'syBML':_0xcd13(0xe5),'osHtZ':_0xcd13(0xe6),'Ssdhp':_0xcd13(0xe7),'TRSFZ':'📱\x20Device\x20platform:','Catuv':_0xcd13(0xe8),'egyfr':_0xcd13(0xe9),'QMeVe':_0xcd13(0xea),'shvYC':_0xcd13(0xeb),'AAnPa':_0xcd13(0xec),'MKUij':'reconnect_attempt','ZfYbD':_0xcd13(0xed),'RiGxn':_0xcd13(0xee),'xabVF':_0xcd13(0xef),'sUnCB':_0xcd13(0xf0),'ldvkk':_0xcd13(0xf1),'ClbJr':'🔌\x20Socket\x20config:','rMvZs':_0xcd13(0xf2),'ZlLHo':function(_0xec9011,_0x258632,_0xff38a3){return _0xec9011(_0x258632,_0xff38a3);},'FIHKn':function(_0x4c913b,_0x136e43,_0x182ead){return _0x4c913b(_0x136e43,_0x182ead);},'DaCGL':_0xcd13(0xf3),'oKGpr':'❌\x20Error\x20in\x20startPersonaCreation:','ntytw':_0xcd13(0xf4),'OXExp':function(_0x375219,_0xef08a8){return _0x375219(_0xef08a8);},'GmZsf':function(_0x153f60,_0x2ad599){return _0x153f60(_0x2ad599);},'PhBhV':function(_0x56eb10,_0x5e63ac){return _0x56eb10(_0x5e63ac);},'GucNQ':_0xcd13(0xf5),'uSgJm':_0xcd13(0xf6),'buKaS':_0xcd13(0xf7),'gDhxY':'📈\x20Query\x20scores\x20enabled:','scfXG':function(_0x2edf33){return _0x2edf33();},'fvXVF':_0xcd13(0xf8),'zjcAI':function(_0x12221b,_0x3b98e5){return _0x12221b(_0x3b98e5);},'Ziyat':_0xcd13(0xf9),'iGriw':'Your\x20persona\x20is\x20ready!\x20🎉','qNUEZ':function(_0x1f113f,_0xde6e2a){return _0x1f113f<_0xde6e2a;},'bKESY':function(_0x1a9a4c,_0x217bbb){return _0x1a9a4c<_0x217bbb;},'GAYPp':_0xcd13(0xfa),'oqrZp':_0xcd13(0xfb),'NojQl':_0xcd13(0xfc),'DLLLT':_0xcd13(0xfd),'PzYdq':_0xcd13(0xfe),'YgNmb':_0xcd13(0xff),'giDzX':_0xcd13(0x100),'HkKSy':function(_0x1e3059,_0x4642c2){return _0x1e3059===_0x4642c2;},'BKHcG':_0xcd13(0x101),'wLcVb':_0xcd13(0x102),'qsdru':_0xcd13(0x103),'wbLTY':_0xcd13(0x104),'CTykp':_0xcd13(0x105),'nNgNh':function(_0x5bb37b,_0x5e3dd0){return _0x5bb37b===_0x5e3dd0;},'nTNxY':_0xcd13(0x106),'HgLXG':_0xcd13(0x107),'bWQUr':_0xcd13(0x108),'DoqLB':function(_0xf3c6c4,_0x14352c){return _0xf3c6c4===_0x14352c;},'kXEvg':function(_0x1e547b,_0x552cc3){return _0x1e547b===_0x552cc3;},'QCPyE':function(_0x2bbbd1,_0x3ebf8e){return _0x2bbbd1===_0x3ebf8e;},'ysazy':function(_0x408d16,_0x5384a5){return _0x408d16===_0x5384a5;},'nWdzc':_0xcd13(0x109),'eijvg':'connected','divno':_0xcd13(0x10a),'lfrWN':_0xcd13(0x10b),'slLdP':function(_0x418157,_0x1fa2ba){return _0x418157>_0x1fa2ba;},'rPIXl':_0xcd13(0x10c),'raGQf':_0xcd13(0x10d),'SuAPs':_0xcd13(0x10e),'huvoR':_0xcd13(0x10f),'vRfbS':_0xcd13(0x110),'hUaKm':function(_0x52687c,_0x507f1e){return _0x52687c(_0x507f1e);},'tgrGE':_0xcd13(0x111),'vRyGR':function(_0x329e96,_0x3d19bb){return _0x329e96(_0x3d19bb);},'htsty':function(_0x55b9a8,_0x1633ea){return _0x55b9a8(_0x1633ea);},'aKeik':_0xcd13(0x112),'pprsW':_0xcd13(0x113),'yEeGZ':'✅\x20[BACKGROUND]\x20Socket\x20connected,\x20starting\x20background\x20data\x20collection...','UBLsh':function(_0x4482c9,_0x13834e){return _0x4482c9||_0x13834e;},'Yolhs':function(_0x4208fe,_0x42d39e){return _0x4208fe(_0x42d39e);},'AciNL':'Collecting\x20your\x20data...','RxWZU':function(_0x19b102,_0x3149a9){return _0x19b102(_0x3149a9);},'vmdQh':'sZZjc','hjALT':_0xcd13(0x114),'gvgxq':_0xcd13(0x115),'rDKlD':'Connecting...','kHqLc':function(_0x2ccf55){return _0x2ccf55();},'MZzzO':_0xcd13(0x116),'hDhYA':function(_0xe9b21e,_0x260281){return _0xe9b21e(_0x260281);},'RmxQJ':function(_0x5cfe84,_0x5c0a6b){return _0x5cfe84===_0x5c0a6b;},'dNPPn':function(_0x5cd842,_0x5d147a){return _0x5cd842===_0x5d147a;},'MqFtf':function(_0x2f92dc,_0x3a4866){return _0x2f92dc===_0x3a4866;},'WfIHT':function(_0x40c5d7,_0x2a9f9c){return _0x40c5d7(_0x2a9f9c);},'IEbOb':'🧑‍💻\x20[BACKGROUND]\x20User\x20info\x20set:','EIHOp':_0xcd13(0x117),'aBOIj':function(_0x39cfec,_0x127721,_0x28ada4){return _0x39cfec(_0x127721,_0x28ada4);},'alOXZ':'polling','lDESj':'✅\x20[BACKGROUND]\x20Background\x20training\x20initiated\x20successfully','cwsgt':'ZxxqU','poWiM':_0xcd13(0x118),'nSIRg':function(_0x1de519,_0x2ba92c){return _0x1de519(_0x2ba92c);},'mzPhH':function(_0x5596de,_0x5b3985){return _0x5596de(_0x5b3985);},'BUcpt':_0xcd13(0x119),'KzUPF':function(_0x153768,_0x1cc260){return _0x153768===_0x1cc260;},'ANPnR':function(_0x272e30,_0x30663b){return _0x272e30===_0x30663b;},'DzoRd':function(_0x917573,_0x2cc5e8){return _0x917573===_0x2cc5e8;},'Sxuud':'📤\x20Sending\x20background\x20training\x20data\x20to\x20/mobile-training/enoch:','euJSz':_0xcd13(0x11a),'mmJcM':function(_0x190399,_0x14111a){return _0x190399===_0x14111a;},'bqzqq':_0xcd13(0x11b),'gElcB':function(_0x4103af,_0x2a56f7){return _0x4103af(_0x2a56f7);},'mFcuU':function(_0x5006d8){return _0x5006d8();},'WLrhu':function(_0x5a1ed5,_0x176212){return _0x5a1ed5(_0x176212);},'sIqFZ':'1|3|4|0|6|5|2','QLiVW':function(_0x2fdcd0,_0x28611c){return _0x2fdcd0===_0x28611c;},'Jgbrh':'MdyAq','sIhet':_0xcd13(0x11c),'iqoeY':_0xcd13(0x11d),'rUluC':function(_0x4fc8b3,_0x1ba390){return _0x4fc8b3===_0x1ba390;},'cItJA':_0xcd13(0x11e),'PsBuN':_0xcd13(0x11f),'YUAVc':_0xcd13(0x120),'Jrrre':_0xcd13(0x121),'NKcWv':_0xcd13(0x122),'QVfCK':function(_0x3567b9,_0x42f961){return _0x3567b9===_0x42f961;},'OOjCM':function(_0x42d65c,_0x212e6d){return _0x42d65c!==_0x212e6d;},'HsBwM':_0xcd13(0x123),'xOGVa':'⚠️\x20[SDK]\x20No\x20token/email\x20found\x20for\x20returning\x20user','uLgSt':function(_0x248816,_0x4b36ed){return _0x248816===_0x4b36ed;},'JuKdb':_0xcd13(0x124),'YnTlq':function(_0xf3bba7,_0x3edc54){return _0xf3bba7===_0x3edc54;},'MuPXz':function(_0x597584,_0x464e98,_0x5dbe1c,_0x54d70d){return _0x597584(_0x464e98,_0x5dbe1c,_0x54d70d);},'NtseQ':_0xcd13(0x125),'RVTpM':_0xcd13(0x126),'ytfQP':function(_0x364153,_0x282d75){return _0x364153(_0x282d75);},'bWXPq':function(_0x30d9a0,_0x2e4054){return _0x30d9a0(_0x2e4054);},'SDWQf':function(_0x1bbc45,_0x147070){return _0x1bbc45(_0x147070);},'jSZgM':function(_0x2d6812,_0x55eb27){return _0x2d6812(_0x55eb27);},'HxDgq':function(_0x162b2c,_0x445212){return _0x162b2c(_0x445212);},'ieUGz':function(_0x39bb91,_0x6003d8){return _0x39bb91(_0x6003d8);},'ltWDc':function(_0x4a89f1,_0x37c5c2){return _0x4a89f1(_0x37c5c2);},'XRGVN':function(_0x394656,_0x16c1a5,_0x47e386){return _0x394656(_0x16c1a5,_0x47e386);},'iUaUN':function(_0x25c655,_0x24510f){return _0x25c655(_0x24510f);},'XWleM':function(_0x278edf,_0x4f6e5e){return _0x278edf(_0x4f6e5e);},'byheS':function(_0x443461,_0x7a7558){return _0x443461(_0x7a7558);},'dNLPl':function(_0x37edd3,_0x3d8b33){return _0x37edd3(_0x3d8b33);},'LFsDM':function(_0x3117e1,_0x14f4c9){return _0x3117e1(_0x14f4c9);},'JchOF':function(_0x39a056,_0x156979){return _0x39a056(_0x156979);},'dhxNO':function(_0x36e586,_0x291e74){return _0x36e586(_0x291e74);},'DHMja':function(_0x3c159a,_0x269a77){return _0x3c159a(_0x269a77);},'yigst':function(_0x3ac4fe,_0xe46598){return _0x3ac4fe(_0xe46598);},'TkRwW':function(_0x555a3d,_0x47f0a3){return _0x555a3d(_0x47f0a3);},'lcJvT':function(_0x375926,_0x1b7c5d){return _0x375926(_0x1b7c5d);},'HTKeI':_0xcd13(0x127),'wZqZe':'#E60023','TarxY':'YouTube','KChMr':'LinkedIn','jmBci':_0xcd13(0x128),'Lkgkx':_0xcd13(0x129),'hLJGo':_0xcd13(0x12a),'bvoln':_0xcd13(0x12b),'pzXzu':'#EA4335','mHdkv':_0xcd13(0x12c),'cUaXV':_0xcd13(0x12d),'jOhYD':function(_0x177419,_0x8eaa12){return _0x177419(_0x8eaa12);},'aBmuq':function(_0x11a4bf,_0x52ddb6){return _0x11a4bf(_0x52ddb6);},'GDUhp':function(_0x4957f3,_0x4a6c8f,_0x31d1b4){return _0x4957f3(_0x4a6c8f,_0x31d1b4);},'DYeTY':function(_0x4e6b8a,_0x1f8359,_0x35109f){return _0x4e6b8a(_0x1f8359,_0x35109f);},'kCRAn':function(_0xd503e1,_0x903de5,_0x202aad){return _0xd503e1(_0x903de5,_0x202aad);},'RaBQR':function(_0x3ed9a2,_0x59b0af,_0x35cd05){return _0x3ed9a2(_0x59b0af,_0x35cd05);},'psZgE':function(_0x4c6cf8,_0x46114f,_0x387a6e){return _0x4c6cf8(_0x46114f,_0x387a6e);},'ZfmGl':'slide','VOxex':_0xcd13(0x12e),'frfuy':'Container\x20Top:\x20','HsUDz':'Container\x20Bottom:\x20','KpDgD':_0xcd13(0x12f),'NCoVL':_0xcd13(0x130),'fklQa':'welcome-get-started-button','cRtIG':function(_0x506b51,_0x49b79b){return _0x506b51===_0x49b79b;},'GewIS':function(_0x8dacdf,_0xf3fea3){return _0x8dacdf===_0xf3fea3;}},[_0x1df82a,_0x40952e]=_0x38fe1c[_0xcd13(0x131)](useState,primaryAuthOnly?_0x38fe1c[_0xcd13(0x132)]:_0x38fe1c[_0xcd13(0x133)]),[_0x23a4da,_0x3bcf30]=useState({}),[_0x2eedd,_0x5aa325]=_0x38fe1c['VUlQu'](useState,''),[_0x821614,_0x3f7c9d]=_0x38fe1c[_0xcd13(0x134)](useState,_0xcd13(0x135)),[_0x4e7921]=_0x38fe1c['bWXPq'](useState,new Animated[(_0xcd13(0x136))](height)),[_0x2343ab]=useState(new Animated[(_0xcd13(0x136))](0x0)),[_0x4502e1,_0x43bd50]=_0x38fe1c['LCNxh'](useState,{}),[_0x351e69,_0x337c9f]=useState(''),[_0x365c4a,_0x1e938f]=_0x38fe1c[_0xcd13(0x137)](useState,''),[_0x4c1dae,_0x9941c1]=useState(''),[_0xf2a8ab,_0x4f24e8]=_0x38fe1c[_0xcd13(0x138)](useState,''),[_0x27f8d3,_0x23e6b8]=_0x38fe1c[_0xcd13(0x139)](useState,![]),[_0x505be1,_0x19a7d5]=useState(''),[_0x2a51ba,_0x519d53]=useState(![]),[_0x5a2b56,_0x29a734]=_0x38fe1c[_0xcd13(0x13a)](useState,[]),[_0x346bb4,_0x27fc35]=_0x38fe1c[_0xcd13(0x13b)](useState,null),[_0x177c2f,_0x4ab94d]=_0x38fe1c[_0xcd13(0x13c)](useState,![]),[_0x3192f0,_0x25ae7d]=useState(![]),[_0x27cd95,_0x96a904]=useState(![]),[_0xa9ffc1,_0x985394]=useState(0x0),[_0xb9a59f,_0x4243a4]=_0x38fe1c['ltWDc'](useState,0x8),[_0x5dab86,_0x341b75]=useState(0x6);_0x38fe1c[_0xcd13(0x13d)](useEffect,()=>{console[_0xcd13(0x13e)](_0x38fe1c['PrfQq'],_0x1c3d99),console[_0xcd13(0x13e)](_0xcd13(0x7b),_0x177c2f),console['log'](_0x38fe1c[_0xcd13(0x13f)],_0x1df82a),console[_0xcd13(0x13e)](_0x38fe1c['aEpvV'],primaryAuthOnly);},[_0x1c3d99,_0x177c2f,_0x1df82a,primaryAuthOnly]),_0x38fe1c['FIHKn'](useEffect,()=>{const _0x23dc0b={'zhFHk':_0x38fe1c[_0xcd13(0x140)],'DkFHX':function(_0x40c323,_0x501781){return _0x40c323(_0x501781);},'xpktL':_0x38fe1c[_0xcd13(0x132)]};_0x38fe1c['wldky'](_0x38fe1c[_0xcd13(0x141)],_0x38fe1c[_0xcd13(0x141)])?(_0x11d871[_0xcd13(0x13e)](_0x23dc0b[_0xcd13(0x142)]),_0x23dc0b[_0xcd13(0x143)](_0xf3ae54,_0x10766c),_0x23dc0b[_0xcd13(0x143)](_0x430cd3,_0x23dc0b[_0xcd13(0x144)])):primaryAuthOnly&&_0x1c3d99&&(_0x1df82a===_0x38fe1c[_0xcd13(0x145)]||_0x38fe1c[_0xcd13(0x146)](_0x1df82a,_0x38fe1c[_0xcd13(0x147)]))&&(_0x38fe1c['fXYgo'](_0x38fe1c['vYDDM'],_0x38fe1c[_0xcd13(0x148)])?(console[_0xcd13(0x13e)](_0xcd13(0xd4)),console['log'](_0x38fe1c['qfVqE'],_0x1df82a,_0x38fe1c[_0xcd13(0x149)]),_0x38fe1c[_0xcd13(0x14a)](_0x40952e,_0x38fe1c[_0xcd13(0x133)])):_0x38fe1c['yFLXK'](_0x53d1b3,![]));},[primaryAuthOnly,_0x1c3d99]);const _0x42fac1=_0x38fe1c[_0xcd13(0x14b)](useRef,![]),[_0x513bb2,_0x18f624]=useState(0x5),[_0x53e721,_0x5b5583]=_0x38fe1c[_0xcd13(0x14c)](useState,![]),[_0x4fdc5b]=_0x38fe1c['SDWQf'](useState,new Animated['Value'](0x0)),_0x1c280a=_0x38fe1c[_0xcd13(0x14d)](useRef,null),_0x554ecd=null,[_0x4b5df2,_0x77311d]=useState(''),[_0x55b100,_0x444384]=useState(0x0),[_0x5a7f6c,_0x2c54c4]=_0x38fe1c[_0xcd13(0x14e)](useState,_0xcd13(0x14f)),[_0x47303c,_0x1d0f1]=_0x38fe1c[_0xcd13(0x150)](useState,![]),[_0xa24eb7,_0x4506c7]=_0x38fe1c[_0xcd13(0x151)](useState,![]),[_0x1079d1,_0x75e131]=_0x38fe1c[_0xcd13(0x152)](useState,![]),[_0x539cc9,_0x194155]=_0x38fe1c['EigLK'](useState,null),[_0x93da33,_0x4b8bf2]=useState(null),[_0x4a1bb9,_0x28917a]=useState(null),[_0x36231e,_0xdddc3d]=_0x38fe1c['Mejuy'](useState,null),[_0x12fcb9,_0x5a0247]=_0x38fe1c[_0xcd13(0x153)](useState,''),_0x1f4bf0=useRef(null),_0x7fe1ad=_0x38fe1c['RxWZU'](useRef,null),[_0x2c1036,_0x17a8b7]=_0x38fe1c[_0xcd13(0x154)](useState,![]),[_0x275cb5,_0x2de285]=useState(null),[_0x820dc5,_0x368d60]=useState(null),[_0x314ca9,_0x9ddd5]=_0x38fe1c[_0xcd13(0x155)](useState,null),[_0x37821b,_0x5c6b2a]=_0x38fe1c[_0xcd13(0x156)](useState,null),[_0x537c8b,_0x6f85a3]=useState(![]),[_0x177cec,_0x1846be]=_0x38fe1c['HtiBO'](useState,![]),[_0x590584,_0x3bdd00]=_0x38fe1c['TkRwW'](useState,''),[_0x478609,_0xf67da]=_0x38fe1c['lcJvT'](useState,null),_0x12db93=async _0x418ebd=>{try{const _0x175502=await AsyncStorage[_0xcd13(0x157)](_0x38fe1c[_0xcd13(0x158)]);let _0x46b292=_0x175502?JSON[_0xcd13(0x159)](_0x175502):[];if(!_0x46b292[_0xcd13(0x15a)](_0x418ebd)){if(_0x38fe1c[_0xcd13(0x146)](_0x38fe1c[_0xcd13(0x15b)],_0x38fe1c['HMcOO']))_0x46b292['push'](_0x418ebd),await AsyncStorage[_0xcd13(0x15c)](_0x38fe1c[_0xcd13(0x158)],JSON[_0xcd13(0x15d)](_0x46b292)),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x15e)],_0x418ebd,_0x38fe1c['nvtVh'],_0x46b292);else try{const _0xe93623=new _0x2dc81f(_0x14b1d9),_0x450cc2=_0xe93623[_0xcd13(0x15f)]['get'](_0x38fe1c[_0xcd13(0x160)]),_0x2d5756=_0xe93623[_0xcd13(0x15f)][_0xcd13(0x161)](_0x38fe1c[_0xcd13(0x162)])||_0x332228;_0x38fe1c['csmep'](_0x450cc2,_0x2d5756)&&(_0x588654(_0x49b0d6=>({..._0x49b0d6,[_0x2d5756]:{'userName':_0x318f79,'connected':!![]}})),_0x38fe1c['yFLXK'](_0x5b83a4,_0x503342=>({..._0x503342,[_0x2d5756]:!![]})),_0x38fe1c['yFLXK'](_0x10ca00,_0x38fe1c[_0xcd13(0x163)]));}catch(_0x20d346){_0x2d89dc[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x165)],_0x20d346);}}}catch(_0x4c1a52){_0x38fe1c[_0xcd13(0x166)](_0x38fe1c['lCwVl'],_0x38fe1c[_0xcd13(0x167)])?console['error'](_0x38fe1c[_0xcd13(0x168)],_0x4c1a52):_0x38fe1c[_0xcd13(0x14a)](_0x4afa3f,![]);}},_0x5b8223=async _0x10649d=>{if(_0x38fe1c[_0xcd13(0x146)](_0x38fe1c['zirdE'],_0x38fe1c[_0xcd13(0x169)]))try{if(_0x38fe1c[_0xcd13(0x16a)](_0x38fe1c[_0xcd13(0x16b)],_0x38fe1c['cgxsU']))_0x343e0e=_0xcd13(0xfb);else{const _0x42f4fa=await AsyncStorage[_0xcd13(0x157)](_0x38fe1c[_0xcd13(0x158)]);let _0x5d3485=_0x42f4fa?JSON[_0xcd13(0x159)](_0x42f4fa):[];_0x5d3485=_0x5d3485[_0xcd13(0x16c)](_0x5ad14b=>_0x5ad14b!==_0x10649d),await AsyncStorage[_0xcd13(0x15c)](_0xcd13(0x16d),JSON[_0xcd13(0x15d)](_0x5d3485)),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x16e)],_0x10649d,_0x38fe1c[_0xcd13(0x16f)],_0x5d3485);}}catch(_0x385772){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x170)],_0x385772);}else _0x4bc238[_0xcd13(0x164)]('Error\x20connecting\x20to\x20'+_0x53e6b0+':',_0x128069);},_0x30803d=(_0x56c230,_0x12c211)=>{const _0x25ccec={'gnfyn':function(_0x2c95df,_0x31be7d){return _0x2c95df(_0x31be7d);},'aeDGl':_0x38fe1c[_0xcd13(0x171)]};Alert['alert'](_0x38fe1c[_0xcd13(0x172)],_0xcd13(0x173)+_0x12c211+'?',[{'text':'No','style':_0xcd13(0x174)},{'text':_0x38fe1c[_0xcd13(0x175)],'style':_0xcd13(0x176),'onPress':async()=>{const _0x2d3306={'zYRhS':_0x38fe1c[_0xcd13(0x177)]};if(_0x38fe1c[_0xcd13(0x178)](_0x38fe1c[_0xcd13(0x179)],_0xcd13(0x17a)))try{_0x38fe1c[_0xcd13(0x17b)](_0x38fe1c[_0xcd13(0x17c)],_0xcd13(0x12))?(_0x25ccec['gnfyn'](_0x157eac,_0xe28325),_0x25ccec[_0xcd13(0x17d)](_0x51ef35,_0x25ccec[_0xcd13(0x17e)])):(_0x38fe1c['yFLXK'](_0x4a6985,_0x346b02=>({..._0x346b02,[_0x56c230]:_0xcd13(0x2a)})),_0x3bcf30(_0x5993ab=>{const _0x48a9a5={..._0x5993ab};return delete _0x48a9a5[_0x56c230],_0x48a9a5;}),_0x38fe1c[_0xcd13(0x14a)](_0x43bd50,_0x427a9a=>({..._0x427a9a,[_0x56c230]:![]})),await _0x38fe1c['yFLXK'](_0x5b8223,_0x56c230),await _0x38fe1c['RXaqM'](_0x50c7e9),console[_0xcd13(0x13e)](_0xcd13(0x17f),_0x56c230));}catch(_0x44ed11){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x180)],_0x44ed11);}else{_0x344681[_0xcd13(0x164)](_0x2d3306[_0xcd13(0x181)],_0x1c2534);throw _0x310710;}}}]);},_0xcff9e7=()=>{const _0x889e09={'XZGhh':_0x38fe1c[_0xcd13(0x182)],'hQLgg':function(_0x52a697,_0x4434c4){return _0x38fe1c['zaJup'](_0x52a697,_0x4434c4);},'VChzM':_0x38fe1c[_0xcd13(0x183)],'nPAfZ':function(_0x9011a0,_0x573a12){return _0x38fe1c[_0xcd13(0x14a)](_0x9011a0,_0x573a12);}};_0x7fe1ad['current']&&(_0x38fe1c[_0xcd13(0x184)](_0xcd13(0x17),_0x38fe1c[_0xcd13(0x185)])?!_0x365b12&&_0x5a0356['current']&&!_0x4e2cfb[_0xcd13(0x186)]['connected']&&(_0x3d1c20[_0xcd13(0x164)](_0xcd13(0xca)),_0x297bf1['error'](_0x889e09[_0xcd13(0x187)],{'connected':_0x403b40[_0xcd13(0x186)][_0xcd13(0x188)],'disconnected':_0x523a82[_0xcd13(0x186)][_0xcd13(0x2a)],'id':_0x386a0f[_0xcd13(0x186)]['id']}),_0x889e09[_0xcd13(0x189)](_0x17a513,_0x889e09[_0xcd13(0x18a)]),_0x889e09[_0xcd13(0x18b)](_0x159805,!![]),_0xfa05fa(),_0x285783[_0xcd13(0x186)]&&(_0x328105[_0xcd13(0x186)][_0xcd13(0xec)](),_0x25dc73[_0xcd13(0x186)]=null)):_0x38fe1c[_0xcd13(0x18c)](clearInterval,_0x7fe1ad['current']));let _0x35e0d8=0x0;_0x7fe1ad['current']=_0x38fe1c[_0xcd13(0x18d)](setInterval,()=>{_0x35e0d8=_0x38fe1c['ZuIiG'](_0x38fe1c[_0xcd13(0x18e)](_0x35e0d8,0x1),0x4),_0x38fe1c[_0xcd13(0x18f)](_0x35e0d8,0x0)?_0x5a0247(''):_0x38fe1c[_0xcd13(0x18c)](_0x5a0247,'.'[_0xcd13(0x190)](_0x35e0d8));},0x1f4);},_0x1e105d=()=>{_0x7fe1ad['current']&&(_0x38fe1c[_0xcd13(0x191)](clearInterval,_0x7fe1ad['current']),_0x7fe1ad['current']=null),_0x38fe1c['LCNxh'](_0x5a0247,'');},_0x4f5545=[{'id':_0x38fe1c[_0xcd13(0x192)],'name':_0xcd13(0x193),'color':_0x38fe1c[_0xcd13(0x194)]},{'id':'youtube','name':_0x38fe1c[_0xcd13(0x195)],'color':'#FFFFFF'},{'id':_0xcd13(0x196),'name':_0x38fe1c[_0xcd13(0x197)],'color':_0x38fe1c['jmBci']}],_0xdec31a=[{'id':_0x38fe1c['Lkgkx'],'name':_0x38fe1c[_0xcd13(0x198)],'color':_0xcd13(0x199)},{'id':_0xcd13(0x19a),'name':_0x38fe1c[_0xcd13(0x19b)],'color':_0x38fe1c[_0xcd13(0x19c)]},{'id':_0x38fe1c[_0xcd13(0x19d)],'name':_0x38fe1c[_0xcd13(0x19e)],'color':_0x38fe1c[_0xcd13(0x19f)]}],_0x10f29a=[..._0x4f5545,..._0xdec31a],_0x5c0cfe=async()=>{},_0x50c7e9=async()=>{},_0x1a6e08=()=>_0xcd13(0x2a),_0x191fe7=![],_0x4d4ef6=()=>![],[_0x66ba3f,_0x4a6985]=_0x38fe1c[_0xcd13(0x1a0)](useState,{}),[_0x18936f,_0x2e2578]=_0x38fe1c[_0xcd13(0x1a1)](useState,null),_0x224b60=_0x3804a0=>{return _0x38fe1c[_0xcd13(0x18c)](getUniversalOnboardingIcon,_0x3804a0);},_0x5857c2=_0x38fe1c[_0xcd13(0x1a2)](useRef,![]),_0x4920a5=_0x38fe1c[_0xcd13(0x1a3)](useRef,_0x58d05c);_0x38fe1c[_0xcd13(0x1a4)](useEffect,()=>{const _0x7fe81a={'Faxrz':_0x38fe1c[_0xcd13(0x1a5)],'pohDW':_0xcd13(0x1a6),'CLDlf':_0x38fe1c[_0xcd13(0x1a7)],'NCYug':function(_0x171d21){return _0x38fe1c[_0xcd13(0x1a8)](_0x171d21);},'gIkUZ':function(_0x1b60cb,_0x8a4cad){return _0x38fe1c[_0xcd13(0x14a)](_0x1b60cb,_0x8a4cad);},'EoJmN':_0xcd13(0xb7)};if(_0x38fe1c[_0xcd13(0x1a9)](_0x38fe1c[_0xcd13(0x1aa)],_0x38fe1c['npOxX']))_0x4920a5[_0xcd13(0x186)]=_0x58d05c;else{const _0x5c3114=_0x7fe81a['Faxrz'][_0xcd13(0x1ab)]('|');let _0x17a956=0x0;while(!![]){switch(_0x5c3114[_0x17a956++]){case'0':_0x318310[_0xcd13(0x164)](_0x7fe81a[_0xcd13(0x1ac)],{'message':_0x398516[_0xcd13(0x1ad)],'name':_0x328c2d[_0xcd13(0x1ae)],'stack':_0x61f3f7[_0xcd13(0x1af)],'errorObject':_0x3a5d58});continue;case'1':_0x2f671f[_0xcd13(0x164)](_0x7fe81a[_0xcd13(0x1b0)],_0x1f9793);continue;case'2':_0x7fe81a['NCYug'](_0x5c46a0);continue;case'3':_0x4765b9(!![]);continue;case'4':_0x7fe81a[_0xcd13(0x1b1)](_0x31993b,_0x7fe81a[_0xcd13(0x1b2)]);continue;}break;}}},[_0x58d05c]),_0x38fe1c[_0xcd13(0x1b3)](useEffect,()=>{const _0x5bd5ac={'CNJsS':_0x38fe1c[_0xcd13(0x1b4)],'Nfhla':function(_0xc69946,_0x4975ba){return _0x38fe1c['WYasO'](_0xc69946,_0x4975ba);},'ZjYtx':function(_0x18a907,_0x4da8ea){return _0x38fe1c[_0xcd13(0x1b5)](_0x18a907,_0x4da8ea);},'EvTcl':function(_0x14e49f,_0x76fc35){return _0x14e49f===_0x76fc35;},'IBZCe':function(_0x45c795,_0x29d9a9){return _0x38fe1c['QqgXb'](_0x45c795,_0x29d9a9);},'qNcrx':_0x38fe1c['pabBz'],'RVZeo':_0x38fe1c[_0xcd13(0x1b6)],'PUnre':function(_0x646631,_0x3fa55f){return _0x38fe1c[_0xcd13(0x1b7)](_0x646631,_0x3fa55f);},'ipFyp':function(_0x257311,_0x220369){return _0x38fe1c[_0xcd13(0x1b8)](_0x257311,_0x220369);},'eIyfV':function(_0x2c3c08,_0x35e16a,_0x27bcb2){return _0x2c3c08(_0x35e16a,_0x27bcb2);}};if(_0x1c3d99){if(_0x38fe1c[_0xcd13(0x1b9)]('BedEg','IbmJL'))_0x290033[_0xcd13(0x186)][_0xcd13(0xec)](),_0x3fe917[_0xcd13(0x186)]=null;else{_0x5857c2[_0xcd13(0x186)]=!![],_0x42fac1['current']=![],_0x2343ab[_0xcd13(0x1ba)](0x0),_0x38fe1c[_0xcd13(0x1bb)](_0x4ab94d,!![]),_0x10916f(),_0x38fe1c[_0xcd13(0x1bc)](requestAnimationFrame,()=>{Animated[_0xcd13(0x1bd)](_0x2343ab,{'toValue':0x1,'duration':0x12c,'useNativeDriver':!![]})[_0xcd13(0x1be)]();});const _0x265917=Linking[_0xcd13(0x1bf)](_0x38fe1c[_0xcd13(0x1c0)],_0x28ae31);return()=>{const _0x422b70={'DAVUB':_0x5bd5ac[_0xcd13(0x1c1)],'BFoYS':function(_0x2632be,_0x2de3ee){return _0x5bd5ac[_0xcd13(0x1c2)](_0x2632be,_0x2de3ee);},'VRjeh':function(_0x49c7af,_0x54281d){return _0x5bd5ac[_0xcd13(0x1c2)](_0x49c7af,_0x54281d);},'GXdaA':function(_0x27b83f,_0x57c958){return _0x5bd5ac[_0xcd13(0x1c3)](_0x27b83f,_0x57c958);},'MjrZP':function(_0x5e08dc,_0x1756c8){return _0x5e08dc===_0x1756c8;},'QOaqe':function(_0x94bb5f,_0x36b335){return _0x5bd5ac['EvTcl'](_0x94bb5f,_0x36b335);},'RVsJR':function(_0x68064d,_0x28cbad){return _0x68064d(_0x28cbad);}};if(_0x5bd5ac[_0xcd13(0x1c4)](_0x5bd5ac['qNcrx'],_0x5bd5ac[_0xcd13(0x1c5)])){var _0xce0dca;_0x3dc25b[_0xcd13(0x164)](_0x422b70[_0xcd13(0x1c6)],_0x1a92ce);const _0x311526=(_0x422b70[_0xcd13(0x1c7)](_0x20a64f,null)||_0xfbe65f===void 0x0||_0x422b70['BFoYS'](_0xce0dca=_0x364e9e['email'],null)||_0x422b70[_0xcd13(0x1c8)](_0xce0dca,void 0x0)?void 0x0:_0xce0dca['split']('@')[0x0])||(_0x422b70[_0xcd13(0x1c9)](_0x32f0d0,null)||_0x422b70[_0xcd13(0x1ca)](_0xe4c518,void 0x0)?void 0x0:_0x416119[_0xcd13(0x1ae)])||'mobile_user';_0x46e813({'username':_0x311526,'email':(_0x422b70[_0xcd13(0x1cb)](_0x5b4890,null)||_0x422b70[_0xcd13(0x1ca)](_0x1a8855,void 0x0)?void 0x0:_0x4daa67['email'])||null,'id':null}),_0x422b70[_0xcd13(0x1cc)](_0x487852,_0x311526);}else _0x265917[_0xcd13(0x1cd)]();};}}else{if(_0x5857c2[_0xcd13(0x186)]&&!_0x42fac1[_0xcd13(0x186)])Animated['timing'](_0x2343ab,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})[_0xcd13(0x1be)](()=>{const _0x331abb={'jgqhF':function(_0x25ee00,_0x2c2539){return _0x5bd5ac[_0xcd13(0x1ce)](_0x25ee00,_0x2c2539);},'IkUoE':function(_0x41d1b4,_0x4153dc){return _0x5bd5ac['ipFyp'](_0x41d1b4,_0x4153dc);}};_0x5bd5ac['eIyfV'](setTimeout,()=>{var _0x4a89ef;_0x331abb[_0xcd13(0x1cf)](_0x4ab94d,![]),(_0x4a89ef=_0x4920a5[_0xcd13(0x186)])===null||_0x331abb['IkUoE'](_0x4a89ef,void 0x0)||_0x4a89ef[_0xcd13(0x1d0)](_0x4920a5);},0x10);});else _0x5857c2[_0xcd13(0x186)]&&_0x42fac1[_0xcd13(0x186)]&&(_0x38fe1c[_0xcd13(0x1d1)](_0x4ab94d,![]),_0x42fac1['current']=![]);}},[_0x1c3d99]),_0x38fe1c[_0xcd13(0x1d2)](useEffect,()=>{const _0x2c38c2={'RTNOW':_0x38fe1c[_0xcd13(0x1d3)],'bKQKK':_0xcd13(0x1d4),'npfHp':_0x38fe1c[_0xcd13(0x1d5)],'lLMNr':_0x38fe1c['PYOIe'],'jcINa':_0xcd13(0x1d6),'NBrAW':_0x38fe1c['oPmiA'],'eFdxt':_0x38fe1c['clTKX'],'FIFbh':function(_0x5033e1){return _0x5033e1();}};if(_0x38fe1c[_0xcd13(0x1d7)](_0x38fe1c[_0xcd13(0x1d8)],_0x38fe1c[_0xcd13(0x1d9)])){const _0x50d202=_0xcd13(0x1da)['split']('|');let _0x37fded=0x0;while(!![]){switch(_0x50d202[_0x37fded++]){case'0':_0x24547e[_0xcd13(0x13e)](_0x2c38c2[_0xcd13(0x1db)],_0x546b6e[_0xcd13(0x1dc)][_0xcd13(0x1dd)]);continue;case'1':_0x538a62[_0xcd13(0x13e)](_0x2c38c2[_0xcd13(0x1de)],_0x46deea['features'][_0xcd13(0x1df)]);continue;case'2':_0xf11de0[_0xcd13(0x13e)](_0xcd13(0x75),_0x483712[_0xcd13(0x1dc)]['storage']);continue;case'3':_0x20e933[_0xcd13(0x13e)](_0x2c38c2[_0xcd13(0x1e0)],_0xb8a2d3[_0xcd13(0x1dc)][_0xcd13(0x1e1)]);continue;case'4':_0x3a2a3c[_0xcd13(0x13e)](_0x2c38c2[_0xcd13(0x1e2)],_0xfaf827['features']['compression']);continue;case'5':_0xfc9831[_0xcd13(0x13e)](_0x2c38c2[_0xcd13(0x1e3)],_0xc8a6dd['features'][_0xcd13(0x1e4)]);continue;case'6':_0x5c8992[_0xcd13(0x13e)](_0x2c38c2['NBrAW'],_0x145584[_0xcd13(0x1dc)][_0xcd13(0x1e5)]);continue;}break;}}else return()=>{_0x1f4bf0[_0xcd13(0x186)]&&(console[_0xcd13(0x13e)](_0x2c38c2[_0xcd13(0x1e6)]),_0x1f4bf0[_0xcd13(0x186)]['disconnect'](),_0x1f4bf0['current']=null),_0x2c38c2[_0xcd13(0x1e7)](_0x1e105d);};},[_0x1c3d99]);const _0x28ae31=_0x38fe1c[_0xcd13(0x1e8)](useCallback,({url:_0x388ac7})=>{const _0x27f8ce={'anmgF':function(_0x37bd59,_0x200fcf){return _0x38fe1c['yvESz'](_0x37bd59,_0x200fcf);},'YTbZo':function(_0x174e70,_0x47b031){return _0x174e70(_0x47b031);},'iqVzo':function(_0x2f119d,_0x386188){return _0x38fe1c[_0xcd13(0x1e9)](_0x2f119d,_0x386188);},'nGZtf':_0xcd13(0x1ea)};_0x38fe1c[_0xcd13(0x1eb)]!==_0x38fe1c[_0xcd13(0x1eb)]?(_0x587657[_0xcd13(0x13e)]('🆕\x20New\x20user\x20or\x20no\x20existing\x20connections,\x20showing\x20platform\x20connection\x20screen'),_0x27f8ce[_0xcd13(0x1ec)](_0x360281,![]),_0x27f8ce[_0xcd13(0x1ed)](_0x31465d,[]),_0x27f8ce[_0xcd13(0x1ee)](_0x1978af,_0x27f8ce[_0xcd13(0x1ef)])):_0x38fe1c[_0xcd13(0x1b7)](isOAuthCallback,_0x388ac7)&&(_0x38fe1c[_0xcd13(0x17b)](_0xcd13(0x1f0),_0x38fe1c[_0xcd13(0x1f1)])?_0x38fe1c['cQluz'](_0xdbedbb,_0x388ac7):_0x33b1a3[_0xcd13(0x13e)](_0xcd13(0x74)));},[]);_0x38fe1c[_0xcd13(0x1d2)](useEffect,()=>{const _0x25c1bd={'bbBkG':_0x38fe1c[_0xcd13(0x1f2)],'NkjXP':function(_0x37b12a,_0x2a1e80){return _0x38fe1c[_0xcd13(0x18c)](_0x37b12a,_0x2a1e80);},'vAWrV':_0x38fe1c[_0xcd13(0x1f3)],'VHunI':_0x38fe1c[_0xcd13(0x1f4)],'pvNou':_0x38fe1c[_0xcd13(0x1f5)],'RXXnS':function(_0x1d9a9d,_0x15c79c){return _0x38fe1c['csmep'](_0x1d9a9d,_0x15c79c);},'wruRp':_0x38fe1c['KGZfz'],'Tovez':function(_0x19ccd1,_0x3d22af){return _0x38fe1c[_0xcd13(0x191)](_0x19ccd1,_0x3d22af);},'vxhoR':function(_0x47a9c2,_0x5366e6){return _0x38fe1c[_0xcd13(0x1b7)](_0x47a9c2,_0x5366e6);},'TuHnb':function(_0x16c7dd){return _0x38fe1c['sINXt'](_0x16c7dd);},'wtUZj':function(_0x1758f0,_0x3bfde0){return _0x38fe1c['gdUOE'](_0x1758f0,_0x3bfde0);},'RfSMQ':function(_0x3e021f,_0x35dfa3){return _0x38fe1c['QqgXb'](_0x3e021f,_0x35dfa3);},'qtoeO':function(_0x2e8215,_0x5db43f){return _0x2e8215===_0x5db43f;},'XSFUw':function(_0x52a320,_0x548e33){return _0x38fe1c[_0xcd13(0x146)](_0x52a320,_0x548e33);},'DfFiw':_0xcd13(0xa3),'unEIG':function(_0x2fe735,_0x439fc6){return _0x38fe1c['LfHKe'](_0x2fe735,_0x439fc6);},'ZIXQe':function(_0x4a980f,_0x4cc789){return _0x38fe1c['ToKqC'](_0x4a980f,_0x4cc789);},'WxFsX':_0x38fe1c[_0xcd13(0x1f6)],'zPmXI':_0x38fe1c[_0xcd13(0x1f7)],'DDNaT':function(_0x3b4b3b,_0xdfa76b){return _0x38fe1c[_0xcd13(0x1f8)](_0x3b4b3b,_0xdfa76b);},'UShZO':'4|1|5|2|0|3','MzSAN':function(_0x5e0c73,_0x30c5cd){return _0x38fe1c[_0xcd13(0x1f9)](_0x5e0c73,_0x30c5cd);},'sUDHh':'🔑\x20[CACHED\x20LOGIN]\x20Skipping\x20to\x20consent\x20screen','WyWNE':function(_0x3e5f77,_0x35ba65){return _0x3e5f77(_0x35ba65);},'zsJhW':function(_0x28f263,_0x23bf07){return _0x28f263!==_0x23bf07;},'tWhEF':_0xcd13(0x1fa),'vXDYv':'🔑\x20[CACHED\x20LOGIN]\x20User\x20authenticated\x20but\x20no\x20connections\x20-\x20skipping\x20to\x20platforms','hVFHJ':_0x38fe1c[_0xcd13(0x132)],'ucjgV':function(_0x182ab4,_0x15ae32){return _0x38fe1c['KTZyZ'](_0x182ab4,_0x15ae32);}},_0x44cfbf=async()=>{const _0x57e2fb={'oPSIP':_0x25c1bd['bbBkG'],'bjlMm':function(_0x43f2c4,_0x11bf82){return _0x25c1bd[_0xcd13(0x1fb)](_0x43f2c4,_0x11bf82);},'KMrTs':_0x25c1bd[_0xcd13(0x1fc)]};try{const _0xc2dc04=await AsyncStorage[_0xcd13(0x157)](_0x25c1bd[_0xcd13(0x1fd)]),_0x11a4e6=await AsyncStorage[_0xcd13(0x157)](_0x25c1bd['pvNou']);if(_0x25c1bd[_0xcd13(0x1fe)](_0xc2dc04,_0x11a4e6)){const _0x48ac53='3|5|4|1|0|2'[_0xcd13(0x1ab)]('|');let _0x51ba08=0x0;while(!![]){switch(_0x48ac53[_0x51ba08++]){case'0':await AsyncStorage[_0xcd13(0x1ff)](_0x25c1bd[_0xcd13(0x1fd)]);continue;case'1':_0x25c1bd[_0xcd13(0x1fb)](_0x368d60,JSON['parse'](_0x11a4e6));continue;case'2':await AsyncStorage[_0xcd13(0x1ff)](_0x25c1bd[_0xcd13(0x200)]);continue;case'3':console[_0xcd13(0x13e)](_0x25c1bd[_0xcd13(0x201)]);continue;case'4':_0x25c1bd['Tovez'](_0x2de285,_0xc2dc04);continue;case'5':_0x25c1bd['vxhoR'](_0x17a8b7,!![]);continue;}break;}}const _0x146360=await _0x25c1bd[_0xcd13(0x202)](getJWT);_0x25c1bd[_0xcd13(0x203)](_0x28917a,_0x146360);if(_0x146360){var _0x1227a2;const _0x1eba17=await _0x25c1bd['TuHnb'](getOnairosUsername),_0x41158e=await AsyncStorage[_0xcd13(0x157)](_0xcd13(0x66)),_0x38aa23=_0x1eba17||(_0x25c1bd[_0xcd13(0x204)](_0x554ecd,null)||_0x25c1bd[_0xcd13(0x205)](_0x554ecd,void 0x0)||_0x25c1bd['RfSMQ'](_0x1227a2=_0x554ecd[_0xcd13(0x206)],null)||_0x1227a2===void 0x0?void 0x0:_0x1227a2[_0xcd13(0x1ab)]('@')[0x0])||(_0x25c1bd[_0xcd13(0x205)](_0x554ecd,null)||_0x25c1bd[_0xcd13(0x207)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd[_0xcd13(0x1ae)])||_0x25c1bd[_0xcd13(0x208)];console[_0xcd13(0x13e)](_0xcd13(0x209),_0x38aa23),_0xdddc3d({'username':_0x38aa23,'email':_0x41158e||(_0x25c1bd['unEIG'](_0x554ecd,null)||_0x25c1bd[_0xcd13(0x207)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd[_0xcd13(0x206)])||null,'id':null}),_0x77311d(_0x38aa23);if(_0x41158e&&_0x1df82a==='welcome'&&!primaryAuthOnly){if(_0x25c1bd['ZIXQe'](_0x25c1bd[_0xcd13(0x20a)],_0xcd13(0x20b)))Animated[_0xcd13(0x1bd)](_0x1bd828,{'toValue':0x1,'duration':0x12c,'useNativeDriver':!![]})[_0xcd13(0x1be)]();else{console[_0xcd13(0x13e)](_0x25c1bd[_0xcd13(0x20c)],_0x41158e);const _0xb44a76=await AsyncStorage[_0xcd13(0x157)]('connectedPlatforms'),_0x33b3ab=_0xb44a76?JSON['parse'](_0xb44a76):[];if(_0x25c1bd['DDNaT'](_0x33b3ab[_0xcd13(0x20d)],0x0)){const _0xf010fb=_0x25c1bd['UShZO'][_0xcd13(0x1ab)]('|');let _0x241be5=0x0;while(!![]){switch(_0xf010fb[_0x241be5++]){case'0':_0x25c1bd[_0xcd13(0x20e)](_0x29a734,_0x33b3ab);continue;case'1':console[_0xcd13(0x13e)](_0x25c1bd[_0xcd13(0x20f)]);continue;case'2':_0x25c1bd[_0xcd13(0x210)](_0x519d53,!![]);continue;case'3':_0x40952e('consent');continue;case'4':console[_0xcd13(0x13e)](_0xcd13(0x211),_0x33b3ab);continue;case'5':_0x25c1bd['NkjXP'](_0x4f24e8,_0x41158e);continue;}break;}}else{if(_0x25c1bd[_0xcd13(0x212)](_0x25c1bd[_0xcd13(0x213)],_0x25c1bd[_0xcd13(0x213)])){const _0x4e9daa=_0x57e2fb[_0xcd13(0x214)][_0xcd13(0x1ab)]('|');let _0x55fba3=0x0;while(!![]){switch(_0x4e9daa[_0x55fba3++]){case'0':_0x57e2fb[_0xcd13(0x215)](_0x4b4426,_0x1a348b['SUCCESS']);continue;case'1':return;case'2':_0x265a6c[_0xcd13(0x13e)](_0xcd13(0x216)+_0x179073[_0xcd13(0x20d)]+'\x20existing\x20connections\x20-\x20skipping\x20to\x20consent');continue;case'3':_0x57e2fb[_0xcd13(0x215)](_0x3c9a7a,!![]);continue;case'4':_0x9a3b5a(_0xecbb3['map'](_0x3fe872=>_0x3fe872[_0xcd13(0x8)]));continue;case'5':_0x57e2fb['bjlMm'](_0x824003,_0x57e2fb[_0xcd13(0x217)]);continue;}break;}}else console[_0xcd13(0x13e)](_0x25c1bd['vXDYv']),_0x25c1bd[_0xcd13(0x1fb)](_0x4f24e8,_0x41158e),_0x25c1bd['NkjXP'](_0x40952e,_0x25c1bd[_0xcd13(0x218)]);}}}}}catch(_0x4b34f6){var _0x248384;console['error'](_0xcd13(0x19),_0x4b34f6);const _0x33ddb7=(_0x25c1bd[_0xcd13(0x207)](_0x554ecd,null)||_0x25c1bd[_0xcd13(0x207)](_0x554ecd,void 0x0)||_0x25c1bd['XSFUw'](_0x248384=_0x554ecd['email'],null)||_0x248384===void 0x0?void 0x0:_0x248384[_0xcd13(0x1ab)]('@')[0x0])||(_0x25c1bd[_0xcd13(0x204)](_0x554ecd,null)||_0x554ecd===void 0x0?void 0x0:_0x554ecd[_0xcd13(0x1ae)])||_0xcd13(0xa3);_0xdddc3d({'username':_0x33ddb7,'email':(_0x25c1bd[_0xcd13(0x219)](_0x554ecd,null)||_0x554ecd===void 0x0?void 0x0:_0x554ecd[_0xcd13(0x206)])||null,'id':null}),_0x25c1bd['ucjgV'](_0x77311d,_0x33ddb7);}};_0x1c3d99&&_0x38fe1c[_0xcd13(0x1a8)](_0x44cfbf);},[_0x1c3d99,_0x554ecd,_0x1df82a,primaryAuthOnly]);const _0x10916f=async()=>{const _0x1b9665={'cgUCf':function(_0x277206,_0x5aeab3){return _0x38fe1c[_0xcd13(0x1a9)](_0x277206,_0x5aeab3);}};try{const _0x2b41b6=await _0x38fe1c[_0xcd13(0x21a)](getOnairosUsername),_0x8e16d4=(_0x38fe1c['ayNms'](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x1b8)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd['email'])||(_0x38fe1c[_0xcd13(0x21b)](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x21c)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd[_0xcd13(0x1ae)])||_0xcd13(0x21d)+Math[_0xcd13(0x21e)](_0x38fe1c[_0xcd13(0x21f)](Math[_0xcd13(0x220)](),0x2710)),_0xbb85e6=_0x38fe1c[_0xcd13(0x221)](_0x2b41b6,_0x8e16d4);console[_0xcd13(0x13e)](_0xcd13(0x222),{'storedUsername':_0x2b41b6,'fallbackUsername':_0x8e16d4,'finalUsername':_0xbb85e6}),_0x38fe1c['FnTUq'](_0x77311d,_0xbb85e6);const _0x55dd32=await _0x38fe1c[_0xcd13(0x21a)](_0x1a6e08);console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x223)],_0x55dd32),_0x3bcf30(_0x55dd32);const _0x21b9c0={};Object[_0xcd13(0x224)](_0x55dd32)['forEach'](_0x73941c=>{var _0x503f82;_0x21b9c0[_0x73941c]=_0x38fe1c[_0xcd13(0x178)](_0x503f82=_0x55dd32[_0x73941c],null)&&_0x503f82!==void 0x0&&_0x503f82[_0xcd13(0x188)]?_0xcd13(0x188):_0x38fe1c['QIEVK'];}),_0x38fe1c[_0xcd13(0x225)](_0x4a6985,_0x21b9c0);const _0x308b74={};Object['keys'](_0x55dd32)[_0xcd13(0x226)](_0x2cee9b=>{var _0x451273;_0x308b74[_0x2cee9b]=(_0x1b9665[_0xcd13(0x227)](_0x451273=_0x55dd32[_0x2cee9b],null)||_0x1b9665['cgUCf'](_0x451273,void 0x0)?void 0x0:_0x451273[_0xcd13(0x188)])||![];}),_0x43bd50(_0x308b74),console['log'](_0x38fe1c[_0xcd13(0x228)],_0x21b9c0),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x229)],_0x308b74);}catch(_0x1c311b){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x22a)],_0x1c311b),_0x38fe1c[_0xcd13(0x22b)](_0x3bcf30,{}),_0x38fe1c[_0xcd13(0x1d1)](_0x4a6985,{}),_0x38fe1c[_0xcd13(0x22c)](_0x43bd50,{});const _0x1d3740=(_0x38fe1c[_0xcd13(0x1d7)](_0x554ecd,null)||_0x554ecd===void 0x0?void 0x0:_0x554ecd['email'])||(_0x554ecd===null||_0x38fe1c[_0xcd13(0x21c)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd[_0xcd13(0x1ae)])||_0xcd13(0x21d)+Math[_0xcd13(0x21e)](Math[_0xcd13(0x220)]()*0x2710);_0x38fe1c[_0xcd13(0x18c)](_0x77311d,_0x1d3740);}},_0x582efe=()=>{const _0x15fe47=_0x42fac1[_0xcd13(0x186)];Animated[_0xcd13(0x1bd)](_0x2343ab,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})[_0xcd13(0x1be)](()=>{const _0x59e858={'NvHVt':function(_0x56eff5,_0x4d8922){return _0x56eff5(_0x4d8922);},'YdBTY':function(_0x43ecd9){return _0x38fe1c['sINXt'](_0x43ecd9);},'jLrKA':function(_0x36a690,_0x2fafc6){return _0x38fe1c[_0xcd13(0x22d)](_0x36a690,_0x2fafc6);}};_0x38fe1c['nZwyO']===_0xcd13(0x22e)?_0x38fe1c['eeCbp'](setTimeout,()=>{_0x59e858[_0xcd13(0x22f)](_0x4ab94d,![]),!_0x15fe47&&_0x59e858[_0xcd13(0x230)](_0x58d05c);},0x64):_0x59e858[_0xcd13(0x231)](_0x456ff0,![]);});},_0x1191d8=()=>{const _0x42bb03={'LWjjq':_0xcd13(0x39),'wpYzs':function(_0x47e7b9,_0x296434){return _0x38fe1c[_0xcd13(0x232)](_0x47e7b9,_0x296434);},'lwxUV':function(_0x3839f3,_0x3bae21){return _0x38fe1c[_0xcd13(0x233)](_0x3839f3,_0x3bae21);}};if(_0x38fe1c[_0xcd13(0x178)](_0x38fe1c['kMvCE'],_0x38fe1c[_0xcd13(0x234)])){_0x38fe1c['XaalJ'](triggerHaptic,HapticType[_0xcd13(0x235)]);if(primaryAuthOnly){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x236)]),_0x38fe1c['zaJup'](_0x40952e,_0x38fe1c[_0xcd13(0x132)]);return;}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x237)]),_0x38fe1c[_0xcd13(0x22d)](_0x40952e,_0x38fe1c[_0xcd13(0x145)]);}else _0x1113b4[_0xcd13(0x13e)](_0x42bb03[_0xcd13(0x238)]),_0x42bb03['wpYzs'](_0x35aa70,_0x2ba7d5),_0x42bb03[_0xcd13(0x239)](_0xc29fc2,_0xcd13(0x23a));},_0x19866d=async _0x175f8f=>{const _0x203b16={'Ezlnb':'❌\x20Error\x20verifying\x20email\x20code:','yrAfj':function(_0x3376d9,_0x479ad6){return _0x38fe1c[_0xcd13(0x23b)](_0x3376d9,_0x479ad6);},'MHnDy':_0x38fe1c[_0xcd13(0x23c)]};if(_0x38fe1c['ObGdw']!==_0x38fe1c[_0xcd13(0x23d)])_0x48b4fc=_0x38fe1c['PVlSx'](_0x574a2d,0x1)%0x4,_0x38fe1c[_0xcd13(0x23e)](_0x3b3e29,0x0)?_0x1d5429(''):_0x38fe1c[_0xcd13(0x23f)](_0xcee0d3,'.'['repeat'](_0x3c5c54));else{_0x38fe1c[_0xcd13(0x240)](triggerHaptic,HapticType[_0xcd13(0x235)]),_0x38fe1c[_0xcd13(0x240)](_0x23e6b8,!![]),_0x38fe1c['LCNxh'](_0x19a7d5,'');try{if(_0x38fe1c[_0xcd13(0x241)](_0x175f8f,_0x38fe1c[_0xcd13(0x242)])){const _0x5cfacc=_0x38fe1c[_0xcd13(0x243)][_0xcd13(0x1ab)]('|');let _0x29dd6c=0x0;while(!![]){switch(_0x5cfacc[_0x29dd6c++]){case'0':await AsyncStorage['setItem'](_0x38fe1c['PCYLW'],_0x38fe1c['yxQEq']);continue;case'1':_0x38fe1c[_0xcd13(0x225)](_0x40952e,_0xcd13(0x1ea));continue;case'2':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x244)]);continue;case'3':_0x38fe1c[_0xcd13(0x23b)](_0x23e6b8,![]);continue;case'4':_0x38fe1c[_0xcd13(0x22b)](_0x4f24e8,_0x175f8f);continue;case'5':return;case'6':await _0x38fe1c[_0xcd13(0x1f9)](storeJWT,_0x38fe1c[_0xcd13(0x245)]);continue;}break;}}if(_0x38fe1c['UQnZa'](_0x175f8f,_0x38fe1c[_0xcd13(0x246)])){console[_0xcd13(0x13e)](_0xcd13(0x247)),_0x38fe1c[_0xcd13(0x248)](_0x4f24e8,_0xcd13(0xc8)),_0x40952e('verification'),_0x38fe1c[_0xcd13(0x249)](_0x23e6b8,![]);return;}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x24a)],_0x175f8f);const _0x206edc=await _0x38fe1c[_0xcd13(0x24b)](sendEmailVerificationCode,_0x175f8f);_0x206edc[_0xcd13(0x24c)]?(console[_0xcd13(0x13e)](_0x38fe1c['rHNgG']),_0x38fe1c[_0xcd13(0x24d)](_0x4f24e8,_0x175f8f),_0x38fe1c['DSKjh'](_0x40952e,_0x38fe1c[_0xcd13(0x147)])):(console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x24e)],_0x206edc[_0xcd13(0x1ad)]),_0x38fe1c[_0xcd13(0x24f)](_0x19a7d5,_0x206edc[_0xcd13(0x1ad)]||_0xcd13(0x250)));}catch(_0x1d2c2c){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x251)],_0x1d2c2c),_0x38fe1c['obXPl'](_0x19a7d5,_0x38fe1c[_0xcd13(0x252)]);}finally{_0x38fe1c['XkLLn']===_0x38fe1c[_0xcd13(0x253)]?_0x38fe1c[_0xcd13(0x14a)](_0x23e6b8,![]):(_0x288c09[_0xcd13(0x164)](_0x203b16['Ezlnb'],_0x4e164f),_0x203b16[_0xcd13(0x254)](_0x5079e6,_0x203b16[_0xcd13(0x255)]));}}},_0x1343b4=async()=>{const _0x481be6={'agBaY':function(_0x1fb228,_0x1687cf){return _0x1fb228(_0x1687cf);},'TEMxX':_0x38fe1c['HmdHK'],'VngJw':function(_0x19d7e0,_0xcb04e0){return _0x38fe1c[_0xcd13(0x256)](_0x19d7e0,_0xcb04e0);},'khfaE':_0x38fe1c['nTdUv'],'wpBHX':_0xcd13(0x257),'bWwCl':_0x38fe1c['TbreC'],'MhiLS':_0x38fe1c[_0xcd13(0x258)]};if(_0x38fe1c[_0xcd13(0x259)]===_0x38fe1c[_0xcd13(0x25a)])_0x533253(_0x284dd3['message']||_0x38fe1c[_0xcd13(0x25b)]);else{_0x38fe1c[_0xcd13(0x25c)](triggerHaptic,HapticType[_0xcd13(0x235)]),_0x23e6b8(!![]),_0x38fe1c[_0xcd13(0x25d)](_0x19a7d5,'');try{console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x25e)]);const _0x386beb=await signInWithGoogle();if(_0x386beb[_0xcd13(0x24c)]&&_0x386beb[_0xcd13(0x25f)]){if(_0x38fe1c[_0xcd13(0x260)]!==_0x38fe1c['sXnjZ']){console[_0xcd13(0x13e)](_0xcd13(0x261),_0x386beb[_0xcd13(0x25f)][_0xcd13(0x206)]),console['log'](_0x38fe1c[_0xcd13(0x262)],_0x386beb[_0xcd13(0x263)]),_0x4f24e8(_0x386beb['user'][_0xcd13(0x206)]);const _0x149846=_0x386beb[_0xcd13(0x25f)][_0xcd13(0x264)]||_0x386beb[_0xcd13(0x25f)][_0xcd13(0x206)][_0xcd13(0x1ab)]('@')[0x0];_0x77311d(_0x149846);if(_0x38fe1c[_0xcd13(0x265)](_0x386beb[_0xcd13(0x263)],![])){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x266)]);try{const _0xb13a1c=await _0x38fe1c['NeoZb'](getConnectedAccountsSmart,_0x386beb[_0xcd13(0x25f)][_0xcd13(0x206)],_0x386beb['user']['id'],_0x149846);if(_0xb13a1c&&_0x38fe1c['VYAMp'](_0xb13a1c[_0xcd13(0x20d)],0x0)){const _0x45dcdb=_0x38fe1c[_0xcd13(0x267)][_0xcd13(0x1ab)]('|');let _0x1f93cf=0x0;while(!![]){switch(_0x45dcdb[_0x1f93cf++]){case'0':_0x38fe1c[_0xcd13(0x248)](_0x519d53,!![]);continue;case'1':console[_0xcd13(0x13e)](_0xcd13(0x216)+_0xb13a1c[_0xcd13(0x20d)]+_0xcd13(0x268));continue;case'2':return;case'3':_0x38fe1c['VUlQu'](triggerHaptic,HapticType[_0xcd13(0x269)]);continue;case'4':_0x38fe1c[_0xcd13(0x240)](_0x40952e,_0xcd13(0x26));continue;case'5':_0x38fe1c[_0xcd13(0x1bc)](_0x29a734,_0xb13a1c[_0xcd13(0x26a)](_0x5e2625=>_0x5e2625[_0xcd13(0x8)]));continue;}break;}}else console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x26b)]);}catch(_0x29c605){console['log'](_0x38fe1c[_0xcd13(0x26c)],_0x29c605);}}_0x38fe1c[_0xcd13(0x24b)](_0x40952e,_0xcd13(0x1ea)),_0x38fe1c[_0xcd13(0x24f)](triggerHaptic,HapticType[_0xcd13(0x269)]);}else{_0x7a9c94[_0xcd13(0x164)](_0x38fe1c['fBKJd']);throw new _0xc8e4ed(_0x38fe1c['vKzeH']);}}else{if(_0x386beb[_0xcd13(0x26d)]){if(_0x38fe1c['MfGUJ'](_0x38fe1c[_0xcd13(0x26e)],_0x38fe1c[_0xcd13(0x26f)]))return _0x481be6[_0xcd13(0x270)](_0x426dae,_0x1c1375);else console[_0xcd13(0x13e)](_0xcd13(0x271));}else _0x38fe1c[_0xcd13(0x272)](_0x19a7d5,_0x386beb['message']||_0xcd13(0x4f)),_0x38fe1c[_0xcd13(0x25c)](triggerHaptic,HapticType[_0xcd13(0x273)]);}}catch(_0x56aa2d){if(_0x38fe1c[_0xcd13(0x256)](_0x38fe1c[_0xcd13(0x274)],_0x38fe1c[_0xcd13(0x275)])){_0x3b6b67[_0xcd13(0x13e)](_0x481be6[_0xcd13(0x276)]),_0x451179['log']('🔑\x20Using\x20auth\x20token:',(_0x481be6[_0xcd13(0x277)](_0x52eb67,null)||_0x481be6['VngJw'](_0x286c78,void 0x0)?void 0x0:_0x243552['substring'](0x0,0x14))+_0xcd13(0x278));if(!_0x1ebcf4)throw new _0x20a20c(_0x481be6[_0xcd13(0x279)]);_0x22b06b[_0xcd13(0x13e)](_0x481be6['wpBHX']),_0x1d51d8[_0xcd13(0x13e)](_0x481be6['bWwCl'],_0x2acc92),_0x103dff['log'](_0x481be6['MhiLS']);}else console['error'](_0x38fe1c[_0xcd13(0x27a)],_0x56aa2d),_0x38fe1c[_0xcd13(0x24f)](_0x19a7d5,_0x56aa2d[_0xcd13(0x1ad)]||'Google\x20Sign-In\x20failed.\x20Please\x20try\x20again.'),_0x38fe1c[_0xcd13(0x24b)](triggerHaptic,HapticType[_0xcd13(0x273)]),_0x38fe1c['gbPFb'](_0x19a7d5,_0x38fe1c[_0xcd13(0x27b)]);}finally{_0x38fe1c[_0xcd13(0x24d)](_0x23e6b8,![]);}}},_0x18023b=async _0x4f72bf=>{if(_0x38fe1c[_0xcd13(0x27c)]('Sgjbh',_0x38fe1c[_0xcd13(0x27d)]))_0x12f1b3[_0xcd13(0x1cd)]();else{_0x38fe1c[_0xcd13(0x27e)](triggerHaptic,HapticType[_0xcd13(0x235)]),_0x23e6b8(!![]),_0x38fe1c[_0xcd13(0x24f)](_0x19a7d5,'');try{if(_0xf2a8ab===_0xcd13(0xc8)){console['log'](_0x38fe1c[_0xcd13(0x27f)]),_0x38fe1c['DSKjh'](_0x40952e,_0x38fe1c[_0xcd13(0x132)]),_0x38fe1c['euwLB'](_0x23e6b8,![]);return;}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x280)],_0xf2a8ab,_0x4f72bf),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x281)],_0x20ed1d);const _0x472a30=await _0x38fe1c[_0xcd13(0x282)](confirmEmailVerificationCode,_0xf2a8ab,_0x4f72bf);if(_0x472a30['success']){var _0x3f8650,_0x5f3ba2,_0x627c88,_0x29e3cc;console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x283)]),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x284)],{'isNewUser':_0x472a30[_0xcd13(0x263)],'flowType':_0x472a30['flowType'],'hasExistingData':_0x38fe1c[_0xcd13(0x285)](_0x3f8650=_0x472a30[_0xcd13(0x286)],null)||_0x3f8650===void 0x0?void 0x0:_0x3f8650[_0xcd13(0x287)],'connectionsCount':(_0x38fe1c[_0xcd13(0x288)](_0x5f3ba2=_0x472a30[_0xcd13(0x286)],null)||_0x5f3ba2===void 0x0||_0x38fe1c['VrEhQ'](_0x5f3ba2=_0x5f3ba2[_0xcd13(0x289)],null)||_0x5f3ba2===void 0x0?void 0x0:_0x5f3ba2[_0xcd13(0x20d)])||0x0});const _0x3fc86f=_0x38fe1c['iqrgq'](_0x472a30[_0xcd13(0x263)],![])||_0x472a30[_0xcd13(0x28a)]===_0x38fe1c[_0xcd13(0x28b)],_0x5eb19c=_0x38fe1c[_0xcd13(0x28c)](_0x627c88=_0x472a30[_0xcd13(0x286)],null)||_0x38fe1c[_0xcd13(0x18f)](_0x627c88,void 0x0)?void 0x0:_0x627c88['connections'],_0xf5e866=Array[_0xcd13(0x28d)](_0x5eb19c)?_0x5eb19c:[],_0x3b075f=_0xf5e866[_0xcd13(0x16c)](_0x47878c=>_0x47878c&&(_0x47878c[_0xcd13(0x28e)]||_0x47878c[_0xcd13(0x28f)]===_0xcd13(0x290)))[_0xcd13(0x26a)](_0x536447=>_0x536447===null||_0x536447===void 0x0?void 0x0:_0x536447[_0xcd13(0x8)])[_0xcd13(0x16c)](Boolean);console['log'](_0xcd13(0x291),{'isReturning':_0x3fc86f,'connectedPlatformNames':_0x3b075f,'showWelcomeBack':_0x38fe1c[_0xcd13(0x292)](_0x29e3cc=_0x472a30['enochInstructions'],null)||_0x38fe1c['vUCVy'](_0x29e3cc,void 0x0)?void 0x0:_0x29e3cc['showWelcomeBack']}),_0x3fc86f&&_0x38fe1c[_0xcd13(0x1f8)](_0x3b075f['length'],0x0)?_0x38fe1c[_0xcd13(0x184)](_0xcd13(0x293),_0x38fe1c[_0xcd13(0x294)])?(console[_0xcd13(0x13e)](_0x38fe1c['ayfFG']),_0x38fe1c[_0xcd13(0x27e)](_0x519d53,!![]),_0x29a734(_0x3b075f),_0x38fe1c['xYrOd'](_0x40952e,'consent')):(_0x520d3f['log'](_0x38fe1c[_0xcd13(0x295)]),_0x2d1539['current']['disconnect'](),_0x51c61a['current']=null):_0x38fe1c[_0xcd13(0x28c)](_0x38fe1c[_0xcd13(0x296)],_0xcd13(0x57))?(console[_0xcd13(0x13e)](_0x38fe1c['ElywW']),_0x38fe1c['FnTUq'](_0x519d53,![]),_0x38fe1c[_0xcd13(0x1f9)](_0x29a734,[]),_0x38fe1c[_0xcd13(0x297)](_0x40952e,_0x38fe1c[_0xcd13(0x132)])):_0x3ca7b2[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x26b)]);}else console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x298)],_0x472a30[_0xcd13(0x1ad)]),_0x38fe1c['tyOPL'](_0x19a7d5,_0x472a30['message']||_0x38fe1c[_0xcd13(0x299)]);}catch(_0x3622ea){console['error'](_0x38fe1c['hYAUg'],_0x3622ea),_0x38fe1c[_0xcd13(0x150)](_0x19a7d5,_0xcd13(0x31));}finally{_0x38fe1c['LCNxh'](_0x23e6b8,![]);}}},_0x58c45a=()=>{_0x38fe1c[_0xcd13(0x29a)](triggerHaptic,HapticType['BUTTON_PRESS']),_0x19a7d5(''),_0x38fe1c['sBDpE'](_0x40952e,_0x38fe1c[_0xcd13(0x145)]);},_0x3b3154=async()=>{triggerHaptic(HapticType['BUTTON_PRESS']),console['log'](_0x38fe1c[_0xcd13(0x29b)]);try{await AsyncStorage[_0xcd13(0x29c)]([_0x38fe1c[_0xcd13(0x29d)],_0x38fe1c['OCXaj'],_0xcd13(0x66),_0x38fe1c[_0xcd13(0x29e)],_0x38fe1c[_0xcd13(0x29f)],_0x38fe1c['PCYLW']]),_0x38fe1c[_0xcd13(0x2a0)](_0x28917a,null),_0x38fe1c[_0xcd13(0x24f)](_0xdddc3d,null),_0x38fe1c[_0xcd13(0x24b)](_0x4f24e8,''),_0x38fe1c[_0xcd13(0x225)](_0x519d53,![]),_0x29a734([]),_0x19a7d5(''),_0x38fe1c[_0xcd13(0x22b)](_0x40952e,_0x38fe1c['iHOag']),console[_0xcd13(0x13e)](_0x38fe1c['JbCOk']);}catch(_0x50b6f2){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x2a1)],_0x50b6f2),_0x40952e(_0xcd13(0x3));}},_0x113a74=async()=>{const _0x46bf69={'PZNLo':function(_0x4cffc5,_0x48355c){return _0x38fe1c['nUiZU'](_0x4cffc5,_0x48355c);},'KbUzf':function(_0x39afd8,_0x38b546){return _0x38fe1c[_0xcd13(0x27c)](_0x39afd8,_0x38b546);},'sBXry':function(_0x184485,_0x24977e,_0x1379b1,_0x21fff8){return _0x184485(_0x24977e,_0x1379b1,_0x21fff8);},'fpUer':_0x38fe1c['VElDx'],'lYCEQ':function(_0x2547ae,_0x4bbabf){return _0x38fe1c[_0xcd13(0x21b)](_0x2547ae,_0x4bbabf);}};_0x38fe1c[_0xcd13(0x249)](triggerHaptic,HapticType[_0xcd13(0x235)]),_0x38fe1c['yOovB'](_0x23e6b8,!![]),_0x38fe1c[_0xcd13(0x2a2)](_0x19a7d5,'');try{if(_0x38fe1c[_0xcd13(0x2a3)]!==_0x38fe1c[_0xcd13(0x2a4)]){console['log'](_0x38fe1c[_0xcd13(0x2a5)],_0xf2a8ab);const _0x52d3dd=await _0x38fe1c[_0xcd13(0x24d)](sendEmailVerificationCode,_0xf2a8ab);_0x52d3dd[_0xcd13(0x24c)]?console[_0xcd13(0x13e)](_0xcd13(0x2a6)):_0x38fe1c[_0xcd13(0x2a0)](_0x19a7d5,_0x52d3dd[_0xcd13(0x1ad)]||_0x38fe1c[_0xcd13(0x25b)]);}else _0xa6aeb1[_0xcd13(0x164)](_0xcd13(0x109),_0x56a1b5),_0x46bf69[_0xcd13(0x2a7)](_0x32f5b5,null)||_0x46bf69[_0xcd13(0x2a8)](_0x1cd614,void 0x0)||_0x46bf69[_0xcd13(0x2a9)](_0x26cc2b,_0x2fe7db[_0xcd13(0x2aa)],_0x46bf69['fpUer'],{'email':(_0x4badd7===null||_0x46bf69['lYCEQ'](_0x16ec7b,void 0x0)?void 0x0:_0xf41496[_0xcd13(0x206)])||'',..._0x13449d});}catch(_0x344727){console[_0xcd13(0x164)](_0xcd13(0x2ab),_0x344727),_0x38fe1c[_0xcd13(0x1e9)](_0x19a7d5,_0x38fe1c[_0xcd13(0x2ac)]);}finally{_0x38fe1c['eZZMS'](_0x23e6b8,![]);}},_0x55a8e7=async _0xcb0204=>{if(_0x38fe1c[_0xcd13(0x285)](_0x38fe1c[_0xcd13(0x2ad)],_0x38fe1c['EFyEG'])){_0x38fe1c[_0xcd13(0x2ae)](triggerHaptic,HapticType[_0xcd13(0x269)]),console['log'](_0x38fe1c['bdPhc'],_0xcb0204);try{const [_0x35dbc6,_0x5a7467,_0x26f44f]=await Promise[_0xcd13(0x2af)]([_0x38fe1c[_0xcd13(0x2b0)](getAuthToken),AsyncStorage[_0xcd13(0x157)](_0x38fe1c[_0xcd13(0x2b1)]),_0x38fe1c[_0xcd13(0x2b2)](getOnairosUsername)]);console[_0xcd13(0x13e)](_0x38fe1c['BdfHE']),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2b3)],_0x35dbc6?_0x35dbc6[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278):'NO'),console[_0xcd13(0x13e)](_0xcd13(0x2b5),_0x38fe1c[_0xcd13(0x2b6)](_0x5a7467,'NO')),_0x42fac1[_0xcd13(0x186)]=!![];const _0x4ebaa0={'connectedPlatforms':_0xcb0204};_0x5a7467&&(_0x4ebaa0[_0xcd13(0x206)]=_0x5a7467,_0x4ebaa0[_0xcd13(0x264)]=_0x26f44f||_0x5a7467[_0xcd13(0x1ab)]('@')[0x0]);if(_0x38fe1c[_0xcd13(0x2b7)](_0x35dbc6,_0x5a7467))_0x38fe1c['zzqSe'](_0x38fe1c['RCuGQ'],_0xcd13(0x2b8))?_0x50d0ed[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x168)],_0x457209):(console[_0xcd13(0x13e)](_0x38fe1c['RYlsv']),await(_0x38fe1c[_0xcd13(0x1b8)](_0x108330,null)||_0x108330===void 0x0?void 0x0:_0x38fe1c['NeoZb'](_0x108330,API_CONFIG[_0xcd13(0x2aa)],_0x35dbc6,_0x4ebaa0)));else _0x5a7467?_0x38fe1c[_0xcd13(0x2b9)](_0x38fe1c[_0xcd13(0x2ba)],_0x38fe1c[_0xcd13(0x2bb)])?(_0x5d9634[_0xcd13(0x13e)](_0xcd13(0xd9)),_0x38fe1c[_0xcd13(0x249)](_0x5df5c3,_0x38fe1c[_0xcd13(0x2bc)]),_0x38fe1c[_0xcd13(0x2bd)](_0x5df775,!![])):(console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2be)]),await(_0x38fe1c[_0xcd13(0x18f)](_0x108330,null)||_0x38fe1c['Iotze'](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x2bf)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],'',_0x4ebaa0))):(console[_0xcd13(0x2c0)](_0x38fe1c[_0xcd13(0x2c1)]),await(_0x38fe1c[_0xcd13(0x2c2)](_0x108330,null)||_0x38fe1c['nXOCU'](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x2c3)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],'',_0x4ebaa0)));}catch(_0x17e1ab){console[_0xcd13(0x164)](_0xcd13(0x2c4),_0x17e1ab);const _0x47295d=await AsyncStorage[_0xcd13(0x157)]('user_email')[_0xcd13(0x2c5)](()=>null);await(_0x38fe1c[_0xcd13(0x2c6)](_0x108330,null)||_0x38fe1c[_0xcd13(0x28c)](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x2c7)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],'',{'connectedPlatforms':_0xcb0204,..._0x38fe1c['YIETQ'](_0x47295d,{'email':_0x47295d})}));}console[_0xcd13(0x13e)](_0x38fe1c['AShym']);}else _0x58b421[_0xcd13(0x164)](_0xcd13(0xdd),_0x1058a9),_0x3fdc6e(_0x38fe1c[_0xcd13(0x2c8)]),_0x38fe1c[_0xcd13(0x2c9)](_0x16414d,!![]),_0x38fe1c[_0xcd13(0x2ca)](_0xcb4ed5);},_0x142c2b=async()=>{const _0x316eaa={'vKKxj':_0x38fe1c['XZwyC']};if(_0x38fe1c[_0xcd13(0x2cb)]('mUhKy',_0x38fe1c[_0xcd13(0x2cc)]))_0x2dce4c=_0x316eaa[_0xcd13(0x2cd)];else{_0x38fe1c[_0xcd13(0x232)](triggerHaptic,HapticType[_0xcd13(0x235)]),console[_0xcd13(0x13e)](_0xcd13(0x2ce));try{const [_0x254dc5,_0x38bb36,_0x5277fa]=await Promise[_0xcd13(0x2af)]([getAuthToken(),AsyncStorage[_0xcd13(0x157)](_0x38fe1c[_0xcd13(0x2b1)]),_0x38fe1c['erHYB'](getOnairosUsername)]);_0x42fac1[_0xcd13(0x186)]=!![],_0x38fe1c['HUBGl'](_0x254dc5,_0x38bb36)?(console[_0xcd13(0x13e)](_0xcd13(0x2cf)),await(_0x108330===null||_0x38fe1c[_0xcd13(0x2d0)](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x2c3)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],_0x254dc5,{'email':_0x38bb36,'connectedPlatforms':[],'username':_0x5277fa||_0x38bb36['split']('@')[0x0],'skipped':!![]}))):(console[_0xcd13(0x2c0)](_0x38fe1c['tsFdZ']),await(_0x38fe1c[_0xcd13(0x2d1)](_0x108330,null)||_0x38fe1c['RxufT'](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x2d2)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],'',{'connectedPlatforms':[],'skipped':!![]})));}catch(_0x38a8b9){if(_0x38fe1c[_0xcd13(0x2d3)]===_0xcd13(0x71))console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x2d4)],_0x38a8b9),await(_0x38fe1c[_0xcd13(0x28c)](_0x108330,null)||_0x38fe1c['kgqtO'](_0x108330,void 0x0)?void 0x0:_0x108330(API_CONFIG[_0xcd13(0x2aa)],'',{'connectedPlatforms':[],'skipped':!![]}));else{_0x151236['log'](_0xcd13(0x11b)),_0x38fe1c['ZMAfx'](_0x4adccf,_0x38fe1c[_0xcd13(0x2d5)]),_0x38fe1c['ojrnZ'](_0x303142,_0x535950),_0x38fe1c[_0xcd13(0x2d6)](_0x402170,!![]),_0x38fe1c[_0xcd13(0x25c)](_0x2705c8,_0x38fe1c[_0xcd13(0x2d7)]),_0x38fe1c['CWCRy'](_0x1d924d,!![]),_0x38fe1c[_0xcd13(0x2d8)](_0x2569bf);return;}}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2d9)]);}},_0x5d48d7=async()=>{const _0x49dc0e={'JmhzJ':_0x38fe1c['sdaBP'],'CtSNU':_0x38fe1c[_0xcd13(0x2da)],'XOmLK':_0x38fe1c[_0xcd13(0x2db)],'qZmUo':_0x38fe1c['kbyoN'],'LISEj':_0x38fe1c['yRvaT'],'YKXjE':_0x38fe1c[_0xcd13(0x1d5)],'DjLzV':_0x38fe1c[_0xcd13(0x2dc)],'Xscbl':function(_0x3c6166,_0x3e6524){return _0x38fe1c['yROWs'](_0x3c6166,_0x3e6524);},'ygalI':function(_0x3b778d,_0x30499d){return _0x3b778d(_0x30499d);},'tuXEY':function(_0x92f48b,_0x420db1,_0x57fcf8){return _0x92f48b(_0x420db1,_0x57fcf8);}};if(_0x38fe1c[_0xcd13(0x2dd)](_0x38fe1c[_0xcd13(0x2de)],_0x38fe1c[_0xcd13(0x2df)])){console[_0xcd13(0x13e)]('🔍\x20Reviewer\x20bypass\x20triggered\x20from\x20platforms'),triggerHaptic(HapticType['BUTTON_PRESS']);try{if(_0x38fe1c[_0xcd13(0x2e0)]===_0x38fe1c[_0xcd13(0x2e1)]){const _0x211605=_0x49dc0e[_0xcd13(0x2e2)][_0xcd13(0x1ab)]('|');let _0x23e88b=0x0;while(!![]){switch(_0x211605[_0x23e88b++]){case'0':_0x2a4032['databases']&&_0x1e776b[_0xcd13(0x28d)](_0x4fa112[_0xcd13(0x1e5)])&&_0x594cd9['log'](_0x49dc0e[_0xcd13(0x2e3)],_0x3fc55b[_0xcd13(0x1e5)][_0xcd13(0x2e4)](',\x20'));continue;case'1':_0x579efc[_0xcd13(0x2e5)]&&_0x5bc7d4[_0xcd13(0x13e)](_0x49dc0e[_0xcd13(0x2e6)]);continue;case'2':_0x4bf278[_0xcd13(0x13e)](_0x49dc0e[_0xcd13(0x2e7)],_0x4bda04[_0xcd13(0x2e8)]);continue;case'3':_0x5a6a20[_0xcd13(0x13e)](_0x49dc0e[_0xcd13(0x2e9)],_0x57bfc8['message']);continue;case'4':_0xdeb1df['log'](_0x49dc0e[_0xcd13(0x2ea)],_0x587692['encryption']);continue;case'5':_0x2af426['log']('🧠\x20Inference\x20enabled:',_0x1d09d8[_0xcd13(0x1e4)]);continue;}break;}}else await AsyncStorage[_0xcd13(0x15c)](_0x38fe1c[_0xcd13(0x2eb)],_0x38fe1c[_0xcd13(0x2ec)]),await _0x38fe1c[_0xcd13(0x25c)](storeJWT,_0x38fe1c[_0xcd13(0x245)]),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2ed)]),_0x582efe();}catch(_0x446ef3){if(_0x38fe1c[_0xcd13(0x2ee)](_0x38fe1c['kbtlJ'],_0xcd13(0x2ef)))console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x2f0)],_0x446ef3),_0x38fe1c[_0xcd13(0x2f1)](_0x582efe);else{const _0x21ed96=_0x49dc0e[_0xcd13(0x2f2)][_0xcd13(0x1ab)]('|');let _0x56be53=0x0;while(!![]){switch(_0x21ed96[_0x56be53++]){case'0':_0x49dc0e[_0xcd13(0x2f3)](_0x408539,_0x4277fa);continue;case'1':_0x2bcd18(!![]);continue;case'2':_0x49dc0e['ygalI'](_0xea276e,'consent');continue;case'3':_0x408bfc['log']('🔑\x20[CACHED\x20LOGIN]\x20User\x20has\x20existing\x20connections:',_0x2e0bd3);continue;case'4':_0x5b8790[_0xcd13(0x13e)](_0xcd13(0x2f4));continue;case'5':_0x19434e(_0x3df056);continue;}break;}}}}else{const _0x4840ee={'vgMOG':function(_0x426fc5,_0x5ac9c9){return _0x38fe1c[_0xcd13(0x2bd)](_0x426fc5,_0x5ac9c9);},'LrAfs':function(_0x3696a2){return _0x38fe1c['IimaV'](_0x3696a2);}},_0x2a01e1=_0x38e6f3[_0xcd13(0x186)];Animated[_0xcd13(0x1bd)](_0x1ca6d7,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})['start'](()=>{_0x49dc0e[_0xcd13(0x2f5)](_0x44ea98,()=>{_0x4840ee[_0xcd13(0x2f6)](_0x18e95e,![]),!_0x2a01e1&&_0x4840ee['LrAfs'](_0x251b51);},0x64);});}},_0x515741=async _0x5d49ca=>{const _0xf74ab0={'FzYdF':_0x38fe1c[_0xcd13(0x2f7)],'WqxHb':function(_0x3a0657,_0x3756e2){return _0x38fe1c[_0xcd13(0x2f8)](_0x3a0657,_0x3756e2);},'DKLDs':_0x38fe1c[_0xcd13(0x132)]};_0x38fe1c['eZZMS'](triggerHaptic,HapticType[_0xcd13(0x235)]),_0x38fe1c[_0xcd13(0x2f9)](_0x2e2578,_0x5d49ca);try{if(_0x38fe1c[_0xcd13(0x2fa)](hasNativeSDK,_0x5d49ca)){_0x1e938f(_0x5d49ca);const _0x41c421=await initiateNativeAuth(_0x5d49ca,_0x4b5df2);_0x41c421&&(_0x38fe1c[_0xcd13(0x2d6)](_0x3bcf30,_0x4ed6a7=>({..._0x4ed6a7,[_0x5d49ca]:{'userName':_0x4b5df2,'connected':!![]}})),_0x43bd50(_0x34cfcf=>({..._0x34cfcf,[_0x5d49ca]:!![]})),_0x38fe1c[_0xcd13(0x2fb)](_0x4a6985,_0xc36bdc=>({..._0xc36bdc,[_0x5d49ca]:'connected'})),await _0x38fe1c[_0xcd13(0x1d1)](_0x12db93,_0x5d49ca));}else{if(_0x38fe1c[_0xcd13(0x17b)](_0x38fe1c[_0xcd13(0x2fc)],_0x38fe1c['fzryt'])){_0x1e938f(_0x5d49ca);const _0x281277=await initiateOAuth(_0x5d49ca,_0x4b5df2);_0x281277&&(_0x38fe1c[_0xcd13(0x2fd)](_0x337c9f,_0x281277),_0x40952e(_0x38fe1c[_0xcd13(0x171)]));}else _0x263654['log'](_0xcd13(0x1),_0x55aaad),_0xcc132f[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2fe)],_0x49ae82),_0x2bdf24[_0xcd13(0x13e)](_0x38fe1c['OeeBp'],_0x4664f2),_0x5e725e['log'](_0xcd13(0x2ff),_0x119e6f);}}catch(_0xe934f2){_0x38fe1c[_0xcd13(0x300)](_0x38fe1c['eYywn'],_0xcd13(0x301))?console[_0xcd13(0x164)](_0xcd13(0x302)+_0x5d49ca+':',_0xe934f2):(_0x38fe1c[_0xcd13(0x303)](_0x405a18,_0x2fce9b[_0xcd13(0x1ad)]||_0xcd13(0x4f)),_0x38fe1c[_0xcd13(0x22b)](_0x316f80,_0x47be8c[_0xcd13(0x273)]));}finally{_0x38fe1c[_0xcd13(0x304)](_0xcd13(0x7e),_0x38fe1c[_0xcd13(0x305)])?(_0x3d150d[_0xcd13(0x13e)](_0xf74ab0[_0xcd13(0x306)]),_0xf74ab0[_0xcd13(0x307)](_0x1f5f65,_0xf74ab0[_0xcd13(0x308)])):_0x2e2578(null);}},_0x3f952e=_0x38fe1c[_0xcd13(0x309)](useCallback,async _0x1fe14c=>{const _0x2cfd63={'gJdVC':_0x38fe1c[_0xcd13(0x30a)],'mDkic':function(_0x5708d0,_0x520e9c){return _0x5708d0(_0x520e9c);},'vLNcv':_0x38fe1c[_0xcd13(0x30b)],'AbtKh':function(_0x2d2670,_0x3b4ebf){return _0x38fe1c[_0xcd13(0x30c)](_0x2d2670,_0x3b4ebf);},'ItZcA':_0xcd13(0x30d),'vTpVA':_0x38fe1c[_0xcd13(0x30e)],'DTxtG':_0x38fe1c[_0xcd13(0x251)],'vokJB':_0x38fe1c[_0xcd13(0x252)],'zYxZL':_0x38fe1c[_0xcd13(0x30f)],'FvAuU':function(_0x260c38,_0x4bece7){return _0x38fe1c['PquyD'](_0x260c38,_0x4bece7);},'uqhdL':function(_0x1ee60b){return _0x38fe1c[_0xcd13(0x2f1)](_0x1ee60b);},'PBoNp':_0x38fe1c['exFEI'],'GOWfs':_0x38fe1c[_0xcd13(0x310)],'AdYEX':_0x38fe1c[_0xcd13(0x311)],'PgYit':_0x38fe1c[_0xcd13(0x312)],'UWhTC':_0x38fe1c[_0xcd13(0x1d5)],'MBpnv':_0x38fe1c[_0xcd13(0x313)],'hueNQ':_0x38fe1c[_0xcd13(0x314)],'uPMSz':function(_0x4e0c75,_0x5b0dc9){return _0x38fe1c[_0xcd13(0x2f8)](_0x4e0c75,_0x5b0dc9);}};if(!_0x4502e1[_0x1fe14c]){if(_0x38fe1c[_0xcd13(0x315)](_0x38fe1c[_0xcd13(0x316)],_0x38fe1c[_0xcd13(0x316)]))try{if(_0x38fe1c['LfHKe'](_0x1fe14c,'instagram')){_0x38fe1c['CimSF'](_0x43bd50,_0x1bc0b9=>({..._0x1bc0b9,[_0x1fe14c]:!_0x1bc0b9[_0x1fe14c]})),_0x38fe1c[_0xcd13(0x22b)](_0x3bcf30,_0x2f1df3=>({..._0x2f1df3,[_0x1fe14c]:{'userName':_0x1fe14c+_0xcd13(0x317),'connected':!![]}})),await _0x12db93(_0x1fe14c);return;}if(_0x38fe1c[_0xcd13(0x318)](_0x1fe14c,_0x38fe1c[_0xcd13(0x19d)])||_0x38fe1c[_0xcd13(0x319)](_0x1fe14c,_0x38fe1c[_0xcd13(0x31a)])){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x31b)]);const _0x1e0e2d={'userId':_0x38fe1c[_0xcd13(0x31c)](_0x4c1dae,_0x4b5df2),'email':_0x4c1dae||_0x4b5df2+_0xcd13(0x31d),'appName':_0x20ed1d,'timestamp':Date[_0xcd13(0x31e)](),'data':{'conversations':[],'chatHistory':[],'preferences':{},'customData':{}},'accessToken':undefined,'refreshToken':undefined,'tokenExpiry':undefined},_0x245f7e=await _0x38fe1c['jAZmq'](sendLLMDataToBackend,_0x1e0e2d);if(_0x245f7e['success']){const _0x2ecdd2=_0x38fe1c['lDkQr'][_0xcd13(0x1ab)]('|');let _0x4b6444=0x0;while(!![]){switch(_0x2ecdd2[_0x4b6444++]){case'0':await _0x38fe1c[_0xcd13(0x151)](_0x12db93,_0x1fe14c);continue;case'1':_0x38fe1c['xYrOd'](_0x43bd50,_0x464897=>({..._0x464897,[_0x1fe14c]:!![]}));continue;case'2':console[_0xcd13(0x13e)]('✅\x20'+_0x1fe14c+_0xcd13(0x31f));continue;case'3':console[_0xcd13(0x13e)](_0x38fe1c['XLJKU']);continue;case'4':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x320)],_0x245f7e[_0xcd13(0x321)]);continue;case'5':_0x38fe1c[_0xcd13(0x322)](_0x3bcf30,_0x2d1aa5=>({..._0x2d1aa5,[_0x1fe14c]:{'userName':_0x4b5df2,'connected':!![],'connectionId':_0x245f7e['connectionId'],'storedInBackend':!![]}}));continue;}break;}}else{if(_0x38fe1c['kJfwW'](_0x38fe1c[_0xcd13(0x323)],_0x38fe1c[_0xcd13(0x324)]))throw new Error('Failed\x20to\x20send\x20LLM\x20data\x20to\x20backend:\x20'+_0x245f7e[_0xcd13(0x1ad)]);else{const _0x1866e4=_0x2cfd63[_0xcd13(0x325)][_0xcd13(0x1ab)]('|');let _0x432c01=0x0;while(!![]){switch(_0x1866e4[_0x432c01++]){case'0':_0x16d0c3(!![]);continue;case'1':_0x2cfd63[_0xcd13(0x326)](_0x3caa0d,_0x4987e7[_0xcd13(0x327)]);continue;case'2':return;case'3':_0x2cfd63['mDkic'](_0x35bb1e,_0xcd13(0x328));continue;case'4':_0x4299d4[_0xcd13(0x13e)](_0x2cfd63[_0xcd13(0x329)]);continue;case'5':_0x2cfd63[_0xcd13(0x32a)](_0x4f3cd8,'LIMITED_DATA');continue;}break;}}}return;}if(_0x38fe1c[_0xcd13(0x29a)](hasNativeSDK,_0x1fe14c)){_0x38fe1c['DpoJK'](_0x1e938f,_0x1fe14c);const _0x44bfb1=await _0x38fe1c[_0xcd13(0x18d)](initiateNativeAuth,_0x1fe14c,_0x4b5df2);_0x44bfb1&&(_0x38fe1c[_0xcd13(0x32b)](_0xcd13(0x32c),_0xcd13(0x32c))?(_0x38fe1c[_0xcd13(0x32d)](_0x3bcf30,_0x5cb224=>({..._0x5cb224,[_0x1fe14c]:{'userName':_0x4b5df2,'connected':!![]}})),_0x38fe1c['ExKjw'](_0x43bd50,_0x5b7483=>({..._0x5b7483,[_0x1fe14c]:!![]})),await _0x38fe1c[_0xcd13(0x32e)](_0x12db93,_0x1fe14c)):(_0x100744[_0xcd13(0x13e)](_0x2cfd63[_0xcd13(0x32f)],_0x54317f['message']),_0x2522a4(_0x42565a['message']||_0x2cfd63[_0xcd13(0x330)])));return;}_0x1e938f(_0x1fe14c);const _0x1a514c=await initiateOAuth(_0x1fe14c,_0x4b5df2);_0x1a514c&&(_0x38fe1c[_0xcd13(0x2b9)](_0x38fe1c[_0xcd13(0x331)],_0x38fe1c['EUFSx'])?(_0x38fe1c['PlOdR'](_0x337c9f,_0x1a514c),_0x38fe1c[_0xcd13(0x332)](_0x40952e,_0x38fe1c['QBsFq'])):_0x36d45a(![]));}catch(_0x1bb9d4){if(_0x38fe1c['WYasO'](_0x38fe1c[_0xcd13(0x333)],_0x38fe1c[_0xcd13(0x334)]))_0x3b279d[_0xcd13(0x164)](_0x2cfd63[_0xcd13(0x335)],_0x2f4245),_0x2cfd63[_0xcd13(0x32a)](_0x4c7900,_0x2cfd63['vokJB']);else{console['error'](_0xcd13(0x336)+_0x1fe14c+':',_0x1bb9d4);return;}}else _0x5f3393[_0xcd13(0x164)](_0x2cfd63['zYxZL'],_0x2d5908[_0xcd13(0x164)]),_0x2cfd63[_0xcd13(0x326)](_0x9b58bb,_0xcd13(0x337)+_0x1c0aa8[_0xcd13(0x164)]),_0x2cfd63['FvAuU'](_0x5807f5,!![]),_0x2cfd63[_0xcd13(0x338)](_0x1d4f24);}else{if(_0x38fe1c['Djckh']===_0x38fe1c[_0xcd13(0x339)])_0x43bd50(_0x56cc76=>({..._0x56cc76,[_0x1fe14c]:!_0x56cc76[_0x1fe14c]})),_0x38fe1c['fVSEW'](_0x3bcf30,_0x33d9ee=>{const _0x30c207={..._0x33d9ee};return delete _0x30c207[_0x1fe14c],_0x30c207;});else{const _0x39f901=_0x2cfd63[_0xcd13(0x33a)][_0xcd13(0x1ab)]('|');let _0x3631d7=0x0;while(!![]){switch(_0x39f901[_0x3631d7++]){case'0':_0x192c88['features']&&(_0x1a7c4b[_0xcd13(0x13e)](_0x2cfd63['GOWfs'],_0x2d9f1d[_0xcd13(0x1dc)][_0xcd13(0x1e4)]),_0x207553[_0xcd13(0x13e)](_0x2cfd63[_0xcd13(0x33b)],_0x14cd24[_0xcd13(0x1dc)]['storage']),_0x4022a1['log'](_0x2cfd63[_0xcd13(0x33c)],_0x5ef315['features'][_0xcd13(0x33d)]),_0x372ce3[_0xcd13(0x13e)](_0x2cfd63[_0xcd13(0x33e)],_0x471761[_0xcd13(0x1dc)][_0xcd13(0x1e1)]),_0x128374[_0xcd13(0x13e)](_0xcd13(0x1d),_0x38a7b0[_0xcd13(0x1dc)][_0xcd13(0x1dd)]),_0x1c284e[_0xcd13(0x13e)](_0x2cfd63[_0xcd13(0x33f)],_0x2a666a[_0xcd13(0x1dc)][_0xcd13(0x1e5)]),_0x1f3a16[_0xcd13(0x13e)]('📈\x20Query\x20scores\x20enabled:',_0x545110[_0xcd13(0x1dc)]['queryScores']));continue;case'1':_0x202a8c(_0x2cfd63['hueNQ']);continue;case'2':_0x2626de[_0xcd13(0x13e)]('🚀\x20Training\x20Started:',_0xe1f6fc[_0xcd13(0x1ad)]);continue;case'3':_0x56af44[_0xcd13(0x13e)]('🎯\x20Training\x20Features:',_0x409e16[_0xcd13(0x1dc)]);continue;case'4':_0x2cfd63[_0xcd13(0x340)](_0x57d05c,0x19);continue;}break;}}}},[_0x4502e1,_0x4b5df2]),_0xdbedbb=useCallback(_0x346ed8=>{const _0x4775ab={'KmGxY':'❌\x20Training\x20start\x20failed:','eNBLm':'Training\x20failed\x20to\x20start','jRxsQ':function(_0x23b2d2,_0x1eda70){return _0x38fe1c['xyxPd'](_0x23b2d2,_0x1eda70);},'eBHpM':function(_0x1e54eb){return _0x1e54eb();}};if(_0x38fe1c[_0xcd13(0x341)](_0x38fe1c['xuHgz'],_0x38fe1c[_0xcd13(0x342)]))_0x476d89['log'](_0x38fe1c['ayfFG']),_0x5b3339(!![]),_0x38fe1c[_0xcd13(0x343)](_0x60a632,_0x48dff8),_0x38fe1c['xyxPd'](_0x91c1ab,_0x38fe1c[_0xcd13(0x1f3)]);else try{const _0x1550a3=new URL(_0x346ed8),_0x268e40=_0x1550a3[_0xcd13(0x15f)][_0xcd13(0x161)](_0x38fe1c[_0xcd13(0x160)]),_0x2e7835=_0x1550a3[_0xcd13(0x15f)][_0xcd13(0x161)](_0x38fe1c[_0xcd13(0x162)])||_0x365c4a;_0x268e40&&_0x2e7835&&(_0x38fe1c[_0xcd13(0x344)](_0x38fe1c[_0xcd13(0x345)],_0xcd13(0x8d))?(_0x38fe1c['gdUOE'](_0x3bcf30,_0x652029=>({..._0x652029,[_0x2e7835]:{'userName':_0x4b5df2,'connected':!![]}})),_0x38fe1c['yVUMY'](_0x43bd50,_0x49a7b0=>({..._0x49a7b0,[_0x2e7835]:!![]})),_0x38fe1c[_0xcd13(0x346)](_0x40952e,_0x38fe1c[_0xcd13(0x163)])):(_0x2caf17[_0xcd13(0x164)](_0x4775ab[_0xcd13(0x347)],_0x33380a[_0xcd13(0x164)]),_0x536529(_0xcd13(0x337)+(_0x2f9469[_0xcd13(0x164)]||_0x4775ab['eNBLm'])),_0x4775ab[_0xcd13(0x348)](_0x10c281,!![]),_0x4775ab[_0xcd13(0x349)](_0x4489be)));}catch(_0x4348d0){_0x38fe1c['oqXru'](_0x38fe1c[_0xcd13(0x34a)],'htrOl')?console[_0xcd13(0x164)](_0xcd13(0x34b),_0x4348d0):_0x4775ab['jRxsQ'](_0x51704e,null);}},[_0x365c4a,_0x4b5df2]),_0x296ce7=useCallback(async _0x1c9dac=>{const _0x1450d1={'HthXE':_0x38fe1c[_0xcd13(0x34c)],'diPUi':function(_0x1c5e47,_0x53bab8){return _0x38fe1c[_0xcd13(0x23b)](_0x1c5e47,_0x53bab8);},'GUHoB':_0xcd13(0xbb),'iRIkt':_0x38fe1c[_0xcd13(0x34d)]};if(_0x38fe1c[_0xcd13(0x34e)](_0x38fe1c[_0xcd13(0x34f)],_0x38fe1c[_0xcd13(0x34f)])){console['log'](_0xcd13(0x350)+_0x365c4a+_0xcd13(0x351)),console[_0xcd13(0x13e)](_0xcd13(0x352),_0x1c9dac);if(_0x365c4a){if(_0x38fe1c[_0xcd13(0x353)](_0x38fe1c[_0xcd13(0x354)],_0x38fe1c['kElHm']))_0x10f11f['error'](_0x38fe1c[_0xcd13(0x355)],_0x478419);else{const _0x506f58=_0x38fe1c[_0xcd13(0x356)][_0xcd13(0x1ab)]('|');let _0x3c5e24=0x0;while(!![]){switch(_0x506f58[_0x3c5e24++]){case'0':await _0x38fe1c[_0xcd13(0x303)](_0x12db93,_0x365c4a);continue;case'1':_0x38fe1c['Bspap'](_0x3bcf30,_0x1fe160=>({..._0x1fe160,[_0x365c4a]:{'userName':_0x4b5df2,'connected':!![]}}));continue;case'2':_0x38fe1c[_0xcd13(0x25d)](_0x43bd50,_0x159122=>({..._0x159122,[_0x365c4a]:!![]}));continue;case'3':_0x4a6985(_0x10127e=>({..._0x10127e,[_0x365c4a]:'connected'}));continue;case'4':console['log']('💾\x20'+_0x365c4a+_0xcd13(0x357));continue;case'5':console['log'](_0xcd13(0x358)+_0x365c4a);continue;}break;}}}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x359)]),_0x38fe1c['kPMgd'](_0x337c9f,''),_0x38fe1c[_0xcd13(0x35a)](_0x40952e,_0x38fe1c[_0xcd13(0x163)]);}else{const _0x5913a1=_0x1450d1['HthXE'][_0xcd13(0x1ab)]('|');let _0x5ea30c=0x0;while(!![]){switch(_0x5913a1[_0x5ea30c++]){case'0':_0x1450d1[_0xcd13(0x35b)](_0xf57356,_0x1450d1[_0xcd13(0x35c)]);continue;case'1':_0x3c80b4[_0xcd13(0x13e)](_0x1450d1['iRIkt'],_0x50a440);continue;case'2':_0x1450d1[_0xcd13(0x35b)](_0x21506f,_0xbd55d7[_0xcd13(0x35d)]);continue;case'3':_0x1450d1['diPUi'](_0x532344,_0x340af7[_0xcd13(0x35e)]);continue;case'4':_0x1450d1[_0xcd13(0x35b)](_0x24802c,0x50);continue;}break;}}},[_0x365c4a,_0x4b5df2,_0x12db93]),_0x41f73f=_0x38fe1c[_0xcd13(0x309)](useCallback,async _0x367fbf=>{const _0x58a823={'sOikK':_0x38fe1c[_0xcd13(0x26c)]};_0x5aa325(_0x367fbf),_0x38fe1c[_0xcd13(0x1bb)](setTemporaryPin,_0x367fbf),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x35f)]);if(_0x38fe1c[_0xcd13(0x360)](_0x177cec,_0x478609)){console[_0xcd13(0x13e)](_0x38fe1c['SbEFX']);try{await _0x38fe1c[_0xcd13(0x30c)](_0x393ea8,_0x367fbf),_0x40952e(_0x38fe1c[_0xcd13(0x361)]);}catch(_0x1b672e){_0xcd13(0x362)!==_0x38fe1c[_0xcd13(0x363)]?(console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x364)],_0x1b672e),_0x38fe1c[_0xcd13(0x365)](_0x40952e,'persona'),_0x38fe1c[_0xcd13(0x366)](_0x2c54c4,_0x38fe1c[_0xcd13(0x367)]),_0x75e131(!![])):_0x578111[_0xcd13(0x13e)](_0x58a823[_0xcd13(0x368)],_0x59d7de);}}else console[_0xcd13(0x13e)](_0x38fe1c['ofBCv']),_0x38fe1c['fVSEW'](_0x40952e,_0x38fe1c[_0xcd13(0x361)]),_0x38fe1c['haqut'](_0x2c54c4,_0x38fe1c['dMejS']),_0x75e131(!![]);console[_0xcd13(0x13e)]('🔐\x20[PIN\x20SUBMIT]\x20PIN\x20stored\x20securely,\x20moved\x20to\x20persona\x20step');},[_0x177cec,_0x478609]),_0x4470f8=async(_0x333e4b,_0x828a86)=>{const _0xa58dc6={'gJYYo':_0x38fe1c[_0xcd13(0x369)],'GxMKo':_0xcd13(0x111),'BvoFf':function(_0x5909d4,_0x475203){return _0x38fe1c[_0xcd13(0x36a)](_0x5909d4,_0x475203);},'OrWxj':_0x38fe1c[_0xcd13(0x36b)],'jJqqy':'Error\x20removing\x20connected\x20platform:','ytzYO':_0x38fe1c[_0xcd13(0x36c)]};try{if(_0x38fe1c[_0xcd13(0x36d)]!==_0xcd13(0x36e)){_0x38fe1c['czBZT'](_0x2c54c4,_0x38fe1c[_0xcd13(0x36f)]),_0x38fe1c[_0xcd13(0x32d)](_0x444384,0xf);const _0x5c12b6=_0x828a86||await _0x38fe1c[_0xcd13(0x2b2)](getJWT);if(!_0x5c12b6){if(_0x38fe1c['wTCGb']===_0xcd13(0x9f)){console[_0xcd13(0x164)](_0xcd13(0x3d));throw new Error(_0x38fe1c[_0xcd13(0x370)]);}else _0xf72905['log'](_0x38fe1c[_0xcd13(0x371)],_0x44a3bd[_0xcd13(0x2b4)](0x0,0x1e)+_0xcd13(0x278)),_0x38fe1c[_0xcd13(0x372)](_0x1f9866,null)||_0x376db8===void 0x0||_0x38fe1c[_0xcd13(0x2c3)](_0x2cf661,_0x2afebd['BASE_URL'],_0x4a1ae5,{'email':(_0x38fe1c[_0xcd13(0x315)](_0x2b6a12,null)||_0x38fe1c['wxDRZ'](_0xb5b6a5,void 0x0)?void 0x0:_0x5d9c72[_0xcd13(0x206)])||'',..._0x3bfcf9});}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x373)],_0x333e4b),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x374)],_0x5c12b6?_0x5c12b6['substring'](0x0,0x14)+_0xcd13(0x278):_0x38fe1c[_0xcd13(0x375)]);const _0x5a8d34=await _0x38fe1c[_0xcd13(0x2ca)](getOnairosUsername),_0x3714cd=_0x5a8d34||(_0x38fe1c['mmEAa'](_0x36231e,null)||_0x36231e===void 0x0?void 0x0:_0x36231e['username'])||(_0x36231e===null||_0x38fe1c[_0xcd13(0x376)](_0x36231e,void 0x0)?void 0x0:_0x36231e[_0xcd13(0x1ae)])||_0x4b5df2||_0x38fe1c[_0xcd13(0x377)],_0x27b48d=await AsyncStorage['getItem']('connectedPlatforms'),_0x523b08=_0x27b48d?JSON[_0xcd13(0x159)](_0x27b48d):[];console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x378)],_0x523b08);const _0x30610d=await _0x38fe1c[_0xcd13(0x379)](getEncryptedPinForAPI)[_0xcd13(0x2c5)](_0xcb5411=>{return console[_0xcd13(0x2c0)](_0xa58dc6[_0xcd13(0x37a)],_0xcb5411),null;}),_0x39af6a={'socketId':_0x333e4b,'username':_0x3714cd,'email':(_0x38fe1c[_0xcd13(0x23e)](_0x36231e,null)||_0x38fe1c[_0xcd13(0x288)](_0x36231e,void 0x0)?void 0x0:_0x36231e['email'])||null,'modelKey':null,'connectedPlatforms':_0x523b08,'platformConnections':_0x23a4da,..._0x38fe1c[_0xcd13(0x2b7)](_0x30610d,{'encryptedPin':_0x30610d,'hasPinData':!![]})};console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x37b)],_0x39af6a);const _0xe76694=await _0x38fe1c['TcNDz'](startEnochTrainingWithYouTubeCheck,_0x39af6a);console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x37c)],_0xe76694);if(_0xe76694[_0xcd13(0x37d)]||_0x38fe1c['QkYjK'](_0xe76694[_0xcd13(0x7)],_0x38fe1c[_0xcd13(0x2d5)])){const _0x519555=_0x38fe1c[_0xcd13(0x37e)]['split']('|');let _0x1b7a42=0x0;while(!![]){switch(_0x519555[_0x1b7a42++]){case'0':_0x38fe1c[_0xcd13(0x303)](_0x75e131,!![]);continue;case'1':_0x38fe1c[_0xcd13(0x37f)](_0x1e105d);continue;case'2':_0x38fe1c[_0xcd13(0x380)](_0x2c54c4,'Connections\x20required');continue;case'3':_0x38fe1c[_0xcd13(0x381)](_0x6f85a3,!![]);continue;case'4':return;case'5':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x382)]);continue;case'6':_0x38fe1c[_0xcd13(0x2a2)](_0x5c6b2a,_0xe76694);continue;case'7':_0x38fe1c[_0xcd13(0x383)](_0x9ddd5,_0x38fe1c[_0xcd13(0x2d5)]);continue;}break;}}if(_0xe76694['success']){console[_0xcd13(0x13e)](_0x38fe1c['ZRIYu'],_0xe76694[_0xcd13(0x1ad)]),console['log']('🎯\x20Training\x20Features:',_0xe76694[_0xcd13(0x1dc)]);if(_0xe76694['features']){if(_0x38fe1c['OQTdI']===_0x38fe1c[_0xcd13(0x384)]){const _0x3e7bb4=_0x38fe1c[_0xcd13(0x385)][_0xcd13(0x1ab)]('|');let _0x5af9d6=0x0;while(!![]){switch(_0x3e7bb4[_0x5af9d6++]){case'0':console['log']('💾\x20Storage\x20method:',_0xe76694[_0xcd13(0x1dc)][_0xcd13(0x2e8)]);continue;case'1':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x310)],_0xe76694[_0xcd13(0x1dc)]['inference']);continue;case'2':console['log'](_0x38fe1c[_0xcd13(0x312)],_0xe76694[_0xcd13(0x1dc)]['compression']);continue;case'3':console['log'](_0xcd13(0x1d4),_0xe76694['features'][_0xcd13(0x1df)]);continue;case'4':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x1d3)],_0xe76694['features'][_0xcd13(0x1dd)]);continue;case'5':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x1d5)],_0xe76694[_0xcd13(0x1dc)]['encryption']);continue;case'6':console['log'](_0x38fe1c[_0xcd13(0x313)],_0xe76694[_0xcd13(0x1dc)][_0xcd13(0x1e5)]);continue;}break;}}else _0x44029a(_0x4971ba[_0xcd13(0x235)]),_0x17d7f3[_0xcd13(0x13e)](_0xa58dc6[_0xcd13(0x386)]),_0x3b83d6()[_0xcd13(0x2c5)](_0x4532f8=>{_0x6b4cf9[_0xcd13(0x164)](_0xcd13(0x8f),_0x4532f8);}),_0xa58dc6[_0xcd13(0x387)](_0x2b24d2,_0xa58dc6[_0xcd13(0x388)]);}_0x38fe1c['MmIuU'](_0x2c54c4,_0x38fe1c[_0xcd13(0x314)]),_0x444384(0x19);}else _0x38fe1c[_0xcd13(0x292)](_0x38fe1c['yfIzJ'],'fsBvP')?(console[_0xcd13(0x164)](_0xcd13(0x389),_0xe76694[_0xcd13(0x164)]),_0x2c54c4('Error:\x20'+(_0xe76694[_0xcd13(0x164)]||_0x38fe1c[_0xcd13(0x38a)])),_0x38fe1c[_0xcd13(0x38b)](_0x75e131,!![]),_0x38fe1c[_0xcd13(0x2f1)](_0x1e105d)):_0x893434[_0xcd13(0x164)](_0xa58dc6['jJqqy'],_0x25de00);}else throw new _0x533323(_0xa58dc6[_0xcd13(0x38c)]);}catch(_0x19780e){console[_0xcd13(0x164)](_0xcd13(0x38d),_0x19780e),_0x38fe1c['BCYys'](_0x2c54c4,_0xcd13(0x337)+(_0x38fe1c[_0xcd13(0x38e)](_0x19780e,Error)?_0x19780e[_0xcd13(0x1ad)]:_0x38fe1c[_0xcd13(0x38f)])),_0x38fe1c[_0xcd13(0x35a)](_0x75e131,!![]),_0x38fe1c[_0xcd13(0x21a)](_0x1e105d);}},_0x393ea8=async _0x3c31d1=>{const _0x31d93b={'xoaww':'0|1|3|2|5|4','lZbgX':_0xcd13(0xca),'wSJva':function(_0x459780,_0x1e63d3){return _0x459780(_0x1e63d3);},'trtAk':function(_0x33f24c,_0x51000a){return _0x33f24c(_0x51000a);},'galvJ':_0x38fe1c[_0xcd13(0x183)],'vexMC':function(_0x1fd3e3){return _0x38fe1c['oWWuu'](_0x1fd3e3);}};if(_0x38fe1c[_0xcd13(0x390)]!==_0x38fe1c[_0xcd13(0x390)])_0x25aa77=_0xcd13(0xfd);else try{if(_0x38fe1c[_0xcd13(0x391)](_0x38fe1c[_0xcd13(0x392)],_0x38fe1c[_0xcd13(0x392)])){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x393)]),console['log'](_0x38fe1c[_0xcd13(0x374)],(_0x38fe1c[_0xcd13(0x2cb)](_0x4a1bb9,null)||_0x38fe1c[_0xcd13(0x394)](_0x4a1bb9,void 0x0)?void 0x0:_0x4a1bb9[_0xcd13(0x2b4)](0x0,0x14))+_0xcd13(0x278));if(!_0x478609)throw new Error(_0xcd13(0x3f));console['log'](_0xcd13(0x257)),console['log'](_0x38fe1c[_0xcd13(0x395)],_0x478609),console[_0xcd13(0x13e)](_0x38fe1c['jWFTa']);}else _0xcfc621['error']('❌\x20Background\x20training\x20start\x20error:',_0x470aaf),_0x38fe1c['eZZMS'](_0x2c8dd4,'Error:\x20'+(_0x38fe1c[_0xcd13(0x396)](_0x134481,_0x5d60f6)?_0x4c2127[_0xcd13(0x1ad)]:_0xcd13(0xad))),_0x38fe1c[_0xcd13(0x397)](_0x502575,!![]),_0x38fe1c[_0xcd13(0x398)](_0x439e56);}catch(_0x350e29){if(_0x38fe1c[_0xcd13(0x399)](_0x38fe1c[_0xcd13(0x39a)],_0x38fe1c[_0xcd13(0x39a)])){const _0x263211=_0x31d93b[_0xcd13(0x39b)][_0xcd13(0x1ab)]('|');let _0x527ee2=0x0;while(!![]){switch(_0x263211[_0x527ee2++]){case'0':_0x3f7ecb[_0xcd13(0x164)](_0x31d93b[_0xcd13(0x39c)]);continue;case'1':_0xbe019f[_0xcd13(0x164)](_0xcd13(0x16),{'connected':_0x12447a[_0xcd13(0x186)][_0xcd13(0x188)],'disconnected':_0x464fba[_0xcd13(0x186)][_0xcd13(0x2a)],'id':_0x2a851e[_0xcd13(0x186)]['id']});continue;case'2':_0x31d93b['wSJva'](_0x262bb9,!![]);continue;case'3':_0x31d93b[_0xcd13(0x39d)](_0xd2e854,_0x31d93b[_0xcd13(0x39e)]);continue;case'4':_0x106e2c[_0xcd13(0x186)]&&(_0x5ae203[_0xcd13(0x186)][_0xcd13(0xec)](),_0x5d18bb[_0xcd13(0x186)]=null);continue;case'5':_0x31d93b[_0xcd13(0x39f)](_0x253031);continue;}break;}}else{console[_0xcd13(0x164)](_0x38fe1c['MsfMh'],_0x350e29);throw _0x350e29;}}},_0x1fb6c7=async()=>{const _0xa165eb={'plDZA':function(_0x3d117d,_0x1cef67){return _0x38fe1c[_0xcd13(0x3a0)](_0x3d117d,_0x1cef67);},'ZOuyC':_0x38fe1c[_0xcd13(0x3a1)],'dPYQD':function(_0x341e9f,_0x2ac320){return _0x38fe1c[_0xcd13(0x3a2)](_0x341e9f,_0x2ac320);},'BOWIm':function(_0x10645a,_0x10b976){return _0x38fe1c['OxIlR'](_0x10645a,_0x10b976);},'TiRge':function(_0x218ee9,_0x5a2f1c,_0x24ee6a,_0x21b399){return _0x218ee9(_0x5a2f1c,_0x24ee6a,_0x21b399);},'QMCll':function(_0x464dfc,_0x8ee3b5){return _0x38fe1c['EoHHQ'](_0x464dfc,_0x8ee3b5);},'ADfTO':_0x38fe1c['ZVQQe'],'kWPGB':_0x38fe1c[_0xcd13(0x3a3)],'WXKiJ':_0x38fe1c['QwoLD'],'kDUCV':function(_0x104573,_0x772028){return _0x38fe1c[_0xcd13(0x3a4)](_0x104573,_0x772028);},'RkRkF':_0x38fe1c[_0xcd13(0x3a5)],'IDZNu':_0x38fe1c[_0xcd13(0x3a6)],'kGRSE':function(_0x233ef8,_0x35cb0e){return _0x38fe1c[_0xcd13(0x22d)](_0x233ef8,_0x35cb0e);},'hjQro':function(_0x28e207,_0x13a850){return _0x38fe1c['JYDYe'](_0x28e207,_0x13a850);},'WILAM':_0x38fe1c[_0xcd13(0x3a7)],'oPtYE':_0x38fe1c[_0xcd13(0x3a8)],'ovskB':_0xcd13(0x3a9),'mGVTI':function(_0x23696f,_0x3d22a4){return _0x38fe1c[_0xcd13(0x3aa)](_0x23696f,_0x3d22a4);},'Fhlrx':function(_0x57abb5,_0x46165f){return _0x57abb5===_0x46165f;},'AsOWN':function(_0x577dbd,_0x110fcc){return _0x38fe1c['sQJuM'](_0x577dbd,_0x110fcc);},'IulCg':function(_0x5b9912,_0x26f539){return _0x38fe1c[_0xcd13(0x3ab)](_0x5b9912,_0x26f539);},'uxTGh':_0x38fe1c[_0xcd13(0x145)],'JpTMl':_0x38fe1c[_0xcd13(0x147)],'YzYMd':_0x38fe1c[_0xcd13(0x3ac)],'qeryu':_0x38fe1c[_0xcd13(0x3ad)],'sheMb':_0x38fe1c[_0xcd13(0x149)],'XnwFA':_0x38fe1c[_0xcd13(0x3ae)],'TAGYs':_0x38fe1c['UCdLQ'],'xTvmK':_0xcd13(0x3af),'lQrWV':_0x38fe1c['JJeOI'],'nAwRb':function(_0x4c2dcb,_0x1bf0de){return _0x38fe1c[_0xcd13(0x3b0)](_0x4c2dcb,_0x1bf0de);},'fYriU':function(_0x17cc62){return _0x38fe1c[_0xcd13(0x2ca)](_0x17cc62);},'yGYqP':_0xcd13(0x3b1),'KGqbu':_0x38fe1c[_0xcd13(0x1a7)],'WSXUN':'❌\x20Socket\x20error\x20details:','OMjuI':_0x38fe1c[_0xcd13(0x3b2)],'XrkPP':_0x38fe1c[_0xcd13(0x3b3)],'apOmH':_0x38fe1c['ctNnU'],'xKfpJ':function(_0x3c237a,_0x4e13b9){return _0x38fe1c[_0xcd13(0x3b4)](_0x3c237a,_0x4e13b9);},'qpAjl':'JWgIj','EDRrO':_0x38fe1c[_0xcd13(0x3b5)],'NeVkk':_0x38fe1c[_0xcd13(0x3b6)],'nnwYs':function(_0x194bbc,_0x26d8ac){return _0x194bbc(_0x26d8ac);},'MCFSZ':_0x38fe1c[_0xcd13(0x2bc)],'jtLhs':function(_0x4e7460,_0x48959a){return _0x4e7460(_0x48959a);},'EWsuo':_0x38fe1c[_0xcd13(0x3b7)],'JWyvy':function(_0x5d2c93,_0x28c975){return _0x38fe1c[_0xcd13(0x3b8)](_0x5d2c93,_0x28c975);},'gVtBS':_0x38fe1c[_0xcd13(0x3b9)],'CGyAk':_0x38fe1c[_0xcd13(0x3ba)],'zBRzt':_0x38fe1c[_0xcd13(0x3bb)],'IaKHQ':_0x38fe1c[_0xcd13(0x3bc)],'THKrM':function(_0x36a772){return _0x38fe1c[_0xcd13(0x3bd)](_0x36a772);},'tSMqn':_0x38fe1c['NwpLw'],'jamAe':function(_0x2d08ec,_0x40adb6){return _0x2d08ec(_0x40adb6);},'UYorp':_0xcd13(0x63),'PNkbR':function(_0xa22c58,_0x4d2a38){return _0x38fe1c['flmRZ'](_0xa22c58,_0x4d2a38);},'UqfNW':_0xcd13(0x118),'lTvWj':_0xcd13(0x3be),'Jyauz':function(_0xc78d39,_0x5f2e85){return _0x38fe1c[_0xcd13(0x3aa)](_0xc78d39,_0x5f2e85);},'NIzNe':function(_0x395b4e,_0x352bc1){return _0x38fe1c[_0xcd13(0x3bf)](_0x395b4e,_0x352bc1);},'uICpe':function(_0x541088,_0x4c0179){return _0x541088===_0x4c0179;},'TXIek':function(_0x2ede42,_0x36e7d1){return _0x38fe1c[_0xcd13(0x3c0)](_0x2ede42,_0x36e7d1);},'wyQlv':function(_0x4ac7c3,_0x2f2a55){return _0x38fe1c[_0xcd13(0x3c1)](_0x4ac7c3,_0x2f2a55);},'XhcIh':'❌\x20Error\x20checking\x20authentication\x20token:','htUnR':function(_0x64cdcf,_0x590190){return _0x64cdcf===_0x590190;},'hvkci':_0x38fe1c[_0xcd13(0x3c2)],'PBSGN':_0x38fe1c[_0xcd13(0x3c3)],'LLfIJ':function(_0x1f9863,_0x5e6f5d){return _0x38fe1c['kVivD'](_0x1f9863,_0x5e6f5d);},'CrhgO':function(_0x14127d,_0xd229ed){return _0x38fe1c[_0xcd13(0x34e)](_0x14127d,_0xd229ed);},'nqpOE':function(_0x1bf7e4,_0x10509c){return _0x38fe1c[_0xcd13(0x3c4)](_0x1bf7e4,_0x10509c);},'PQsKA':function(_0x4908bc,_0x57df9b){return _0x38fe1c[_0xcd13(0x3c5)](_0x4908bc,_0x57df9b);},'ZJhDv':function(_0x21423c,_0x4917f2){return _0x38fe1c['bwsjM'](_0x21423c,_0x4917f2);},'SRGoP':_0x38fe1c[_0xcd13(0x3c6)]};_0x444384(0x0),_0x2c54c4(_0x38fe1c['WslIS']),_0x38fe1c['MoRdM'](_0x1d0f1,![]),_0x38fe1c[_0xcd13(0x3c7)](_0x75e131,![]),_0x38fe1c[_0xcd13(0x3c8)](_0xcff9e7);try{if(_0x38fe1c[_0xcd13(0x3c9)](_0xcd13(0x3ca),_0xcd13(0x3ca))){var _0x2b668f,_0x9d5c59,_0x382c43,_0x5ecd9a;_0x245694[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3c3)],{'connected':_0x38fe1c['ksIeN'](_0x2b668f=_0x385771[_0xcd13(0x186)],null)||_0x38fe1c[_0xcd13(0x21c)](_0x2b668f,void 0x0)?void 0x0:_0x2b668f[_0xcd13(0x188)],'disconnected':_0x38fe1c['dfhGK'](_0x9d5c59=_0x48f0d8[_0xcd13(0x186)],null)||_0x9d5c59===void 0x0?void 0x0:_0x9d5c59['disconnected'],'id':_0x38fe1c[_0xcd13(0x3cb)](_0x382c43=_0x2929e9['current'],null)||_0x382c43===void 0x0?void 0x0:_0x382c43['id'],'engineConnected':_0x38fe1c['kVivD'](_0x5ecd9a=_0x51f190[_0xcd13(0x186)],null)||_0x38fe1c[_0xcd13(0x3cc)](_0x5ecd9a,void 0x0)||_0x38fe1c[_0xcd13(0x1b9)](_0x5ecd9a=_0x5ecd9a['io'],null)||_0x38fe1c['csBCv'](_0x5ecd9a,void 0x0)||_0x38fe1c[_0xcd13(0x285)](_0x5ecd9a=_0x5ecd9a[_0xcd13(0x3cd)],null)||_0x38fe1c[_0xcd13(0x3ce)](_0x5ecd9a,void 0x0)?void 0x0:_0x5ecd9a[_0xcd13(0x3cf)]});}else{var _0x1aac98;console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3d0)]),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3d1)]);const _0x19ce9d=await _0x38fe1c[_0xcd13(0x3d2)](_0x1520cc);if(!_0x19ce9d)throw new Error(_0xcd13(0x9c));_0x38fe1c[_0xcd13(0x3d3)](_0x28917a,_0x19ce9d),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3d4)],_0x19ce9d[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278)),console['log'](_0x38fe1c[_0xcd13(0x3d5)],_0x19ce9d[_0xcd13(0x20d)]);const _0x4686bd=await _0x38fe1c[_0xcd13(0x3d6)](getJWT);console['log'](_0x38fe1c['CWgij'],_0x4686bd?_0x4686bd[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278):_0x38fe1c['Joeuc']);if(!_0x36231e){if(_0x38fe1c[_0xcd13(0x18f)](_0x38fe1c['VjQVr'],_0x38fe1c['VjQVr'])){var _0x5097f9;console[_0xcd13(0x13e)](_0x38fe1c['lnrXm']);const _0x3e07b8=await getOnairosUsername(),_0x2aa639=_0x3e07b8||(_0x38fe1c[_0xcd13(0x394)](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x146)](_0x554ecd,void 0x0)||_0x38fe1c[_0xcd13(0x3d7)](_0x5097f9=_0x554ecd['email'],null)||_0x38fe1c[_0xcd13(0x3d8)](_0x5097f9,void 0x0)?void 0x0:_0x5097f9['split']('@')[0x0])||(_0x38fe1c[_0xcd13(0x3d9)](_0x554ecd,null)||_0x554ecd===void 0x0?void 0x0:_0x554ecd[_0xcd13(0x1ae)])||_0x38fe1c[_0xcd13(0x377)],_0x158010={'username':_0x2aa639,'email':(_0x38fe1c[_0xcd13(0x3da)](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x3db)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd['email'])||null,'id':null};_0x38fe1c['Bspap'](_0xdddc3d,_0x158010),_0x38fe1c[_0xcd13(0x3dc)](_0x77311d,_0x2aa639),console[_0xcd13(0x13e)](_0x38fe1c['uMnpH'],_0x158010),await new Promise(_0x3a54b0=>setTimeout(()=>_0x3a54b0(),0xc8));}else _0x391630['log'](_0x38fe1c[_0xcd13(0x3dd)]),_0x38fe1c[_0xcd13(0x131)](_0x32f654,_0x38fe1c[_0xcd13(0x361)]),_0x38fe1c['MmIuU'](_0x10ed55,_0x38fe1c[_0xcd13(0x3de)]),_0x38fe1c[_0xcd13(0x1bb)](_0xcf8fdf,!![]);}const _0xb5d713=_0x38fe1c['XnXqF'](_0x36231e,{'username':_0x4b5df2||(_0x38fe1c[_0xcd13(0x319)](_0x554ecd,null)||_0x38fe1c['vUCVy'](_0x554ecd,void 0x0)||_0x38fe1c['LTDcX'](_0x1aac98=_0x554ecd[_0xcd13(0x206)],null)||_0x38fe1c['JDKBd'](_0x1aac98,void 0x0)?void 0x0:_0x1aac98[_0xcd13(0x1ab)]('@')[0x0])||(_0x38fe1c['YoGPP'](_0x554ecd,null)||_0x554ecd===void 0x0?void 0x0:_0x554ecd[_0xcd13(0x1ae)])||_0x38fe1c['LEGqC'],'email':(_0x38fe1c[_0xcd13(0x372)](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x3df)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd[_0xcd13(0x206)])||null,'id':null});if(!_0x19ce9d){console[_0xcd13(0x164)](_0xcd13(0x3e0));throw new Error(_0x38fe1c[_0xcd13(0x370)]);}console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3e1)]),console[_0xcd13(0x13e)](_0x38fe1c['osHtZ'],_0xb5d713),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3e2)],!!_0x19ce9d),console['log'](_0xcd13(0x3e3)),console['log'](_0x38fe1c[_0xcd13(0x3e4)],Platform['OS']),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3e5)]),_0x38fe1c[_0xcd13(0x24d)](_0x2c54c4,_0x38fe1c[_0xcd13(0x3e6)]),_0x38fe1c[_0xcd13(0x2c9)](_0x444384,0x5),_0x1f4bf0[_0xcd13(0x186)]=_0x38fe1c['wqEkI'](io,API_CONFIG[_0xcd13(0x2aa)],{'transports':[_0x38fe1c[_0xcd13(0x3e7)],_0xcd13(0x3e8)],'autoConnect':![],'timeout':0x3a98,'reconnection':!![],'reconnectionAttempts':0x3,'reconnectionDelay':0x3e8,'forceNew':!![]}),console['log'](_0x38fe1c[_0xcd13(0x3e9)],{'connected':_0x1f4bf0[_0xcd13(0x186)][_0xcd13(0x188)],'id':_0x1f4bf0[_0xcd13(0x186)]['id'],'disconnected':_0x1f4bf0[_0xcd13(0x186)]['disconnected']}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0xcd13(0x9),()=>{const _0x11b4c8={'UYHVW':function(_0x589af6,_0x553aa8){return _0x38fe1c[_0xcd13(0x3ea)](_0x589af6,_0x553aa8);},'untZL':function(_0x54c001,_0x58e87c){return _0x38fe1c[_0xcd13(0x29a)](_0x54c001,_0x58e87c);}};if(_0x38fe1c[_0xcd13(0x3eb)]===_0xcd13(0x3ec))_0xa165eb[_0xcd13(0x3ed)](_0x13b5ab,_0x25e588[_0xcd13(0x186)]),_0x44c4b7[_0xcd13(0x186)]=null;else{var _0x6bbecd,_0x128898,_0x2a4bcc,_0x5c43e7;console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3ee)]),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3ef)],{'id':(_0x6bbecd=_0x1f4bf0[_0xcd13(0x186)])===null||_0x38fe1c['dFHbF'](_0x6bbecd,void 0x0)?void 0x0:_0x6bbecd['id'],'connected':_0x38fe1c[_0xcd13(0x3f0)](_0x128898=_0x1f4bf0['current'],null)||_0x38fe1c['cvzAl'](_0x128898,void 0x0)?void 0x0:_0x128898[_0xcd13(0x188)],'transport':_0x38fe1c['Qzpee'](_0x2a4bcc=_0x1f4bf0['current'],null)||_0x38fe1c[_0xcd13(0x2d0)](_0x2a4bcc,void 0x0)||_0x38fe1c[_0xcd13(0x319)](_0x2a4bcc=_0x2a4bcc['io'],null)||_0x38fe1c['mSzfD'](_0x2a4bcc,void 0x0)||_0x38fe1c[_0xcd13(0x3f1)](_0x2a4bcc=_0x2a4bcc[_0xcd13(0x3cd)],null)||_0x2a4bcc===void 0x0||_0x38fe1c[_0xcd13(0x3da)](_0x2a4bcc=_0x2a4bcc['transport'],null)||_0x2a4bcc===void 0x0?void 0x0:_0x2a4bcc[_0xcd13(0x1ae)]}),_0x38fe1c[_0xcd13(0x30c)](_0x4506c7,!![]),_0x2c54c4(_0xcd13(0x3f2)),_0x38fe1c[_0xcd13(0x3f3)](_0x444384,0xa);const _0x352053=_0x38fe1c['wADPo'](_0x5c43e7=_0x1f4bf0[_0xcd13(0x186)],null)||_0x38fe1c[_0xcd13(0x3f4)](_0x5c43e7,void 0x0)?void 0x0:_0x5c43e7['id'];console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3f5)],_0x352053),_0x352053?(console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3f6)],_0x19ce9d?_0x19ce9d[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278):_0x38fe1c[_0xcd13(0x375)]),console[_0xcd13(0x13e)](_0x38fe1c['UZVIr']),_0x38fe1c[_0xcd13(0x3f7)](_0x2c54c4,_0x38fe1c[_0xcd13(0x3f8)])):_0x38fe1c[_0xcd13(0x3d7)](_0xcd13(0x3f9),_0xcd13(0x3fa))?_0x11b4c8[_0xcd13(0x3fb)](_0x5af695,_0x41da05)&&_0x11b4c8[_0xcd13(0x3fc)](_0x2b5deb,_0x42d3a2):(console['error'](_0x38fe1c['Hlsxw']),_0x38fe1c['gqxEp'](_0x2c54c4,_0x38fe1c[_0xcd13(0x3b2)]),_0x75e131(!![]),_0x38fe1c[_0xcd13(0x3fd)](_0x1e105d));}}),_0x1f4bf0['current']['on'](_0x38fe1c[_0xcd13(0x3fe)],_0x1bb75d=>{if(_0xa165eb[_0xcd13(0x3ff)](_0xa165eb[_0xcd13(0x400)],_0xa165eb['ADfTO']))_0x4d5ed7[_0xcd13(0x164)](_0xa165eb[_0xcd13(0x401)]),_0xa165eb[_0xcd13(0x402)](_0x62eba3,null)||_0xa165eb[_0xcd13(0x403)](_0x4ab698,void 0x0)||_0xa165eb['TiRge'](_0x5864b6,_0x368f4b[_0xcd13(0x2aa)],_0xcd13(0x60),{'email':(_0xa165eb[_0xcd13(0x403)](_0x347214,null)||_0x57df41===void 0x0?void 0x0:_0x3e2da9[_0xcd13(0x206)])||'',..._0x4e73d4});else{var _0x485445;console[_0xcd13(0x13e)](_0xa165eb['kWPGB'],_0x1bb75d),console[_0xcd13(0x13e)](_0xa165eb['WXKiJ'],{'reason':_0x1bb75d,'wasConnected':_0xa24eb7,'socketId':_0xa165eb[_0xcd13(0x403)](_0x485445=_0x1f4bf0[_0xcd13(0x186)],null)||_0x485445===void 0x0?void 0x0:_0x485445['id']}),_0xa165eb[_0xcd13(0x404)](_0x4506c7,![]);}}),_0x1f4bf0['current']['on'](_0xcd13(0x405),_0x18c7b2=>{console[_0xcd13(0x13e)](_0xa165eb[_0xcd13(0x406)],_0x18c7b2,_0xa165eb[_0xcd13(0x407)]),_0xa165eb[_0xcd13(0x3ed)](_0x4506c7,!![]);}),_0x1f4bf0['current']['on'](_0x38fe1c['MKUij'],_0x171a7b=>{const _0xcdbc08={'qtWLS':function(_0x19f86c,_0x1583a1){return _0xa165eb['kGRSE'](_0x19f86c,_0x1583a1);}};_0xa165eb['hjQro'](_0xa165eb[_0xcd13(0x408)],_0xcd13(0x409))?(_0xcdbc08[_0xcd13(0x40a)](_0x3e7ec8,_0x3b9b7f=>({..._0x3b9b7f,[_0x12fbba]:!_0x3b9b7f[_0x1cea32]})),_0xcdbc08[_0xcd13(0x40a)](_0x51e881,_0x474295=>{const _0x3d232e={..._0x474295};return delete _0x3d232e[_0x112070],_0x3d232e;})):(console['log'](_0xa165eb['oPtYE'],_0x171a7b),_0xa165eb[_0xcd13(0x3ed)](_0x2c54c4,'Reconnecting...\x20('+_0x171a7b+'/3)'));}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0x38fe1c[_0xcd13(0x40b)],_0x52240b=>{if('iJBVf'!=='iJBVf'){var _0x14cf53,_0x11d3b8,_0x3834c5,_0x4b5181;_0x40890a[_0xcd13(0x13e)](_0xa165eb[_0xcd13(0x40c)],{'connected':_0xa165eb[_0xcd13(0x40d)](_0x14cf53=_0xdc6d43['current'],null)||_0xa165eb[_0xcd13(0x40e)](_0x14cf53,void 0x0)?void 0x0:_0x14cf53[_0xcd13(0x188)],'disconnected':(_0x11d3b8=_0x2cc2e2[_0xcd13(0x186)])===null||_0xa165eb[_0xcd13(0x40d)](_0x11d3b8,void 0x0)?void 0x0:_0x11d3b8[_0xcd13(0x2a)],'id':_0xa165eb[_0xcd13(0x40d)](_0x3834c5=_0x3a30b7[_0xcd13(0x186)],null)||_0xa165eb[_0xcd13(0x40f)](_0x3834c5,void 0x0)?void 0x0:_0x3834c5['id'],'engineConnected':_0xa165eb[_0xcd13(0x403)](_0x4b5181=_0xa3573f[_0xcd13(0x186)],null)||_0xa165eb[_0xcd13(0x40d)](_0x4b5181,void 0x0)||_0xa165eb[_0xcd13(0x40d)](_0x4b5181=_0x4b5181['io'],null)||_0xa165eb[_0xcd13(0x410)](_0x4b5181,void 0x0)||_0xa165eb[_0xcd13(0x411)](_0x4b5181=_0x4b5181['engine'],null)||_0x4b5181===void 0x0?void 0x0:_0x4b5181[_0xcd13(0x3cf)]});}else console[_0xcd13(0x164)](_0x38fe1c['GsfDu'],_0x52240b);}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0xcd13(0x412),()=>{_0xa165eb[_0xcd13(0x413)]===_0xa165eb[_0xcd13(0x414)]?_0x2f81fd&&_0x4c2514&&(_0x1d4bb2===_0xa165eb['uxTGh']||_0x814a96===_0xa165eb['JpTMl'])&&(_0x2e1a72[_0xcd13(0x13e)](_0xa165eb['YzYMd']),_0x1e9bfd['log'](_0xa165eb[_0xcd13(0x415)],_0x57e082,_0xa165eb[_0xcd13(0x416)]),_0xa165eb[_0xcd13(0x3ed)](_0x5cde18,_0xcd13(0x6))):(console[_0xcd13(0x164)](_0xa165eb[_0xcd13(0x417)]),_0xa165eb[_0xcd13(0x404)](_0x2c54c4,_0xa165eb[_0xcd13(0x418)]),_0xa165eb[_0xcd13(0x419)](_0x75e131,!![]),_0xa165eb[_0xcd13(0x41a)](_0x1e105d));}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0x38fe1c['RiGxn'],_0x592c5f=>{if(_0xcd13(0x3b1)!==_0xa165eb[_0xcd13(0x41b)]){_0x2571d0[_0xcd13(0x164)](_0xcd13(0x3e0));throw new _0x4cbafa(_0xcd13(0x3e));}else console[_0xcd13(0x164)](_0xa165eb[_0xcd13(0x41c)],_0x592c5f),console['error'](_0xa165eb[_0xcd13(0x41d)],{'message':_0x592c5f[_0xcd13(0x1ad)],'name':_0x592c5f['name'],'stack':_0x592c5f[_0xcd13(0x1af)],'errorObject':_0x592c5f}),_0xa165eb[_0xcd13(0x419)](_0x2c54c4,_0xa165eb[_0xcd13(0x41e)]),_0xa165eb[_0xcd13(0x419)](_0x75e131,!![]),_0xa165eb[_0xcd13(0x41a)](_0x1e105d);}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0x38fe1c[_0xcd13(0x41f)],_0x2ee938=>{console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x420)],_0x2ee938),_0x38fe1c[_0xcd13(0x421)](_0x2c54c4,_0x38fe1c['XVbkk']),_0x38fe1c[_0xcd13(0x422)](_0x444384,0x3c);}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0xcd13(0x423),_0x147d5d=>{const _0x11d337=_0x38fe1c[_0xcd13(0x424)]['split']('|');let _0x39d4a2=0x0;while(!![]){switch(_0x11d337[_0x39d4a2++]){case'0':_0x444384(0x50);continue;case'1':_0x2c54c4(_0x38fe1c['OrFNj']);continue;case'2':_0x38fe1c[_0xcd13(0x425)](_0x4b8bf2,_0x147d5d[_0xcd13(0x35e)]);continue;case'3':console['log'](_0x38fe1c[_0xcd13(0x34d)],_0x147d5d);continue;case'4':_0x194155(_0x147d5d[_0xcd13(0x35d)]);continue;}break;}}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0xcd13(0x426),_0x251013=>{const _0xe7faee={'BdIOm':_0xcd13(0x104)};if(_0x38fe1c['TpvqX']!==_0x38fe1c[_0xcd13(0x427)])_0x3c391e=_0xe7faee[_0xcd13(0x428)];else{console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x429)],_0x251013);if(_0x251013[_0xcd13(0x42a)]){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x42b)],_0x251013[_0xcd13(0x1ad)]),console[_0xcd13(0x13e)](_0xcd13(0x75),_0x251013['storage']),console['log'](_0x38fe1c[_0xcd13(0x1d5)],_0x251013['encryption']),console['log'](_0x38fe1c[_0xcd13(0x42c)],_0x251013[_0xcd13(0x1e4)]);_0x251013['databases']&&Array[_0xcd13(0x28d)](_0x251013[_0xcd13(0x1e5)])&&console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2da)],_0x251013[_0xcd13(0x1e5)][_0xcd13(0x2e4)](',\x20'));if(_0x251013['testing']){if(_0x38fe1c[_0xcd13(0x42d)]!==_0x38fe1c['VYqgU'])console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2db)]);else return _0x1e0e03[_0xcd13(0x13e)](_0xa165eb[_0xcd13(0x42e)],_0xc682d['substring'](0x0,0x14)+_0xcd13(0x278)),_0x794e3e[_0xcd13(0x13e)](_0xa165eb[_0xcd13(0x42f)],_0x22f8fa['length']),_0x30b351;}}_0x38fe1c[_0xcd13(0x430)](_0x1d0f1,!![]),_0x38fe1c['DpoJK'](_0x2c54c4,_0x38fe1c[_0xcd13(0x431)]),_0x38fe1c[_0xcd13(0x432)](_0x444384,0x64),_0x38fe1c['erHYB'](_0x1e105d);}}),_0x1f4bf0[_0xcd13(0x186)]['on'](_0x38fe1c[_0xcd13(0x433)],_0x6d1661=>{console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x434)],_0x6d1661);if(_0x6d1661[_0xcd13(0x164)]&&_0x6d1661['error'][_0xcd13(0x15a)](_0xcd13(0x435))){console[_0xcd13(0x13e)](_0x38fe1c['NyxRe']),_0x9ddd5(null),_0x38fe1c[_0xcd13(0x436)](_0x6f85a3,![]),_0x2c54c4(_0x38fe1c[_0xcd13(0x437)]),_0x38fe1c[_0xcd13(0x438)](setTimeout,async()=>{try{console['log'](_0xcd13(0x439));const _0x50762e=await _0xa165eb['fYriU'](refreshYouTubeTokens);if(_0x50762e){if(_0xa165eb[_0xcd13(0x43a)](_0xa165eb[_0xcd13(0x43b)],_0xa165eb[_0xcd13(0x43c)]))console[_0xcd13(0x13e)](_0xa165eb['NeVkk']),_0xa165eb[_0xcd13(0x43d)](_0x2c54c4,_0xa165eb[_0xcd13(0x43e)]),_0xa165eb[_0xcd13(0x43f)](_0x75e131,!![]);else{const _0x44afc2={..._0x4fa53c};return delete _0x44afc2[_0x589ffd],_0x44afc2;}}else{console[_0xcd13(0x13e)](_0xa165eb['EWsuo']),_0xa165eb['JWyvy'](_0x2c54c4,_0xa165eb[_0xcd13(0x440)]);try{await _0xa165eb[_0xcd13(0x43d)](_0x515741,_0xa165eb[_0xcd13(0x441)]),console[_0xcd13(0x13e)](_0xcd13(0x442)),_0x2c54c4(_0xcd13(0x443)),_0xa165eb[_0xcd13(0x419)](_0x75e131,!![]);}catch(_0x443e01){console['error'](_0xa165eb[_0xcd13(0x444)],_0x443e01),_0x2c54c4(_0xa165eb[_0xcd13(0x445)]),_0x75e131(!![]),_0xa165eb[_0xcd13(0x446)](_0x1e105d);}}}catch(_0x11411d){console[_0xcd13(0x164)](_0xa165eb[_0xcd13(0x447)],_0x11411d),_0xa165eb[_0xcd13(0x448)](_0x2c54c4,_0xa165eb['UYorp']),_0xa165eb[_0xcd13(0x449)](_0x75e131,!![]),_0x1e105d();}},0x3e8);return;}if(_0x6d1661['requiresConnections']||_0x38fe1c[_0xcd13(0x44a)](_0x6d1661[_0xcd13(0x7)],_0xcd13(0x6d))){if(_0x38fe1c[_0xcd13(0x44b)](_0x38fe1c[_0xcd13(0x44c)],_0x38fe1c[_0xcd13(0x44d)])){_0x3d8dd0[_0xcd13(0x164)](_0xa165eb[_0xcd13(0x44e)],_0x457f72),_0xa165eb[_0xcd13(0x43d)](_0xa725c1,'');throw _0x5a2e5f;}else{const _0x227c03=_0x38fe1c['raOUb']['split']('|');let _0x154d9d=0x0;while(!![]){switch(_0x227c03[_0x154d9d++]){case'0':_0x38fe1c[_0xcd13(0x44f)](_0x9ddd5,_0xcd13(0x6d));continue;case'1':_0x38fe1c['PquyD'](_0x75e131,!![]);continue;case'2':_0x38fe1c[_0xcd13(0x450)](_0x5c6b2a,_0x6d1661);continue;case'3':_0x38fe1c[_0xcd13(0x2bd)](_0x6f85a3,!![]);continue;case'4':_0x38fe1c['YDGOe'](_0x2c54c4,_0x38fe1c[_0xcd13(0x2d7)]);continue;case'5':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x451)]);continue;case'6':return;case'7':_0x38fe1c[_0xcd13(0x452)](_0x1e105d);continue;}break;}}}if(_0x6d1661[_0xcd13(0x7)]===_0xcd13(0x453)){const _0x1d5dab=_0x38fe1c['XbVBT'][_0xcd13(0x1ab)]('|');let _0x295d6c=0x0;while(!![]){switch(_0x1d5dab[_0x295d6c++]){case'0':_0x5c6b2a(_0x6d1661['details']);continue;case'1':_0x38fe1c[_0xcd13(0x454)](_0x1e105d);continue;case'2':console[_0xcd13(0x13e)](_0x38fe1c['ZXhSB']);continue;case'3':_0x38fe1c[_0xcd13(0x3a4)](_0x9ddd5,_0x38fe1c['MrdNi']);continue;case'4':_0x38fe1c['epAlg'](_0x75e131,!![]);continue;case'5':_0x38fe1c[_0xcd13(0x1bb)](_0x2c54c4,_0x38fe1c[_0xcd13(0x455)]);continue;case'6':return;case'7':_0x6f85a3(!![]);continue;}break;}}if(_0x38fe1c[_0xcd13(0x456)](_0x6d1661[_0xcd13(0x7)],_0xcd13(0xc6))){const _0x5d00a6=_0x38fe1c[_0xcd13(0x457)][_0xcd13(0x1ab)]('|');let _0x388226=0x0;while(!![]){switch(_0x5d00a6[_0x388226++]){case'0':_0x38fe1c[_0xcd13(0x232)](_0x5c6b2a,_0x6d1661[_0xcd13(0x327)]);continue;case'1':return;case'2':_0x38fe1c[_0xcd13(0x458)](_0x9ddd5,_0x38fe1c['qUcHr']);continue;case'3':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x30b)]);continue;case'4':_0x6f85a3(!![]);continue;case'5':_0x2c54c4(_0x38fe1c[_0xcd13(0x459)]);continue;}break;}}if(_0x6d1661[_0xcd13(0x164)])_0x38fe1c['kgqtO'](_0x38fe1c[_0xcd13(0x45a)],_0xcd13(0x45b))?_0x485e2d['progress']&&(_0x5dc6c3(_0x5285fb[_0xcd13(0x28f)]||_0xa165eb[_0xcd13(0x45c)]),_0x1a4806[_0xcd13(0x13e)]('📊\x20[BACKGROUND]\x20Training\x20progress:',_0x1566d1[_0xcd13(0x45d)],'%')):(console['error'](_0x38fe1c['ruAgt'],_0x6d1661[_0xcd13(0x164)]),_0x38fe1c[_0xcd13(0x45e)](_0x2c54c4,_0xcd13(0x337)+_0x6d1661[_0xcd13(0x164)]),_0x38fe1c[_0xcd13(0x1bc)](_0x75e131,!![]),_0x1e105d());else _0x6d1661['progress']&&(_0x38fe1c[_0xcd13(0x13b)](_0x444384,_0x6d1661['progress']),_0x38fe1c['qdsKp'](_0x2c54c4,_0x6d1661[_0xcd13(0x28f)]||_0x38fe1c[_0xcd13(0x45f)]),_0x537c8b&&_0x38fe1c[_0xcd13(0x1f8)](_0x6d1661['progress'],0x1e)&&_0x38fe1c[_0xcd13(0x1d1)](_0x6f85a3,![]));}),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x460)]),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x461)],{'url':API_CONFIG['BASE_URL'],'transports':[_0x38fe1c['QMeVe']],'autoConnect':![],'timeout':0x2710,'reconnection':![]}),_0x1f4bf0[_0xcd13(0x186)][_0xcd13(0x9)](),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x462)]),_0x38fe1c['ZlLHo'](setTimeout,()=>{var _0x248bc8,_0x266eab,_0xd95abb,_0x12e6d2;console[_0xcd13(0x13e)](_0xa165eb[_0xcd13(0x40c)],{'connected':_0xa165eb[_0xcd13(0x463)](_0x248bc8=_0x1f4bf0[_0xcd13(0x186)],null)||_0xa165eb[_0xcd13(0x402)](_0x248bc8,void 0x0)?void 0x0:_0x248bc8[_0xcd13(0x188)],'disconnected':_0xa165eb[_0xcd13(0x464)](_0x266eab=_0x1f4bf0['current'],null)||_0xa165eb['uICpe'](_0x266eab,void 0x0)?void 0x0:_0x266eab[_0xcd13(0x2a)],'id':(_0xd95abb=_0x1f4bf0['current'])===null||_0xa165eb[_0xcd13(0x40d)](_0xd95abb,void 0x0)?void 0x0:_0xd95abb['id'],'engineConnected':_0xa165eb[_0xcd13(0x465)](_0x12e6d2=_0x1f4bf0[_0xcd13(0x186)],null)||_0xa165eb['wyQlv'](_0x12e6d2,void 0x0)||(_0x12e6d2=_0x12e6d2['io'])===null||_0x12e6d2===void 0x0||(_0x12e6d2=_0x12e6d2[_0xcd13(0x3cd)])===null||_0xa165eb[_0xcd13(0x410)](_0x12e6d2,void 0x0)?void 0x0:_0x12e6d2[_0xcd13(0x3cf)]});},0x3e8),setTimeout(()=>{if(_0xa165eb[_0xcd13(0x466)](_0xcd13(0xde),_0xa165eb[_0xcd13(0x467)])){var _0xf6477e,_0x239f48,_0x1e03e0,_0x54d256;console[_0xcd13(0x13e)](_0xa165eb[_0xcd13(0x468)],{'connected':_0xa165eb[_0xcd13(0x469)](_0xf6477e=_0x1f4bf0['current'],null)||_0xf6477e===void 0x0?void 0x0:_0xf6477e[_0xcd13(0x188)],'disconnected':_0xa165eb['BOWIm'](_0x239f48=_0x1f4bf0['current'],null)||_0xa165eb[_0xcd13(0x46a)](_0x239f48,void 0x0)?void 0x0:_0x239f48[_0xcd13(0x2a)],'id':_0xa165eb[_0xcd13(0x46b)](_0x1e03e0=_0x1f4bf0[_0xcd13(0x186)],null)||_0xa165eb[_0xcd13(0x46c)](_0x1e03e0,void 0x0)?void 0x0:_0x1e03e0['id'],'engineConnected':_0xa165eb[_0xcd13(0x403)](_0x54d256=_0x1f4bf0[_0xcd13(0x186)],null)||_0x54d256===void 0x0||_0xa165eb[_0xcd13(0x40e)](_0x54d256=_0x54d256['io'],null)||_0xa165eb[_0xcd13(0x46d)](_0x54d256,void 0x0)||(_0x54d256=_0x54d256[_0xcd13(0x3cd)])===null||_0x54d256===void 0x0?void 0x0:_0x54d256[_0xcd13(0x3cf)]});}else{_0x13afe0['error'](_0xa165eb[_0xcd13(0x46e)],_0x27edeb);throw _0x4c80d8;}},0x1388),_0x38fe1c[_0xcd13(0x46f)](setTimeout,()=>{const _0x2c0a4c={'UHdar':_0x38fe1c['Btrde'],'nbFdS':function(_0x284984,_0x26dd86){return _0x38fe1c[_0xcd13(0x3b8)](_0x284984,_0x26dd86);},'kGUXU':_0x38fe1c['PQbsS'],'Nbabr':_0x38fe1c[_0xcd13(0x147)]};if(_0x38fe1c['ZvkOH'](_0x38fe1c[_0xcd13(0x470)],_0x38fe1c[_0xcd13(0x470)])){if(!_0xa24eb7&&_0x1f4bf0[_0xcd13(0x186)]&&!_0x1f4bf0[_0xcd13(0x186)][_0xcd13(0x188)]){console[_0xcd13(0x164)](_0x38fe1c['vDfmg']),console[_0xcd13(0x164)](_0xcd13(0x16),{'connected':_0x1f4bf0[_0xcd13(0x186)][_0xcd13(0x188)],'disconnected':_0x1f4bf0[_0xcd13(0x186)][_0xcd13(0x2a)],'id':_0x1f4bf0[_0xcd13(0x186)]['id']}),_0x38fe1c['kcErb'](_0x2c54c4,_0xcd13(0x471)),_0x38fe1c['eKCgs'](_0x75e131,!![]),_0x38fe1c['yGAYq'](_0x1e105d);if(_0x1f4bf0[_0xcd13(0x186)]){if(_0x38fe1c[_0xcd13(0x472)]!==_0x38fe1c[_0xcd13(0x473)])_0x1f4bf0[_0xcd13(0x186)]['disconnect'](),_0x1f4bf0[_0xcd13(0x186)]=null;else{_0x3ed61e['log'](_0x2c0a4c['UHdar']),_0x2c0a4c[_0xcd13(0x474)](_0x5d68d0,_0x2c0a4c[_0xcd13(0x475)]),_0x5f213c(_0x2c0a4c[_0xcd13(0x476)]),_0x2c0a4c[_0xcd13(0x474)](_0x4b140e,![]);return;}}}}else throw new _0x3d71af(_0xa165eb[_0xcd13(0x477)]);},0x4e20);}}catch(_0x15a1d2){_0x38fe1c[_0xcd13(0x478)]===_0x38fe1c[_0xcd13(0x478)]?(console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x479)],_0x15a1d2),_0x2c54c4(_0x38fe1c['ntytw']),_0x38fe1c['OXExp'](_0x75e131,!![]),_0x1e105d()):_0x10f174[_0xcd13(0x164)](_0xcd13(0x34b),_0xd5b44a);}},_0x2a86a7=_0x4a0846=>{const _0x3b67cf={'VLCMR':_0x38fe1c[_0xcd13(0x47a)],'jVqbD':_0x38fe1c[_0xcd13(0x47b)],'ELArj':function(_0x17289d,_0x26c7a9){return _0x38fe1c[_0xcd13(0x22d)](_0x17289d,_0x26c7a9);},'pGbYY':_0x38fe1c['buKaS'],'VfbOA':_0x38fe1c[_0xcd13(0x311)],'VMyng':_0x38fe1c[_0xcd13(0x1d5)],'QwdkS':_0x38fe1c[_0xcd13(0x1d3)],'MhcTH':_0x38fe1c[_0xcd13(0x313)],'SyeMS':_0x38fe1c[_0xcd13(0x47c)],'axsZs':_0x38fe1c[_0xcd13(0x310)],'DmHit':_0x38fe1c[_0xcd13(0x312)],'RePXa':_0x38fe1c[_0xcd13(0x429)],'aNvcr':_0x38fe1c[_0xcd13(0x2da)],'JKPQb':_0x38fe1c[_0xcd13(0x42c)],'hHDbN':_0x38fe1c['qBFkJ'],'eutmY':function(_0x3c23e0){return _0x38fe1c['scfXG'](_0x3c23e0);},'Stgwp':_0x38fe1c['fvXVF'],'tIynz':function(_0x40c841){return _0x38fe1c[_0xcd13(0x452)](_0x40c841);},'JrdFX':_0xcd13(0x6e),'XXGzo':_0x38fe1c['cTqBa'],'QoYVQ':function(_0x3ec55f,_0xea921e){return _0x38fe1c[_0xcd13(0x47d)](_0x3ec55f,_0xea921e);}};if(_0x1079d1)return _0x38fe1c['Ziyat'];if(_0x47303c)return _0x38fe1c[_0xcd13(0x47e)];let _0x24e2c6='';if(_0x38fe1c[_0xcd13(0x47f)](_0x4a0846,0x14))_0x24e2c6=_0xcd13(0x480);else{if(_0x38fe1c[_0xcd13(0x481)](_0x4a0846,0x28)){if(_0xcd13(0xfa)!==_0x38fe1c['GAYPp']){_0x3440ed[_0xcd13(0x13e)](_0x3b67cf['VLCMR'],_0xef08ac['message']),_0x376461[_0xcd13(0x13e)](_0x3b67cf['jVqbD'],_0x130a14['features']),_0x3b67cf[_0xcd13(0x482)](_0x75967b,!![]);if(_0x15aa3c[_0xcd13(0x1dc)]){const _0x3910ef=_0x3b67cf[_0xcd13(0x483)][_0xcd13(0x1ab)]('|');let _0x1ea2c7=0x0;while(!![]){switch(_0x3910ef[_0x1ea2c7++]){case'0':_0x4c0b9f['log'](_0x3b67cf[_0xcd13(0x484)],_0x924e2c['features']['storage']);continue;case'1':_0x406219[_0xcd13(0x13e)](_0x3b67cf[_0xcd13(0x485)],_0x509ed7[_0xcd13(0x1dc)][_0xcd13(0x1e1)]);continue;case'2':_0x43c8c9[_0xcd13(0x13e)](_0x3b67cf['QwdkS'],_0x5d6cf1[_0xcd13(0x1dc)]['type']);continue;case'3':_0x54ecc4[_0xcd13(0x13e)](_0x3b67cf[_0xcd13(0x486)],_0x2718d9[_0xcd13(0x1dc)][_0xcd13(0x1e5)]);continue;case'4':_0x196997[_0xcd13(0x13e)](_0x3b67cf['SyeMS'],_0x6f1420[_0xcd13(0x1dc)]['queryScores']);continue;case'5':_0x4264bd[_0xcd13(0x13e)](_0x3b67cf['axsZs'],_0x161547[_0xcd13(0x1dc)][_0xcd13(0x1e4)]);continue;case'6':_0x29e685[_0xcd13(0x13e)](_0x3b67cf['DmHit'],_0x20911b[_0xcd13(0x1dc)][_0xcd13(0x33d)]);continue;}break;}}_0x3b67cf[_0xcd13(0x482)](_0xd3ff5a,_0xcd13(0x487)),_0x3b67cf['ELArj'](_0x3a538f,0x19);}else _0x24e2c6=_0x38fe1c[_0xcd13(0x488)];}else{if(_0x4a0846<0x3c){if(_0xcd13(0xfc)===_0x38fe1c[_0xcd13(0x489)])_0x24e2c6=_0x38fe1c[_0xcd13(0x48a)];else{_0x4635ad['log'](_0x3b67cf[_0xcd13(0x48b)],_0x45767b);if(_0x5d3bab[_0xcd13(0x42a)]){const _0xd19e7f=_0xcd13(0x48c)[_0xcd13(0x1ab)]('|');let _0x2f4869=0x0;while(!![]){switch(_0xd19e7f[_0x2f4869++]){case'0':_0x132ab8[_0xcd13(0x13e)](_0x3b67cf['VMyng'],_0x46be3a[_0xcd13(0x1e1)]);continue;case'1':_0x299b07['log']('✅\x20Training\x20completed:',_0x380b00[_0xcd13(0x1ad)]);continue;case'2':_0x5b1697[_0xcd13(0x1e5)]&&_0x2a8078[_0xcd13(0x28d)](_0x2aed4e['databases'])&&_0x1c225a[_0xcd13(0x13e)](_0x3b67cf[_0xcd13(0x48d)],_0x29c8fc['databases'][_0xcd13(0x2e4)](',\x20'));continue;case'3':_0x4ac62f[_0xcd13(0x2e5)]&&_0x592ce1[_0xcd13(0x13e)]('🧪\x20Testing\x20mode\x20enabled');continue;case'4':_0x58ac52[_0xcd13(0x13e)](_0x3b67cf[_0xcd13(0x48e)],_0x1287fd['inference']);continue;case'5':_0x3223b0[_0xcd13(0x13e)](_0x3b67cf[_0xcd13(0x484)],_0x115002[_0xcd13(0x2e8)]);continue;}break;}}_0x3b67cf[_0xcd13(0x482)](_0x35562,!![]),_0x3b67cf[_0xcd13(0x482)](_0x2eccdb,_0x3b67cf[_0xcd13(0x48f)]),_0xe044e9(0x64),_0x3b67cf[_0xcd13(0x490)](_0x11ffa3);}}else{if(_0x38fe1c[_0xcd13(0x47f)](_0x4a0846,0x50))_0x38fe1c[_0xcd13(0x3d9)](_0x38fe1c[_0xcd13(0x491)],_0x38fe1c['YgNmb'])?(_0x1a8024[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x364)],_0x56fdd9),_0x38fe1c[_0xcd13(0x430)](_0x1978b4,_0x38fe1c[_0xcd13(0x361)]),_0x38fe1c[_0xcd13(0x492)](_0x2c2491,_0x38fe1c[_0xcd13(0x367)]),_0x38fe1c[_0xcd13(0x493)](_0x143e0d,!![])):_0x24e2c6=_0x38fe1c['giDzX'];else{if(_0x4a0846<0x5f){if(_0x38fe1c[_0xcd13(0x494)](_0x38fe1c[_0xcd13(0x495)],_0x38fe1c['wLcVb'])){const _0x338da2=_0x3b67cf[_0xcd13(0x496)][_0xcd13(0x1ab)]('|');let _0x3b4eb3=0x0;while(!![]){switch(_0x338da2[_0x3b4eb3++]){case'0':_0x1a01cb(_0xcd13(0x6d));continue;case'1':_0x5c96f1(!![]);continue;case'2':return;case'3':_0x35425d(_0x284501);continue;case'4':_0x3b67cf['tIynz'](_0x365cb6);continue;case'5':_0x3b67cf[_0xcd13(0x482)](_0x23187a,!![]);continue;case'6':_0x3b67cf['ELArj'](_0x5e7132,_0x3b67cf['JrdFX']);continue;case'7':_0x14817e['log'](_0x3b67cf['XXGzo']);continue;}break;}}else _0x24e2c6=_0x38fe1c['XZwyC'];}else _0xcd13(0x497)===_0x38fe1c[_0xcd13(0x498)]?_0x3b67cf[_0xcd13(0x499)](_0x552502,_0x4fd2e1[_0xcd13(0x186)]):_0x24e2c6=_0x38fe1c[_0xcd13(0x49a)];}}}}return _0x38fe1c[_0xcd13(0x49b)](_0x24e2c6,_0x12fcb9);},_0x32ccca=async()=>{if(_0x38fe1c[_0xcd13(0x49c)](_0xcd13(0x49d),_0x38fe1c['nTNxY']))_0x172f3f[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x49e)]);else{console[_0xcd13(0x13e)](_0x38fe1c['HgLXG']);_0x1f4bf0['current']&&(console[_0xcd13(0x13e)](_0xcd13(0x49f)),_0x1f4bf0[_0xcd13(0x186)][_0xcd13(0xec)](),_0x1f4bf0[_0xcd13(0x186)]=null);clearTemporaryPin(),_0x42fac1['current']=!![];try{const _0x269b49=await getJWT();_0x269b49?_0x38fe1c['IzTic'](_0x38fe1c[_0xcd13(0x4a0)],'DSPpE')?_0x2483e7[_0xcd13(0x164)](_0xcd13(0x13),_0x4621c5):(console[_0xcd13(0x13e)](_0xcd13(0x4a1),_0x269b49[_0xcd13(0x2b4)](0x0,0x1e)+'...'),_0x38fe1c[_0xcd13(0x21b)](_0x108330,null)||_0x38fe1c[_0xcd13(0x4a2)](_0x108330,void 0x0)||_0x38fe1c['xqDFY'](_0x108330,API_CONFIG[_0xcd13(0x2aa)],_0x269b49,{'email':(_0x38fe1c[_0xcd13(0x1b9)](_0x36231e,null)||_0x38fe1c[_0xcd13(0x4a3)](_0x36231e,void 0x0)?void 0x0:_0x36231e['email'])||'',..._0x36231e})):(console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x3a1)]),_0x38fe1c[_0xcd13(0x4a4)](_0x108330,null)||_0x108330===void 0x0||_0x38fe1c[_0xcd13(0x2d2)](_0x108330,API_CONFIG['BASE_URL'],_0x38fe1c['VElDx'],{'email':(_0x38fe1c[_0xcd13(0x4a5)](_0x36231e,null)||_0x38fe1c[_0xcd13(0x4a6)](_0x36231e,void 0x0)?void 0x0:_0x36231e[_0xcd13(0x206)])||'',..._0x36231e}));}catch(_0x309ba6){console['error'](_0x38fe1c[_0xcd13(0x4a7)],_0x309ba6),_0x108330===null||_0x38fe1c['FSdKv'](_0x108330,void 0x0)||_0x108330(API_CONFIG[_0xcd13(0x2aa)],_0x38fe1c[_0xcd13(0x4a8)],{'email':(_0x38fe1c[_0xcd13(0x3f4)](_0x36231e,null)||_0x36231e===void 0x0?void 0x0:_0x36231e[_0xcd13(0x206)])||'',..._0x36231e});}}},_0x1520cc=async()=>{if(_0x38fe1c[_0xcd13(0x4a9)]===_0x38fe1c[_0xcd13(0x4aa)]){var _0x1ff8a9;_0x360ee6[_0x558def]=_0x38fe1c[_0xcd13(0x17b)](_0x1ff8a9=_0x1dd03f[_0x4bae88],null)&&_0x38fe1c[_0xcd13(0x184)](_0x1ff8a9,void 0x0)&&_0x1ff8a9['connected']?_0x38fe1c[_0xcd13(0x4ab)]:_0xcd13(0x2a);}else try{const _0x5a4755=await _0x38fe1c[_0xcd13(0x2b0)](getJWT);if(_0x5a4755&&_0x38fe1c[_0xcd13(0x4ac)](_0x5a4755['trim']()[_0xcd13(0x20d)],0x14))return console['log'](_0x38fe1c[_0xcd13(0x3b3)],_0x5a4755[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278)),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x3d5)],_0x5a4755[_0xcd13(0x20d)]),_0x5a4755;return console[_0xcd13(0x2c0)](_0x38fe1c[_0xcd13(0x4ad)]),console[_0xcd13(0x2c0)](_0x38fe1c[_0xcd13(0x4ae)]),console[_0xcd13(0x2c0)]('ℹ️\x20User\x20should\x20authenticate\x20first\x20via\x20Google/Apple/Email'),null;}catch(_0x2233c9){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x4af)],_0x2233c9);throw _0x2233c9;}},_0x429168=Object[_0xcd13(0x4b0)](_0x4502e1)[_0xcd13(0x4b1)](_0x4f6f87=>_0x4f6f87),_0x1f53c5=()=>{const _0x2f05bc={'EfhDN':function(_0x278098){return _0x38fe1c[_0xcd13(0x3d6)](_0x278098);}};_0x38fe1c[_0xcd13(0x3a2)](_0x38fe1c[_0xcd13(0x4b2)],_0xcd13(0x4b3))?(_0x2fad82[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x4b4)]),_0x4f8c18(_0x38fe1c['JqiTu']),_0x140ed6(!![]),_0x103fd3()):_0x429168&&(_0x38fe1c[_0xcd13(0x4b5)](triggerHaptic,HapticType['BUTTON_PRESS']),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x4b6)]),_0x21c386()[_0xcd13(0x2c5)](_0x342c54=>{_0x38fe1c[_0xcd13(0x341)](_0x38fe1c['huvoR'],_0x38fe1c[_0xcd13(0x4b7)])?(_0x4d7658(![]),!_0x27f533&&_0x2f05bc[_0xcd13(0x4b8)](_0x137e79)):console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x355)],_0x342c54);}),_0x40952e(_0xcd13(0x9b)));},_0x21c386=_0x38fe1c[_0xcd13(0x4b9)](useCallback,async()=>{const _0x3c879a={'xHAfx':_0x38fe1c['aKeik'],'rxoDv':_0x38fe1c[_0xcd13(0x393)],'enWdo':_0xcd13(0x41),'MqhXT':_0x38fe1c['nTdUv'],'hWKHr':_0x38fe1c[_0xcd13(0x395)],'mHTWv':_0x38fe1c[_0xcd13(0x177)],'DAidy':function(_0x14829c,_0x13b4bf){return _0x14829c===_0x13b4bf;},'AqupM':_0x38fe1c['pprsW'],'wwkGF':_0x38fe1c[_0xcd13(0x4ba)],'cGYFL':function(_0x13aa99,_0x140288){return _0x38fe1c[_0xcd13(0x4bb)](_0x13aa99,_0x140288);},'SLVOh':function(_0x407a8e,_0x323aca){return _0x38fe1c[_0xcd13(0x4bc)](_0x407a8e,_0x323aca);},'ahNEl':_0x38fe1c[_0xcd13(0x4bd)],'nJOhm':function(_0x5a3197,_0x3126d4){return _0x5a3197(_0x3126d4);},'KXtHl':_0x38fe1c[_0xcd13(0x49e)],'ZnLVo':_0x38fe1c[_0xcd13(0x3bb)],'lSJIi':_0x38fe1c['Yftjd'],'yTJhH':function(_0x477d61,_0x4f8e65){return _0x38fe1c['RxWZU'](_0x477d61,_0x4f8e65);},'cmAPG':function(_0x49e73c){return _0x38fe1c[_0xcd13(0x2b2)](_0x49e73c);}};try{if(_0x38fe1c[_0xcd13(0x4be)]!==_0x38fe1c[_0xcd13(0x4bf)]){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x4c0)]),_0x3bdd00(_0x38fe1c[_0xcd13(0x4c1)]);const _0x5d4f39=await _0x38fe1c[_0xcd13(0x4c2)](_0x1520cc);if(!_0x5d4f39)throw new Error(_0x38fe1c['nkWzW']);console['log'](_0x38fe1c[_0xcd13(0x4c3)],_0x5d4f39[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278)),_0x38fe1c[_0xcd13(0x1a1)](_0x28917a,_0x5d4f39);if(!_0x36231e){var _0x4820f0;const _0x681509=await getOnairosUsername(),_0x54b997=_0x681509||(_0x38fe1c[_0xcd13(0x32b)](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x319)](_0x554ecd,void 0x0)||(_0x4820f0=_0x554ecd[_0xcd13(0x206)])===null||_0x38fe1c[_0xcd13(0x4c4)](_0x4820f0,void 0x0)?void 0x0:_0x4820f0['split']('@')[0x0])||(_0x38fe1c[_0xcd13(0x4c5)](_0x554ecd,null)||_0x38fe1c[_0xcd13(0x4c6)](_0x554ecd,void 0x0)?void 0x0:_0x554ecd['name'])||_0x38fe1c[_0xcd13(0x377)],_0x4ac947={'username':_0x54b997,'email':(_0x554ecd===null||_0x554ecd===void 0x0?void 0x0:_0x554ecd['email'])||null,'id':null};_0xdddc3d(_0x4ac947),_0x38fe1c[_0xcd13(0x4c7)](_0x77311d,_0x54b997),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x4c8)],_0x4ac947);}console['log'](_0x38fe1c[_0xcd13(0x4c9)]),_0x3bdd00(_0xcd13(0x4ca));const _0xe798a7=_0x38fe1c[_0xcd13(0x4cb)](io,API_CONFIG[_0xcd13(0x2aa)],{'transports':[_0x38fe1c[_0xcd13(0x3e7)],_0x38fe1c[_0xcd13(0x4cc)]],'autoConnect':![],'timeout':0x3a98,'reconnection':!![],'reconnectionAttempts':0x3,'reconnectionDelay':0x3e8,'forceNew':!![]});_0xe798a7['on'](_0x38fe1c[_0xcd13(0x163)],async()=>{const _0x2430d9={'wantE':_0x3c879a['xHAfx'],'CdgWz':_0x3c879a[_0xcd13(0x4cd)],'ieSdJ':'🔐\x20[BACKGROUND]\x20PIN\x20validation\x20-\x20continuing\x20with\x20existing\x20training\x20session','RJSmS':_0x3c879a[_0xcd13(0x4ce)],'DWxjv':_0x3c879a['MqhXT'],'DCVEU':_0x3c879a[_0xcd13(0x4cf)],'tLzsz':_0xcd13(0xa1),'vZeyS':function(_0x219962,_0x3ea047){return _0x219962===_0x3ea047;},'ezgfy':_0x3c879a[_0xcd13(0x4d0)]};if(_0x3c879a[_0xcd13(0x4d1)](_0x3c879a[_0xcd13(0x4d2)],_0x3c879a[_0xcd13(0x4d2)])){console[_0xcd13(0x13e)](_0x3c879a[_0xcd13(0x4d3)]);const _0x3ed292=_0xe798a7['id'];_0xf67da(_0x3c879a[_0xcd13(0x4d4)](_0x3ed292,null)),_0x3c879a[_0xcd13(0x4d5)](_0x3bdd00,_0x3c879a[_0xcd13(0x4d6)]),_0x3ed292&&await _0x368209(_0x3ed292,_0x5d4f39);}else try{const _0x50e7d6=_0x2430d9[_0xcd13(0x4d7)][_0xcd13(0x1ab)]('|');let _0x58ad84=0x0;while(!![]){switch(_0x50e7d6[_0x58ad84++]){case'0':_0x3f4446['log'](_0x2430d9['CdgWz']);continue;case'1':_0x1e0c3b[_0xcd13(0x13e)](_0x2430d9[_0xcd13(0x4d8)]);continue;case'2':_0x5d2677[_0xcd13(0x13e)](_0x2430d9[_0xcd13(0x4d9)]);continue;case'3':if(!_0x22cba7)throw new _0x36df82(_0x2430d9[_0xcd13(0x4da)]);continue;case'4':_0x5670e2[_0xcd13(0x13e)](_0x2430d9['DCVEU'],_0x61c2ea);continue;case'5':_0x19731e[_0xcd13(0x13e)](_0x2430d9['tLzsz'],(_0x1e7991===null||_0x2430d9[_0xcd13(0x4db)](_0x257ee1,void 0x0)?void 0x0:_0x5ba130[_0xcd13(0x2b4)](0x0,0x14))+_0xcd13(0x278));continue;}break;}}catch(_0x49abdc){_0x1e6160['error'](_0x2430d9[_0xcd13(0x4dc)],_0x49abdc);throw _0x49abdc;}}),_0xe798a7['on']('trainingUpdate',_0x3b0154=>{_0x3b0154[_0xcd13(0x45d)]&&(_0x3c879a[_0xcd13(0x4dd)](_0x3bdd00,_0x3b0154[_0xcd13(0x28f)]||'Processing...'),console[_0xcd13(0x13e)](_0xcd13(0x4de),_0x3b0154[_0xcd13(0x45d)],'%'));}),_0xe798a7['on'](_0xcd13(0xec),()=>{console[_0xcd13(0x13e)](_0x3c879a[_0xcd13(0x4df)]);}),_0x1f4bf0[_0xcd13(0x186)]=_0xe798a7,_0xe798a7[_0xcd13(0x9)](),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x4e0)]);}else _0x323c85[_0xcd13(0x164)](_0x3c879a[_0xcd13(0x4e1)],_0x16209b),_0x3c879a[_0xcd13(0x4d5)](_0x552401,_0x3c879a['lSJIi']),_0x3c879a[_0xcd13(0x4e2)](_0x46db9c,!![]),_0x3c879a[_0xcd13(0x4e3)](_0x174d58);}catch(_0x73f2f9){if(_0x38fe1c[_0xcd13(0x2dd)](_0x38fe1c[_0xcd13(0x4e4)],_0xcd13(0x4e5))){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x4e6)],_0x73f2f9),_0x38fe1c[_0xcd13(0x1a2)](_0x3bdd00,'');throw _0x73f2f9;}else{const _0x1f9ba6={'Hqdqd':_0x38fe1c[_0xcd13(0x355)]};_0x208519&&(_0x38fe1c['vRyGR'](_0x1d079,_0xe16436[_0xcd13(0x235)]),_0xed3b1[_0xcd13(0x13e)](_0xcd13(0x111)),_0x38fe1c[_0xcd13(0x2b2)](_0x181907)[_0xcd13(0x2c5)](_0x5292d9=>{_0x59b878[_0xcd13(0x164)](_0x1f9ba6[_0xcd13(0x4e7)],_0x5292d9);}),_0x38fe1c[_0xcd13(0x4e8)](_0x5312ac,_0x38fe1c['zeoOx']));}}},[_0x36231e,_0x4b5df2,_0x554ecd]),_0x368209=async(_0x3a880e,_0x49a064)=>{const _0x152949={'IgYbC':_0x38fe1c['pyqZE'],'qARkE':function(_0x5f01b6,_0x5189f1){return _0x38fe1c[_0xcd13(0x4e9)](_0x5f01b6,_0x5189f1);},'KRtNZ':_0x38fe1c[_0xcd13(0x132)],'sLrri':function(_0xfa30d5,_0x490519){return _0x38fe1c[_0xcd13(0x492)](_0xfa30d5,_0x490519);},'mEljQ':_0x38fe1c['iHOag']};try{if(_0x38fe1c[_0xcd13(0x4ea)]!==_0x38fe1c[_0xcd13(0x4ea)]){_0x2f6162[_0xcd13(0x13e)](_0x152949[_0xcd13(0x4eb)]),_0x152949[_0xcd13(0x4ec)](_0x31b597,_0x152949[_0xcd13(0x4ed)]);return;}else{console[_0xcd13(0x13e)]('🚀\x20[BACKGROUND]\x20Starting\x20background\x20training\x20with\x20socketId:',_0x3a880e),console[_0xcd13(0x13e)](_0x38fe1c['upWCN'],_0x49a064[_0xcd13(0x2b4)](0x0,0x14)+_0xcd13(0x278));const _0x23911e={'socketId':_0x3a880e,'username':(_0x38fe1c[_0xcd13(0x4ee)](_0x36231e,null)||_0x38fe1c['avvlH'](_0x36231e,void 0x0)?void 0x0:_0x36231e[_0xcd13(0x264)])||(_0x38fe1c[_0xcd13(0x4ef)](_0x36231e,null)||_0x38fe1c[_0xcd13(0x4f0)](_0x36231e,void 0x0)?void 0x0:_0x36231e[_0xcd13(0x1ae)])||_0x4b5df2||_0x38fe1c[_0xcd13(0x377)],'email':(_0x38fe1c[_0xcd13(0x4f1)](_0x36231e,null)||_0x36231e===void 0x0?void 0x0:_0x36231e['email'])||null,'modelKey':null,'connectedPlatforms':[],'platformConnections':{}};console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x4f2)],_0x23911e);const _0x1e78ec=await _0x38fe1c[_0xcd13(0x2fb)](startEnochTrainingWithYouTubeCheck,_0x23911e);console[_0xcd13(0x13e)](_0x38fe1c['euJSz'],_0x1e78ec);if(_0x1e78ec[_0xcd13(0x37d)]||_0x38fe1c[_0xcd13(0x4f3)](_0x1e78ec[_0xcd13(0x7)],_0x38fe1c[_0xcd13(0x2d5)])){console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x4f4)]),_0x38fe1c[_0xcd13(0x4f5)](_0x9ddd5,_0x38fe1c['ccFSD']),_0x38fe1c[_0xcd13(0x4f6)](_0x5c6b2a,_0x1e78ec),_0x6f85a3(!![]),_0x38fe1c['flmRZ'](_0x2c54c4,_0x38fe1c[_0xcd13(0x2d7)]),_0x38fe1c[_0xcd13(0x1bb)](_0x75e131,!![]),_0x38fe1c[_0xcd13(0x4f7)](_0x1e105d);return;}if(_0x1e78ec[_0xcd13(0x24c)]){console[_0xcd13(0x13e)]('🚀\x20Background\x20training\x20started:',_0x1e78ec[_0xcd13(0x1ad)]),console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x47b)],_0x1e78ec[_0xcd13(0x1dc)]),_0x38fe1c['WLrhu'](_0x1846be,!![]);if(_0x1e78ec['features']){const _0x352bb0=_0x38fe1c[_0xcd13(0x4f8)][_0xcd13(0x1ab)]('|');let _0x162cd0=0x0;while(!![]){switch(_0x352bb0[_0x162cd0++]){case'0':console[_0xcd13(0x13e)](_0xcd13(0x1e),_0x1e78ec[_0xcd13(0x1dc)]['encryption']);continue;case'1':console['log'](_0xcd13(0x1d6),_0x1e78ec[_0xcd13(0x1dc)][_0xcd13(0x1e4)]);continue;case'2':console['log'](_0x38fe1c['gDhxY'],_0x1e78ec['features'][_0xcd13(0x1df)]);continue;case'3':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x311)],_0x1e78ec[_0xcd13(0x1dc)][_0xcd13(0x2e8)]);continue;case'4':console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x312)],_0x1e78ec['features'][_0xcd13(0x33d)]);continue;case'5':console['log'](_0xcd13(0x4f9),_0x1e78ec[_0xcd13(0x1dc)][_0xcd13(0x1e5)]);continue;case'6':console[_0xcd13(0x13e)](_0xcd13(0x1d),_0x1e78ec[_0xcd13(0x1dc)]['type']);continue;}break;}}_0x2c54c4('Background\x20training\x20model...'),_0x38fe1c[_0xcd13(0x346)](_0x444384,0x19);}else _0x38fe1c[_0xcd13(0x4fa)](_0xcd13(0x4fb),_0x38fe1c['Jgbrh'])?(_0x152949[_0xcd13(0x4ec)](_0x5310b0,_0x3735ac['BUTTON_PRESS']),_0x152949['sLrri'](_0x4f5642,''),_0x152949[_0xcd13(0x4ec)](_0x3b1a7d,_0x152949[_0xcd13(0x4fc)])):(console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x4fd)],_0x1e78ec[_0xcd13(0x164)]),_0x38fe1c['wLDHC'](_0x2c54c4,_0xcd13(0x337)+(_0x1e78ec[_0xcd13(0x164)]||_0xcd13(0x4fe))),_0x75e131(!![]),_0x1e105d());}}catch(_0x312dcc){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x4ff)],_0x312dcc),_0x38fe1c[_0xcd13(0x500)](_0x2c54c4,_0xcd13(0x337)+(_0x38fe1c[_0xcd13(0x38e)](_0x312dcc,Error)?_0x312dcc[_0xcd13(0x1ad)]:_0x38fe1c['hgNXf'])),_0x75e131(!![]),_0x1e105d();}};return React[_0xcd13(0x501)](Modal,{'transparent':!![],'visible':_0x177c2f,'animationType':_0x38fe1c[_0xcd13(0x502)],'onRequestClose':_0x582efe,'statusBarTranslucent':!![]},React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x503)]},React['createElement'](TouchableWithoutFeedback,{'onPress':_0x582efe},React[_0xcd13(0x501)](Animated[_0xcd13(0x504)],{'style':[styles[_0xcd13(0x505)],{'opacity':_0x2343ab}]})),React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x506)]},React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x507)]},React['createElement'](View,{'style':styles[_0xcd13(0x508)]},React[_0xcd13(0x501)](TouchableOpacity,{'onPress':_0x582efe,'style':styles['handleButton']},React[_0xcd13(0x501)](View,{'style':styles['handle']}))),_0x27cd95&&_0x38fe1c[_0xcd13(0x4c6)](_0x1df82a,_0x38fe1c[_0xcd13(0x132)])&&React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x509)]},React[_0xcd13(0x501)](Text,{'style':styles[_0xcd13(0x50a)]},_0x38fe1c[_0xcd13(0x50b)]),React['createElement'](View,{'style':styles['debugRow']},React[_0xcd13(0x501)](Text,{'style':styles[_0xcd13(0x50c)]},_0x38fe1c['frfuy'],_0xa9ffc1),React['createElement'](TouchableOpacity,{'onPress':()=>_0x985394(_0x50c81e=>Math[_0xcd13(0x50d)](0x0,_0x50c81e-0x2)),'style':styles[_0xcd13(0x50e)]},React[_0xcd13(0x501)](Text,null,'-')),React[_0xcd13(0x501)](TouchableOpacity,{'onPress':()=>_0x985394(_0x1639c8=>_0x1639c8+0x2),'style':styles[_0xcd13(0x50e)]},React['createElement'](Text,null,'+'))),React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x50f)]},React[_0xcd13(0x501)](Text,{'style':styles[_0xcd13(0x50c)]},_0x38fe1c[_0xcd13(0x510)],_0xb9a59f),React['createElement'](TouchableOpacity,{'onPress':()=>_0x4243a4(_0x5b0871=>Math[_0xcd13(0x50d)](0x0,_0x5b0871-0x2)),'style':styles[_0xcd13(0x50e)]},React[_0xcd13(0x501)](Text,null,'-')),React[_0xcd13(0x501)](TouchableOpacity,{'onPress':()=>_0x4243a4(_0x3ed16c=>_0x3ed16c+0x2),'style':styles[_0xcd13(0x50e)]},React['createElement'](Text,null,'+'))),React['createElement'](View,{'style':styles[_0xcd13(0x50f)]},React[_0xcd13(0x501)](Text,{'style':styles[_0xcd13(0x50c)]},_0x38fe1c['KpDgD'],_0x5dab86),React[_0xcd13(0x501)](TouchableOpacity,{'onPress':()=>_0x341b75(_0x57be25=>Math[_0xcd13(0x50d)](0x0,_0x57be25-0x2)),'style':styles[_0xcd13(0x50e)]},React['createElement'](Text,null,'-')),React[_0xcd13(0x501)](TouchableOpacity,{'onPress':()=>_0x341b75(_0x1578a4=>_0x1578a4+0x2),'style':styles[_0xcd13(0x50e)]},React['createElement'](Text,null,'+'))),React[_0xcd13(0x501)](TouchableOpacity,{'onPress':()=>_0x96a904(![]),'style':styles[_0xcd13(0x511)]},React[_0xcd13(0x501)](Text,{'style':styles[_0xcd13(0x512)]},_0x38fe1c[_0xcd13(0x513)]))),_0x38fe1c['sKUkV'](_0x1df82a,_0x38fe1c[_0xcd13(0x133)])&&React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x514)]},React[_0xcd13(0x501)](View,{'style':styles['brandMarkContainer']},React[_0xcd13(0x501)](_0x34d39e,null)),React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x515)]},React['createElement'](_0x5fe3f9,null)),React['createElement'](View,{'style':styles['bodyContainer']},React['createElement'](_0x56eedb,null)),React[_0xcd13(0x501)](View,{'style':styles[_0xcd13(0x516)]}),React['createElement'](View,{'style':styles[_0xcd13(0x517)]},React[_0xcd13(0x501)](_0x2ab69d,{'label':_0xcd13(0x518),'onPress':_0x1191d8,'testID':_0x38fe1c[_0xcd13(0x519)]}))),_0x38fe1c[_0xcd13(0x51a)](_0x1df82a,_0x38fe1c[_0xcd13(0x145)])&&React['createElement'](_0x2dc3ce,{'onEmailSubmit':_0x19866d,'onGoogleSignIn':_0x1343b4,'onContinue':()=>_0x40952e(_0xcd13(0x23a)),'loading':_0x27f8d3,'error':_0x505be1,'initialEmail':_0xf2a8ab}),_0x1df82a===_0x38fe1c[_0xcd13(0x147)]&&React['createElement'](_0x26a6fe,{'email':_0xf2a8ab,'onCodeSubmit':_0x18023b,'onBack':_0x58c45a,'loading':_0x27f8d3,'error':_0x505be1,'onResendCode':_0x113a74}),_0x38fe1c[_0xcd13(0x51b)](_0x1df82a,_0xcd13(0x1ea))&&React['createElement'](_0x2417dd,{'onUpdate':_0x55a8e7,'onSkip':allowSkip?_0x142c2b:undefined,'onReviewerBypass':_0x5d48d7,'onLogout':_0x3b3154,'allowedPlatforms':_0x1d1474,'recommendedPlatforms':_0x3cd581,'initialConnectedPlatforms':_0x5a2b56}),_0x1df82a===_0xcd13(0x26)&&React[_0xcd13(0x501)](_0x248186,{'visible':!![],'loading':_0x3192f0,'onLogout':_0x3b3154,'onAccept':async()=>{const _0x1595ee={'USfDS':_0x38fe1c[_0xcd13(0x479)],'sDdNy':_0x38fe1c['ntytw'],'wXYEp':function(_0x1a7c37,_0x1ae4a9){return _0x38fe1c[_0xcd13(0x51c)](_0x1a7c37,_0x1ae4a9);},'FnmUI':function(_0x154fab){return _0x154fab();},'QRVGP':function(_0x172d0c,_0x524e14){return _0x38fe1c[_0xcd13(0x456)](_0x172d0c,_0x524e14);}};if(_0x38fe1c[_0xcd13(0x51d)]('ObWXy',_0x38fe1c[_0xcd13(0x51e)])){console['log'](_0x38fe1c[_0xcd13(0x51f)]),_0x25ae7d(!![]),await new Promise(_0xa699af=>setTimeout(_0xa699af,0x32));try{if(_0x38fe1c['mmEAa'](_0xcd13(0x120),_0x38fe1c[_0xcd13(0x520)])){const [_0x12693,_0x4d0988,_0x257893]=await Promise[_0xcd13(0x2af)]([_0x38fe1c[_0xcd13(0x4f7)](getAuthToken),AsyncStorage['getItem'](_0x38fe1c['MYDAS']),getOnairosUsername()]);console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x521)]),_0x42fac1['current']=!![],_0x38fe1c[_0xcd13(0x2b7)](_0x12693,_0x4d0988)?(console[_0xcd13(0x13e)](_0x38fe1c['NKcWv']),await(_0x38fe1c[_0xcd13(0x522)](_0x108330,null)||_0x38fe1c[_0xcd13(0x2c6)](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x2c7)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],_0x12693,{'email':_0x4d0988,'connectedPlatforms':_0x5a2b56,'username':_0x257893||_0x4d0988['split']('@')[0x0],'isReturningUser':!![]}))):_0x38fe1c[_0xcd13(0x523)](_0xcd13(0x524),_0x38fe1c[_0xcd13(0x525)])?(console[_0xcd13(0x2c0)](_0x38fe1c[_0xcd13(0x526)]),await(_0x38fe1c[_0xcd13(0x527)](_0x108330,null)||_0x108330===void 0x0?void 0x0:_0x38fe1c['GrkcG'](_0x108330,API_CONFIG[_0xcd13(0x2aa)],'',{'connectedPlatforms':_0x5a2b56,'isReturningUser':!![]}))):(_0x1783ae['error'](_0x1595ee[_0xcd13(0x528)],_0x398988),_0x12ba75(_0x1595ee[_0xcd13(0x529)]),_0x1595ee[_0xcd13(0x52a)](_0x3bf173,!![]),_0x1595ee[_0xcd13(0x52b)](_0x151ecc));}else _0x93a15d[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x420)],_0x125a19),_0x57f8da(_0x38fe1c[_0xcd13(0x52c)]),_0x42adca(0x3c);}catch(_0x47cd89){console[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x52d)],_0x47cd89),await(_0x38fe1c['YnTlq'](_0x108330,null)||_0x38fe1c[_0xcd13(0x319)](_0x108330,void 0x0)?void 0x0:_0x38fe1c[_0xcd13(0x52e)](_0x108330,API_CONFIG[_0xcd13(0x2aa)],'',{'connectedPlatforms':_0x5a2b56,'isReturningUser':!![]}));}console[_0xcd13(0x13e)](_0xcd13(0x52f));}else{var _0xc28f83;_0x17e6ef(![]),_0x1595ee['QRVGP'](_0xc28f83=_0x43d61f[_0xcd13(0x186)],null)||_0x1595ee[_0xcd13(0x530)](_0xc28f83,void 0x0)||_0xc28f83[_0xcd13(0x1d0)](_0x30a998);}},'onDecline':()=>{_0x38fe1c[_0xcd13(0x531)]==='doECv'?_0x50c959[_0xcd13(0x164)](_0x38fe1c[_0xcd13(0x532)],_0x6cb005):(console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x533)]),_0x38fe1c[_0xcd13(0x1a8)](_0x582efe));},'connectedPlatforms':_0x5a2b56,'onConnectMore':()=>{console[_0xcd13(0x13e)](_0x38fe1c[_0xcd13(0x2f7)]),_0x40952e(_0x38fe1c['tMHlY']);},'isReturningUser':_0x2a51ba,'appName':_0x20ed1d})))));};const LEGACY_REMOVED=!![],styles=StyleSheet[_0xcd13(0x534)]({'modalOverlay':{'flex':0x1,'justifyContent':_0xcd13(0x535)},'backdrop':{...StyleSheet[_0xcd13(0x536)],'backgroundColor':_0xcd13(0x537)},'bottomSheet':{'backgroundColor':'#FAFAFA','borderTopLeftRadius':0x18,'borderTopRightRadius':0x18,'paddingTop':0x0,'paddingBottom':0x0,'minHeight':height*0.86,'overflow':_0xcd13(0x538),'width':'100%'},'container':{'flex':0x1,'backgroundColor':_0xcd13(0x539)},'welcomeContainer':{'flex':0x1,'alignItems':_0xcd13(0x53a),'paddingTop':0x46,'paddingHorizontal':0x18},'brandMarkContainer':{'marginBottom':0x20},'headingContainer':{'marginBottom':0x18},'bodyContainer':{'marginBottom':0x20,'width':_0xcd13(0x53b)},'welcomeSpacer':{'flex':0x1,'minHeight':0x14},'welcomeButtonContainer':{'width':'100%','paddingBottom':0x14},'handleContainer':{'alignItems':_0xcd13(0x53a),'paddingTop':0xc,'paddingBottom':0x4,'backgroundColor':_0xcd13(0x53c)},'handleButton':{'padding':0x0,'width':0x78,'alignItems':_0xcd13(0x53a)},'handle':{'width':0x64,'height':0x6,'borderRadius':0x3,'backgroundColor':_0xcd13(0x53d)},'debugPanel':{'position':_0xcd13(0x53e),'top':0x3c,'right':0xa,'backgroundColor':_0xcd13(0x53f),'padding':0xc,'borderRadius':0x8,'zIndex':0x270f,'minWidth':0xc8},'debugTitle':{'color':_0xcd13(0x540),'fontSize':0xe,'fontWeight':_0xcd13(0x541),'marginBottom':0x8},'debugRow':{'flexDirection':_0xcd13(0x542),'alignItems':_0xcd13(0x53a),'marginBottom':0x6},'debugLabel':{'color':'#fff','fontSize':0xc,'flex':0x1},'debugBtn':{'backgroundColor':_0xcd13(0x543),'paddingHorizontal':0xc,'paddingVertical':0x4,'borderRadius':0x4,'marginLeft':0x4},'debugCloseBtn':{'backgroundColor':'#666','paddingVertical':0x6,'borderRadius':0x4,'marginTop':0x8,'alignItems':_0xcd13(0x53a)},'debugCloseBtnText':{'color':_0xcd13(0x540),'fontSize':0xc},'header':{'alignItems':_0xcd13(0x53a),'marginBottom':0x14,'paddingHorizontal':0x18},'headerContent':{'flexDirection':_0xcd13(0x542),'alignItems':_0xcd13(0x53a),'justifyContent':'center','marginBottom':0x18},'appIcon':{'width':0x30,'height':0x30,'borderRadius':0x18,'backgroundColor':'#F5F5F5','alignItems':'center','justifyContent':'center'},'appIconText':{'fontSize':0x18,'fontWeight':'bold','color':'#333'},'arrow':{'marginHorizontal':0x10,'fontSize':0x18,'color':'#666'},'onairosIcon':{'width':0x36,'height':0x36,'borderRadius':0x20,'backgroundColor':_0xcd13(0x53c),'alignItems':_0xcd13(0x53a),'justifyContent':_0xcd13(0x53a)},'onairosIconText':{'fontSize':0x18,'fontWeight':_0xcd13(0x544),'color':_0xcd13(0x540)},'onairosIconImage':{'width':0x36,'height':0x36},'titleContainer':{'alignItems':_0xcd13(0x53a)},'mainTitle':{'fontSize':0x18,'fontWeight':_0xcd13(0x545),'color':'#333','textAlign':_0xcd13(0x53a),'marginBottom':0xc},'privacyMessage':{'fontSize':0xe,'color':_0xcd13(0x546),'textAlign':_0xcd13(0x53a),'marginBottom':0x14},'privacyLink':{'color':_0xcd13(0x547),'fontWeight':'600','textDecorationLine':_0xcd13(0x548)},'boldText':{'fontWeight':_0xcd13(0x544)},'content':{'flex':0x1,'paddingHorizontal':0x18},'platformsScrollView':{'flex':0x1,'width':_0xcd13(0x53b)},'platformsScrollContent':{'paddingBottom':0x0,'paddingHorizontal':0x18},'platformsContainer':{'marginTop':0x10},'platformItem':{'flexDirection':_0xcd13(0x542),'alignItems':'center','justifyContent':'space-between','paddingVertical':0x10,'paddingHorizontal':0x8,'borderBottomWidth':0x1,'borderBottomColor':'#E5E5E5'},'platformInfo':{'flexDirection':_0xcd13(0x542),'alignItems':_0xcd13(0x53a)},'platformIcon':{'width':0x28,'height':0x28,'borderRadius':0x14,'backgroundColor':_0xcd13(0x549),'alignItems':_0xcd13(0x53a),'justifyContent':'center','marginRight':0x10},'platformIconText':{'fontSize':0x12,'fontWeight':_0xcd13(0x544),'color':_0xcd13(0x54a),'textAlign':_0xcd13(0x53a),'textAlignVertical':_0xcd13(0x53a)},'platformIconImage':{'width':0x18,'height':0x18},'youtubeIconImage':{'width':0x3a,'height':0x3a},'redditIconImage':{'width':0x22,'height':0x22},'pinterestIconImage':{'width':0x30,'height':0x30},'gmailIconImage':{'width':0x20,'height':0x20},'linkedinPlatformIcon':{'width':0x28,'height':0x28,'borderRadius':0x8,'backgroundColor':'#F5F5F5','alignItems':_0xcd13(0x53a),'justifyContent':_0xcd13(0x53a),'marginRight':0x10},'pinterestPlatformIcon':{'width':0x22,'height':0x22,'borderRadius':0x11,'backgroundColor':_0xcd13(0x549),'alignItems':_0xcd13(0x53a),'justifyContent':'center','marginRight':0x10},'platformName':{'fontSize':0x10,'color':'#333','textAlignVertical':'center'},'footer':{'flexDirection':_0xcd13(0x542),'alignItems':_0xcd13(0x53a),'justifyContent':'space-between','padding':0x18,'borderTopWidth':0x1,'borderTopColor':_0xcd13(0x54b)},'footerButtonCancel':{'paddingVertical':0xc,'paddingHorizontal':0x10},'footerButtonText':{'color':_0xcd13(0x546),'fontSize':0x10},'footerButtonConfirm':{'paddingVertical':0xc,'paddingHorizontal':0x18,'backgroundColor':_0xcd13(0x547),'borderRadius':0x8,'marginTop':0x14},'footerButtonConnected':{'paddingVertical':0xc,'paddingHorizontal':0x18,'backgroundColor':_0xcd13(0x54c),'borderRadius':0x8},'footerButtonDisabled':{'backgroundColor':_0xcd13(0x54b)},'footerButtonTextConfirm':{'color':_0xcd13(0x540),'fontSize':0x10,'fontWeight':'600'},'footerButtonTextConnected':{'color':_0xcd13(0x54d),'fontSize':0x10,'fontWeight':_0xcd13(0x545)},'connectContainer':{'flex':0x1},'modalContent':{'flex':0x1,'backgroundColor':_0xcd13(0x199),'borderTopLeftRadius':0x14,'borderTopRightRadius':0x14,'padding':0x18},'backButton':{'padding':0x8,'width':0x28},'backButtonText':{'fontSize':0x18,'color':_0xcd13(0x547)},'backButtonSpacer':{'width':0x28},'headerTitle':{'fontSize':0x12,'fontWeight':_0xcd13(0x545),'color':_0xcd13(0x54a),'textAlign':'center'},'privacyHeader':{'flexDirection':_0xcd13(0x542),'alignItems':'center','justifyContent':_0xcd13(0x54e),'paddingHorizontal':0x10,'paddingVertical':0x14,'backgroundColor':_0xcd13(0x199),'borderBottomWidth':0x1,'borderBottomColor':_0xcd13(0x54f)},'privacyDetailsContainer':{'paddingHorizontal':0x18,'paddingVertical':0x8,'flex':0x1,'marginTop':0x14},'privacyDetailsTitle':{'fontSize':0x14,'fontWeight':_0xcd13(0x545),'color':'#333','marginBottom':0x0},'privacyBulletPoint':{'flexDirection':_0xcd13(0x542),'marginBottom':0x10,'alignItems':_0xcd13(0x550)},'bulletPoint':{'fontSize':0x12,'marginRight':0x8,'color':_0xcd13(0x54a)},'privacyBulletText':{'fontSize':0x10,'color':_0xcd13(0x54a),'flex':0x1,'lineHeight':0x18},'connectionsCountText':{'fontSize':0x12,'fontWeight':'600','color':_0xcd13(0x54a),'marginBottom':0x18},'personaContainer':{'flex':0x1,'padding':0x10,'backgroundColor':_0xcd13(0x540),'justifyContent':_0xcd13(0x550)},'personaHeaderWithBack':{'flexDirection':'row','alignItems':_0xcd13(0x53a),'justifyContent':_0xcd13(0x54e),'marginBottom':0x10,'paddingVertical':0x8},'personaBackButton':{'padding':0x8},'personaHeader':{'alignItems':_0xcd13(0x53a),'marginBottom':0x20,'paddingHorizontal':0x18},'personaTitle':{'fontSize':0x14,'fontWeight':_0xcd13(0x545),'color':_0xcd13(0x54a),'textAlign':'center','flex':0x1,'marginBottom':0x8},'personaSubtitle':{'fontSize':0xe,'color':'#666','marginBottom':0x18,'textAlign':'center'},'personaProgressContainer':{'marginBottom':0x18,'paddingHorizontal':0x0},'personaProgressBar':{'height':0x8,'backgroundColor':_0xcd13(0x549),'borderRadius':0x4,'overflow':'hidden','marginBottom':0xc},'personaProgressFill':{'height':_0xcd13(0x53b),'backgroundColor':_0xcd13(0x551),'borderRadius':0x4},'personaProgressText':{'fontSize':0x10,'fontWeight':_0xcd13(0x545),'color':_0xcd13(0x54a),'textAlign':_0xcd13(0x53a),'marginBottom':0x8},'personaStatusText':{'fontSize':0xe,'color':'#666','textAlign':_0xcd13(0x53a)},'personaCompleteContainer':{'alignItems':_0xcd13(0x53a),'paddingHorizontal':0x0},'personaCompleteTitle':{'fontSize':0x14,'fontWeight':_0xcd13(0x545),'color':_0xcd13(0x54a),'marginBottom':0x8,'textAlign':_0xcd13(0x53a)},'personaCompleteSubtitle':{'fontSize':0xe,'color':'#666','textAlign':_0xcd13(0x53a),'marginBottom':0x28},'personaContinueButton':{'backgroundColor':_0xcd13(0x547),'paddingVertical':0x10,'paddingHorizontal':0x30,'borderRadius':0x10,'alignItems':_0xcd13(0x53a),'width':_0xcd13(0x53b),'marginTop':0x20,'shadowColor':'#000','shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x4,'elevation':0x3},'personaContinueButtonText':{'color':'#fff','fontSize':0x10,'fontWeight':_0xcd13(0x545)},'progressError':{'backgroundColor':_0xcd13(0x552)},'dataWarningContainer':{'padding':0x10,'borderRadius':0xc,'marginTop':0x10,'borderWidth':0x1,'shadowColor':_0xcd13(0x54d),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x4,'elevation':0x3},'dataWarningHeader':{'flexDirection':'row','alignItems':_0xcd13(0x53a),'marginBottom':0x8},'dataWarningIcon':{'fontSize':0x14,'marginRight':0x8},'dataWarningTitle':{'fontSize':0x10,'fontWeight':_0xcd13(0x545),'flex':0x1},'dataWarningMessage':{'fontSize':0xe,'marginBottom':0x0,'lineHeight':0x14},'dataWarningSuggestions':{'marginTop':0xc,'paddingTop':0xc,'borderTopWidth':0x1},'dataWarningSuggestionsTitle':{'fontSize':0xe,'fontWeight':_0xcd13(0x545),'marginBottom':0x6},'dataWarningSuggestionItem':{'fontSize':0xd,'marginBottom':0x4,'lineHeight':0x12},'dataWarningContinueNote':{'fontSize':0xd,'fontWeight':_0xcd13(0x553),'marginTop':0xc,'fontStyle':_0xcd13(0x554)},'dataWarningError':{'backgroundColor':_0xcd13(0x555),'borderColor':_0xcd13(0x556)},'dataInfoContainer':{'backgroundColor':'#F0F9FF','borderColor':'#BAE6FD'},'dataConnectionsRequired':{'backgroundColor':_0xcd13(0x549),'borderColor':_0xcd13(0x557),'shadowColor':_0xcd13(0x558),'shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.15,'shadowRadius':0x8},'highlightedBackButton':{'backgroundColor':_0xcd13(0x549),'borderRadius':0x14,'borderWidth':0x2,'borderColor':'#000000','shadowColor':'#000000','shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.3,'shadowRadius':0x8,'elevation':0x5},'highlightedBackArrow':{'color':'#000000','fontWeight':'bold'},'goBackButton':{'backgroundColor':_0xcd13(0x547),'paddingVertical':0xc,'paddingHorizontal':0x10,'borderRadius':0x8,'marginTop':0xc,'alignItems':_0xcd13(0x53a),'shadowColor':_0xcd13(0x547),'shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.3,'shadowRadius':0x6,'elevation':0x3},'goBackButtonText':{'color':_0xcd13(0x199),'fontSize':0xe,'fontWeight':'600'},'additionalPlatformsToggle':{'paddingVertical':0x10,'paddingHorizontal':0x8,'alignItems':_0xcd13(0x53a),'borderBottomWidth':0x1,'borderBottomColor':_0xcd13(0x54b)},'additionalPlatformsText':{'fontSize':0xe,'color':_0xcd13(0x546),'fontWeight':_0xcd13(0x553)},'asterisk':{'color':_0xcd13(0x559),'fontSize':0x10,'fontWeight':_0xcd13(0x544),'marginLeft':0x2},'linkedinRequirementContainer':{'backgroundColor':_0xcd13(0x55a),'borderWidth':0x1,'borderColor':_0xcd13(0x55b),'borderRadius':0x8,'paddingHorizontal':0xc,'paddingVertical':0x8,'marginTop':0x8,'marginHorizontal':0x4},'linkedinRequirementText':{'fontSize':0xc,'fontStyle':_0xcd13(0x554),'textAlign':_0xcd13(0x53a)},'linkedinRequirementAsterisk':{'color':_0xcd13(0x559),'fontWeight':_0xcd13(0x544)},'linkedinRequirementMessage':{'color':_0xcd13(0x558)},'existingUserBanner':{'backgroundColor':_0xcd13(0x55c),'borderWidth':0x1,'borderColor':_0xcd13(0x55d),'borderRadius':0xc,'paddingHorizontal':0x10,'paddingVertical':0xc,'marginTop':0xc},'existingUserText':{'fontSize':0xe,'fontWeight':'600','color':_0xcd13(0x55e),'marginBottom':0x4},'existingUserSubtext':{'fontSize':0xc,'color':_0xcd13(0x55f),'lineHeight':0x10}});
1
+ import React, { useCallback, useEffect, useState, useRef } from 'react';
2
+ import { View, Text, StyleSheet, Dimensions, TouchableOpacity, TouchableWithoutFeedback, Platform, Modal, Animated, Linking, Alert } from 'react-native';
3
+ // Removed navigation dependencies for SDK compatibility
4
+ import AsyncStorage from '@react-native-async-storage/async-storage';
5
+ // Import components and hooks
6
+
7
+ // Import Enoch-style UI components
8
+ import BrandMark from './BrandMark';
9
+ import HeadingGroup from './HeadingGroup';
10
+ import BodyText from './BodyText';
11
+ import PrimaryButton from './PrimaryButton';
12
+ import SignInStep from './SignInStep';
13
+ import VerificationStep from './VerificationStep';
14
+ import PlatformConnectorsStep from './PlatformConnectorsStep';
15
+ import PersonalizationConsentScreen from './PersonalizationConsentScreen';
16
+ // import { useConnections } from '../../hooks/useConnections'; // Commented out - file path issue
17
+ // import { useAuth } from '../../context/AuthContext'; // Commented out - file path issue
18
+ import { initiateOAuth, initiateNativeAuth, hasNativeSDK, isOAuthCallback } from '../services/platformAuthService';
19
+ import { getUniversalOnboardingIcon } from '../utils/assetRegistry';
20
+ import { signInWithGoogle } from '../services/googleAuthService';
21
+ import { triggerHaptic, HapticType } from '../utils/haptics';
22
+ import { getOnairosUsername, getAuthToken, sendEmailVerificationCode, confirmEmailVerificationCode } from '../services/authService';
23
+ import { io } from 'socket.io-client';
24
+ import { setTemporaryPin, clearTemporaryPin } from '../services/pinStorageUtils';
25
+ import { getEncryptedPinForAPI } from '../services/pinEncryptionService';
26
+ import { startEnochTrainingWithYouTubeCheck } from '../services/mobileTrainingService';
27
+ import { sendLLMDataToBackend } from '../services/llmDataStorage';
28
+ import { getConnectedAccountsSmart, getConnectedAccountsLookup } from '../services/connectedAccountsService';
29
+ import { API_CONFIG } from '../config/api';
30
+ // CRITICAL FIX: Use static imports to avoid Hermes transpilation issues with await import()
31
+ import { getJWT, storeJWT } from '../services/jwtStorageService';
32
+ import { refreshYouTubeTokens } from '../services/platformAuthService';
33
+
34
+ // Import types
35
+ // import type { ConnectionStatus } from '../../hooks/useConnections'; // Commented out - file path issue
36
+ // Removed App-specific navigation types
37
+
38
+ const {
39
+ height,
40
+ width
41
+ } = Dimensions.get('window');
42
+ // ConnectionStatus interface is now imported from hooks/useConnections
43
+
44
+ export const UniversalOnboarding = ({
45
+ visible,
46
+ onClose,
47
+ AppName,
48
+ requestData,
49
+ returnLink,
50
+ onComplete,
51
+ embedd = false,
52
+ debug = false,
53
+ test = false,
54
+ preferredPlatform,
55
+ primaryAuthOnly = false,
56
+ allowedPlatforms,
57
+ recommendedPlatforms,
58
+ allowSkip = true
59
+ }) => {
60
+ const [step, setStep] = useState(primaryAuthOnly ? 'platforms' : 'welcome');
61
+ const [connections, setConnections] = useState({});
62
+ const [pin, setPin] = useState('');
63
+ const [selectedTier, setSelectedTier] = useState('Medium');
64
+ // Training state is now handled by TrainingModal
65
+ const [slideAnim] = useState(new Animated.Value(height));
66
+ const [backdropOpacity] = useState(new Animated.Value(0));
67
+ const [platformToggles, setPlatformToggles] = useState({});
68
+ const [oauthUrl, setOauthUrl] = useState('');
69
+ const [currentPlatform, setCurrentPlatform] = useState('');
70
+ const [email, setEmail] = useState('');
71
+ const [userEmail, setUserEmail] = useState(''); // For verification flow
72
+ const [authLoading, setAuthLoading] = useState(false);
73
+ const [authError, setAuthError] = useState('');
74
+
75
+ // Returning user state
76
+ const [isReturningUser, setIsReturningUser] = useState(false);
77
+ const [returningUserConnections, setReturningUserConnections] = useState([]);
78
+ const [longPressTimer, setLongPressTimer] = useState(null);
79
+ // 🔧 FIX: Always initialize as false - let useEffect control visibility to prevent double animation glitch
80
+ const [modalVisible, setModalVisible] = useState(false);
81
+
82
+ // Consent screen loading state
83
+ const [isConsentLoading, setIsConsentLoading] = useState(false);
84
+
85
+ // DEBUG: Padding adjustment state (set to false to hide)
86
+ const [showDebugPanel, setShowDebugPanel] = useState(false);
87
+ const [debugPaddingTop, setDebugPaddingTop] = useState(0);
88
+ const [debugPaddingBottom, setDebugPaddingBottom] = useState(8);
89
+ const [debugHandlePaddingTop, setDebugHandlePaddingTop] = useState(6);
90
+
91
+ // Debug logging for modal visibility
92
+ useEffect(() => {
93
+ console.log('🔍 UniversalOnboarding: visible prop changed to:', visible);
94
+ console.log('🔍 UniversalOnboarding: modalVisible state is:', modalVisible);
95
+ console.log('🔍 UniversalOnboarding: current step is:', step);
96
+ console.log('🔍 UniversalOnboarding: primaryAuthOnly is:', primaryAuthOnly);
97
+ }, [visible, modalVisible, step, primaryAuthOnly]);
98
+
99
+ // 🔄 FIX: Reset step when modal re-opens (visible goes false → true)
100
+ // This prevents stale step state from a previous session (e.g., stuck on 'platforms' after sign-out)
101
+ const prevVisibleRef = useRef(visible);
102
+ useEffect(() => {
103
+ if (visible && !prevVisibleRef.current && !primaryAuthOnly) {
104
+ console.log('🔄 [RESET] Modal re-opened - resetting step to welcome');
105
+ setStep('welcome');
106
+ }
107
+ prevVisibleRef.current = visible;
108
+ }, [visible, primaryAuthOnly]);
109
+
110
+ // 🍎 FIX: Watch for primaryAuthOnly prop changes (Apple Sign-In flow)
111
+ // When primaryAuthOnly becomes true AFTER the component mounts, go to welcome step
112
+ // This handles the case where Apple sign-in completes and then opens the SDK modal
113
+ // User will see "Welcome to Onairos" then click "Get Started" to go to platforms (skipping signin)
114
+ useEffect(() => {
115
+ if (primaryAuthOnly && visible && (step === 'signin' || step === 'verification')) {
116
+ console.log('🍎 [APPLE FIX] primaryAuthOnly detected - resetting to welcome step');
117
+ console.log('🍎 [APPLE FIX] Current step was:', step, '-> Setting to: welcome');
118
+ setStep('welcome');
119
+ }
120
+ }, [primaryAuthOnly, visible]);
121
+ const isCompletingRef = useRef(false);
122
+ const [connectionsCount, setConnectionsCount] = useState(5); // Simulated connections count
123
+
124
+ // Add state for showing additional platforms
125
+ const [showAdditionalPlatforms, setShowAdditionalPlatforms] = useState(false);
126
+ const [additionalPlatformsOpacity] = useState(new Animated.Value(0));
127
+
128
+ // Add ref for ScrollView to control scroll position
129
+ const scrollViewRef = useRef(null);
130
+ // Get the authenticated user from auth context
131
+ // const { user } = useAuth(); // Hook not available
132
+ const user = null;
133
+
134
+ // State for storing the correct username
135
+ const [username, setUsername] = useState('');
136
+
137
+ // Real training state variables (replacing fake persona state)
138
+ const [personaProgress, setPersonaProgress] = useState(0);
139
+ const [personaStatus, setPersonaStatus] = useState('Initializing...');
140
+ const [isPersonaComplete, setIsPersonaComplete] = useState(false);
141
+ const [socketConnected, setSocketConnected] = useState(false);
142
+ const [hasError, setHasError] = useState(false);
143
+ const [userTraits, setUserTraits] = useState(null);
144
+ const [inferenceResults, setInferenceResults] = useState(null);
145
+ const [userToken, setUserToken] = useState(null);
146
+ const [userInfo, setUserInfo] = useState(null);
147
+ const [animatedDots, setAnimatedDots] = useState('');
148
+ const socketRef = useRef(null);
149
+ const dotsAnimationRef = useRef(null);
150
+
151
+ // Existing user state
152
+ const [isExistingUser, setIsExistingUser] = useState(false);
153
+ const [existingUserToken, setExistingUserToken] = useState(null);
154
+ const [existingUserInfo, setExistingUserInfo] = useState(null);
155
+
156
+ // Data scenario states
157
+ const [dataScenario, setDataScenario] = useState(null);
158
+ const [dataDetails, setDataDetails] = useState(null);
159
+ const [showDataWarning, setShowDataWarning] = useState(false);
160
+
161
+ // ✅ NEW: Background training state
162
+ const [isBackgroundTrainingStarted, setIsBackgroundTrainingStarted] = useState(false);
163
+ const [backgroundTrainingProgress, setBackgroundTrainingProgress] = useState('');
164
+ const [backgroundSocketId, setBackgroundSocketId] = useState(null);
165
+
166
+ // Function to store connected platforms (writes to BOTH keys for consistency)
167
+ const storeConnectedPlatform = async platformId => {
168
+ try {
169
+ const storedPlatforms = await AsyncStorage.getItem('connectedPlatforms');
170
+ let platforms = storedPlatforms ? JSON.parse(storedPlatforms) : [];
171
+
172
+ // Add platform if not already in the list
173
+ if (!platforms.includes(platformId)) {
174
+ platforms.push(platformId);
175
+ await AsyncStorage.setItem('connectedPlatforms', JSON.stringify(platforms));
176
+ await AsyncStorage.setItem('user_connected_platforms', JSON.stringify(platforms));
177
+ console.log('📱 Stored connected platform:', platformId, 'Total platforms:', platforms);
178
+ }
179
+ } catch (error) {
180
+ console.error('Error storing connected platform:', error);
181
+ }
182
+ };
183
+
184
+ // Function to remove connected platform from storage (removes from BOTH keys)
185
+ const removeConnectedPlatform = async platformId => {
186
+ try {
187
+ const storedPlatforms = await AsyncStorage.getItem('connectedPlatforms');
188
+ let platforms = storedPlatforms ? JSON.parse(storedPlatforms) : [];
189
+
190
+ // Remove platform from the list
191
+ platforms = platforms.filter(platform => platform !== platformId);
192
+ await AsyncStorage.setItem('connectedPlatforms', JSON.stringify(platforms));
193
+ await AsyncStorage.setItem('user_connected_platforms', JSON.stringify(platforms));
194
+ console.log('📱 Removed connected platform:', platformId, 'Remaining platforms:', platforms);
195
+ } catch (error) {
196
+ console.error('Error removing connected platform:', error);
197
+ }
198
+ };
199
+
200
+ // Function to handle disconnect confirmation
201
+ const handleDisconnectPlatform = (platformId, platformName) => {
202
+ Alert.alert('Disconnect Platform', `Are you sure you want to disconnect ${platformName}?`, [{
203
+ text: 'No',
204
+ style: 'cancel'
205
+ }, {
206
+ text: 'Yes',
207
+ style: 'destructive',
208
+ onPress: async () => {
209
+ try {
210
+ // Update local state to show disconnected
211
+ setConnectionStatuses(prev => ({
212
+ ...prev,
213
+ [platformId]: 'disconnected'
214
+ }));
215
+ setConnections(prev => {
216
+ const newConnections = {
217
+ ...prev
218
+ };
219
+ delete newConnections[platformId];
220
+ return newConnections;
221
+ });
222
+ setPlatformToggles(prev => ({
223
+ ...prev,
224
+ [platformId]: false
225
+ }));
226
+
227
+ // Remove from storage
228
+ await removeConnectedPlatform(platformId);
229
+
230
+ // Call the disconnect function from the hook
231
+ await disconnectPlatform();
232
+ console.log('🔌 Disconnected platform:', platformId);
233
+ } catch (error) {
234
+ console.error('Error disconnecting platform:', error);
235
+ }
236
+ }
237
+ }]);
238
+ };
239
+
240
+ // Function to start animated dots
241
+ const startDotsAnimation = () => {
242
+ if (dotsAnimationRef.current) {
243
+ clearInterval(dotsAnimationRef.current);
244
+ }
245
+ let dotCount = 0;
246
+ dotsAnimationRef.current = setInterval(() => {
247
+ dotCount = (dotCount + 1) % 4; // 0, 1, 2, 3, then back to 0
248
+ if (dotCount === 0) {
249
+ setAnimatedDots('');
250
+ } else {
251
+ setAnimatedDots('.'.repeat(dotCount));
252
+ }
253
+ }, 500); // Change every 500ms
254
+ };
255
+
256
+ // Function to stop animated dots
257
+ const stopDotsAnimation = () => {
258
+ if (dotsAnimationRef.current) {
259
+ clearInterval(dotsAnimationRef.current);
260
+ dotsAnimationRef.current = null;
261
+ }
262
+ setAnimatedDots('');
263
+ };
264
+
265
+ // Split platforms into main and additional
266
+ const mainPlatforms = [{
267
+ id: 'pinterest',
268
+ name: 'Pinterest',
269
+ color: '#E60023'
270
+ }, {
271
+ id: 'youtube',
272
+ name: 'YouTube',
273
+ color: '#FFFFFF'
274
+ }, {
275
+ id: 'linkedin',
276
+ name: 'LinkedIn',
277
+ color: '#0077B5'
278
+ }];
279
+ const additionalPlatforms = [{
280
+ id: 'reddit',
281
+ name: 'Reddit',
282
+ color: '#FFFFFF'
283
+ }, {
284
+ id: 'gmail',
285
+ name: 'Gmail',
286
+ color: '#EA4335'
287
+ }, {
288
+ id: 'chatgpt',
289
+ name: 'ChatGPT',
290
+ color: '#10A37F'
291
+ }];
292
+
293
+ // Keep the original platforms array for compatibility
294
+ const platforms = [...mainPlatforms, ...additionalPlatforms];
295
+
296
+ // const {
297
+ // connectPlatform,
298
+ // disconnectPlatform,
299
+ // getConnectionStatus,
300
+ // isConnecting,
301
+ // } = useConnections(); // Hook not available
302
+ const connectPlatform = async () => {};
303
+ const disconnectPlatform = async () => {};
304
+ const getConnectionStatus = () => 'disconnected';
305
+ const isConnecting = false;
306
+ const isConnected = () => false;
307
+
308
+ // Track connection statuses and currently connecting platform
309
+ const [connectionStatuses, setConnectionStatuses] = useState({});
310
+ const [connectingPlatform, setConnectingPlatform] = useState(null);
311
+
312
+ // Function to get the platform icon based on platform ID
313
+ const getPlatformIcon = platformId => {
314
+ return getUniversalOnboardingIcon(platformId);
315
+ };
316
+
317
+ // Track if the modal has ever been visible to prevent initial onClose call
318
+ const hasBeenVisibleRef = useRef(false);
319
+
320
+ // Store onClose in a ref to avoid dependency issues in useEffect
321
+ const onCloseRef = useRef(onClose);
322
+ useEffect(() => {
323
+ onCloseRef.current = onClose;
324
+ }, [onClose]);
325
+ useEffect(() => {
326
+ if (visible) {
327
+ hasBeenVisibleRef.current = true; // Mark that modal has been visible
328
+ isCompletingRef.current = false; // Reset flag when becoming visible
329
+
330
+ // 🔧 FIX: Reset backdrop opacity before showing to prevent stale state
331
+ backdropOpacity.setValue(0);
332
+ setModalVisible(true);
333
+ loadInitialStatus();
334
+ // Fade in backdrop (slide is handled by Modal's animationType="slide")
335
+ // Small delay to ensure modal is mounted before animating backdrop
336
+ requestAnimationFrame(() => {
337
+ Animated.timing(backdropOpacity, {
338
+ toValue: 1,
339
+ duration: 300,
340
+ useNativeDriver: true
341
+ }).start();
342
+ });
343
+ const subscription = Linking.addEventListener('url', handleUrl);
344
+ return () => {
345
+ subscription.remove();
346
+ };
347
+ } else if (hasBeenVisibleRef.current && !isCompletingRef.current) {
348
+ // Only animate out if NOT completing - prevents flicker during successful completion
349
+ // Fade out backdrop (slide is handled by Modal's animationType="slide")
350
+ Animated.timing(backdropOpacity, {
351
+ toValue: 0,
352
+ duration: 250,
353
+ useNativeDriver: true
354
+ }).start(() => {
355
+ // Use a timeout to prevent animation state updates during unmount
356
+ setTimeout(() => {
357
+ var _onCloseRef$current;
358
+ setModalVisible(false);
359
+ (_onCloseRef$current = onCloseRef.current) === null || _onCloseRef$current === void 0 || _onCloseRef$current.call(onCloseRef); // Call onClose from ref to avoid stale closure
360
+ }, 16);
361
+ });
362
+ } else if (hasBeenVisibleRef.current && isCompletingRef.current) {
363
+ // If completing, hide modal immediately without any animation or delay
364
+ setModalVisible(false);
365
+ // Don't call onClose() when completing - let parent handle the navigation
366
+ isCompletingRef.current = false; // Reset for next time
367
+ }
368
+ }, [visible]); // Removed onClose from dependency array - using ref instead
369
+
370
+ // Cleanup socket connection and dots animation when component unmounts or becomes invisible
371
+ useEffect(() => {
372
+ return () => {
373
+ if (socketRef.current) {
374
+ console.log('🔌 Cleaning up socket connection...');
375
+ socketRef.current.disconnect();
376
+ socketRef.current = null;
377
+ }
378
+ stopDotsAnimation();
379
+ };
380
+ }, [visible]);
381
+
382
+ // Set up deep link listener for OAuth callbacks
383
+ const handleUrl = useCallback(({
384
+ url
385
+ }) => {
386
+ if (isOAuthCallback(url)) {
387
+ handleOAuthCallback(url);
388
+ }
389
+ }, []);
390
+
391
+ // Load user data and authentication token when modal becomes visible
392
+ // Also implements cached login - skip to consent for returning users with valid JWT
393
+ useEffect(() => {
394
+ const loadUserData = async () => {
395
+ try {
396
+ // Check for existing user info first
397
+ const existingToken = await AsyncStorage.getItem('existing_user_token');
398
+ const existingInfo = await AsyncStorage.getItem('existing_user_info');
399
+ if (existingToken && existingInfo) {
400
+ console.log('🔍 Found existing user info - user wants to add more data');
401
+ setIsExistingUser(true);
402
+ setExistingUserToken(existingToken);
403
+ setExistingUserInfo(JSON.parse(existingInfo));
404
+
405
+ // Clear the temporary storage
406
+ await AsyncStorage.removeItem('existing_user_token');
407
+ await AsyncStorage.removeItem('existing_user_info');
408
+ }
409
+
410
+ // Use simplified JWT storage
411
+ const token = await getJWT();
412
+ setUserToken(token);
413
+ if (token) {
414
+ var _user$email;
415
+ // Use provided username or get stored username
416
+ const storedUsername = await getOnairosUsername();
417
+ const storedEmail = await AsyncStorage.getItem('user_email');
418
+ const fallbackUsername = storedUsername || (user === null || user === void 0 || (_user$email = user.email) === null || _user$email === void 0 ? void 0 : _user$email.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
419
+ console.log('🔍 Using username for training:', fallbackUsername);
420
+ setUserInfo({
421
+ username: fallbackUsername,
422
+ email: storedEmail || (user === null || user === void 0 ? void 0 : user.email) || null,
423
+ id: null // Will be filled by backend during training
424
+ });
425
+ setUsername(fallbackUsername);
426
+
427
+ // 🔑 CACHED LOGIN: Check if this is a returning user with a valid token
428
+ // Skip directly to consent screen like other normal logins
429
+ if (storedEmail && step === 'welcome' && !primaryAuthOnly) {
430
+ console.log('🔑 [CACHED LOGIN] Found valid token for user:', storedEmail);
431
+
432
+ // Check local storage AND server for connected platforms
433
+ const connectedPlatformsJson = await AsyncStorage.getItem('connectedPlatforms');
434
+ const cachedConnections = connectedPlatformsJson ? JSON.parse(connectedPlatformsJson) : [];
435
+
436
+ // Also fetch server-side connections for returning users
437
+ let serverConnections = [];
438
+ try {
439
+ const serverAccounts = await getConnectedAccountsLookup(storedEmail);
440
+ serverConnections = serverAccounts.map(a => a.platform.toLowerCase());
441
+ console.log('🔑 [CACHED LOGIN] Server connections:', serverConnections);
442
+ } catch (err) {
443
+ console.warn('🔑 [CACHED LOGIN] Server lookup failed, using local only:', err);
444
+ }
445
+
446
+ // Merge local + server connections (deduplicated)
447
+ const allConnections = Array.from(new Set([...cachedConnections, ...serverConnections]));
448
+
449
+ // Sync merged connections back to local storage
450
+ if (allConnections.length > 0) {
451
+ await AsyncStorage.setItem('connectedPlatforms', JSON.stringify(allConnections));
452
+ await AsyncStorage.setItem('user_connected_platforms', JSON.stringify(allConnections));
453
+ }
454
+ if (allConnections.length > 0) {
455
+ // User has existing connections - skip to consent screen
456
+ console.log('🔑 [CACHED LOGIN] User has existing connections:', allConnections);
457
+ console.log('🔑 [CACHED LOGIN] Skipping to consent screen');
458
+ setUserEmail(storedEmail);
459
+ setIsReturningUser(true);
460
+ setReturningUserConnections(allConnections);
461
+ setStep('consent');
462
+ } else {
463
+ // User has token but no connections - skip to platforms
464
+ console.log('🔑 [CACHED LOGIN] User authenticated but no connections - skipping to platforms');
465
+ setUserEmail(storedEmail);
466
+ setStep('platforms');
467
+ }
468
+ }
469
+ }
470
+ } catch (error) {
471
+ var _user$email2;
472
+ console.error('Error loading user data:', error);
473
+ // Fallback user info
474
+ const fallbackUsername = (user === null || user === void 0 || (_user$email2 = user.email) === null || _user$email2 === void 0 ? void 0 : _user$email2.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
475
+ setUserInfo({
476
+ username: fallbackUsername,
477
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
478
+ id: null
479
+ });
480
+ setUsername(fallbackUsername);
481
+ }
482
+ };
483
+ if (visible) {
484
+ loadUserData();
485
+ }
486
+ }, [visible, user, step, primaryAuthOnly]);
487
+ const loadInitialStatus = async () => {
488
+ try {
489
+ // Get the stored Onairos username first
490
+ const storedUsername = await getOnairosUsername();
491
+ const fallbackUsername = (user === null || user === void 0 ? void 0 : user.email) || (user === null || user === void 0 ? void 0 : user.name) || `user_${Math.floor(Math.random() * 10000)}`;
492
+ const finalUsername = storedUsername || fallbackUsername;
493
+ console.log('🔍 Loading username for data connections:', {
494
+ storedUsername,
495
+ fallbackUsername,
496
+ finalUsername
497
+ });
498
+ setUsername(finalUsername);
499
+
500
+ // Initialize connection statuses
501
+ const connectionStatus = await getConnectionStatus();
502
+ console.log('Initial connection status:', connectionStatus);
503
+
504
+ // Update the main connections state
505
+ setConnections(connectionStatus);
506
+
507
+ // Convert connections object to status strings
508
+ const statuses = {};
509
+ Object.keys(connectionStatus).forEach(platform => {
510
+ var _connectionStatus$pla;
511
+ statuses[platform] = (_connectionStatus$pla = connectionStatus[platform]) !== null && _connectionStatus$pla !== void 0 && _connectionStatus$pla.connected ? 'connected' : 'disconnected';
512
+ });
513
+ setConnectionStatuses(statuses);
514
+
515
+ // Initialize platform toggles based on connection statuses
516
+ const toggles = {};
517
+ Object.keys(connectionStatus).forEach(platform => {
518
+ var _connectionStatus$pla2;
519
+ toggles[platform] = ((_connectionStatus$pla2 = connectionStatus[platform]) === null || _connectionStatus$pla2 === void 0 ? void 0 : _connectionStatus$pla2.connected) || false;
520
+ });
521
+ setPlatformToggles(toggles);
522
+ console.log('Connection statuses set:', statuses);
523
+ console.log('Platform toggles set:', toggles);
524
+ } catch (error) {
525
+ console.error('Error loading initial connection status:', error);
526
+ // Set empty objects as fallback
527
+ setConnections({});
528
+ setConnectionStatuses({});
529
+ setPlatformToggles({});
530
+
531
+ // Still set a fallback username even if other loading fails
532
+ const fallbackUsername = (user === null || user === void 0 ? void 0 : user.email) || (user === null || user === void 0 ? void 0 : user.name) || `user_${Math.floor(Math.random() * 10000)}`;
533
+ setUsername(fallbackUsername);
534
+ }
535
+ };
536
+ const handleClose = () => {
537
+ const currentlyCompleting = isCompletingRef.current; // Capture ref's current value
538
+
539
+ // Fade out backdrop (slide out is handled by Modal's animationType="slide")
540
+ Animated.timing(backdropOpacity, {
541
+ toValue: 0,
542
+ duration: 250,
543
+ useNativeDriver: true
544
+ }).start(() => {
545
+ // Small delay before closing modal to ensure animation completes fully
546
+ setTimeout(() => {
547
+ setModalVisible(false);
548
+ if (!currentlyCompleting) {
549
+ // Use the captured value
550
+ onClose();
551
+ }
552
+ // Do NOT reset isCompletingRef.current here. The useEffect watching props.visible is responsible for that.
553
+ }, 100);
554
+ });
555
+ };
556
+
557
+ // ============================================
558
+ // ENOCH-STYLE FLOW HANDLERS
559
+ // ============================================
560
+
561
+ const handleGetStarted = () => {
562
+ triggerHaptic(HapticType.BUTTON_PRESS);
563
+
564
+ // 🍎 Apple Sign-In flow: Skip signin step since user already authenticated
565
+ if (primaryAuthOnly) {
566
+ console.log('🍎 Get Started pressed (Apple user) - skipping signin, going to platforms');
567
+ setStep('platforms');
568
+ return;
569
+ }
570
+ console.log('🚀 Get Started pressed - moving to signin');
571
+ setStep('signin');
572
+ };
573
+ const handleEmailSubmit = async emailInput => {
574
+ triggerHaptic(HapticType.BUTTON_PRESS);
575
+ setAuthLoading(true);
576
+ setAuthError('');
577
+ try {
578
+ // Check for reviewer bypass
579
+ if (emailInput === 'reviewer@bypass.com') {
580
+ console.log('🔍 Reviewer bypass detected');
581
+ await AsyncStorage.setItem('onairos_user', 'true');
582
+ // Note: Reviewer bypass uses a placeholder token
583
+ // Store a valid-looking placeholder JWT for reviewer bypass
584
+ await storeJWT('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder');
585
+ setUserEmail(emailInput);
586
+ setStep('platforms');
587
+ setAuthLoading(false);
588
+ return;
589
+ }
590
+
591
+ // Check for test bypass - skip to verification screen without sending email
592
+ if (emailInput === 'test@bypass.com') {
593
+ console.log('🧪 Test bypass detected - skipping to verification screen');
594
+ setUserEmail('test@example.com');
595
+ setStep('verification');
596
+ setAuthLoading(false);
597
+ return;
598
+ }
599
+ console.log('📧 Sending verification code to:', emailInput);
600
+
601
+ // Use the email verification API
602
+ const result = await sendEmailVerificationCode(emailInput);
603
+ if (result.success) {
604
+ console.log('✅ Verification code sent successfully');
605
+ setUserEmail(emailInput);
606
+ setStep('verification');
607
+ } else {
608
+ console.log('❌ Failed to send verification code:', result.message);
609
+ setAuthError(result.message || 'Failed to send verification code. Please try again.');
610
+ }
611
+ } catch (error) {
612
+ console.error('❌ Error sending verification code:', error);
613
+ setAuthError('Network error. Please check your connection and try again.');
614
+ } finally {
615
+ setAuthLoading(false);
616
+ }
617
+ };
618
+ const handleGoogleSignIn = async () => {
619
+ triggerHaptic(HapticType.BUTTON_PRESS);
620
+ setAuthLoading(true);
621
+ setAuthError('');
622
+ try {
623
+ console.log('🔗 Initiating Google Sign-In');
624
+
625
+ // Use the Google Auth Service to trigger native Google Sign-In
626
+ const result = await signInWithGoogle();
627
+ if (result.success && result.user) {
628
+ console.log('✅ Google Sign-In successful:', result.user.email);
629
+ console.log('🔍 Is new user?', result.isNewUser);
630
+
631
+ // Store the user email for later use
632
+ setUserEmail(result.user.email);
633
+
634
+ // Store username in state
635
+ const derivedUsername = result.user.username || result.user.email.split('@')[0];
636
+ setUsername(derivedUsername);
637
+
638
+ // ✅ FIX: Check if user is returning (already has an account)
639
+ if (result.isNewUser === false) {
640
+ console.log('👤 Returning user detected via Google Sign-In - checking for existing connections');
641
+ try {
642
+ // Try to fetch existing connected accounts
643
+ const existingConnections = await getConnectedAccountsSmart(result.user.email, result.user.id, derivedUsername);
644
+ if (existingConnections && existingConnections.length > 0) {
645
+ console.log(`✅ Found ${existingConnections.length} existing connections - skipping to consent`);
646
+ // Store connections for the consent screen and mark as returning user
647
+ setIsReturningUser(true);
648
+ setReturningUserConnections(existingConnections.map(c => c.platform));
649
+ setStep('consent');
650
+ triggerHaptic(HapticType.SUCCESS);
651
+ return;
652
+ } else {
653
+ console.log('ℹ️ No existing connections found - proceeding to platforms step');
654
+ }
655
+ } catch (connError) {
656
+ console.log('⚠️ Could not fetch existing connections, proceeding to platforms:', connError);
657
+ }
658
+ }
659
+
660
+ // New user or no existing connections - proceed to platforms step
661
+ setStep('platforms');
662
+ triggerHaptic(HapticType.SUCCESS);
663
+ } else if (result.cancelled) {
664
+ // User cancelled - just return without error
665
+ console.log('ℹ️ Google Sign-In cancelled by user');
666
+ } else {
667
+ // Show error message
668
+ setAuthError(result.message || 'Google Sign-In failed. Please try again.');
669
+ triggerHaptic(HapticType.ERROR);
670
+ }
671
+ } catch (error) {
672
+ console.error('❌ Google Sign-In error:', error);
673
+ setAuthError(error.message || 'Google Sign-In failed. Please try again.');
674
+ triggerHaptic(HapticType.ERROR);
675
+ setAuthError('Google Sign-In failed. Please try again.');
676
+ } finally {
677
+ setAuthLoading(false);
678
+ }
679
+ };
680
+ const handleCodeSubmit = async code => {
681
+ triggerHaptic(HapticType.BUTTON_PRESS);
682
+ setAuthLoading(true);
683
+ setAuthError('');
684
+ try {
685
+ // Test bypass - any code works for test@example.com
686
+ if (userEmail === 'test@example.com') {
687
+ console.log('🧪 Test bypass - skipping code verification, going to platforms');
688
+ setStep('platforms');
689
+ setAuthLoading(false);
690
+ return;
691
+ }
692
+ console.log('🔍 Verifying email code:', userEmail, code);
693
+ console.log('🔍 App name:', AppName);
694
+ const result = await confirmEmailVerificationCode(userEmail, code);
695
+ if (result.success) {
696
+ var _result$existingUserD, _result$existingUserD2, _result$existingUserD3, _result$enochInstruct;
697
+ console.log('✅ Email verification successful');
698
+ console.log('🔍 Checking for returning user data...', {
699
+ isNewUser: result.isNewUser,
700
+ flowType: result.flowType,
701
+ hasExistingData: (_result$existingUserD = result.existingUserData) === null || _result$existingUserD === void 0 ? void 0 : _result$existingUserD.hasExistingData,
702
+ connectionsCount: ((_result$existingUserD2 = result.existingUserData) === null || _result$existingUserD2 === void 0 || (_result$existingUserD2 = _result$existingUserD2.connections) === null || _result$existingUserD2 === void 0 ? void 0 : _result$existingUserD2.length) || 0
703
+ });
704
+
705
+ // Check if this is a returning user with existing connections
706
+ const isReturning = result.isNewUser === false || result.flowType === 'returning_user';
707
+ // 🔧 FIX: Ensure connections is always an array to prevent crash
708
+ const rawConnections = (_result$existingUserD3 = result.existingUserData) === null || _result$existingUserD3 === void 0 ? void 0 : _result$existingUserD3.connections;
709
+ const existingConnections = Array.isArray(rawConnections) ? rawConnections : [];
710
+
711
+ // Extract platform names from connections
712
+ // 🔧 FIX: Add null check for each connection item
713
+ const connectedPlatformNames = existingConnections.filter(conn => conn && (conn.hasData || conn.status === 'active')).map(conn => conn === null || conn === void 0 ? void 0 : conn.platform).filter(Boolean); // Remove any undefined platform names
714
+
715
+ console.log('🔍 Returning user check:', {
716
+ isReturning,
717
+ connectedPlatformNames,
718
+ showWelcomeBack: (_result$enochInstruct = result.enochInstructions) === null || _result$enochInstruct === void 0 ? void 0 : _result$enochInstruct.showWelcomeBack
719
+ });
720
+ if (isReturning && connectedPlatformNames.length > 0) {
721
+ // Returning user with connected platforms - skip to consent screen
722
+ console.log('👋 Welcome back! User has existing connections, skipping to consent screen');
723
+ setIsReturningUser(true);
724
+ setReturningUserConnections(connectedPlatformNames);
725
+ setStep('consent');
726
+ } else {
727
+ // New user or returning user without connections - show platform connection
728
+ console.log('🆕 New user or no existing connections, showing platform connection screen');
729
+ setIsReturningUser(false);
730
+ setReturningUserConnections([]);
731
+ setStep('platforms');
732
+ }
733
+ } else {
734
+ console.log('❌ Email verification failed:', result.message);
735
+ setAuthError(result.message || 'Invalid verification code. Please try again.');
736
+ }
737
+ } catch (error) {
738
+ console.error('❌ Error verifying email code:', error);
739
+ setAuthError('Verification failed. Please try again.');
740
+ } finally {
741
+ setAuthLoading(false);
742
+ }
743
+ };
744
+ const handleBackToSignIn = () => {
745
+ triggerHaptic(HapticType.BUTTON_PRESS);
746
+ setAuthError('');
747
+ setStep('signin');
748
+ };
749
+
750
+ // Handle logout - clears token and navigates to login page (not close overlay)
751
+ const handleLogout = async () => {
752
+ triggerHaptic(HapticType.BUTTON_PRESS);
753
+ console.log('👋 Logout requested - clearing tokens and navigating to login');
754
+ try {
755
+ // Clear all auth tokens AND SDK-specific storage keys
756
+ await AsyncStorage.multiRemove(['sdk_jwt_token', 'onairos_jwt_token', 'user_email', 'onairos_username', 'auth_method', 'onairos_user', 'connectedPlatforms', 'user_connected_platforms', 'platform_account_details']);
757
+
758
+ // Clear LLM and LinkedIn connection keys
759
+ const llmPlatforms = ['chatgpt', 'claude', 'gemini', 'grok'];
760
+ for (const llm of llmPlatforms) {
761
+ await AsyncStorage.removeItem(`@onairos:llm_connected:${llm}`);
762
+ }
763
+ await AsyncStorage.removeItem('@onairos:linkedin_connected');
764
+
765
+ // Clear state
766
+ setUserToken(null);
767
+ setUserInfo(null);
768
+ setUserEmail('');
769
+ setIsReturningUser(false);
770
+ setReturningUserConnections([]);
771
+
772
+ // Navigate to signin step (NOT close the overlay)
773
+ setAuthError('');
774
+ setStep('signin');
775
+ console.log('✅ Logout complete - user is now on login page');
776
+ } catch (error) {
777
+ console.error('❌ Error during logout:', error);
778
+ // Still navigate to signin even on error
779
+ setStep('signin');
780
+ }
781
+ };
782
+ const handleResendCode = async () => {
783
+ triggerHaptic(HapticType.BUTTON_PRESS);
784
+ setAuthLoading(true);
785
+ setAuthError('');
786
+ try {
787
+ console.log('🔄 Resending verification code to:', userEmail);
788
+ const result = await sendEmailVerificationCode(userEmail);
789
+ if (result.success) {
790
+ console.log('✅ Verification code resent successfully');
791
+ } else {
792
+ setAuthError(result.message || 'Failed to resend verification code.');
793
+ }
794
+ } catch (error) {
795
+ console.error('❌ Error resending verification code:', error);
796
+ setAuthError('Network error. Please try again.');
797
+ } finally {
798
+ setAuthLoading(false);
799
+ }
800
+ };
801
+ const handlePlatformUpdate = async connectedPlatforms => {
802
+ triggerHaptic(HapticType.SUCCESS);
803
+ console.log('✅ Onboarding complete! Connected platforms:', connectedPlatforms);
804
+
805
+ // 🚀 OPTIMIZATION: Load auth data in parallel (fast!)
806
+ try {
807
+ const [token, email, storedUsername] = await Promise.all([getAuthToken(), AsyncStorage.getItem('user_email'), getOnairosUsername()]);
808
+ console.log('🔑 [SDK] Auth data retrieved in parallel');
809
+ console.log('🔑 [SDK] Token available:', token ? `${token.substring(0, 20)}...` : 'NO');
810
+ console.log('📧 [SDK] Email available:', email || 'NO');
811
+
812
+ // Set completing flag before closing
813
+ isCompletingRef.current = true;
814
+
815
+ // 🍎 FIX: Always include email if available (critical for Apple sign-in)
816
+ // Apple auth may not have SDK token, but app needs email for platform sync
817
+ const userData = {
818
+ connectedPlatforms
819
+ };
820
+ if (email) {
821
+ userData.email = email;
822
+ userData.username = storedUsername || email.split('@')[0];
823
+ }
824
+ if (token && email) {
825
+ // Full data available - include token
826
+ console.log('✅ [SDK] Calling onComplete with token and user data');
827
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, token, userData));
828
+ } else if (email) {
829
+ // 🍎 Apple sign-in case: Email available but no SDK token
830
+ // App can still sync platforms using email
831
+ console.log('🍎 [SDK] Calling onComplete with email (no SDK token - Apple auth)');
832
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', userData));
833
+ } else {
834
+ // Fallback: No email available
835
+ console.warn('⚠️ [SDK] No email found - calling onComplete with limited data');
836
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', userData));
837
+ }
838
+ } catch (error) {
839
+ console.error('❌ [SDK] Error retrieving auth data for onComplete:', error);
840
+ // Still close the modal even on error - try to get email one more time
841
+ const fallbackEmail = await AsyncStorage.getItem('user_email').catch(() => null);
842
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', {
843
+ connectedPlatforms,
844
+ ...(fallbackEmail && {
845
+ email: fallbackEmail
846
+ })
847
+ }));
848
+ }
849
+
850
+ // NOTE: Modal closes when parent sets visible={false} after onComplete finishes
851
+ // Do NOT call handleClose() here - let the loading animation stay visible
852
+ console.log('✅ [SDK] onComplete finished - waiting for parent to close modal');
853
+ };
854
+ const handlePlatformSkip = async () => {
855
+ triggerHaptic(HapticType.BUTTON_PRESS);
856
+ console.log('⏭️ Skipping platform connections');
857
+
858
+ // Even when skipping, pass back the token so the app can register the user
859
+ try {
860
+ // 🚀 OPTIMIZATION: Load data in parallel (fast!)
861
+ const [token, email, storedUsername] = await Promise.all([getAuthToken(), AsyncStorage.getItem('user_email'), getOnairosUsername()]);
862
+
863
+ // Set completing flag before closing
864
+ isCompletingRef.current = true;
865
+ if (token && email) {
866
+ console.log('✅ [SDK] User skipped platforms - still calling onComplete with auth data');
867
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, token, {
868
+ email,
869
+ connectedPlatforms: [],
870
+ username: storedUsername || email.split('@')[0],
871
+ skipped: true
872
+ }));
873
+ } else {
874
+ console.warn('⚠️ [SDK] User skipped - no auth data available');
875
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', {
876
+ connectedPlatforms: [],
877
+ skipped: true
878
+ }));
879
+ }
880
+ } catch (error) {
881
+ console.error('❌ [SDK] Error during skip:', error);
882
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', {
883
+ connectedPlatforms: [],
884
+ skipped: true
885
+ }));
886
+ }
887
+
888
+ // NOTE: Modal closes when parent sets visible={false} after onComplete finishes
889
+ console.log('✅ [SDK] Skip complete - waiting for parent to close modal');
890
+ };
891
+ const handleReviewerBypass = async () => {
892
+ console.log('🔍 Reviewer bypass triggered from platforms');
893
+ triggerHaptic(HapticType.BUTTON_PRESS);
894
+ try {
895
+ await AsyncStorage.setItem('onairos_user', 'true');
896
+ // Note: Reviewer bypass uses a placeholder token
897
+ await storeJWT('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder');
898
+ console.log('✅ Stored reviewer bypass markers');
899
+ handleClose();
900
+ } catch (error) {
901
+ console.error('❌ Failed to store reviewer bypass:', error);
902
+ handleClose();
903
+ }
904
+ };
905
+
906
+ // ============================================
907
+ // END ENOCH-STYLE FLOW HANDLERS
908
+ // ============================================
909
+
910
+ const handleConnectPlatform = async platformId => {
911
+ // Trigger haptic feedback when connect button is pressed
912
+ triggerHaptic(HapticType.BUTTON_PRESS);
913
+ setConnectingPlatform(platformId);
914
+ try {
915
+ // Check if the platform has a native SDK
916
+ if (hasNativeSDK(platformId)) {
917
+ // Use native SDK authentication
918
+ setCurrentPlatform(platformId);
919
+ const success = await initiateNativeAuth(platformId, username);
920
+ if (success) {
921
+ // Update connections state
922
+ setConnections(prev => ({
923
+ ...prev,
924
+ [platformId]: {
925
+ userName: username,
926
+ connected: true
927
+ }
928
+ }));
929
+
930
+ // Update platform toggles
931
+ setPlatformToggles(prev => ({
932
+ ...prev,
933
+ [platformId]: true
934
+ }));
935
+
936
+ // Update connection statuses
937
+ setConnectionStatuses(prev => ({
938
+ ...prev,
939
+ [platformId]: 'connected'
940
+ }));
941
+
942
+ // Store the connected platform
943
+ await storeConnectedPlatform(platformId);
944
+ }
945
+ } else {
946
+ // For other platforms, use the web OAuth flow
947
+ setCurrentPlatform(platformId);
948
+ const oauthUrl = await initiateOAuth(platformId, username);
949
+ if (oauthUrl) {
950
+ setOauthUrl(oauthUrl);
951
+ setStep('oauth');
952
+ }
953
+ }
954
+ } catch (error) {
955
+ console.error(`Error connecting to ${platformId}:`, error);
956
+ } finally {
957
+ setConnectingPlatform(null);
958
+ }
959
+ };
960
+ const togglePlatform = useCallback(async platformId => {
961
+ // If toggling on, initiate the OAuth flow for the platform
962
+ if (!platformToggles[platformId]) {
963
+ try {
964
+ // Special case for Instagram which uses the existing flow
965
+ if (platformId === 'instagram') {
966
+ setPlatformToggles(prev => ({
967
+ ...prev,
968
+ [platformId]: !prev[platformId]
969
+ }));
970
+ setConnections(prev => ({
971
+ ...prev,
972
+ [platformId]: {
973
+ userName: `${platformId}_user`,
974
+ connected: true
975
+ }
976
+ }));
977
+ // Store the connected platform
978
+ await storeConnectedPlatform(platformId);
979
+ return;
980
+ }
981
+
982
+ // ChatGPT/LLM: Full backend implementation - send data directly to backend
983
+ if (platformId === 'chatgpt' || platformId === 'llm') {
984
+ console.log('🤖 Handling LLM/ChatGPT connection - sending to backend...');
985
+
986
+ // In production, this would trigger OAuth flow to get actual ChatGPT data
987
+ // For now, using mock data structure
988
+ const llmData = {
989
+ userId: email || username,
990
+ email: email || `${username}@temp.com`,
991
+ appName: AppName,
992
+ timestamp: Date.now(),
993
+ data: {
994
+ conversations: [],
995
+ chatHistory: [],
996
+ preferences: {},
997
+ customData: {}
998
+ },
999
+ // These would come from actual OAuth flow
1000
+ accessToken: undefined,
1001
+ refreshToken: undefined,
1002
+ tokenExpiry: undefined
1003
+ };
1004
+
1005
+ // Send LLM data directly to backend for processing and storage
1006
+ const result = await sendLLMDataToBackend(llmData);
1007
+ if (result.success) {
1008
+ console.log('✅ Backend received and stored LLM data');
1009
+ console.log('📝 Connection ID:', result.connectionId);
1010
+
1011
+ // Update platform toggle state
1012
+ setPlatformToggles(prev => ({
1013
+ ...prev,
1014
+ [platformId]: true
1015
+ }));
1016
+
1017
+ // Update connections state
1018
+ setConnections(prev => ({
1019
+ ...prev,
1020
+ [platformId]: {
1021
+ userName: username,
1022
+ connected: true,
1023
+ connectionId: result.connectionId,
1024
+ storedInBackend: true
1025
+ }
1026
+ }));
1027
+
1028
+ // Store the connected platform
1029
+ await storeConnectedPlatform(platformId);
1030
+ console.log(`✅ ${platformId} successfully connected and stored in backend`);
1031
+ } else {
1032
+ throw new Error(`Failed to send LLM data to backend: ${result.message}`);
1033
+ }
1034
+ return;
1035
+ }
1036
+
1037
+ // Check if the platform has a native SDK
1038
+ if (hasNativeSDK(platformId)) {
1039
+ // Use native SDK authentication
1040
+ setCurrentPlatform(platformId);
1041
+ const success = await initiateNativeAuth(platformId, username);
1042
+ if (success) {
1043
+ // Update connections state
1044
+ setConnections(prev => ({
1045
+ ...prev,
1046
+ [platformId]: {
1047
+ userName: username,
1048
+ connected: true
1049
+ }
1050
+ }));
1051
+
1052
+ // Update platform toggles
1053
+ setPlatformToggles(prev => ({
1054
+ ...prev,
1055
+ [platformId]: true
1056
+ }));
1057
+
1058
+ // Store the connected platform
1059
+ await storeConnectedPlatform(platformId);
1060
+ }
1061
+ return;
1062
+ }
1063
+
1064
+ // For other platforms, use the web OAuth flow
1065
+ setCurrentPlatform(platformId);
1066
+ const oauthUrl = await initiateOAuth(platformId, username);
1067
+
1068
+ // If oauthUrl is null, it means we should use native SDK (which should have been caught above)
1069
+ if (oauthUrl) {
1070
+ setOauthUrl(oauthUrl);
1071
+ setStep('oauth');
1072
+ }
1073
+ } catch (error) {
1074
+ console.error(`Error initiating OAuth for ${platformId}:`, error);
1075
+ // If there's an error, don't toggle the platform
1076
+ return;
1077
+ }
1078
+ } else {
1079
+ // If toggling off, just update the state
1080
+ setPlatformToggles(prev => ({
1081
+ ...prev,
1082
+ [platformId]: !prev[platformId]
1083
+ }));
1084
+
1085
+ // Remove connection
1086
+ setConnections(prev => {
1087
+ const newConnections = {
1088
+ ...prev
1089
+ };
1090
+ delete newConnections[platformId];
1091
+ return newConnections;
1092
+ });
1093
+ }
1094
+ }, [platformToggles, username]);
1095
+
1096
+ /**
1097
+ * Handles OAuth callback URLs
1098
+ */
1099
+ const handleOAuthCallback = useCallback(url => {
1100
+ try {
1101
+ // Extract the authorization code from the URL
1102
+ const parsedUrl = new URL(url);
1103
+ const code = parsedUrl.searchParams.get('code');
1104
+ const platform = parsedUrl.searchParams.get('platform') || currentPlatform;
1105
+ if (code && platform) {
1106
+ // Update connections state
1107
+ setConnections(prev => ({
1108
+ ...prev,
1109
+ [platform]: {
1110
+ userName: username,
1111
+ connected: true
1112
+ }
1113
+ }));
1114
+
1115
+ // Update platform toggles
1116
+ setPlatformToggles(prev => ({
1117
+ ...prev,
1118
+ [platform]: true
1119
+ }));
1120
+
1121
+ // Return to the connect step
1122
+ setStep('connect');
1123
+ }
1124
+ } catch (error) {
1125
+ console.error('Error handling OAuth callback:', error);
1126
+ }
1127
+ }, [currentPlatform, username]);
1128
+
1129
+ /**
1130
+ * Handles successful OAuth authentication from the OAuthWebView
1131
+ */
1132
+ const handleOAuthSuccess = useCallback(async code => {
1133
+ console.log(`🎉 OAuth success for ${currentPlatform} - backend callback completed`);
1134
+ console.log(`📝 Received result:`, code);
1135
+ if (currentPlatform) {
1136
+ console.log(`✅ Updating connection state for ${currentPlatform}`);
1137
+
1138
+ // Update connections state
1139
+ setConnections(prev => ({
1140
+ ...prev,
1141
+ [currentPlatform]: {
1142
+ userName: username,
1143
+ connected: true
1144
+ }
1145
+ }));
1146
+
1147
+ // Update platform toggles
1148
+ setPlatformToggles(prev => ({
1149
+ ...prev,
1150
+ [currentPlatform]: true
1151
+ }));
1152
+
1153
+ // Update connection statuses
1154
+ setConnectionStatuses(prev => ({
1155
+ ...prev,
1156
+ [currentPlatform]: 'connected'
1157
+ }));
1158
+
1159
+ // Store the connected platform
1160
+ await storeConnectedPlatform(currentPlatform);
1161
+ console.log(`💾 ${currentPlatform} connection stored successfully`);
1162
+ }
1163
+
1164
+ // Close the OAuth window by returning to the connect step
1165
+ console.log('🔄 Returning to connect step');
1166
+ setOauthUrl('');
1167
+ setStep('connect');
1168
+ }, [currentPlatform, username, storeConnectedPlatform]);
1169
+ const handlePinSubmit = useCallback(async userPin => {
1170
+ setPin(userPin);
1171
+
1172
+ // Store PIN temporarily for training component access
1173
+ setTemporaryPin(userPin);
1174
+ console.log('🔐 [PIN SUBMIT] PIN submitted, checking for background training...');
1175
+
1176
+ // ✅ NEW: Check if background training is already running
1177
+ if (isBackgroundTrainingStarted && backgroundSocketId) {
1178
+ console.log('✅ [PIN SUBMIT] Background training detected, continuing with PIN validation...');
1179
+
1180
+ // Continue with existing training by sending PIN validation
1181
+ try {
1182
+ await continueBackgroundTrainingWithPin(userPin);
1183
+ setStep('persona'); // Move to persona step to show training progress
1184
+ } catch (error) {
1185
+ console.error('❌ [PIN SUBMIT] Failed to continue background training:', error);
1186
+ // ❌ DISABLED: Don't start new training when PIN is submitted
1187
+ // Just show persona step with error state
1188
+ setStep('persona');
1189
+ setPersonaStatus('Error: Failed to continue training');
1190
+ setHasError(true);
1191
+ }
1192
+ } else {
1193
+ console.log('ℹ️ [PIN SUBMIT] No background training detected');
1194
+ // ❌ DISABLED: Don't start training when PIN is submitted
1195
+ // Training should only start during connector→PIN transition
1196
+ setStep('persona');
1197
+ setPersonaStatus('No training in progress. Please restart the flow.');
1198
+ setHasError(true);
1199
+ }
1200
+ console.log('🔐 [PIN SUBMIT] PIN stored securely, moved to persona step');
1201
+ }, [isBackgroundTrainingStarted, backgroundSocketId]);
1202
+
1203
+ // Start real Enoch training via API (restored for backwards compatibility)
1204
+ const startEnochTraining = async (socketId, authToken) => {
1205
+ try {
1206
+ setPersonaStatus('Starting training...');
1207
+ setPersonaProgress(15);
1208
+
1209
+ // Use provided token or get from simplified JWT storage
1210
+ const token = authToken || (await getJWT());
1211
+ if (!token) {
1212
+ console.error('❌ No authentication token available');
1213
+ throw new Error('No authentication token available');
1214
+ }
1215
+ console.log('🚀 Starting Enoch training with socketId:', socketId);
1216
+ console.log('🔑 Using auth token:', token ? `${token.substring(0, 20)}...` : 'None');
1217
+
1218
+ // Get stored Onairos username for API calls
1219
+ const storedUsername = await getOnairosUsername();
1220
+ const finalUsername = storedUsername || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user';
1221
+
1222
+ // Get connected platforms information
1223
+ const connectedPlatforms = await AsyncStorage.getItem('connectedPlatforms');
1224
+ const platformsList = connectedPlatforms ? JSON.parse(connectedPlatforms) : [];
1225
+ console.log('📱 Connected platforms for training:', platformsList);
1226
+
1227
+ // Get encrypted PIN for training (if available)
1228
+ const encryptedPin = await getEncryptedPinForAPI().catch(error => {
1229
+ console.warn('⚠️ Could not get encrypted PIN for training:', error);
1230
+ return null;
1231
+ });
1232
+
1233
+ // Prepare user data for training - match backend expected format
1234
+ const trainingData = {
1235
+ socketId,
1236
+ username: finalUsername,
1237
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
1238
+ modelKey: null,
1239
+ connectedPlatforms: platformsList,
1240
+ platformConnections: connections,
1241
+ ...(encryptedPin && {
1242
+ encryptedPin: encryptedPin,
1243
+ hasPinData: true
1244
+ })
1245
+ };
1246
+ console.log('📤 Sending training data to /mobile-training/enoch:', trainingData);
1247
+
1248
+ // Use the new training function that includes YouTube migration check
1249
+ const result = await startEnochTrainingWithYouTubeCheck(trainingData);
1250
+ console.log('📡 Training API response:', result);
1251
+
1252
+ // Handle CONNECTIONS_REQUIRED scenario (pre-training validation)
1253
+ if (result.requiresConnections || result.code === 'CONNECTIONS_REQUIRED') {
1254
+ console.log('🔗 Connections required detected from HTTP response');
1255
+ setDataScenario('CONNECTIONS_REQUIRED');
1256
+ setDataDetails(result);
1257
+ setShowDataWarning(true);
1258
+ setPersonaStatus('Connections required');
1259
+ setHasError(true);
1260
+ stopDotsAnimation();
1261
+ return;
1262
+ }
1263
+ if (result.success) {
1264
+ console.log('🚀 Training Started:', result.message);
1265
+ console.log('🎯 Training Features:', result.features);
1266
+
1267
+ // Log the new features from the spec
1268
+ if (result.features) {
1269
+ console.log('✅ Inference enabled:', result.features.inference);
1270
+ console.log('💾 Storage method:', result.features.storage);
1271
+ console.log('🔒 Compression enabled:', result.features.compression);
1272
+ console.log('🔐 Encryption enabled:', result.features.encryption);
1273
+ console.log('📊 Training type:', result.features.type);
1274
+ console.log('🗄️ Databases:', result.features.databases);
1275
+ console.log('📈 Query scores enabled:', result.features.queryScores);
1276
+ }
1277
+ setPersonaStatus('Training model...');
1278
+ setPersonaProgress(25);
1279
+ } else {
1280
+ console.error('❌ Training start failed:', result.error);
1281
+ setPersonaStatus(`Error: ${result.error || 'Training failed to start'}`);
1282
+ setHasError(true);
1283
+ stopDotsAnimation();
1284
+ }
1285
+ } catch (error) {
1286
+ console.error('❌ Training start error:', error);
1287
+ setPersonaStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1288
+ setHasError(true);
1289
+ stopDotsAnimation();
1290
+ }
1291
+ };
1292
+
1293
+ // ✅ NEW: Continue background training with PIN validation
1294
+ const continueBackgroundTrainingWithPin = async userPin => {
1295
+ try {
1296
+ console.log('🔐 [BACKGROUND] Continuing existing background training with PIN validation');
1297
+ console.log('🔑 Using auth token:', `${userToken === null || userToken === void 0 ? void 0 : userToken.substring(0, 20)}...`);
1298
+
1299
+ // Check if we have a valid socket ID
1300
+ if (!backgroundSocketId) {
1301
+ throw new Error('No background socket ID available');
1302
+ }
1303
+
1304
+ // ❌ REMOVED: Don't send new training signal - training already started!
1305
+ // We should just validate the PIN with the existing training, not start new training
1306
+
1307
+ console.log('🔐 [BACKGROUND] PIN validation - continuing with existing training session');
1308
+ console.log('🔌 [BACKGROUND] Using existing socket ID:', backgroundSocketId);
1309
+
1310
+ // Just log that we're continuing - the existing training should handle PIN internally
1311
+ console.log('✅ [BACKGROUND] PIN submitted for existing training session');
1312
+ } catch (error) {
1313
+ console.error('❌ [BACKGROUND] Failed to continue background training:', error);
1314
+ throw error;
1315
+ }
1316
+ };
1317
+
1318
+ // Replace fake persona creation with real training setup
1319
+ const startPersonaCreation = async () => {
1320
+ setPersonaProgress(0);
1321
+ setPersonaStatus('Initializing');
1322
+ setIsPersonaComplete(false);
1323
+ setHasError(false);
1324
+
1325
+ // Start the dots animation
1326
+ startDotsAnimation();
1327
+ try {
1328
+ var _user$email4;
1329
+ console.log('🚀 Starting persona creation...');
1330
+
1331
+ // Ensure we have a valid authentication token before starting
1332
+ console.log('🔐 Step 1: Ensuring authentication token...');
1333
+ const authToken = await ensureAuthToken();
1334
+ if (!authToken) {
1335
+ throw new Error('Failed to create or retrieve authentication token');
1336
+ }
1337
+
1338
+ // Set the token in state
1339
+ setUserToken(authToken);
1340
+ console.log('✅ Authentication token set in state:', `${authToken.substring(0, 20)}...`);
1341
+ console.log('🔍 Token length:', authToken.length);
1342
+
1343
+ // Also verify it was stored properly using simplified JWT storage
1344
+ const storedToken = await getJWT();
1345
+ console.log('🔑 Token stored verification:', storedToken ? `${storedToken.substring(0, 20)}...` : 'Not stored');
1346
+
1347
+ // If userInfo is not set, try to reload it
1348
+ if (!userInfo) {
1349
+ var _user$email3;
1350
+ console.log('🔄 UserInfo not available, attempting to reload...');
1351
+ const storedUsername = await getOnairosUsername();
1352
+ const fallbackUsername = storedUsername || (user === null || user === void 0 || (_user$email3 = user.email) === null || _user$email3 === void 0 ? void 0 : _user$email3.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
1353
+ const newUserInfo = {
1354
+ username: fallbackUsername,
1355
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1356
+ id: null
1357
+ };
1358
+ setUserInfo(newUserInfo);
1359
+ setUsername(fallbackUsername);
1360
+ console.log('🧑‍💻 Set user info:', newUserInfo);
1361
+
1362
+ // Give a moment for state to update
1363
+ await new Promise(resolve => setTimeout(() => resolve(), 200));
1364
+ }
1365
+
1366
+ // Check again after potential reload
1367
+ const currentUserInfo = userInfo || {
1368
+ username: username || (user === null || user === void 0 || (_user$email4 = user.email) === null || _user$email4 === void 0 ? void 0 : _user$email4.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user',
1369
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1370
+ id: null
1371
+ };
1372
+ if (!authToken) {
1373
+ console.error('❌ No authentication token available after ensureAuthToken');
1374
+ throw new Error('No authentication token available');
1375
+ }
1376
+ console.log('🔧 Setting up socket connection for real training...');
1377
+ console.log('🧑‍💻 User info available:', currentUserInfo);
1378
+ console.log('🔑 Token available:', !!authToken);
1379
+ console.log('🌐 Attempting to connect to: ${API_CONFIG.BASE_URL}');
1380
+ console.log('📱 Device platform:', Platform.OS);
1381
+ console.log('🔗 Network connectivity check starting...');
1382
+ setPersonaStatus('Connecting');
1383
+ setPersonaProgress(5);
1384
+
1385
+ // Initialize socket connection with enhanced configuration
1386
+ socketRef.current = io(API_CONFIG.BASE_URL, {
1387
+ transports: ['websocket', 'polling'],
1388
+ // Add polling as fallback
1389
+ autoConnect: false,
1390
+ timeout: 15000,
1391
+ // Increase timeout to 15 seconds
1392
+ reconnection: true,
1393
+ // Enable reconnection with limits
1394
+ reconnectionAttempts: 3,
1395
+ reconnectionDelay: 1000,
1396
+ forceNew: true // Force a new connection
1397
+ });
1398
+ console.log('🔌 Socket instance created:', {
1399
+ connected: socketRef.current.connected,
1400
+ id: socketRef.current.id,
1401
+ disconnected: socketRef.current.disconnected
1402
+ });
1403
+
1404
+ // Socket event listeners with enhanced error handling
1405
+ socketRef.current.on('connect', () => {
1406
+ var _socketRef$current, _socketRef$current2, _socketRef$current3, _socketRef$current4;
1407
+ console.log('✅ Socket connected for training');
1408
+ console.log('🔌 Socket connection details:', {
1409
+ id: (_socketRef$current = socketRef.current) === null || _socketRef$current === void 0 ? void 0 : _socketRef$current.id,
1410
+ connected: (_socketRef$current2 = socketRef.current) === null || _socketRef$current2 === void 0 ? void 0 : _socketRef$current2.connected,
1411
+ transport: (_socketRef$current3 = socketRef.current) === null || _socketRef$current3 === void 0 || (_socketRef$current3 = _socketRef$current3.io) === null || _socketRef$current3 === void 0 || (_socketRef$current3 = _socketRef$current3.engine) === null || _socketRef$current3 === void 0 || (_socketRef$current3 = _socketRef$current3.transport) === null || _socketRef$current3 === void 0 ? void 0 : _socketRef$current3.name
1412
+ });
1413
+ setSocketConnected(true);
1414
+ setPersonaStatus('Starting training');
1415
+ setPersonaProgress(10);
1416
+ const socketId = (_socketRef$current4 = socketRef.current) === null || _socketRef$current4 === void 0 ? void 0 : _socketRef$current4.id;
1417
+ console.log('🔌 Socket ID for training:', socketId);
1418
+ if (socketId) {
1419
+ // Add a small delay to ensure socket is fully ready and registered on backend
1420
+ console.log('🔄 Socket ready for persona display with token:', authToken ? `${authToken.substring(0, 20)}...` : 'None');
1421
+ console.log('⏰ Socket registered but training will not start from persona screen...');
1422
+ // ❌ DISABLED: Don't start training from persona screen
1423
+ // Training should only start during connector→PIN transition
1424
+ // setTimeout(() => {
1425
+ // console.log('🚀 Now starting training with socket ID:', socketId);
1426
+ // startEnochTraining(socketId, authToken);
1427
+ // }, 2000);
1428
+
1429
+ // Just show the persona screen without starting training
1430
+ setPersonaStatus('Waiting for training to start from connector→PIN transition');
1431
+ } else {
1432
+ console.error('❌ No socket ID available after connection');
1433
+ setPersonaStatus('Connection error. Please try again.');
1434
+ setHasError(true);
1435
+ stopDotsAnimation();
1436
+ }
1437
+ });
1438
+ socketRef.current.on('disconnect', reason => {
1439
+ var _socketRef$current5;
1440
+ console.log('❌ Socket disconnected, reason:', reason);
1441
+ console.log('🔍 Disconnect details:', {
1442
+ reason: reason,
1443
+ wasConnected: socketConnected,
1444
+ socketId: (_socketRef$current5 = socketRef.current) === null || _socketRef$current5 === void 0 ? void 0 : _socketRef$current5.id
1445
+ });
1446
+ setSocketConnected(false);
1447
+ });
1448
+ socketRef.current.on('reconnect', attemptNumber => {
1449
+ console.log('🔄 Socket reconnected after', attemptNumber, 'attempts');
1450
+ setSocketConnected(true);
1451
+ });
1452
+ socketRef.current.on('reconnect_attempt', attemptNumber => {
1453
+ console.log('🔄 Socket reconnection attempt:', attemptNumber);
1454
+ setPersonaStatus(`Reconnecting... (${attemptNumber}/3)`);
1455
+ });
1456
+ socketRef.current.on('reconnect_error', error => {
1457
+ console.error('❌ Socket reconnection error:', error);
1458
+ });
1459
+ socketRef.current.on('reconnect_failed', () => {
1460
+ console.error('❌ Socket reconnection failed after all attempts');
1461
+ setPersonaStatus('Connection failed. Please try again.');
1462
+ setHasError(true);
1463
+ stopDotsAnimation();
1464
+ });
1465
+ socketRef.current.on('connect_error', error => {
1466
+ console.error('❌ Socket connection error:', error);
1467
+ console.error('❌ Socket error details:', {
1468
+ message: error.message,
1469
+ name: error.name,
1470
+ stack: error.stack,
1471
+ errorObject: error
1472
+ });
1473
+ setPersonaStatus('Connection error. Please try again.');
1474
+ setHasError(true);
1475
+ stopDotsAnimation();
1476
+ });
1477
+ socketRef.current.on('trainingCompleted', data => {
1478
+ console.log('✅ Training Complete:', data);
1479
+ setPersonaStatus('Running test inference');
1480
+ setPersonaProgress(60);
1481
+ });
1482
+ socketRef.current.on('inferenceCompleted', data => {
1483
+ console.log('🧠 Inference Complete:', data);
1484
+ setPersonaStatus('Uploading to S3');
1485
+ setPersonaProgress(80);
1486
+ setUserTraits(data.traits);
1487
+ setInferenceResults(data.inferenceResults);
1488
+ });
1489
+ socketRef.current.on('modelStandby', data => {
1490
+ console.log('🎉 All Complete:', data);
1491
+
1492
+ // Log completion details based on new spec
1493
+ if (data.completed) {
1494
+ console.log('✅ Training completed:', data.message);
1495
+ console.log('💾 Storage method:', data.storage);
1496
+ console.log('🔐 Encryption enabled:', data.encryption);
1497
+ console.log('🧠 Inference enabled:', data.inference);
1498
+
1499
+ // Log database info for Enoch mode
1500
+ if (data.databases && Array.isArray(data.databases)) {
1501
+ console.log('🗄️ Databases used:', data.databases.join(', '));
1502
+ }
1503
+
1504
+ // Log testing mode
1505
+ if (data.testing) {
1506
+ console.log('🧪 Testing mode enabled');
1507
+ }
1508
+ }
1509
+ setIsPersonaComplete(true);
1510
+ setPersonaStatus('Complete!');
1511
+ setPersonaProgress(100);
1512
+ stopDotsAnimation();
1513
+ });
1514
+ socketRef.current.on('trainingUpdate', data => {
1515
+ console.log('📊 Training update:', data);
1516
+
1517
+ // Handle YouTube token expiry
1518
+ if (data.error && data.error.includes('YouTube access token has expired')) {
1519
+ console.log('🔄 YouTube token expired, triggering reconnection...');
1520
+ setDataScenario(null);
1521
+ setShowDataWarning(false);
1522
+ setPersonaStatus('YouTube token expired - reconnecting...');
1523
+
1524
+ // Try to refresh tokens first before full reconnection
1525
+ setTimeout(async () => {
1526
+ try {
1527
+ console.log('🔄 Attempting to refresh YouTube tokens...');
1528
+ const refreshSuccess = await refreshYouTubeTokens();
1529
+ if (refreshSuccess) {
1530
+ console.log('✅ YouTube tokens refreshed, but training restart disabled');
1531
+ setPersonaStatus('YouTube tokens refreshed - but training only starts from connector→PIN');
1532
+
1533
+ // ❌ DISABLED: Don't restart training from persona screen
1534
+ // Training should only start during connector→PIN transition
1535
+ // if (socketRef.current?.id) {
1536
+ // startEnochTraining(socketRef.current.id, userToken ?? undefined);
1537
+ // }
1538
+
1539
+ setHasError(true); // Show error so user can restart flow properly
1540
+ } else {
1541
+ console.log('❌ Token refresh failed, attempting full reconnection...');
1542
+ setPersonaStatus('Token refresh failed - please restart from connector screen');
1543
+
1544
+ // ❌ DISABLED: Don't restart training from persona screen
1545
+ // Fall back to full reconnection
1546
+ try {
1547
+ await handleConnectPlatform('youtube');
1548
+ console.log('✅ YouTube reconnected, but training restart disabled');
1549
+ setPersonaStatus('YouTube reconnected - please restart from connector screen');
1550
+
1551
+ // ❌ DISABLED: Don't restart training from persona screen
1552
+ // Training should only start during connector→PIN transition
1553
+ // if (socketRef.current?.id) {
1554
+ // startEnochTraining(socketRef.current.id, userToken ?? undefined);
1555
+ // }
1556
+
1557
+ setHasError(true); // Show error so user can restart flow properly
1558
+ } catch (reconnectError) {
1559
+ console.error('❌ YouTube reconnection failed:', reconnectError);
1560
+ setPersonaStatus('YouTube reconnection failed. Please restart from connector screen.');
1561
+ setHasError(true);
1562
+ stopDotsAnimation();
1563
+ }
1564
+ }
1565
+ } catch (error) {
1566
+ console.error('❌ YouTube token refresh/reconnection error:', error);
1567
+ setPersonaStatus('YouTube connection failed. Please try again.');
1568
+ setHasError(true);
1569
+ stopDotsAnimation();
1570
+ }
1571
+ }, 1000);
1572
+ return;
1573
+ }
1574
+
1575
+ // Handle connections required scenario (pre-training validation)
1576
+ if (data.requiresConnections || data.code === 'CONNECTIONS_REQUIRED') {
1577
+ console.log('🔗 Connections required detected from socket');
1578
+ setDataScenario('CONNECTIONS_REQUIRED');
1579
+ setDataDetails(data);
1580
+ setShowDataWarning(true);
1581
+ setPersonaStatus('Connections required');
1582
+ setHasError(true);
1583
+ stopDotsAnimation();
1584
+ return;
1585
+ }
1586
+
1587
+ // Handle data scenario responses
1588
+ if (data.code === 'NO_DATA') {
1589
+ console.log('🚫 No data scenario detected');
1590
+ setDataScenario('NO_DATA');
1591
+ setDataDetails(data.details);
1592
+ setShowDataWarning(true);
1593
+ setPersonaStatus('No interaction data found');
1594
+ setHasError(true);
1595
+ stopDotsAnimation();
1596
+ return;
1597
+ }
1598
+ if (data.code === 'LIMITED_DATA') {
1599
+ console.log('ℹ️ Limited data scenario detected');
1600
+ setDataScenario('LIMITED_DATA');
1601
+ setDataDetails(data.details);
1602
+ setShowDataWarning(true);
1603
+ setPersonaStatus('Creating your persona with available data');
1604
+ // Don't set hasError - training continues
1605
+ return;
1606
+ }
1607
+
1608
+ // Handle regular training updates
1609
+ if (data.error) {
1610
+ console.error('❌ Training update error:', data.error);
1611
+ setPersonaStatus(`Error: ${data.error}`);
1612
+ setHasError(true);
1613
+ stopDotsAnimation();
1614
+ } else if (data.progress) {
1615
+ setPersonaProgress(data.progress);
1616
+ setPersonaStatus(data.status || 'Training in progress');
1617
+ // Clear data warning if training progresses normally
1618
+ if (showDataWarning && data.progress > 30) {
1619
+ setShowDataWarning(false);
1620
+ }
1621
+ }
1622
+ });
1623
+
1624
+ // Connect to socket with timeout
1625
+ console.log('🔌 Attempting to connect to socket...');
1626
+ console.log('🔌 Socket config:', {
1627
+ url: API_CONFIG.BASE_URL,
1628
+ transports: ['websocket'],
1629
+ autoConnect: false,
1630
+ timeout: 10000,
1631
+ reconnection: false
1632
+ });
1633
+ socketRef.current.connect();
1634
+ console.log('🔌 Socket connect() called - waiting for connection...');
1635
+
1636
+ // Add immediate state check
1637
+ setTimeout(() => {
1638
+ var _socketRef$current6, _socketRef$current7, _socketRef$current8, _socketRef$current9;
1639
+ console.log('🔍 Socket state after 1 second:', {
1640
+ connected: (_socketRef$current6 = socketRef.current) === null || _socketRef$current6 === void 0 ? void 0 : _socketRef$current6.connected,
1641
+ disconnected: (_socketRef$current7 = socketRef.current) === null || _socketRef$current7 === void 0 ? void 0 : _socketRef$current7.disconnected,
1642
+ id: (_socketRef$current8 = socketRef.current) === null || _socketRef$current8 === void 0 ? void 0 : _socketRef$current8.id,
1643
+ engineConnected: (_socketRef$current9 = socketRef.current) === null || _socketRef$current9 === void 0 || (_socketRef$current9 = _socketRef$current9.io) === null || _socketRef$current9 === void 0 || (_socketRef$current9 = _socketRef$current9.engine) === null || _socketRef$current9 === void 0 ? void 0 : _socketRef$current9.readyState
1644
+ });
1645
+ }, 1000);
1646
+ setTimeout(() => {
1647
+ var _socketRef$current0, _socketRef$current1, _socketRef$current10, _socketRef$current11;
1648
+ console.log('🔍 Socket state after 5 seconds:', {
1649
+ connected: (_socketRef$current0 = socketRef.current) === null || _socketRef$current0 === void 0 ? void 0 : _socketRef$current0.connected,
1650
+ disconnected: (_socketRef$current1 = socketRef.current) === null || _socketRef$current1 === void 0 ? void 0 : _socketRef$current1.disconnected,
1651
+ id: (_socketRef$current10 = socketRef.current) === null || _socketRef$current10 === void 0 ? void 0 : _socketRef$current10.id,
1652
+ engineConnected: (_socketRef$current11 = socketRef.current) === null || _socketRef$current11 === void 0 || (_socketRef$current11 = _socketRef$current11.io) === null || _socketRef$current11 === void 0 || (_socketRef$current11 = _socketRef$current11.engine) === null || _socketRef$current11 === void 0 ? void 0 : _socketRef$current11.readyState
1653
+ });
1654
+ }, 5000);
1655
+
1656
+ // Set a timeout for socket connection with enhanced fallback
1657
+ setTimeout(() => {
1658
+ if (!socketConnected && socketRef.current && !socketRef.current.connected) {
1659
+ console.error('❌ Socket connection timeout after 20 seconds');
1660
+ console.error('🔍 Socket state:', {
1661
+ connected: socketRef.current.connected,
1662
+ disconnected: socketRef.current.disconnected,
1663
+ id: socketRef.current.id
1664
+ });
1665
+ setPersonaStatus('Connection timeout. Please check your internet and try again.');
1666
+ setHasError(true);
1667
+ stopDotsAnimation();
1668
+
1669
+ // Cleanup socket
1670
+ if (socketRef.current) {
1671
+ socketRef.current.disconnect();
1672
+ socketRef.current = null;
1673
+ }
1674
+ }
1675
+ }, 20000); // Increased timeout to 20 seconds
1676
+ } catch (error) {
1677
+ console.error('❌ Error in startPersonaCreation:', error);
1678
+ setPersonaStatus('Failed to initialize training. Please try again.');
1679
+ setHasError(true);
1680
+ stopDotsAnimation();
1681
+ }
1682
+ };
1683
+
1684
+ // Get user-friendly status message based on progress (updated for real training)
1685
+ const getPersonaStatusMessage = progress => {
1686
+ if (hasError) return 'Something went wrong. Please try again.';
1687
+ if (isPersonaComplete) return 'Your persona is ready! 🎉';
1688
+ let baseMessage = '';
1689
+ if (progress < 20) {
1690
+ baseMessage = 'Keeping your data private';
1691
+ } else if (progress < 40) {
1692
+ baseMessage = 'Trying to understand your mind';
1693
+ } else if (progress < 60) {
1694
+ baseMessage = 'You\'re more interesting than I expected';
1695
+ } else if (progress < 80) {
1696
+ baseMessage = 'Finalizing your unique persona';
1697
+ } else if (progress < 95) {
1698
+ baseMessage = 'Almost done';
1699
+ } else {
1700
+ baseMessage = 'Just a few more seconds';
1701
+ }
1702
+ return baseMessage + animatedDots;
1703
+ };
1704
+
1705
+ // Handle persona completion - now continues the onboarding flow instead of going to separate training
1706
+ const handlePersonaComplete = async () => {
1707
+ console.log('🎉 Real persona creation completed successfully');
1708
+ // Cleanup socket connection
1709
+ if (socketRef.current) {
1710
+ console.log('🔌 Disconnecting training socket...');
1711
+ socketRef.current.disconnect();
1712
+ socketRef.current = null;
1713
+ }
1714
+ // Clear temporary PIN since training is complete
1715
+ clearTemporaryPin();
1716
+ // Set the completion flag BEFORE calling onComplete
1717
+ isCompletingRef.current = true;
1718
+
1719
+ // Get the real authentication token using simplified JWT storage
1720
+ try {
1721
+ const realToken = await getJWT();
1722
+ if (realToken) {
1723
+ console.log('✅ Using real authentication token for onComplete:', `${realToken.substring(0, 30)}...`);
1724
+ // Call onComplete with the REAL token that was created during ensureAuthToken
1725
+ onComplete === null || onComplete === void 0 || onComplete(API_CONFIG.BASE_URL, realToken, {
1726
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1727
+ ...userInfo
1728
+ });
1729
+ } else {
1730
+ console.error('❌ No real authentication token found after training completion');
1731
+ // Fallback to placeholder token if no real token exists
1732
+ onComplete === null || onComplete === void 0 || onComplete(API_CONFIG.BASE_URL, 'training-complete-token', {
1733
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1734
+ ...userInfo
1735
+ });
1736
+ }
1737
+ } catch (error) {
1738
+ console.error('❌ Error retrieving real token for onComplete:', error);
1739
+ // Fallback to placeholder token on error
1740
+ onComplete === null || onComplete === void 0 || onComplete(API_CONFIG.BASE_URL, 'training-complete-token', {
1741
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1742
+ ...userInfo
1743
+ });
1744
+ }
1745
+ };
1746
+
1747
+ // Ensure authentication token exists before training
1748
+ // NOTE: SDK no longer creates users - user should be authenticated first via Google/Apple/Email
1749
+ const ensureAuthToken = async () => {
1750
+ try {
1751
+ // Use simplified JWT storage to check for existing token
1752
+ const existingToken = await getJWT();
1753
+ if (existingToken && existingToken.trim().length > 20) {
1754
+ console.log('✅ Authentication token already exists:', `${existingToken.substring(0, 20)}...`);
1755
+ console.log('🔍 Token length:', existingToken.length);
1756
+ return existingToken;
1757
+ }
1758
+
1759
+ // NOTE: SDK no longer creates users during onboarding
1760
+ // User should be authenticated first via Google/Apple/Email
1761
+ console.warn('⚠️ No authentication token found');
1762
+ console.warn('ℹ️ SDK does not create users during onboarding');
1763
+ console.warn('ℹ️ User should authenticate first via Google/Apple/Email');
1764
+
1765
+ // Return null - consuming app is responsible for ensuring user is authenticated
1766
+ return null;
1767
+ } catch (error) {
1768
+ console.error('❌ Error checking authentication token:', error);
1769
+ throw error;
1770
+ }
1771
+ };
1772
+ const canProceed = Object.values(platformToggles).some(value => value);
1773
+ const handleProceed = () => {
1774
+ if (canProceed) {
1775
+ // Trigger haptic feedback when continue button is pressed
1776
+ triggerHaptic(HapticType.BUTTON_PRESS);
1777
+
1778
+ // ✅ NEW: Start background training when transitioning from connectors to PIN screen
1779
+ console.log('🚀 [TRANSITION] Starting background training during connect → pin transition');
1780
+ startBackgroundTraining().catch(error => {
1781
+ console.error('❌ [TRANSITION] Background training failed during transition:', error);
1782
+ // Continue to PIN screen even if training fails
1783
+ });
1784
+ setStep('pin');
1785
+ }
1786
+ };
1787
+
1788
+ // Removed navigation dependency for SDK compatibility
1789
+
1790
+ // Training is now handled by the TrainingModal component
1791
+
1792
+ // ✅ NEW: Background training function - starts when PIN screen appears
1793
+ const startBackgroundTraining = useCallback(async () => {
1794
+ try {
1795
+ console.log('🚀 [BACKGROUND] Starting background training optimization...');
1796
+ setBackgroundTrainingProgress('Connecting...');
1797
+
1798
+ // Step 1: Ensure authentication token exists
1799
+ const authToken = await ensureAuthToken();
1800
+ if (!authToken) {
1801
+ throw new Error('Failed to create authentication token for background training');
1802
+ }
1803
+ console.log('✅ [BACKGROUND] Auth token ready:', `${authToken.substring(0, 20)}...`);
1804
+ setUserToken(authToken);
1805
+
1806
+ // Step 2: Set up user info if not available
1807
+ if (!userInfo) {
1808
+ var _user$email5;
1809
+ const storedUsername = await getOnairosUsername();
1810
+ const fallbackUsername = storedUsername || (user === null || user === void 0 || (_user$email5 = user.email) === null || _user$email5 === void 0 ? void 0 : _user$email5.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
1811
+ const newUserInfo = {
1812
+ username: fallbackUsername,
1813
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1814
+ id: null
1815
+ };
1816
+ setUserInfo(newUserInfo);
1817
+ setUsername(fallbackUsername);
1818
+ console.log('🧑‍💻 [BACKGROUND] User info set:', newUserInfo);
1819
+ }
1820
+
1821
+ // Step 3: Initialize socket connection for background training
1822
+ console.log('🔌 [BACKGROUND] Setting up socket for background training...');
1823
+ setBackgroundTrainingProgress('Initializing data collection...');
1824
+ const backgroundSocket = io(API_CONFIG.BASE_URL, {
1825
+ transports: ['websocket', 'polling'],
1826
+ autoConnect: false,
1827
+ timeout: 15000,
1828
+ reconnection: true,
1829
+ reconnectionAttempts: 3,
1830
+ reconnectionDelay: 1000,
1831
+ forceNew: true
1832
+ });
1833
+
1834
+ // Set up socket event listeners for background training
1835
+ backgroundSocket.on('connect', async () => {
1836
+ console.log('✅ [BACKGROUND] Socket connected, starting background data collection...');
1837
+ const socketId = backgroundSocket.id;
1838
+ setBackgroundSocketId(socketId || null);
1839
+ setBackgroundTrainingProgress('Collecting your data...');
1840
+ if (socketId) {
1841
+ // Step 4: Start background training WITHOUT PIN (per backend instructions)
1842
+ await startBackgroundEnochTraining(socketId, authToken);
1843
+ }
1844
+ });
1845
+ backgroundSocket.on('trainingUpdate', data => {
1846
+ if (data.progress) {
1847
+ setBackgroundTrainingProgress(data.status || 'Processing...');
1848
+ console.log('📊 [BACKGROUND] Training progress:', data.progress, '%');
1849
+ }
1850
+ });
1851
+ backgroundSocket.on('disconnect', () => {
1852
+ console.log('❌ [BACKGROUND] Socket disconnected');
1853
+ });
1854
+
1855
+ // Store socket reference for later use
1856
+ socketRef.current = backgroundSocket;
1857
+
1858
+ // Connect the socket to start background training
1859
+ backgroundSocket.connect();
1860
+ console.log('✅ [BACKGROUND] Background training initiated successfully');
1861
+ } catch (error) {
1862
+ console.error('❌ [BACKGROUND] Background training failed:', error);
1863
+ setBackgroundTrainingProgress('');
1864
+ throw error;
1865
+ }
1866
+ }, [userInfo, username, user]);
1867
+
1868
+ // ✅ NEW: Background training API call - starts data collection without PIN
1869
+ const startBackgroundEnochTraining = async (socketId, authToken) => {
1870
+ try {
1871
+ console.log('🚀 [BACKGROUND] Starting background training with socketId:', socketId);
1872
+ console.log('🔑 Using auth token:', `${authToken.substring(0, 20)}...`);
1873
+
1874
+ // Prepare background training data
1875
+ const backgroundData = {
1876
+ socketId,
1877
+ username: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user',
1878
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
1879
+ modelKey: null,
1880
+ connectedPlatforms: [],
1881
+ // No connected platforms for background training
1882
+ platformConnections: {} // No platform connections for background training
1883
+ // No encrypted PIN for background training
1884
+ };
1885
+ console.log('📤 Sending background training data to /mobile-training/enoch:', backgroundData);
1886
+
1887
+ // Use the new training function that includes YouTube migration check
1888
+ const backgroundResult = await startEnochTrainingWithYouTubeCheck(backgroundData);
1889
+ console.log('📡 Background training API response:', backgroundResult);
1890
+
1891
+ // Handle CONNECTIONS_REQUIRED scenario (pre-training validation)
1892
+ if (backgroundResult.requiresConnections || backgroundResult.code === 'CONNECTIONS_REQUIRED') {
1893
+ console.log('🔗 Connections required detected from background training');
1894
+ setDataScenario('CONNECTIONS_REQUIRED');
1895
+ setDataDetails(backgroundResult);
1896
+ setShowDataWarning(true);
1897
+ setPersonaStatus('Connections required');
1898
+ setHasError(true);
1899
+ stopDotsAnimation();
1900
+ return;
1901
+ }
1902
+ if (backgroundResult.success) {
1903
+ console.log('🚀 Background training started:', backgroundResult.message);
1904
+ console.log('🎯 Background training Features:', backgroundResult.features);
1905
+
1906
+ // ✅ CRITICAL: Set background training started flag
1907
+ setIsBackgroundTrainingStarted(true);
1908
+
1909
+ // Log the new features from the spec
1910
+ if (backgroundResult.features) {
1911
+ console.log('✅ Inference enabled:', backgroundResult.features.inference);
1912
+ console.log('💾 Storage method:', backgroundResult.features.storage);
1913
+ console.log('🔒 Compression enabled:', backgroundResult.features.compression);
1914
+ console.log('🔐 Encryption enabled:', backgroundResult.features.encryption);
1915
+ console.log('📊 Training type:', backgroundResult.features.type);
1916
+ console.log('🗄️ Databases:', backgroundResult.features.databases);
1917
+ console.log('📈 Query scores enabled:', backgroundResult.features.queryScores);
1918
+ }
1919
+ setPersonaStatus('Background training model...');
1920
+ setPersonaProgress(25);
1921
+ } else {
1922
+ console.error('❌ Background training start failed:', backgroundResult.error);
1923
+ setPersonaStatus(`Error: ${backgroundResult.error || 'Background training failed to start'}`);
1924
+ setHasError(true);
1925
+ stopDotsAnimation();
1926
+ }
1927
+ } catch (error) {
1928
+ console.error('❌ Background training start error:', error);
1929
+ setPersonaStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1930
+ setHasError(true);
1931
+ stopDotsAnimation();
1932
+ }
1933
+ };
1934
+ return /*#__PURE__*/React.createElement(Modal, {
1935
+ transparent: true,
1936
+ visible: modalVisible,
1937
+ animationType: "slide",
1938
+ onRequestClose: handleClose,
1939
+ statusBarTranslucent: true
1940
+ }, /*#__PURE__*/React.createElement(View, {
1941
+ style: styles.modalOverlay
1942
+ }, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
1943
+ onPress: handleClose
1944
+ }, /*#__PURE__*/React.createElement(Animated.View, {
1945
+ style: [styles.backdrop, {
1946
+ opacity: backdropOpacity
1947
+ }]
1948
+ })), /*#__PURE__*/React.createElement(View, {
1949
+ style: styles.bottomSheet
1950
+ }, /*#__PURE__*/React.createElement(View, {
1951
+ style: styles.container
1952
+ }, /*#__PURE__*/React.createElement(View, {
1953
+ style: styles.handleContainer
1954
+ }, /*#__PURE__*/React.createElement(TouchableOpacity, {
1955
+ onPress: handleClose,
1956
+ style: styles.handleButton
1957
+ }, /*#__PURE__*/React.createElement(View, {
1958
+ style: styles.handle
1959
+ }))), showDebugPanel && step === 'platforms' && /*#__PURE__*/React.createElement(View, {
1960
+ style: styles.debugPanel
1961
+ }, /*#__PURE__*/React.createElement(Text, {
1962
+ style: styles.debugTitle
1963
+ }, "Debug Padding"), /*#__PURE__*/React.createElement(View, {
1964
+ style: styles.debugRow
1965
+ }, /*#__PURE__*/React.createElement(Text, {
1966
+ style: styles.debugLabel
1967
+ }, "Container Top: ", debugPaddingTop), /*#__PURE__*/React.createElement(TouchableOpacity, {
1968
+ onPress: () => setDebugPaddingTop(p => Math.max(0, p - 2)),
1969
+ style: styles.debugBtn
1970
+ }, /*#__PURE__*/React.createElement(Text, null, "-")), /*#__PURE__*/React.createElement(TouchableOpacity, {
1971
+ onPress: () => setDebugPaddingTop(p => p + 2),
1972
+ style: styles.debugBtn
1973
+ }, /*#__PURE__*/React.createElement(Text, null, "+"))), /*#__PURE__*/React.createElement(View, {
1974
+ style: styles.debugRow
1975
+ }, /*#__PURE__*/React.createElement(Text, {
1976
+ style: styles.debugLabel
1977
+ }, "Container Bottom: ", debugPaddingBottom), /*#__PURE__*/React.createElement(TouchableOpacity, {
1978
+ onPress: () => setDebugPaddingBottom(p => Math.max(0, p - 2)),
1979
+ style: styles.debugBtn
1980
+ }, /*#__PURE__*/React.createElement(Text, null, "-")), /*#__PURE__*/React.createElement(TouchableOpacity, {
1981
+ onPress: () => setDebugPaddingBottom(p => p + 2),
1982
+ style: styles.debugBtn
1983
+ }, /*#__PURE__*/React.createElement(Text, null, "+"))), /*#__PURE__*/React.createElement(View, {
1984
+ style: styles.debugRow
1985
+ }, /*#__PURE__*/React.createElement(Text, {
1986
+ style: styles.debugLabel
1987
+ }, "Handle Top: ", debugHandlePaddingTop), /*#__PURE__*/React.createElement(TouchableOpacity, {
1988
+ onPress: () => setDebugHandlePaddingTop(p => Math.max(0, p - 2)),
1989
+ style: styles.debugBtn
1990
+ }, /*#__PURE__*/React.createElement(Text, null, "-")), /*#__PURE__*/React.createElement(TouchableOpacity, {
1991
+ onPress: () => setDebugHandlePaddingTop(p => p + 2),
1992
+ style: styles.debugBtn
1993
+ }, /*#__PURE__*/React.createElement(Text, null, "+"))), /*#__PURE__*/React.createElement(TouchableOpacity, {
1994
+ onPress: () => setShowDebugPanel(false),
1995
+ style: styles.debugCloseBtn
1996
+ }, /*#__PURE__*/React.createElement(Text, {
1997
+ style: styles.debugCloseBtnText
1998
+ }, "Hide Debug"))), step === 'welcome' && /*#__PURE__*/React.createElement(View, {
1999
+ style: styles.welcomeContainer
2000
+ }, /*#__PURE__*/React.createElement(View, {
2001
+ style: styles.brandMarkContainer
2002
+ }, /*#__PURE__*/React.createElement(BrandMark, null)), /*#__PURE__*/React.createElement(View, {
2003
+ style: styles.headingContainer
2004
+ }, /*#__PURE__*/React.createElement(HeadingGroup, null)), /*#__PURE__*/React.createElement(View, {
2005
+ style: styles.bodyContainer
2006
+ }, /*#__PURE__*/React.createElement(BodyText, null)), /*#__PURE__*/React.createElement(View, {
2007
+ style: styles.welcomeSpacer
2008
+ }), /*#__PURE__*/React.createElement(View, {
2009
+ style: styles.welcomeButtonContainer
2010
+ }, /*#__PURE__*/React.createElement(PrimaryButton, {
2011
+ label: "Get Started",
2012
+ onPress: handleGetStarted,
2013
+ testID: "welcome-get-started-button"
2014
+ }))), step === 'signin' && /*#__PURE__*/React.createElement(SignInStep, {
2015
+ onEmailSubmit: handleEmailSubmit,
2016
+ onGoogleSignIn: handleGoogleSignIn,
2017
+ onContinue: () => setStep('verification'),
2018
+ loading: authLoading,
2019
+ error: authError,
2020
+ initialEmail: userEmail
2021
+ }), step === 'verification' && /*#__PURE__*/React.createElement(VerificationStep, {
2022
+ email: userEmail,
2023
+ onCodeSubmit: handleCodeSubmit,
2024
+ onBack: handleBackToSignIn,
2025
+ loading: authLoading,
2026
+ error: authError,
2027
+ onResendCode: handleResendCode
2028
+ }), step === 'platforms' && /*#__PURE__*/React.createElement(PlatformConnectorsStep, {
2029
+ onUpdate: handlePlatformUpdate,
2030
+ onSkip: allowSkip ? handlePlatformSkip : undefined,
2031
+ onReviewerBypass: handleReviewerBypass,
2032
+ onLogout: handleLogout,
2033
+ allowedPlatforms: allowedPlatforms,
2034
+ recommendedPlatforms: recommendedPlatforms,
2035
+ initialConnectedPlatforms: returningUserConnections,
2036
+ userEmail: userEmail
2037
+ }), step === 'consent' && /*#__PURE__*/React.createElement(PersonalizationConsentScreen, {
2038
+ visible: true,
2039
+ loading: isConsentLoading,
2040
+ onLogout: handleLogout,
2041
+ onAccept: async () => {
2042
+ console.log('✅ Returning user accepted consent');
2043
+
2044
+ // 🚀 Show loading on button immediately
2045
+ setIsConsentLoading(true);
2046
+
2047
+ // Small delay to ensure React renders the loading state
2048
+ await new Promise(resolve => setTimeout(resolve, 50));
2049
+
2050
+ // Call onComplete with the returning user's data
2051
+ try {
2052
+ // 🚀 OPTIMIZATION: Load data in parallel (fast!)
2053
+ const [token, email, storedUsername] = await Promise.all([getAuthToken(), AsyncStorage.getItem('user_email'), getOnairosUsername()]);
2054
+ console.log('🔑 [SDK] Auth data retrieved in parallel for returning user');
2055
+
2056
+ // Set completing flag before calling onComplete
2057
+ isCompletingRef.current = true;
2058
+ if (token && email) {
2059
+ console.log('✅ [SDK] Calling onComplete for returning user');
2060
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, token, {
2061
+ email,
2062
+ connectedPlatforms: returningUserConnections,
2063
+ username: storedUsername || email.split('@')[0],
2064
+ isReturningUser: true
2065
+ }));
2066
+ } else {
2067
+ console.warn('⚠️ [SDK] No token/email found for returning user');
2068
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', {
2069
+ connectedPlatforms: returningUserConnections,
2070
+ isReturningUser: true
2071
+ }));
2072
+ }
2073
+ } catch (error) {
2074
+ console.error('❌ [SDK] Error during returning user consent:', error);
2075
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(API_CONFIG.BASE_URL, '', {
2076
+ connectedPlatforms: returningUserConnections,
2077
+ isReturningUser: true
2078
+ }));
2079
+ }
2080
+ // NOTE: Keep loading=true - modal stays open until parent sets visible={false}
2081
+ console.log('✅ [SDK] Returning user onComplete finished - waiting for parent to close modal');
2082
+ },
2083
+ onDecline: () => {
2084
+ console.log('❌ Returning user declined consent');
2085
+ handleClose();
2086
+ },
2087
+ connectedPlatforms: returningUserConnections,
2088
+ onConnectMore: () => {
2089
+ // Allow returning users to connect more platforms
2090
+ console.log('➕ Returning user wants to connect more platforms');
2091
+ setStep('platforms');
2092
+ },
2093
+ isReturningUser: isReturningUser,
2094
+ appName: AppName
2095
+ })))));
2096
+ };
2097
+
2098
+ // ============================================
2099
+ // LEGACY CODE REMOVED - The following step handlers were removed:
2100
+ // - step === 'connect' (old platform connection UI)
2101
+ // - step === 'pin' (old PIN input)
2102
+ // - step === 'persona' (old persona screen)
2103
+ // - step === 'oauth' (moved to PlatformConnectorsStep)
2104
+ // - step === 'privacy' (old privacy screen)
2105
+ // - step === 'connections' (old connections screen)
2106
+ // ============================================
2107
+
2108
+ const LEGACY_REMOVED = true; // Marker for removed legacy code
2109
+
2110
+ const styles = StyleSheet.create({
2111
+ modalOverlay: {
2112
+ flex: 1,
2113
+ justifyContent: 'flex-end'
2114
+ },
2115
+ backdrop: {
2116
+ ...StyleSheet.absoluteFillObject,
2117
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
2118
+ },
2119
+ bottomSheet: {
2120
+ backgroundColor: '#FAFAFA',
2121
+ borderTopLeftRadius: 24,
2122
+ borderTopRightRadius: 24,
2123
+ paddingTop: 0,
2124
+ paddingBottom: 0,
2125
+ minHeight: height * .86,
2126
+ overflow: 'hidden',
2127
+ width: '100%'
2128
+ },
2129
+ container: {
2130
+ flex: 1,
2131
+ backgroundColor: '#FAFAFA'
2132
+ },
2133
+ // ============================================
2134
+ // ENOCH-STYLE WELCOME FLOW STYLES
2135
+ // ============================================
2136
+ welcomeContainer: {
2137
+ flex: 1,
2138
+ alignItems: 'center',
2139
+ paddingTop: 70,
2140
+ paddingHorizontal: 24
2141
+ },
2142
+ brandMarkContainer: {
2143
+ marginBottom: 32
2144
+ },
2145
+ headingContainer: {
2146
+ marginBottom: 24
2147
+ },
2148
+ bodyContainer: {
2149
+ marginBottom: 32,
2150
+ width: '100%'
2151
+ },
2152
+ welcomeSpacer: {
2153
+ flex: 1,
2154
+ minHeight: 20
2155
+ },
2156
+ welcomeButtonContainer: {
2157
+ width: '100%',
2158
+ paddingBottom: 20
2159
+ },
2160
+ // ============================================
2161
+ handleContainer: {
2162
+ alignItems: 'center',
2163
+ paddingTop: 12,
2164
+ paddingBottom: 4,
2165
+ backgroundColor: 'transparent'
2166
+ },
2167
+ handleButton: {
2168
+ padding: 0,
2169
+ width: 120,
2170
+ alignItems: 'center'
2171
+ },
2172
+ handle: {
2173
+ width: 100,
2174
+ height: 6,
2175
+ borderRadius: 3,
2176
+ backgroundColor: '#D0D0D0'
2177
+ },
2178
+ debugPanel: {
2179
+ position: 'absolute',
2180
+ top: 60,
2181
+ right: 10,
2182
+ backgroundColor: 'rgba(0,0,0,0.85)',
2183
+ padding: 12,
2184
+ borderRadius: 8,
2185
+ zIndex: 9999,
2186
+ minWidth: 200
2187
+ },
2188
+ debugTitle: {
2189
+ color: '#fff',
2190
+ fontSize: 14,
2191
+ fontWeight: '700',
2192
+ marginBottom: 8
2193
+ },
2194
+ debugRow: {
2195
+ flexDirection: 'row',
2196
+ alignItems: 'center',
2197
+ marginBottom: 6
2198
+ },
2199
+ debugLabel: {
2200
+ color: '#fff',
2201
+ fontSize: 12,
2202
+ flex: 1
2203
+ },
2204
+ debugBtn: {
2205
+ backgroundColor: '#444',
2206
+ paddingHorizontal: 12,
2207
+ paddingVertical: 4,
2208
+ borderRadius: 4,
2209
+ marginLeft: 4
2210
+ },
2211
+ debugCloseBtn: {
2212
+ backgroundColor: '#666',
2213
+ paddingVertical: 6,
2214
+ borderRadius: 4,
2215
+ marginTop: 8,
2216
+ alignItems: 'center'
2217
+ },
2218
+ debugCloseBtnText: {
2219
+ color: '#fff',
2220
+ fontSize: 12
2221
+ },
2222
+ header: {
2223
+ alignItems: 'center',
2224
+ marginBottom: 20,
2225
+ paddingHorizontal: 24
2226
+ },
2227
+ headerContent: {
2228
+ flexDirection: 'row',
2229
+ alignItems: 'center',
2230
+ justifyContent: 'center',
2231
+ marginBottom: 24
2232
+ },
2233
+ appIcon: {
2234
+ width: 48,
2235
+ height: 48,
2236
+ borderRadius: 24,
2237
+ backgroundColor: '#F5F5F5',
2238
+ alignItems: 'center',
2239
+ justifyContent: 'center'
2240
+ },
2241
+ appIconText: {
2242
+ fontSize: 24,
2243
+ fontWeight: 'bold',
2244
+ color: '#333'
2245
+ },
2246
+ arrow: {
2247
+ marginHorizontal: 16,
2248
+ fontSize: 24,
2249
+ color: '#666'
2250
+ },
2251
+ onairosIcon: {
2252
+ width: 54,
2253
+ height: 54,
2254
+ borderRadius: 32,
2255
+ backgroundColor: 'transparent',
2256
+ alignItems: 'center',
2257
+ justifyContent: 'center'
2258
+ },
2259
+ onairosIconText: {
2260
+ fontSize: 24,
2261
+ fontWeight: 'bold',
2262
+ color: '#fff'
2263
+ },
2264
+ onairosIconImage: {
2265
+ width: 54,
2266
+ height: 54
2267
+ },
2268
+ titleContainer: {
2269
+ alignItems: 'center'
2270
+ },
2271
+ mainTitle: {
2272
+ fontSize: 24,
2273
+ fontWeight: '600',
2274
+ color: '#333',
2275
+ textAlign: 'center',
2276
+ marginBottom: 12
2277
+ },
2278
+ privacyMessage: {
2279
+ fontSize: 14,
2280
+ color: '#666',
2281
+ textAlign: 'center',
2282
+ marginBottom: 20
2283
+ },
2284
+ privacyLink: {
2285
+ color: '#000000',
2286
+ fontWeight: '600',
2287
+ textDecorationLine: 'underline'
2288
+ },
2289
+ boldText: {
2290
+ fontWeight: 'bold'
2291
+ },
2292
+ content: {
2293
+ flex: 1,
2294
+ paddingHorizontal: 24
2295
+ },
2296
+ platformsScrollView: {
2297
+ flex: 1,
2298
+ width: '100%'
2299
+ },
2300
+ platformsScrollContent: {
2301
+ paddingBottom: 0,
2302
+ paddingHorizontal: 24
2303
+ },
2304
+ platformsContainer: {
2305
+ marginTop: 16
2306
+ },
2307
+ platformItem: {
2308
+ flexDirection: 'row',
2309
+ alignItems: 'center',
2310
+ justifyContent: 'space-between',
2311
+ paddingVertical: 16,
2312
+ paddingHorizontal: 8,
2313
+ borderBottomWidth: 1,
2314
+ borderBottomColor: '#E5E5E5'
2315
+ },
2316
+ platformInfo: {
2317
+ flexDirection: 'row',
2318
+ alignItems: 'center'
2319
+ },
2320
+ platformIcon: {
2321
+ width: 40,
2322
+ height: 40,
2323
+ borderRadius: 20,
2324
+ backgroundColor: '#F5F5F5',
2325
+ alignItems: 'center',
2326
+ justifyContent: 'center',
2327
+ marginRight: 16
2328
+ },
2329
+ platformIconText: {
2330
+ fontSize: 18,
2331
+ fontWeight: 'bold',
2332
+ color: '#333',
2333
+ textAlign: 'center',
2334
+ textAlignVertical: 'center'
2335
+ },
2336
+ platformIconImage: {
2337
+ width: 24,
2338
+ height: 24
2339
+ },
2340
+ youtubeIconImage: {
2341
+ width: 58,
2342
+ height: 58
2343
+ },
2344
+ redditIconImage: {
2345
+ width: 34,
2346
+ height: 34
2347
+ },
2348
+ pinterestIconImage: {
2349
+ width: 48,
2350
+ height: 48
2351
+ },
2352
+ gmailIconImage: {
2353
+ width: 32,
2354
+ height: 32
2355
+ },
2356
+ linkedinPlatformIcon: {
2357
+ width: 40,
2358
+ height: 40,
2359
+ borderRadius: 8,
2360
+ backgroundColor: '#F5F5F5',
2361
+ alignItems: 'center',
2362
+ justifyContent: 'center',
2363
+ marginRight: 16
2364
+ },
2365
+ pinterestPlatformIcon: {
2366
+ width: 34,
2367
+ height: 34,
2368
+ borderRadius: 17,
2369
+ backgroundColor: '#F5F5F5',
2370
+ alignItems: 'center',
2371
+ justifyContent: 'center',
2372
+ marginRight: 16
2373
+ },
2374
+ platformName: {
2375
+ fontSize: 16,
2376
+ color: '#333',
2377
+ textAlignVertical: 'center'
2378
+ },
2379
+ footer: {
2380
+ flexDirection: 'row',
2381
+ alignItems: 'center',
2382
+ justifyContent: 'space-between',
2383
+ padding: 24,
2384
+ borderTopWidth: 1,
2385
+ borderTopColor: '#E5E5E5'
2386
+ },
2387
+ footerButtonCancel: {
2388
+ paddingVertical: 12,
2389
+ paddingHorizontal: 16
2390
+ },
2391
+ footerButtonText: {
2392
+ color: '#666',
2393
+ fontSize: 16
2394
+ },
2395
+ footerButtonConfirm: {
2396
+ paddingVertical: 12,
2397
+ paddingHorizontal: 24,
2398
+ backgroundColor: '#000000',
2399
+ borderRadius: 8,
2400
+ marginTop: 20
2401
+ },
2402
+ footerButtonConnected: {
2403
+ paddingVertical: 12,
2404
+ paddingHorizontal: 24,
2405
+ backgroundColor: '#E9C46A',
2406
+ borderRadius: 8
2407
+ },
2408
+ footerButtonDisabled: {
2409
+ backgroundColor: '#E5E5E5'
2410
+ },
2411
+ footerButtonTextConfirm: {
2412
+ color: '#fff',
2413
+ fontSize: 16,
2414
+ fontWeight: '600'
2415
+ },
2416
+ footerButtonTextConnected: {
2417
+ color: '#000',
2418
+ fontSize: 16,
2419
+ fontWeight: '600'
2420
+ },
2421
+ connectContainer: {
2422
+ flex: 1
2423
+ },
2424
+ modalContent: {
2425
+ flex: 1,
2426
+ backgroundColor: '#FFFFFF',
2427
+ borderTopLeftRadius: 20,
2428
+ borderTopRightRadius: 20,
2429
+ padding: 24
2430
+ },
2431
+ backButton: {
2432
+ padding: 8,
2433
+ width: 40
2434
+ },
2435
+ backButtonText: {
2436
+ fontSize: 24,
2437
+ color: '#000000'
2438
+ },
2439
+ backButtonSpacer: {
2440
+ width: 40
2441
+ },
2442
+ headerTitle: {
2443
+ fontSize: 18,
2444
+ fontWeight: '600',
2445
+ color: '#333',
2446
+ textAlign: 'center'
2447
+ },
2448
+ privacyHeader: {
2449
+ flexDirection: 'row',
2450
+ alignItems: 'center',
2451
+ justifyContent: 'space-between',
2452
+ paddingHorizontal: 16,
2453
+ paddingVertical: 20,
2454
+ backgroundColor: '#FFFFFF',
2455
+ borderBottomWidth: 1,
2456
+ borderBottomColor: '#F0F0F0'
2457
+ },
2458
+ privacyDetailsContainer: {
2459
+ paddingHorizontal: 24,
2460
+ paddingVertical: 8,
2461
+ flex: 1,
2462
+ marginTop: 20
2463
+ },
2464
+ privacyDetailsTitle: {
2465
+ fontSize: 20,
2466
+ fontWeight: '600',
2467
+ color: '#333',
2468
+ marginBottom: 0
2469
+ },
2470
+ privacyBulletPoint: {
2471
+ flexDirection: 'row',
2472
+ marginBottom: 16,
2473
+ alignItems: 'flex-start'
2474
+ },
2475
+ bulletPoint: {
2476
+ fontSize: 18,
2477
+ marginRight: 8,
2478
+ color: '#333'
2479
+ },
2480
+ privacyBulletText: {
2481
+ fontSize: 16,
2482
+ color: '#333',
2483
+ flex: 1,
2484
+ lineHeight: 24
2485
+ },
2486
+ connectionsCountText: {
2487
+ fontSize: 18,
2488
+ fontWeight: '600',
2489
+ color: '#333',
2490
+ marginBottom: 24
2491
+ },
2492
+ personaContainer: {
2493
+ flex: 1,
2494
+ padding: 16,
2495
+ backgroundColor: '#fff',
2496
+ justifyContent: 'flex-start'
2497
+ },
2498
+ personaHeaderWithBack: {
2499
+ flexDirection: 'row',
2500
+ alignItems: 'center',
2501
+ justifyContent: 'space-between',
2502
+ marginBottom: 16,
2503
+ paddingVertical: 8
2504
+ },
2505
+ personaBackButton: {
2506
+ padding: 8
2507
+ },
2508
+ personaHeader: {
2509
+ alignItems: 'center',
2510
+ marginBottom: 32,
2511
+ paddingHorizontal: 24
2512
+ },
2513
+ personaTitle: {
2514
+ fontSize: 20,
2515
+ fontWeight: '600',
2516
+ color: '#333',
2517
+ textAlign: 'center',
2518
+ flex: 1,
2519
+ marginBottom: 8
2520
+ },
2521
+ personaSubtitle: {
2522
+ fontSize: 14,
2523
+ color: '#666',
2524
+ marginBottom: 24,
2525
+ textAlign: 'center'
2526
+ },
2527
+ personaProgressContainer: {
2528
+ marginBottom: 24,
2529
+ paddingHorizontal: 0
2530
+ },
2531
+ personaProgressBar: {
2532
+ height: 8,
2533
+ backgroundColor: '#F5F5F5',
2534
+ borderRadius: 4,
2535
+ overflow: 'hidden',
2536
+ marginBottom: 12
2537
+ },
2538
+ personaProgressFill: {
2539
+ height: '100%',
2540
+ backgroundColor: '#1BA9D4',
2541
+ borderRadius: 4
2542
+ },
2543
+ personaProgressText: {
2544
+ fontSize: 16,
2545
+ fontWeight: '600',
2546
+ color: '#333',
2547
+ textAlign: 'center',
2548
+ marginBottom: 8
2549
+ },
2550
+ personaStatusText: {
2551
+ fontSize: 14,
2552
+ color: '#666',
2553
+ textAlign: 'center'
2554
+ },
2555
+ personaCompleteContainer: {
2556
+ alignItems: 'center',
2557
+ paddingHorizontal: 0
2558
+ },
2559
+ personaCompleteTitle: {
2560
+ fontSize: 20,
2561
+ fontWeight: '600',
2562
+ color: '#333',
2563
+ marginBottom: 8,
2564
+ textAlign: 'center'
2565
+ },
2566
+ personaCompleteSubtitle: {
2567
+ fontSize: 14,
2568
+ color: '#666',
2569
+ textAlign: 'center',
2570
+ marginBottom: 40
2571
+ },
2572
+ personaContinueButton: {
2573
+ backgroundColor: '#000000',
2574
+ paddingVertical: 16,
2575
+ paddingHorizontal: 48,
2576
+ borderRadius: 16,
2577
+ alignItems: 'center',
2578
+ width: '100%',
2579
+ marginTop: 32,
2580
+ shadowColor: '#000',
2581
+ shadowOffset: {
2582
+ width: 0,
2583
+ height: 2
2584
+ },
2585
+ shadowOpacity: 0.1,
2586
+ shadowRadius: 4,
2587
+ elevation: 3
2588
+ },
2589
+ personaContinueButtonText: {
2590
+ color: '#fff',
2591
+ fontSize: 16,
2592
+ fontWeight: '600'
2593
+ },
2594
+ progressError: {
2595
+ backgroundColor: '#FF3B30'
2596
+ },
2597
+ dataWarningContainer: {
2598
+ padding: 16,
2599
+ borderRadius: 12,
2600
+ marginTop: 16,
2601
+ borderWidth: 1,
2602
+ shadowColor: '#000',
2603
+ shadowOffset: {
2604
+ width: 0,
2605
+ height: 2
2606
+ },
2607
+ shadowOpacity: 0.1,
2608
+ shadowRadius: 4,
2609
+ elevation: 3
2610
+ },
2611
+ dataWarningHeader: {
2612
+ flexDirection: 'row',
2613
+ alignItems: 'center',
2614
+ marginBottom: 8
2615
+ },
2616
+ dataWarningIcon: {
2617
+ fontSize: 20,
2618
+ marginRight: 8
2619
+ },
2620
+ dataWarningTitle: {
2621
+ fontSize: 16,
2622
+ fontWeight: '600',
2623
+ flex: 1
2624
+ },
2625
+ dataWarningMessage: {
2626
+ fontSize: 14,
2627
+ marginBottom: 0,
2628
+ lineHeight: 20
2629
+ },
2630
+ dataWarningSuggestions: {
2631
+ marginTop: 12,
2632
+ paddingTop: 12,
2633
+ borderTopWidth: 1
2634
+ },
2635
+ dataWarningSuggestionsTitle: {
2636
+ fontSize: 14,
2637
+ fontWeight: '600',
2638
+ marginBottom: 6
2639
+ },
2640
+ dataWarningSuggestionItem: {
2641
+ fontSize: 13,
2642
+ marginBottom: 4,
2643
+ lineHeight: 18
2644
+ },
2645
+ dataWarningContinueNote: {
2646
+ fontSize: 13,
2647
+ fontWeight: '500',
2648
+ marginTop: 12,
2649
+ fontStyle: 'italic'
2650
+ },
2651
+ dataWarningError: {
2652
+ backgroundColor: '#FFF5F5',
2653
+ borderColor: '#FEB2B2'
2654
+ },
2655
+ dataInfoContainer: {
2656
+ backgroundColor: '#F0F9FF',
2657
+ borderColor: '#BAE6FD'
2658
+ },
2659
+ dataConnectionsRequired: {
2660
+ backgroundColor: '#F5F5F5',
2661
+ borderColor: '#D1D5DB',
2662
+ shadowColor: '#6B7280',
2663
+ shadowOffset: {
2664
+ width: 0,
2665
+ height: 0
2666
+ },
2667
+ shadowOpacity: 0.15,
2668
+ shadowRadius: 8
2669
+ },
2670
+ highlightedBackButton: {
2671
+ backgroundColor: '#F5F5F5',
2672
+ borderRadius: 20,
2673
+ borderWidth: 2,
2674
+ borderColor: '#000000',
2675
+ shadowColor: '#000000',
2676
+ shadowOffset: {
2677
+ width: 0,
2678
+ height: 0
2679
+ },
2680
+ shadowOpacity: 0.3,
2681
+ shadowRadius: 8,
2682
+ elevation: 5
2683
+ },
2684
+ highlightedBackArrow: {
2685
+ color: '#000000',
2686
+ fontWeight: 'bold'
2687
+ },
2688
+ goBackButton: {
2689
+ backgroundColor: '#000000',
2690
+ paddingVertical: 12,
2691
+ paddingHorizontal: 16,
2692
+ borderRadius: 8,
2693
+ marginTop: 12,
2694
+ alignItems: 'center',
2695
+ shadowColor: '#000000',
2696
+ shadowOffset: {
2697
+ width: 0,
2698
+ height: 0
2699
+ },
2700
+ shadowOpacity: 0.3,
2701
+ shadowRadius: 6,
2702
+ elevation: 3
2703
+ },
2704
+ goBackButtonText: {
2705
+ color: '#FFFFFF',
2706
+ fontSize: 14,
2707
+ fontWeight: '600'
2708
+ },
2709
+ additionalPlatformsToggle: {
2710
+ paddingVertical: 16,
2711
+ paddingHorizontal: 8,
2712
+ alignItems: 'center',
2713
+ borderBottomWidth: 1,
2714
+ borderBottomColor: '#E5E5E5'
2715
+ },
2716
+ additionalPlatformsText: {
2717
+ fontSize: 14,
2718
+ color: '#666',
2719
+ fontWeight: '500'
2720
+ },
2721
+ asterisk: {
2722
+ color: '#FF6B6B',
2723
+ fontSize: 16,
2724
+ fontWeight: 'bold',
2725
+ marginLeft: 2
2726
+ },
2727
+ linkedinRequirementContainer: {
2728
+ backgroundColor: '#F8F9FA',
2729
+ borderWidth: 1,
2730
+ borderColor: '#E5E7EB',
2731
+ borderRadius: 8,
2732
+ paddingHorizontal: 12,
2733
+ paddingVertical: 8,
2734
+ marginTop: 8,
2735
+ marginHorizontal: 4
2736
+ },
2737
+ linkedinRequirementText: {
2738
+ fontSize: 12,
2739
+ fontStyle: 'italic',
2740
+ textAlign: 'center'
2741
+ },
2742
+ linkedinRequirementAsterisk: {
2743
+ color: '#FF6B6B',
2744
+ fontWeight: 'bold'
2745
+ },
2746
+ linkedinRequirementMessage: {
2747
+ color: '#6B7280'
2748
+ },
2749
+ existingUserBanner: {
2750
+ backgroundColor: '#F0F9FF',
2751
+ borderWidth: 1,
2752
+ borderColor: '#0EA5E9',
2753
+ borderRadius: 12,
2754
+ paddingHorizontal: 16,
2755
+ paddingVertical: 12,
2756
+ marginTop: 12
2757
+ },
2758
+ existingUserText: {
2759
+ fontSize: 14,
2760
+ fontWeight: '600',
2761
+ color: '#0369A1',
2762
+ marginBottom: 4
2763
+ },
2764
+ existingUserSubtext: {
2765
+ fontSize: 12,
2766
+ color: '#0C4A6E',
2767
+ lineHeight: 16
2768
+ }
2769
+ });
2770
+ //# sourceMappingURL=UniversalOnboarding.js.map